49786995277673599769798869869978584698676384879889489888789856936663247667338979964369999157767885593857848285278478275449263334469595546742857955859769764486789539328885752782794675941678977996558859789746566696463597989786887448599686398856686244586574838999959688637778555799585989868474651265369854631968917349749877196539784979679999758668997599938982343798835484677948924674499868897767938396297447854996968898488686444677596875686999476574599589336927388857695457597487899828458945658677376888584564593799958494738722989957896495599598759396877692388979982942226436852448844258669762579678586459498739488699574885899463569998689939826943383756839997514686754487497689494487761554518699478698948695793389446469729885397235645868649649567459142198787946678668757174393783624378585189853989656456538894947697578654799874999592454149784589559926946987755394757696827738696583989889421578827999555898329496899439355685877798986593635648299872457798686977868458656785667788976658996647989673597869983238267549581355987678668794858979268777778288299684679892992588226699974777879762962585212945475896799595889659295951868739338748571965479656995588484931594865498836992379987376618286852892689217153697934679865681889892958896668392768889899189639837798658728898534194979587999386236995389888556735993747766478897896997872571983686817547976478877367594269271854995524838577984885933468419845721794789895799989274786979624446719266749757899594846757765995449878778894588565399588869959835447674778988878761578329197726556837554899767645728689986189576873386989221588668674778768658864647555748352759797936782978595866785479429997487938889737989955892939889959279765785558657888978578263649896858339757795888923378788795969988513936839995587688755599787664938778387386489381477359957699866285748294869668594887858389947874695968899911697876754394889988876229773237676417788798589969465598797834976467348728887998978278354569578539889596839987276756985797685548995459896457268889917995948749959297485858786419794926256838986269688888797979568286664957733999188613598896827464685389688973973591598853586767663689284965343737283947794675493438627579454957867172998988548969963968963768639767777995864675877997983299829565778999668887649935969795879576449779987676457699936714456946989658977649679739644288527959393837692926876893559686754194999964479686899762694956897897654989794859273993668592886939886568638339856989837777976477363447725948378976891572766985719969357641547898579678836778865517498687989892972358478663749859985825764737179679775685778565785885834769384734763998988884327882484423544959998586454779388887976339367798369666764749257647286963647463728968986987929737626764585547785859168855466855855898986944579898188999539756666959644947995347981595969465869834545765555739381571894569478899524745648429869536325785298356978757658688959698679551568893926499888289554247438574961974677195279784649667564444769948556665789462987846538857999896756797897472582896897666888845915642489849589562735883529947617888139489499597831989564448739399945696153687553745575246998826489596968516899519573976966574996897952985987457763274628767877949627595924587898922786264836979563779893778765555756226991559562475379985585436668848289798889813785686867798497756397738537935598968977993735676277499494847489469886937578687782976867894633778169969889679536761894778334875432695899183849659799593987552652937748748865826977948979741943698463988326999899986814993834887359884957395475567687866646897635699591787876387675645977857669497588596637797529179745992456958876987731389589912785699543776692896897886678373699664654239974977563452573356867758477889996576665854473452944594875954989389998899586944855846864584783599397859787928991889985772188989647775984689279848656987599876287684765837185779474868769837584128546996948378785476356997589389257694576888435795455278889987699495989999423537949629877388584878368489786964977796197888849838294385796672754599374897358862465597464859658799766776764474376788786162966676284958567936654989479895853959678166843374498463986699957992956298364935985948564892942996196858649759963681999789137886969575798675697683883676897629975596884739293956934676992719699578876397893478986248499898926978477987962339566553797636378996587478499489989328298758489755485495638566788998175883846896996938937747958396987328843763867972838976785388288249888498768744891883593694447547785776963918997469699992456513532544566915573498474837398994955786889837799659779753989995696842761994623797578584784978727745584839528999945986633749965686466338374264549566955289257547774962638884594784879968274879765427595457599898984938952789873355738478964889675999927897787649929567279594389877366177966493794985975898897655685838649786992687857195595439568384899539945595989986879679399894656979627966378218958752668999685695989763767797266979767955951649799887665874338759949659698795966665293581949867986865872522958698777966637785591566488996785592273688872691725994368968689985388379787569874495769826586852595867885699889928298798585934578679974993724385978493839487466676888499586869629794626984274677483439648595499788727937288789559637985262587938892798699986544989957899298953687859968714933996993965841972688232659841977189897888698336589986869769887735985985898899589279974773594559286586967993999458483883459738457984796787798566359976848748997779994773958959724776876538957543967399799946587482795686754833969957385879559888548592298537867489597993386549799988836991762477999767312695669938982991877799788859458599379227875558769687429559757957999889768638668289987993368379298794798548759466748375974828838776888669565858885673888888743699868868575751934447791567778547966769984699962555679737165992589565618549745695439794572886793989988658554489978898322447979936364778886378789784798746398995789532816549597796672868998477778568837749457399894541685558168398839734855973849798696892595749797884669745394479764896369882468841479968684668937977961368681537896287968783587445754446229297939477699743986798285849949796849699474827488496988845893384868996743943599475775717696864976645434455978579696269659966978854368569985935887755492778999675597997988369877563787175868769888455286989928959235813989836869846839986589866927992799337988338759597998833385895987769686639994866955961897698897893531987996895745746998645957669494966769826635477759428387598799769957358988759495679169298397456846298615683243774357857773437255899819865985438557986676877478457737786778871888868973999962491496988669623554247732996754965584789875532591365886891471895185747694877487659378862669967915577985978674889689746988445755868238312496999886535911352343749757866488978129788253897958557697878885652926856852598915853369845892689752346936797887887988972448799667595968794761523978768999756991829661193588389957878846576952695697939758786491894588746868967751489796638795328979977849497679479798674979481386937889766267797916494879893888876479498991781874858978977852877728697766445888797495551976393986687425997559947784995636626888889558844997454368379378387179861699498789388988693887945994692789596755977599169235654944588989825868163981768486574877429795815796818978398944859588979958899888767757299662563795516166972489354759736649889787276795467787858548584888265999924486985589832594941569791648757894269669882888969887669937686153884299337147788298835966486636884656388874926437797496398629995597189386899986564773368785978857968479149469954788894795467744496474965744995799767644375567399946679888527525564797278887488788423746968687927845284917745768337783736268577999933593476178977742729776795968884929744933267878625599863754469858979633888983688579892841619745585999887768869567159794786676898899563985872996696362685944463674437714696319879952765684958794496575921599685595999795727949839379456357799849668875767976495378379989985697587845523969389572537667456869766679882685474687257999839697879642479862687192979467695238795765744858729684957955494879718836279326769384868199877668475665753978877862715217479857543769447868388825676999988479694894866553296479396786561778793744899994429585975945689936757971994356755947564869838818688498875486765974768652728263184776839333459849856898891969949767287273658978896359539667856289184671259937873778439373791487956582853887835365241318698728824782579747783979644747778989745598536863944786588867999954885998968372997698994295727499937477695378838928434536895975789649657796236455295589477587668964645597982754968733968648798484532647878589967543783787974649987549394896767695832169987984949888888371768966299699465179749678864349894878798978389773679767918889873749799937298463968866393557687378757964989944988393842791374425559986486385678999759663828689389744598582361997588898466536949899388867394988929947858898598495976998699698799877983799668798869992994735786967266785845993363596988879287713196496598589684757328468647988889789576749787686779848649895667999794199669955366888698876752579969764966568677874986687758194286788993688963992688597857878729778848894678573323987974669944689753478176677617589894359999847575795364896939785653875557386969699229643879363399898855459988445535164649896979467976257878937948467597543957577948588925919556668919988987987889698699969996455578695445742476689989648544364566595496866287189437588589589566883797694387747159468975775696867294655468965398347849548659856715456797958165668975973583659578865572553948389799593939998848833622838818487565964792787556782786795648247989764528996332788697368893699599943611683874739244577866785786766879549683594846892996376488795728554976588685869897959114945875344784639728986284387899715787958458666753998985923386992875891989943899967838534368555777656768786695798825768668478739297574735336843373997998499765775629978466676976746815682729959961767848986815899816857376396959969526829823423755788365985925695987757968614689185199799253259855581797658344849658597888873299849658996513979944342696895777539996692873478658463982475269455267879776657877965985192497869791755386696777738862799599638286545599997676376928974969859599642749389827694627839857944577667799799868914648588853685779681694853376588676511459688368598616672466825879999687288779549899769599444974758459645966547763662845864837774598852869785837938496768416789798164394569492869599367697183396867947988667778785864774899685993848886283895918677388895896989555568976559898897765273691977838889967534974658872968579284676875978998988669789649786957812366598439279774535369847897547897286845868147699785437886927587863376937967966717518754958973856224539569978812277455787497734986339952423295848663912997525935692818689789972642563752979988767954574478989676775789645688639832587556698776588632698765936639988279358649659877685673241396729656988386648586767623566968589798846599616869688498537868994685846817639397574475738934398956785799459538529569496687664559997374395729979147854216829396878624479998287724828776694344236555594677941991856574369589867967776579489666396625765555999884159955987667964879729687535162956872924956527288894796838649595964598799464782537796939679887888899599349758934486889786484947295969789453946259594975628892448998945989954858299957459394666179526936987961517243995888377254997742267633882273738544688326793779569378759695465896696679798496259493867849267954883529798554868777662457276999367895897738867852659887395584767695684993658996766396965477197987581744677698583293894968662289662489769487999968676599659618297725589898883328984466886952433283794296959985246935674729168873997151384698399376737484891499286675639859975249838664687398983756896669596439549684857768589967277586759747897357378278981759999258752786565684575425435758243596772995374789479688863375566676956842896337896638349836285884951976869669671977989788935768389487873797968257475949869686715787964639884625426476268678479799885717935993549648958548365898869963497835998996939916339297526647862758857994669268387698799977779757975983848784858275589139985963719958747989866273858989676684684972681849569532656679988768779979899757794469568487626976752889799478972457486484756493652681586772797289929495949985467484893965599389855776793858999686156994878775988756763985693989257667874968457675899866289227986676449972965276849238144169594397898787858878157536589599875675795842916978558185867774887963373556989734878948525398324585898158481628569827698865445587226957878977963699955399877887647948996487497794458999886836941828471886367999686947748377725985258856855988778284397972589886999998928997397667574769198935443462223564847792671887659887764387339896958198979877969964668937591778938898498569572578668343195973638992285697586865375689656869768886583698672977782968799579979575479735684795384374587479365874794877479884667667846786586968678689626724499236877997782979982778675577853679249457898949966888627974299448696977966789464836884718226986696769958559576295694269728998679887369787678322966594648397679877789855329937696947961696966787247684763939146965796298698839877918582827497697577732778722879946166773589824648455985539958487546853697695972364688735684884366761943993668577216799269889388997555768759493343693759885953523217539854869486997444886956516851988784317369936757459664329843725644759823499768326997564955897894816659372286753353736582763741797389374188796445586247889877468589989895589959793759566248877849975593956899456259987789987579773874697482885559598458846699685979776973858389789596583936997889386557838646933238454861673679772163984664779568887781866864889987698658976468828658981785999268366766668597394445233839991484973678556297429689594665895797997698889772818459239989997793978647989272559896979936969475657856244654844698892855857648769987424158549597696697739868995972815477668467195688898473688894696574547696785438614769758957699787368796859845978696769828739877759795969537995411548998786597464499598377839839635725266867887356898838275678749993772684249838685739586895396747698998683845985397978946244479839977568669359675786558897946888598994678734849844936856686169666759989148453675596879549447785558844934476995882937992694489786353685519998885443944886685679976456726288767894696389986977284552876844689868689699269983338519288447939739383776788652627921694887395836249938857776869745654628368399248629551975673796777469778679278713787945967875376349734656989676594344966946682961553549989696936557739177369585469997567439937274966945969598782799434927412998797687767586658489477538675589786285944515598363297638785695893394798552815949695889147593677637473648346969757448899385788992997292245869839779899942738458778579888387996868496894858259568683692727584589995855739497828869595995947526645658934576939957346327588779789746249977242873969685667781861736586774595999698639744798579843968469799484579359854689376915633997875754884948552769883759822879399567799879858959633939978679887438467697676148335677495876779875799646987994894799985366589663861963995835736471789888998824579887396648873654877754257597873584288939387797976694726614967718645287837656995872954826654797986349787958453454898156696269969477427214655958386478789957776389767689785998851769988468792569819161878954678994998788342789796667766798377989758794696897797383983366793868528358374679988684634469636248278914757957784275939991887577569789994875667688657581658477384127595399867886989787497473856779488694994679257548962492998675868577878777934979928996985956796872433683939673935785748829277972942569486788789669559586696864594336654696685677956485564617359988472876652956545717868827667457677475789994878879856849798926685895867788654916967978552498862961865365939663787196848578967879778255973741335798481353789795758559936488957759476898986994657826469557696768999938525966747936929653569672958479464514928896366897789797558875756253846868379486597734912428695556998673879694363583995396534487995476968476557725832347876767559988789927397198856368929355829535878972281598698377694493496387942872958524497398679968679638323799598895993649788513139948738375539978599699936878963885569698639694839834516698929724749628559692697889867499657897589987588591859688947653997699988795958593365981356652537679395753987879785764877677595677784786718585486899461884651778837887655938779657658494596662724937876957487767484899959318696493529816497766998693925795254969364949979769675474846697797559763998888593295598599737679586746883882796364763478978978548544746757488785738967737688926759938737497697795462376189987889742676147857477354199286659166361765895668638686917657478897895335243658886598678898794776996655365456637479858783587598668296922689189445397599868779894898188894485522896569996499899734279699977688846948968657459933255935299966555687571929176935755987665277837499989889787419444894887477967897593484763278875744984978388988895677588853742498959369977334779964458279393996849698894188599958876839425197199916888876657956458828465393485452689984884488655995764727378195613573689985969945947943868977825657357956674973725338764788459979255794778566599496965168254563879868695846829565147586364898978947858295987594673669581587698792966357684486688983489686467998725389968836469592246973748778287672784684469798432868687838866838398696656466887969786739579758558467925896452196758814557338496779387694878458443467975975479997979675855689886497842513988552548828786359945787818273797999948547947879784682976678518854173878977336133888827385888839957349785875562774983799787814679997695986952979435299948777768693987987479795718399789495849616979548367778996987763529487299496995265557655647743787639843422877654676626686918754579298759752476418477748657989484594586789694746782539977365826967677987755927966567998577999569858188493746868169796475488899976747876618855497146896369554727799777697735456498874683786547343465748767823938983847898997874574898886485678659775739892876839558495182939891558662928428588997386697985279759989327877942295816767547946599815388739892759978877985845984389862777679363688985699577897966994957983868517373897638597499766551775647688588889965984956796728899857978995865698379334223619679939446493973952178565975596898579423459867899867434769449859936859587788569693628659869868435948866885944586559886487894334544976834348894779453597615529537693982666962555788679667358418675584969568858677894688362789763519751176665474495384877645889798478875694666558656684684648691985865222489364793758799862795899518797349239663735324767892555984887875563888598964976675769635963566655423494782499189479779594459849787898976695386426595799694626747647679669643787299936499848136388862415465879485398878363691888487969246738588599399988697477847298717961999426887577648785638762536635989997269375894593983474498275654886282967695762977594744759869754778587899659878766994454996995985896457722936489857727596766567669635458886962684667971985595425848893788496986859818661295739286632979778878558483685952865763973594969595667878593838298999899598747396642736877967785672123957797276589819617467766869397587746777588673666478646623855988772984485987544745689755759339537439899588288926479677973952989988346888999873762877882647963786679689788329378557829433854567934755852961775976847979889995527857946786684686949849453376798497896678777568692888969678264277666497897896848698396679497752583691798592838966378879844947889877576367148932475487965648947137985894938918999739454417839777743761979975937788684998942852976966573477779866935867788745355964699943987446249925688997698386739789925848727787378566639873485872337896956677658987339656773913691768659359948184368384986739956947849799887498784599344868349587135686796889848867798837665967495679777869939867848777945491629578788892948928678724758867579995986935179237841858287762679891783399878267769756946914946378525576695864781292774889844986998595976786832279299989985858783596299598797895996959797378379375947583969547619558689585648484925882578584799477599698668695397929695986989465959996477754778545637835836879482418647998249377564953486367994779776779469999536997447981922797374849978668766958673865596458181674768754894676376188528487533827382546575679886835966977783689753935848745568572936486824193955887969756551559457666892564791397428955749889466549953737899497578862968237448935844558666389572986176448987338975688799998599796989987756639974876869966594779698554789967188534796688262693279298967777936169795867355751796795594787978993843984578452594548977667156647961764956858439735376882975974973363459265949599649965534658899797568148392534985794726997887569869496677978888547959875869639633477994869386326778486742488339675761763466193845857645867989952476856696956765548988695885849466864676356644645495857869738979814998956932677373247894728969595688866975589789867693522985687117526683455765129897893936787667589665677786872976471687572882246766949688879769587865388948778966545471482948877489467634797887755698945334877993198979784688577856759826835795458879688979198765554999885933626469247768465666858974963765773798487778872277915591885776758865686688188658154469662981916697997499469893959255967993377699339745551999735778482436465946864964762988799165786949526874489541788993646995657898137689658966798466966887974468248156564677885495848896388788874648852669488689755888645938455946987462845697223954992399686989815536272239958999595948787615557479697695349699984863776867185627778284893557676675985899869393278996735354378564737565568896796895457674889389139996796937949779994518865796877279844487884264187699579788884865477869892386349739727816999389574927948549848646575893254758877769259756747763787549365777464568649757949569893673879557624589979975337998865988158978369519978816738858455587745939987254267876957488479742886771573895319386586838988965287686565779847885676813254976849781869298826288783796978682856579639371587587859355546466338969458697349795258585679742635425275988632867682767954385268997873599813637594417926597947268654449177879953984874883296789219368756168479668695988597828637585978594987882498964668688487489794397389189924983978186548495227598294634599758799965678985596653865487958158789869459678238998874999296828747496533367686549266396997488945838874874942955963854576882967859896488784928734678978883297435899288566749598858875959898196845289698797856891539963497286995536456798953879556858545894967996794884961968399768856897995658433865657933895976669797698439578626668979718777636683574583966354869999878978356456436777957945553553697984977269763355455159698885983739976987429558547896947899958928569469788988967673968697158499539677468757999888849875968646854936368891257637589822155696688853427795557629872327269796767664281346147388893768474786298952999592378946395959695889396865288324453965847364279546844888295783873679764264869585789829794999829899888995856459778677865988878896994983388798313894848468844482887699655569944566978679497397998544499976896498717157868372923757798349765547599478283578798673559988589764697582886695667676288729534778742669593886669896444493673573872899857969575743587995877665964978996649697998832566539655394337738799538489979996794957896394675865774829874647792894629958689676799248685593585588587668996689493859876747647594339879876882999257668929855599339179698948797873386444688969989959996897636987877876587663936718727766728786993991993886993387589576989981981495666364287792918697878989349588379786394557937253498949996952847496952589595435685465676886969544987959488798653397948649997395868672991389517657872466686457258276745882795298871748453846664994896269848476938799991476484392371687628453847676685348987799415969568368619683929795974177936978959685699557569898119387992964743937798888735579689996275287686844488177998665867849988199975769727784287685697869483748683452673925749759595458998678992978189279875392453769676796845874736476988884895792799597663468825954879877288719469849978393478786996972959983529788554959877986616629698866928962478979449876587788965917798927898637426878556369554889581687465472874557835764878967777767346789774766971934816328996857985597899888665617882398648987634593648874943952398475578196698778886668669797564476859958976567962979898548968688794329979423148998979459558197694987996392442759997529647482339778897758558967768451569923896155495999578849768745443848669476687488887898686563739873767892737375564469257535848796759479237896369786677879474769998865839794499923648796996933594782988658695396896467966599774935686999835833279883336896789999797849866986795598858949495537447896833344764177214745865889664766767959688557868427858485999179289366768998876969775922259248293928895159992399544647773659668499683598828885872849569865399158978988837989758967695952344268873838995958957869593249727389666766589567755846956799244639477866895998353988496795741984934867886499968965765478349599966749727447867588947644937392973998955775995699876784788272876594895529888874669996916959617897569873994859699558993455635189776959437538983596934767842635915874146698925199423933484959899486893947895899965195687573642633745855437598888746674673491895995448465498953355841375466578999598495379735956731989375797932592663477572299998899899488577635369854695582876894964799465937856268988249589996878556957739985253958964877948545383984847978976369278846773297849789489788877568656685699779392641748286999789886798968888849758985768677981584996668867845955599368592745286739296999769477986689696385213567597696497573798467558391894154376687448783199813726587898785467677966986665886686877638876669463598362997989587995887468658227757686279789455964743836755822978999497916688976217898669788987984572545799665678858466998749965478868997417928697799587777988837987498594987795559173958567377598598728487773845685965949797997678959799658947378288949283787371929488837379497877927878967961922548583577557848556684866584597722495587849748647745394887578354678239419877975756835657894919698979869588972768714836459579885357888459578774357836971759878193687869994188375243597836748448875957718291592467498934698759999466937953762329836532227259747396698765346788919558999786886759959258539743677499359678999597974888313868988756997689223936846686177768969828342495697539599589567283955659986446742932965687834149999778796997725966968787824696559662696768496797999888887875735494598395638988431779947378986779787858643743529376826889886495746882742679589998379494597816575779437644673986958763394978537692676776689796578999466968958394495957799447493295588934657993997846467844946148697578783955276958343656196868878696249336964577695653573592348685589782795496446589955987659748438323327929287596456789997892928742992136799686493959765698975896685773535287996925596686848457997875729988678979767864628982929955739668968684874576637862236636756537248489984395579798897899884777281597788858537756599917978493528599977795757979579895478697289974899992498379459789884484759783594896784876882498286467675399899158465875589274979776783649659759764465866989667884778992537617786363574774588979572899686963857638787687274935746939785843389956951864498868837778878427578667652947942947736883276769938739129143969478974985986999359297729522477685369867858935796584435794994997766969749776289949437952751649888843436467468134686844397883376787695786327759968838994759737573559475877698279577437799891998586684993597999589589577494988365863798889848852198689838199766647888986983638998576655885658698492298544675788876793586877969954389445579998926994776375956956868998339786459985559494479966575879348879779948594997849424858727696567671669723969848588999866587997978976958292876583342976788885579467175358526679695767644499977943977748769977496766846896898995772936744543989976329766996844828576557948769896927486797728677956339982678826127297684989396779346798685955727868571668784898769426998685843285689956897787983556773989395762954637387689834666658557976778598467997999999199268696589768176946971664785988878383796798829389217895655787977894819794894159694668836765283386847398789879669778997944597657614795985757892997376853856785946979838639777859892456417769954796226889965969762789889863997725867379367177842398898797876597546748577881577594898489257999844994182838719499937379582768976383943927827948763657875543745954953979768944958249689623388669976465369878696858255475949785379674799869653566287795958683547258735643868288893844999987989745356379498478598671829444845745928795964345957674696658268399975586357477179898964448158794635959379773556369368279867576583678798388544557986359468685878559247675772822866689975495799735859668655859895973759661633729964482243466299947579379718349999987646987578677865696972938449968846575599998679864279687451856199974389878673598519957859639296896797537697528396885986453861746694988269659686187689976747639685979147282485737871387633288787669499976967754872783776958779492187579538795567488198933684789651695879939764777579959256697696473378979878886582843379535875798887891981684324227993173288745848798663578288969278383146897653367867334798567776966696996746788594966639985868739997833976568882495569679795845897354844983869559558769594979876798989769767892937746798669985354942977657295892477389866644599989677692667983848776738489828971966398895937753426755789141775985871698197264889978876887999711852943654889999581886797596499695896776936478754969942284796792984167779898376388854665647587976495785439783785987927498891478796472554599777358494348993989449925825888657894859689919787366567775726887476662988998457878986332889484788913799389936877495657769389868977848962794786248558894957766798539598466726997881898638272277997589957897857984672682999544887735687633272784874788844879555577883638894144775774656977757656883597275426497943857588669669494766765281164948963686239836693989587942833889894531991898776454786699186935568547539434266867949171459864681993797969376613484694959589678948858498992292668925892557389888899647567438141252883385567993978439696229954977979889215694848531189559229669469129567995749987956698691747788798756789996994868977578668367739874539976548779699757963876749383399484841977765398477949788184776768488974587894558538567956946946676587874586973757844478575889947898656792645987629792537969743663329869587574691829876854596318599778996848895626287464967172669367988919752787276847779534838859476844777987425669589735898874592543866996892385893378974564884718684484854521561949684667839768998622777389768568777127576958775496966929976939645277566169829977358467148984957946547796925555998798734659699499646388639593237959377687357963597759632964564743399758863458498477269957935599887644517739979695496685463258181799944766767737489467552729897999586659286846446689765959697774624944779696852973766687462483377519876696826349956996698898797923489426838487988393878783284587299667699776592895958567827198946549854769299594896844674898289899486979398846852465756777595762694553548799468688958789996138887749988767395144816995981994935952548956795384988957526698574865249936439979774896777479596596656728987979664526855754366328459969578946462945988969764994993976953879266889955975896895365676759889721958998887956695796296457799898843763766987885719891989973669965895289669749764586934898668933343597745728596876584612954597697777555999558797648938969348799585734987394818787298562987668248948573289798669589629987898572898492686573969787598627451897894969876267694825859158519781748995897372795897945857763817953694889689898912764586289774477569585559535686196687848296865796596935388379869846274657984988456398739744965779766875586948896688118996558667599887643388832458451947878829984769755355688669846483596589458765986873867497924868574637849896973556654496498586494598673866864896963129542798996598951695822678824652967593784698737497535867844867478177699188496485824858969797449753565697554883664997935657379153887475898823735576878999967689415676858334664298896558879748838929767769446488694874968953698978947936992387246568355577785772337429787998424159877989748688987977992538498798736895686949979589849746528929581958937489182655671896324463832989777695876949938398999398928977694949697816947544358749368277958547877597672588887969665779996749499867998925653769777869596992597693783978497738923836236873666168918428887758435763999754659799965453875935387785489435698888342369287795434166984995878835681967697289287978863779994758895995398637453549153997883767933886936786486774233967857957959157979483779513735259987756876831785536836349599689379584725853898998622794975238888437484854997938968545247985865999546632196649872868862189864676898783454978687475998997597288785897874898239845898698596334568878397876595368948397599682285436498566867887865938898898958746738895769979544975463647396559667943956677617869595589238669786389776642745477867844693396784649766995568951779533797368889229665891625476359699877467637783883849957687966899758597643949893855389989795967999874425789654796845355843672699878562457888157943754295763496188853769498853469357832786219965985885992994837774858976866538797295969925678879437887537777497847721686286144999866674577687355796699687998558477375656548566976558797896978999566868684567666732996546987553555475658836589662897915924266596992985489667893858587682496689687758576888898537498982669598438658639442374927656572947979993488268847976568267756928716789946536746389579679927365682448452993669846599863977625735467998896997367463755799489787978992685869788499488874778337373898957896697576786529668829596495398999497721757579682729978296543597654499878826846574597696467797864688985798289915236876777652662799558694276546978825467633978955884538747887849997789769475989593779598655589878859877874666987428649696838798264677559437749847688996976848477895926537778553795985635567796347857793954573946988468499271469779861859363969669388688485692985493977848869969795756896677826951582845983587959997894569645997489855153669797792847887995982875588766168977777934477886875985888546897776641955499766598578534666364785535588634397668874879277258858898779679857287947946424865327545947696988896985739959872798858358589995962676889627683294454672676399957378491668358667476292494384884867886841697792468797979668843456278443687576896778645655729789555699555488645826777376658738369859877337958576599959889974446468468377468428595768796529788289659658497578997978954795748346774895888849855688777747328977344876617388893593763948234885669563729539878685877749977899987737498632827345576858368653753957979899883478659938567271159969986585966389668765893437985767988977987688783964797482562349999389669994828467633266979947977564877989781919888994474778856587775499373256263958589874698977296656979588668568464786967777738577851659494679958286618473158477959615268718499398889898998615599757489775457787548793599487957679344539737596664926693858859966839448499989953333747769539998478877579666234676678158566658336629135987588393964888578995775876869994769829956488878739976578548887275878469378998598446579194589959886987429468974729698679898997671896779647398766992777534777894588785938817361496235338979159416754893368379645696794577479998275996456579132198966778983858973849767787786885695398957747584487688985844873937769324842917843785469172675557268525278562869737964874989638416249469416968749986394278436597696389989498382766245999297996588733634799481829968333589347769643997958336746326918688982599469886934867835857589988958365995698276617756856289783985996569849535582596874193839941896998977684459389614858389999726496847599548678882279658898769364278889899669183693258555865397484553588689595888799625979637567887989795289477889678985838343618755934572625668991638638795681488388629683558466995554883758846455895556966477752242894866958676574424831547358768786442985396796787571777872874467749974859795865978697897849793675799845543981539696362599685869555868538999648366766985785985376897164685945537721552793597753364922688979897592776986485678697697686489469992938964754994828986875892249963858977769859667895468446246384698393688684979967668955758358478994864696478859784996963569898582788894847739769679247643858549466885935642469984376547483439988643589894869979984847386699455749199685956287329159537957179887298957469675538771883973329472989954283895978667876583856785888827519817578896424514889489785696265984825993584976566235675879994879968787599747296348952263567889985589766465543596598796263599697975595966674969958588388989899679668893969489886867579793986579149959425362845669766559599575574598594694596898237773619869699198178237634723578748735787996586266444769498893888693977796969499755299597898669267657591847897889766854759958791493535547189659573989694896998198897616727594475658449979597798855995895885564566789362677799549858954473644267687373481798699854776947973246869877899879378874773759876549476986658363486595788644543567761565948996488997889866388683992749658859665559528968737936964987376597867738249777992379469995587878875887659859944477922839947984937646826688845593748592879658959316548879898791943387758489387989588745272565888362598993466978437789783281496767436599255889962469524787974737478699697673799275764883895366976998785733766566782564479579567745733799296775969568879553554398597939997979878339987253918869478757896585597918528688686999669789862915768383879667689887896349995598729197889494177932979688895877569989695878797759991958973152639598199256723999966656787833985929747446464898597258885839969754966298396679499828495968843689641555994682558635356899937698458785868898938978858617488789477765683849877769858598624698494781139317865847885684663864162857888596847878759754735869696377933683978719999988195488527574795627694147797729919799979748258495725977575799768575595845393546134873424688564974779637991672958557353888737978585463757928995999989868866688967589676797326317375387742842749694249739438773828377447683994583396478743579794998845767434969867989948998438937456895777963277545897459898584495384755523979688455524478884658877136399839582995729937543778744985786298986877494562692968477587815941978764584797897546987482778763739899177648974748133557649536329695385692599766979849968982597748798858647758699864779835598935154919799974979447884898755851859987678677771758958463487859487657228886393536644397277427465877857977889467568766298577639761946975955974425995797964788378397758795338466877619698732937968759292969879727196958965553769875363748418963496894978186265896679896673487759858679578774742949887447894947842398786696399786752573767893263686448698458836475179565886255385879977732378366667667766863563993275689768785989798478948839677545947467982466858897699495958296978994885847195759976649988597849987997777776865788726795857937829516533594979874546798974996836473399457658375945466945975837995899759782723598695666776391385656556278872578986189384734354749927668898834999437688573257974684845374266796986774579943755498928798967464786646349898399988993936758578377999775345978781989787889127738276435968489989129237993977939987718876399786456786587988989469997748996458399875499844665889888699676266265929944367929865575965474396949998699789999966377989883975897768546978983889748779478554558885914739796899732199188964754637391868396779459798999377868699257878878369898884585859798357698578885745781899685487857954949242469957588783395238697657687999899987657369377996646692977691399878947779899557784735588687498966995765976598667565557945798298489377997494856344687356668994878685687359879875988634874559799586784397916254246278985999798897825697999999997842578696977934988898436648488937959737864965878896982587715686283695957817838768867879599328556977297897785596849681967887964894946674699883647978936999237655593626673876496857378987453414155117538877492613816348684439675389742769769756544868971976698958376798855596375997696888586766763477676783275417777669845553473345944134198966829969866587455468567969789743575551598696979356759683689957899866398285368878787756131829682826958442584855422689885877275595483844683957898777859794399735637843148962999648939889299668943147596357574756674195867647682889993458887677268428592997747493966779686461879576698474657447598946989598857812938959543889748788693393289473659683548812776896992997845945819757896985642788648563889557566418656289594469998884956385719973998898586776817289797564849946676868985885489967654865957985466679592658868879486695887797767697747747587554357394338997358785948896974714759485478874495899277596794935337831687889888988886187739739893587657569897977179926449328619989795628768738799565874584873386566877642969775487456984786722998996799744549982447464852762979924496293495452868736977648954943977931862982368945948765799655973618898588997659638929598847969274563989884885589817959877567898667548994512777991747616726968864568667239884687849579968787862982774876266484779988999887788846994495777757948338795459788576898765997979465759977686672878855926774956456887917554637959268557966971856458797857985946776996796926456988795936727864585453657797536784418379788537386368983587992695952549769597589798678825499764687886484944257581897638899924998894797122698377784957567874978946155265798966617496992999257697647761567676479983845979284978778537329497783957559997893296332883626799375448945878851953767489157648724479853991153935753378758585585369578368689899837977698629748537997884439978879717417778378696795864997496984711218995877984339695317326743646798478856896835686868634668865858668847998598762856668966599693498975899867698985829284997782994833784958252466525636326989666892783526457785846598598878956954587539556484968988788568296947778429895849769476859694698686627787668267778752872989836623838692889798496478269686763486876592976688249367769937693648868194699734375927619697749949647994788976976899278966965898293847963276845677577996986578577779997378445786696587885673888491765867954431977847999126978389561949698998982874797844694727447995892666864649595997755829496979574956339898352878683677558796996973666573492696588777368398555263394774669863473948864866699349762988799896682429568828498637793587945893775749625146687994199878497639998792593427698117847658897899848845522277767889847648763549798985485557951968545739179498367655867688536374882887591839457147869876368826445797888979735886978745346866498596548672939787655767871938849379872418457829476993483568563593999487489168988448885986292416668767776573687947145599937669967793593956499996386987983598999687839872169744778755387249877768845429987763629846887987794377899735459877775957396779963599674728576796525867996972889985778439983589969666789946279745857334297798225677675769877548898697196727979788831364747358967635987893478898959887458878957488763829476928882959258886696728969995246426533752987766875996966845479563594158983949759998995596294955798574949899779854897948866671387199958688652875789478297372656667372538688479794131838793337497845587779799984379697786846988498172696894897986355852767792967868757798398857873978558866224897635854429558756739477679599664895998593647476962859699938594377498997799968975944879667898971596658294667991985742551836577843876974866652999947977976834479577824989957755799582392964746578883799798663997464964995779889484789549799215589788841977766874575577747164434386695878935879254482675955885544456693386997465428453658498873815372555624696567957852976886978887382935449692543748997871977384838565987687987978399654347747195389563938788934979797469764526964764785443917688876426875989414378872879453435767645678839973879474993888976942975856595556374553654987867567457639773298965853752785677639557415389971162379476797593872358618383383271935877579756989879368966552877861963697997792587935863967195969775893425969956994971993513964489579489762756955689565699599465955643586327794555816958584666859768995674741998647697396868337899959757786558869977565675891898875564542497325595898664755629947995723794975669923765928936996973668935837624295639782975888868658684956998996739198241984959765446269674882684556576646699856885978744595654797884648999579567356168888599994487582975696538758877925689879619575787938848931747986884889994967899472768935793968678673795683329898995879938767548969347657454895538346897988788796395688988945927877586737867456779134234889684668686466844859434988981879966996187382815989659572824288997356997972997956677934593979638999643839687363838997442482963944869983855784928557845237461597976998889986955999945978637663788817686997846253589846928235881548456348999846795476688969777265948181835358599967376363744984498888638865846535868578737781547485849554867573869645993676978366829679937721778348997829496674744955366946496513897946385844585671576642749399988668869939735482595567885457299856926697772743488745879197164369598596782985348959492715939861979636587972894662664769588767147672242799167896146956974799897798374819897899576992647355477589598479666976256633812997338876697833888826736446959967826836627999964529837545759777877613298992328979422977758758959489897867588698499768697489587799774956964189397793294966696564277899764796959545395356793993615174516536589686988524517657674538948846678276273446139768567535899885658916454898997553899539744298569896949668969658376294987968288196978492363597295456778843985775673544585857126495783382883998846999364824892487847898894833797182439957697658599578749964858455435655668975889983985478347595975337374837829897762877936886594852469688537999583958742385478479466258764953638783674489988938787463879553229958927799315189447737375723758788759749979796448886716848936995438749391946564999973587775874597958984697686372885985984689783777897799824455475779992627557988964567848487577769695462969894599685796981337787763996739356948897859976358899759465675566446774984284477998975569979238984387475766264976559394995569473748645698165974776532518834998987979887885175923977388855679888765559853998925498678559514979787997834959786286699753345498994878992774795999993386985383759365587725412358855514974899799396914457911999869821657878567956354435872377295668265873999763749471777998959947574799952595765795793332758568885668823624319159337536827899993387977789957466747153719769578997764769795898469781358658958667792245379464589955636578645989968775694989999113898795832127292859989887566884475856956922834841976679676248568458595923314885945819547776819897877768625781346646388886875537346989577578744339586335974998821528695989995767668569639826682687684998578998968613956957877676977818797394759379985246587627978698665494997569879139797987399484386138567785998589624269788559889964929673396749626896645626737656859949792886788598598662748957866258564898483788899848893158747875996744938875676686878927297989958398745729925562256556613383987959798559578697986594298925556773315489694836749396898864927887497653687774758491986394897367146683293537392437485966939642682247947686298161863999984869934542374888796759872934677855686484458759367687357885369374697574775688677446733798678768967579389846493275975837984986788567997878297859677959298848898655849798668694835284984435824893766728867757656678895939892484647229758633735648587645798539894365926886999779889397439649763736969773859842756298357729736663977998789698843397673489686979623775586289998444888543937979653688897793935793866895375488892597861783398357487817699949837889989662993576647659857884886661988996698499879697657844153494781841495588799898356686445977342775985849698496771436736897996536491537488955937596777837997996899594984777697935679847974842398797897827686437774887953467498533947695663897959569936687538718589114988568587697999626629289669659785947666896358996777788194349385579959385349289496967275531339973979698649723985778888893869856983145399784689629685918989897599849376678764693879485984664499834334173583877869421615817557969667881579955279475575688648769734978684328955389876832889664595594859929937896396765425732898389869898966975613975736582499771914764655768699988474767817697674895178999199159838578254764833942764948979668865943443955538722799589384955289851459935488777436954799996682756997459787767629984777577945433658738616883884926659967976289766545559797648875957688595266876497978466658289799549487699754843835729666979954849789458896592796639366399427799298995925762293897949686898399958598956457498869837438795889474876896465979968486777799968455328591779329382393926884426577789865494777985978739354347839266459659849853781498633739767498894769786599484486597747898836935825756368748938988967545977967896695647963157887777891976384884746128847958874757768199936176889558679887939898788387799297646599768279629565997698484379968827776975955383898744799957543686872449857985787687767696798696676793537779877998863989376699965398788798996646897726594397821857896284585745778555996355988889758355733768197767973887493815893769786998888893893599785995644865899839587672968776758968957748964755848583376574945897917985926576958483758499356564496778656879347969798828964687899763697887597679466989921487877991396537948498989859777779953887647967988973688583866667598997995413836484388854997426295997966494294999793991547658767696877286564999767688286948576943898745738869593893752788873369299253976458468776679588948944296746589796787997434645479926966946398784936779846845965744957558929955869689664488849647267855759671988534989846788886455622499479875988883768536378467684738629349489978694967883737848794885868396894728466218539628598663753548667879998825644599834938587598565869769767869593553669929696948747563742599947748767867987567966788685685698764669671779455878974435479938589496867235797963898635669399894859696779347891767578764959583573789918837488796587956496175399343795595948999994554953985799669436258853898568778549819723679877598557795676333976693912174673546645689496447943579765984959924538848745848562993667552499486598786779585187524773867857719545645495589867299493376678866538678647838898997756639458963548536885659497895797655317636963967694887245679782787458394532896589847498978468657596886685682869894689357228917679884677759398644199899835622939487962923888868757977697948969385799468596856764997837984988845956459748238788386635875584817896544966787757777775598929995488968625487988676328486633988987468585755219589796742358389698794369586768587987913889262679996289823844796228982733344725496966679964655486448527947244259869798669688994856777354676889952383693877864958659863688649998988989946975865368383995972999767793956588996943368939889475918985878799745793158689972442986675287359899878949757279575868746485862954279958895851639678947997868597274979833826357793657486999941956497298549378359664734579237689795562249636593968988426633976786675879739382382894449979371864534462544263644494998392619259289299595866462843688462269149778948674877886895779848671887979513184798584596998228675994887742494638818589884698373373896584175489577676599869595773696852153897678899686876479879688577828678766776568445952639494798884469796789733799218685665889626359998687298869859766966976367729649788994585587664958138524429289877279797591858636396759958399589988763998699659593849789993959786994974568955745953186164668769594768686956189599587437656665679868754771394568888899875516773989928997778948823693773975499435277975988629989456978957464481988552436676894874483998684989658496587473885754557683163989696758568985595953963999495741947389984299328288778446696396865856144847494799679475797697217366999432539999686987677856444696437645499583465788637567676435589348796574799262886966281318774496983385588555656758898184665365317675523878859498538898859774946769667797184759595776659677299526857898755968929995749256647994298964786558662597934616935548466968862886547981995344584932275368866368645983977776755554292463783493569435498663584987976948546376987463668867998964565985436634777768527646392377296786587269783768977488965976887559945781489629878185886597688939168475743987765959687267486726737768997358688848299867724777792923986899799969964853394541889644729989638597474186966778946691746885848448828155847668856987646964749576786564987974694858539955738958966699478852858559862575665175685439939958693895555288258598999695998498868879536344636674178879546877688492893954885886387586387226959648956786284468362847553477895868654416668769579986565798392687699899889955847336876998888377498868353769797959539158899592477443645791655199886517988569237256989877573999846876797387198597298563998565221799398959968566379438678575837768499376764336793399488672863992577687798896546483698559758498897976947899376592979664827666787949185725492481397798792359898888975627483485758754598149782862375748627248999883577659972551685789438385369697697782276687955718828958874168583687838453945994965717489889745899989995688968363675699667758857792846779967989885749867798637339993723893867859883927566937525744969459627869554878711388669556918314683989369895959729214753983442998689165936752752899778965698658847636778491971492664746632957796529577599575785927887448686888977269788898666372865597855832649146783659372287877959596958862694379732447926874797556465639739589427448584268694989996973968659757988866752779977978769897377489549986568297569279387445591583867767458152489257647485984857359541568788347893785359694726455834338592656785865213939391995377223996779859839794839396167996836979739479468537877667899332275467945455869938862798959668683699799579448199589794371339678778972767785594832967485689569975826797478899596969945849632592686947439369958982798358598698582836596789912268647889782984378841756834998396918862742898277886639647569888554889946648399596479497273933696379193389958789966799685745746847869949855886894964933896712893582556953411918399598995989968867742576898865997675598798548887886778898289197544686859975848394849794789869677683854963757484968877473986967867539568968725759916986666798893824486896754399545166879532996683954899625934278469978285448889928662696875584678869595957998898191166439484887846599894555256587884788658955954598397824763996973998798478597848839865797587579885854659998869884577899899469879667887994627993439879689795973777879779869994687776938945785495966877944475789698999748955377855486625794715576797967558855775978997199698677873357839742379979294864656671359846639987499966864774737498814989537588696878695858856288696993977915348159577882996638778858738944898933867879488987794552239895929995546487493456677757693545827685695987968647593597993256868446968245988891887293919788754756917844222699682534957999789599687895547774474928273553659888579588739618485646795789759158836897929498993887722859836644936177227947966287657994688377564829968486799999254489578686696577697576568597688426787778763596848777979578499397495398869588975988779797939446459764858976855997797597689334864132988657897494897767458954997928899267779999945697648625198919285556587543918279456663487975434189866479586888598445899643792647153244685216666711978979449375786298553296775245995585747959365958671833992549699726789878531989255196388792987899777875586978399489758999899893336864945845997499683959868347896377597549878498697798464767897791466547691595458517948748669699987265776368466269996787557655974956229477498926271589979429767887264236857472669974628496967699978298789968958429489989984888859888663786777972539833259488779796855593799588978333788557258998949448645995559798356947793669435943499762547748645629472999518933891439985864181954371651674776497296655295258678579398699837775787565331987499965977699586747859297684234868898457473997375746926484727798794769769435469621698459357867797267342664788688687967657787285369263845599759889847865997474939676847995836843892354257667415947657713885399765546598697577365925958898923541776988779997453195439889742845776651543455779983547478877483663967786825816866777387255986964746747694689872844435549997593697585888583887297896929465443267678879899776978564688649739876938915985825838785427858568281796188494777666999387889696499896546864529725885494296646626896843989486935399667548596277724558852994978422279186174657987158995993838815678219775984966476886958858677566786969963988749597275686434559789995459979983983779759597593749943466859883919638392679988996767299444949479584392665469397976155674394479394297797883642557699878342987945395898966499648694467844788894958664376736686744488889496496598179748599424634664299459994836967319769975949375626997488655963983752383826376767678948224857778599853595599471988994259539589794276499674466648876898769545889939752935926954991667245755987488777497979797894669988638875796454658769986959686935687747749961857838282469652748886999466867498716346897829469792678889737964694891768479472426737856744576936797528589445897785541684868567451695596987275969467618649296873919959445796543329989849276837983598989869291647759877898855938898375727783513885319369693438759499785673647687885955769989799993938497672489579833649879773773375344999585843967555688188885716888784875928788895179938867987493799591836685955576985978569889997855984529867463944372958995885594898579376669784658997989997836289781777628786989862885975385856899788874934791885757759659886996779516991697988546197495759864964839158474875492895977977866694534744277438987886876594966498976659439619693668484578847598893328638356498757614558669626989193979866646986937678656698889692969675696968861734932966834872867963566883775967875588979789877647865534862857738434391754354768443755597882897897644672466968379799769957793696679397672979948199395772938259677876686983988818537356485866489768986456858459996939954892735998276457786856569725738578887655888848562816419393899984124755979696374858951987949538665867944598677877276285497648747969598547987665489798186989685398699932645548875786466897368393499878273774972973668375978189686427245827265988789982483997873675866388348559436737776848887778968768739973478455777317869888675923579289758594739948987645286566954879258499849945466799899874465894698847642748998439964697888389786863668866897498393498568442777263919838798948668885899658777446184198297948188675676738289879439165758657399734728938949428987986823595865678568995689973487788445399465787695476234788965637392539946955744173648789999549753366958692697797787966975668358589889662786391854399459778357967828977658727487747826678763949927568549578944496918225329789949969575497933227797975466538688794686768444899425735639597723945864968583688499332488857977691996778995366583978689899579677779889794857938296978974457988869554697478985776764699875987449474799879666755966965859954887526849669279854456568353578752855698694197965257968467692994348797593398579577984567579581646552863656778889315857559972993667356529655949686693924998567987372959965297694638779768929887497578959989599259791465996995518616617785677349869652643951764739773678966483949847569563978747736687648988896576956597954299836588676839768834734389937567285729594676477662656498699844643866498296656987758187977475574845976787954778668945674393363899939797485888498939746963416674359398856257663551975687785864876999957934687677492845698286392776575576528556999969762531479678877759437533798989741885994796984856599587768165864679679969872945854347952659986648888963498979978334959295886683647498796579832773616659616887976599749639981277699882985548539899578886656596949665488786964848798645896795263939684557456787396967967779883973675545527969999671815498684988689599975595378785977828679997781485976917958869342279155734887886798159196488749421637279599889256577854839668735671542898683973977185899173592699462739479796587652498354799775865956299948583926795767656877382667514363877176655689468938826983997774898987298948922655488858898687456849638693795878849379987885988454872717769977179268745983676587824367865833859697479681279593794886599344987469843569918962568553979796588949357887929398847496959867967952984762858964598498466524988898958719543967687939186959967784868988395478359577679988758549919679456247947949897987886589775896279938269456499477489937449677828987977387798969796857775762937598869665819769685265977886978193674994572897755598898559896388869629478239496887914647364748689849252949784698665896787879941573334289979498743859817785312945976494388495999947983185697988949758496769647888695899784753829877857665928988999348347886798259696827732589566688999396794389369389196446889626682838879969627979969652844959137949279894685884477996897777928888675545687749878679928899389668968979746587187685464469967346267879793883658841845962794978767986534998948659784669817638964886718687572845159957488799997957697957967467378986667999446888858685499994847778579945831894564884499834963997838518987459996756447139585959619548999395479477339992853967657688764788467966974659665359385698377894797765899996439476143638844585393958999858879974857779897899649277388682743964589659864457995649949632956729849969897374774848768537466889295793689981468776895979236876867654879683485384627932577325943887526473875554965297368645115976539558987979838776926997599695828456644984659528988895675699788959848879778477366887996293959588989598998988944996972577324898775848887896738478662649397689653849988879927357599769987894876479388873766984825449699959375915895854686966536599493557844727199479535875295867499924629482783555751976949729773758793589835849899669942739979662989878253243848378579654537599879568959565999863574771827667499568654264981866865638397843865897859879887865394797937246786419986988754999795472636485955799576439884865846652979865483453584867988368999974979457769388877868869966999583676844879674423998588933832797248199566879657738375784844867889878535929994785875379574524459557536596272586268639287469899346978697977384768666685897674289969588759391386982985954572969528483738991525872731964526293296889646337898972446374668337979454867898498855638979398836924883276498659946758584855673768646626665789748967987719858899679979785794668937888376559664869768899626956634273879687574979677948873669487898774899766598325989848465676299738385495744795698667879923783296346674546993836785958719899898776938967764988959176318748457549569877977648564487994671786885885677611395777997786236987677777368969899459769868936776675865989643989616697177896855764674494277749885895289755159499939434698948948955843588979298385244858897165536895867865389296777784897549699558598959967997944383278189982146433572754772793854374658968169812688394592444878779128965957957599849873452978945868685998663566763458795398367985176726185989546646986247946388565784964169633368334795499947735286978857998825331969114564783256498472867484785475993629573747767679778946918889595657779797545314998876583997966967797379516455595812753277957796548938399171378519941594636978949397526578388556428587586478263274995391775483979767636599674947969659453346584975675769588663496339152785917476883794442871776839584638749872688255897488963774449559963263475765889574995497769773889886968839564684978781599988874768821277598825879215566997687474985648485937568569946789377748797566674975639684959938667796641781995975699498841768953677569978788695887297558988856598976378954987599859859986875498688788961863157275349866733248796996949969698928785759979274498193578958934887768799986648788997659885895867977964469183989976585794275798924968767778666489688487695866885787395998961878616348797964948588476148587979258244799388948779783186648985895995779677476666874596889196779469866897156665698268784389673935787853567568799784577696788559198481853875783898488488588439384337968368871988792265849678266688789887829717886672666786947799823579996695756386984337389976497884777336764384457199575398554355999957348478339578783827547963869596984883917742566885898988188995371758474569678956695999986967977694898335842977837696997992684957863287987721978887969986741757568677458966967657544934433882478697778482499779797659557342759639396388869474746937346587598827585846767898643889786549299863948869572656178984855873216279625897755499587958434949767863478999987438937896698938579779694866794788955676439589898342799987988883373615926997757668898788996687586628664956687855225579386581649998886865245387595758477395349677334756887736589275269275847752885595469962968769895485789359889885969234697878686259597666874653548945997675345928964984984767698275965449976473966584789789387759984877696987677997989885462677799599549395536647749978677999786996978686858688299239739774934965496472429956986975894824768739776728847684758789387466797693868791289394892894794957978188643566569214983699547895499962271697825957396682889832932386789496625799694397599477888652445877974861879665851686467975698963285545899899445985279788483883686787767589848963569787399999478586647797349538876647492218954434685465877875469447958259439758368855891576677234855594572895974859766884885973334785839869998166789697479693985418748854656895559678674864474588787479477969339959997575841799794775769275674998788167789998868687686918477666986847849527724858791822688955195394628589945497769977952624699395827693195777976641187248888875388434816968453874519677987769742576494872799268994658848996867866286677438977988658877965787857992988478167748947869679955866773958577996885668944837729898889655993933626924369894975554297346876894934848383944489975399479938487369789266537753868854651678789458885177647925849465555893583768848929689457477755775477699911589469699786947746834625868859939894749834588987437878496745584692868777555792829974984836645675848489792367816867957998595282976917767379897995536335645368258454466497489995236576969655865147767948468557876736443696598998576268896696496986876897897953756786977567387237579966988618664869864869196136925594655779733887889622647589763924563857889262525376359987646678799984787394969829715854799752966878993391987787968691946989878895419899957996998328944697384595797335632587599691389447387365999764987976276879689963462753387718699288888985479735989664785194689978395719526541988658958994683995436826598687846869688859514569568997349758197885893597299697789989646974896729859688894695378889678978695373999889888579454978899992245586457894819779769398897646344296987516555983229996939798588962297688638616959779886955972493578168587515817785997956329735437872529789977851455766724885777424534837894886689856796696358436769955774857766745595774688848739667987699467869816263938488635689476875769546823674698377497886694874959686878799786575964875583788845973295598697866678984639344412692268877994459999587985788476835899874465839865575671673966997686975583498992958628894689475589789687797979798995378835695765769767953165729957583983551945839649987978759813796773839691983689879353888959497787874884884675559976689645866986776959896945954886789386488777639987658454678455982793893669879219989822539297287358956599985919947547238452866989989618597379848886678872587899756337927539666688435571866695685626796746958684967691965644986765696789273888737897511794645265696828645649689747696877657487753469373594849499496737479486892996859394637472993574883778746789796597483946175598778653677778967898762897668778189268263988883134448968335696356976649564957863858697281978779969997959962885969542896772662952569816496656681458774828788756359895664657828349887897672945275695887187886566363857996377657783466797879268196356592867877958464599846978957519489894167694734525674882686789389878948525527977762974938462357467289895388147979559855739993762454566974887658269416296859888674974648745488486793989655696544289495794545969237827676976194995834469837589855485247778965792979697467499553584969996741499395462846286959967899558745379867799978616587756666796526673799363839693678748878679759754688848619967927387488598835925867586557173368544474468395885486984821493474369249869869877664578175384729897367889942886274973473688779886998458895347799556428494869348239785544483558998586777664578563889775387598938761779879876756776829468476797889729597976765679679959877665343789913554996456329762966968378485323697269978782877659937588677992795898399677398585788524589246982978577896686988889954253757269689872748766538278465788778527587573672857679875797374378877644752697939284793679985695695977984499173898455975749879897989678495948563577695779936994855786856768935978898188883176864488189794489799967677366955969648897772495979672458661894658889579735569679757698644597978446953863531696884153242968988992789999945851969649745274389367996256887585128769969919942265817784999377629999496449697994578816358439468284979989889824769347848836648979535783174997539339996996754994685679889651545766998289577634924994399599749668863778557527784345986916989868769869754568358696849357698344976658967596279865978252853457998398946878648267376194375698997578519769881366997669613891743324537786984499878647871266899259939597859477169194998799999648798589145597849749898997876656787729666826197288759992667887795568863293748798857689371474559657989498641847347879895499392779275134587392997933449738778487558767363667844867687678499479747788445977959989877891886586979869317855959998984768692989529839288969669257768595598646835775664834855689555384891377994513337887586893723859767794469964866949797688769637755295648435645566726489998895853547985976826244656499279765477977398857997849776877787967529795943639286582979877988787498755673896438218954248494855772559129747875974798986563664736795464686579734728689478464868179459863784969489697858478298954587689486559647599378282747987778836977944248455489847873146354426826986853696279967976929587479883496564921957366666158727979988786773792779947898227137657765595746392584397797977563663935898184695435623789757168887859752994894616889458653988887888965886563741179248582283956696196978158365875983982758938484992275979637949682688992796389624538343889849876955789947498817652565837838615394998476847696779999893783387955934874468418534995997868575779775876547967799575588575589953839896678958446869879195787452793396458964239769671958695688788779792876225879747696541995969991995952766496769548884572659684755472779683939745988599766895487559364516886764579496897545788884289949686783486788992497948739895658576485887395414439975858384834598747294899915988699886283966816589859555589695369996978789885979498766576558899262869597799357774788587767555775968577944842375899465892999759976444869197965739956566989259717453996878762978752991993459488751549858999768669434596973298574486896158477495786684795897775778277866795875868969859769557889738896775598858895433951927769975579678696779458395658779674758462143848189959764688786653899852768388469842798687559873546558525845654858752758446668657825768988682278567386859592225799988789653773597777346676185776335687755788779295483778875558882285587586457765732996765958871395789799698476714989999698571588848484294889879589677996938996582468798642985938377727996889276967977598987765869297875199568573975334455386817369557786978835569786569837257559973488879635658648868758276146698784372984843789829549765695792977359967674987799464275652948967436579842869839485847394294799998389468789439747357669579784655589871588868477696375499616996657892959598687375539357349727972894829972977277969856613959767635868846664259586168864964564799788598559655453782446128947286948743688479891591654868845447999955456962787687556563937663385586593882294973753699363399275399799975684978473978818978264558968485727518989934785145377876939745578768966584367556969567911778987999276467796935875595985847842953422577871383459425989848682986159266597784396878544186875998775258823788679975797998996559988926984638947746555997979352568376539645665989779868269845993296858283788963595765656797539959397999984593986678793742499946885946599499197654382894965386872559587584288697959977587449816688431763973397979744216954991649799869434484888335544849438456767987731626879447996647978828852685676975768968277897766998667368717796856979849758989969938395999859685528919469838449326999498898368965779364982466885486866354595593249637459977844987799498596966944975167546769874954287769867563659952243998684837476967764559888847598167948769329788944577166649947869572796753764966774997968548976559991938568666773799839689567564938991999776594868899677947899799324587476718747877739598646873827962839977774456842633375898569765649776774857875779864565595897699966751599388988279794887189663989949886291486949989787692596452679842949394898126686338868551434992486986346831494876282252666426869796447669687537946685685356786716658577687245963753867967844799896693969872675589473589999889469388859699742638687583979747584864796999667834897599865418527488593728584945645986877758942884957463857775284789969899778915442736596987985197348994296269764735753895269887477328964676438777984955756958948959776457994578999819467859484793959779678842978894817475831996679559655795988948691985768988973893676746997994456258847769297669864565646467319997688575817745574955966754869798735758649948676899824617488593567574727774857685885378894793657766879597958466983479776769775799729668967575595487568897749667189746954759855649898665888968999258915736786863739776686594922558388959694598917872619654345366796846779995685384297279867895269744593977354639695385837786986559868782988253868378939778766249697969964886898715667875999976388431738758794993499696954339952533988788226997786177812866575398558388799746467739775837365877646862798828888999442594722551957858447645696988845734747598357694837898296593341122336545569677998983513546918456399896387346755647578777799867324167193488986326659968147662394688848496557237255496817477775568576862856886656766719989874596449795753694599278679376928968964598385868428858789989553145844896899175758998869878998948923849326956674675528893987348668929631799369719983686235792438497568758477586677892779889698877764863769987688987558249394889549469865987564388864977714872988977579677669368769484978569355265964789687667887237448963774886469768279479579146296695159838217743886989693687349968989964649633688896728348699489596366579893889998269759199885728978856486968449656877996588965658891344576749876896525933566653567844995337458959899938959886894969989799578788438949387445889891367574176787993919923986477773999897369756715887422859939859875344883985277677936977913673947557953594768176474575789998744993579284389896786572347997618798986355469755586699498467888775889978373988463873579397379979685276977597889886559699269896997735823393867696739578879796198986964927897679258777487449525968453945564896596944858784374994946959481245546638949577769963941963994986659248738888717766787971466697459456879375397994726787849567884722988674669386665827694858658893495327915673983995246487692457855797399481178649586345779777698479666137987978975436559769558957442878764986545839453324859579887833876997195796698999456699943976796828687848825968992877967885899674794274495648848939988788418499833497383944544461786373878266427544385997347835887998795523887566835859898765976179997877979971958396938477978884896467599474598687691991399499835487483876899596578679433984192394927939586894929582789728456965989587998645975433759978979593959995879329156983487579895876356964472764983169392935499849444768854566976994866698486369984463466779423859858785476969865658586743947713976524844674996299364595769782998877954648859849887863862854986952485575646788996734389984997758776887991849877993545985968987564784251883856959387957666999773564353587564236889659687967975359754976696549967854784777983399634498283359866338898659749197869517833775938969988687976738836283435494555996367784895676893666547447993692715634478795374498767762778586719794488463918879876879649895494926588159888797476896597468853772947864569598731583869985788788998477775842872647359571899267788646633383397494975979897992355828856756756234568286834492195998462394961368732388399961697992688878889459956481765989799987572612799135755769536724999494279894279837936479588497368698873475746529695655479767476785868936772923391666646446738942963759986782167697336334779675585143865349497668878348599537736358786275987351949245825698715597861967833878888857878757878569866257797498664928985759985577382865896882859493477844594868945347864462259148279867979154897367963889788968687567576597169446999755629974469793999982498179987794789877167944846494444575658658775293982658379429799297157299987439889969896885459495668761758976598665998967874987457815659896488486947688748845869268637871377572948961199557553328599949876989598767979476694496486874439485447999877996756988893757839943525957968988298285535796883645766196848445384188876565386661436275879686757786669443932433952665346973892976546623256787496377699459919957496899569732674737687856892798887866956471963759857695733768995996999999745474348686975295383964379315656844478747779387764595869387997754579372398777797745856298547645667885788367976958399139893859631875753555374969677565498728996964798479459248639936966978425925928817865849856777586863555799981849465839769593599856685286236749777657865899876689595351748683977674965798585115675429935798973598772684348795889697987268669797889468599368847944986874966797366699645798789925675965785196596668969946894486674989788329869577898889454698949599856754844739732758779879196737842988785684787598865997789499598826755996848837588976899694975588895486899387798784516293979688779939997977974586919573417979695967958867876979552698839986695779941798759969696637245869963795864856718886715752585428392898749463878571878583965837569748477779968377659945966368198577745985997975893997298996478838353259967672954784597668385459777888959463736954544984227153999997461269845787858968737769744787367323245769869946548288878584387865798828879987552668298336747527736957977897358886565898268799197399769897622255745532889578377799984899962868439449255587789292722385994976999984955946999699796698866866211779236989736734532979469687698899289766958949373856575679799868787778969298799894746595187977899962575787759556936364615782594668746952361255887794745589458652498719355546555752159996455777796579659548579949978981419679576316588567986786589685226692288555799885674678748356558994796565844639493736489664785948255484889485419937674921619284699886557556238668277795779783796568668589881256295869986757973457727857898788396948858737287785477899878785873977835961997262997635461468698898967469347441949296679956399599839848553687573658574797937595838897428967776482838745985767973925776748498979792876158888562788887289796198666493529663785784394547637546928962799784956769589966996988677948467576598885795963674488899968557985958537856788784844858686877989893656566936238576785867397985296758891888497467475719974987869734497777738437534987923489471659899758962834959681334988917817895857969929989845942879329989379893769354997599896469599967849578431677784857288846712495792665492366966896954934295697859878643785736553959733872776666392887593888866987576587366877594785977723949364795967763788981486329729928488968859627928829656798388693689477639995986998822347937848799132149937338772234456699465666977966979589964785996772946924949299849466417477875845199878798288666994447269563989676488358887558557988792869698343947879757959997857669696965585496467457868396886992991377958895639799597999697427299198859588478788978888463672663892486695794923717864359768759449879988954634939947799766983244689847976974868674394839987718187944837448796249663799287153597995485896832995768466494772652656497397467887854319364578367779775829257846894448588969168899868958454653713837496688898756957776495894863668385288973896835436419967562968856965676686468879879989879287849619654699969378499593317525995958256849862399866759854968398497968636657488788476574493264199381296827421688938678794779883693986838826948994745797428693385466893759548748676799366234989599888545877781767496764998399574768558978774998764951588925999788614786733898757997342987449766949646968888678689992782878798491798734849588269698888985783977859866875164785867979939978653937423453945347699788358348957795665585464885914885285587879589356319792867959768811699295629558866968699389865379878997693988248674594839584245777979888779596867735479897658757485895889658575677657169898885659495177935966767766897758566698392939688389884749968752969336995945575819665868879596255255163894559188934679998585679749274956496992992646957177857448934449497881868961654884879987124999375799775565463188475982652579794786958579994976888498986537295693499886877459689828834238927533974532899739346322659814944887349366977496983795865869886689897763298327987798357295497787677687476987557888739358989272399359943934337976899699967897999886349883748987737658985687393544787586494369857538598765765578956989888254827898599424479499294679667747998339997997587569855546928538977786868667748655724122658929984999688676987988264768958943868754598436261968866735593287979887548428858353291638159675684396548677865987374613524795985487719866678666995847687988988975788787478985279451789189978886856744791799583684745643699682885677665536898684534586958795937895833897555496586294876678697675994672795687797399786987554579925836642977875564375679259776247754397479588852894554765885663458785878969877768398879929856552688764737394929714732866947385576467353395478988595689779657977729897547696577873996757887983959464564452797695381886686976277666587921789873587168576274698297467786577638498653257225926797834791978964661486689795989667989225376639579998589865941826965889773943669359274739657386469893769986889752574757596789978827379966658854973933893747677819344988359276777487787918436767927449662367498495879884237965275768586476684448868479668588772718293578684387946755378789329468978958669329366626896997779387659999858856958872546482841758189254998795277964368267897971577895873884677756569899888958877588528587975759658599797757186949569761645779789861869338556791477949426988368698745696997498891684757697897767715228686399932657699339735869693665881796699937585963997868697999564515829949467679483779994345878756268987846699951448956766658885568587876688598289937594484995695687475987977892484968894868672649961795498712885957573294996666636688745955217737354557565749677378767286996799893389583868877788887996791948959983697999767858995977358424563676898886328988473856527696977528999988487987666527928533717792649239454579787813769499685215585549537963379879697782558877497998964872448677899833755496842862486857547958989925595274635689876579445777986787897769494816497939648289436356668952957371894915479794677495659599864977955478981269955153988983953767886952968958758884971422972867757955288777598777987959798949459369524755866669998948896656956997777699999758957379787744798628563996995554946944398954679537967969994888187999567978924145787777677999883295999186996428499477666689937719836995798844857489398597377354952999885997485993797815499696459558834978472858899399787377563977887488194888579179895676989667958844483897829994567646427848245478985599896994685779995867684768388983567676972858959569997984775967747769939887969484758776877824476759393949686434853459535275848598897678865572956776799857367921687768946965685997299498299767379618927999694755795567478168956997945853633583695864697458598476989686757957582476767584976663625759654985687423669483245948777647374837959247393742455697885352486296725869997762999563664886984622436799377444878499698856927477799777924663685953738818294666852364645747878993789798174467689769688881768597389957776655738957958658587977885998799677684936497577489997987537356984796395678954699399752349695969589577389746868659499787985996463692575881958576449897688725596657842938637392889879566357355868997788496332265456965254693799797744649978827997379825232835566586798666647148932432469196748979944815777665757898987957848618397983667966796884366846572865987729658658869727867848568664777573965896782975563427859929794895832884435638547587566534898689895769225997477838575884962556479387345727589685859799647676479985865868775286379973736684594349779344672948765964996555686889966888872447886574589999894328525877875759633935549645487687545584998686188739649538689429589779552738888899288337953434779369396996379679479758725762995529614195583275768177753888632394599487657386969759985297499939383726194856889547687772497581581579677175788866867747975973779882751997948588766775794446749788289968793976814978839988333664386571139165895599788748564975495489887593547442577455581994969798665938667577288985886818577474899558986736467746946949886594429979265968895779965248967599758777738996969827893487788715886766595665696766364185892729588676679922639561685977195696936745898399876248997788397947889675749877961336959847944374744769248867599119887986978346457398844459238595642269572888996339479744853587556996386276995748549894696678998796561769955784981458637569527879931374878435569586965776994945758496964574774888696851768658589863988518843793525969875537839952679974355874956769948439577634355334847896876397778659459958386737697688649543429598576947565899388861399661635853292967793626379656866697275784645833776788719299493223451868865883976877836931549967399267682828783599955935877259898686291784789792859479743226723359498576948478999588975567679998439768896857437899966888986994859777792857764486477579999698543689489778383578598583957973592436922643494588968653944823794779587229758577872826289581577625843465443758989974463593899945888926866376758896617817274247488436459969937346884446289787984362595898589359655478688587315978699866498319459784678994875575876436557758999839463959984496993776823993951899349728689875777459375754685558988633973675988977887899889964946671181438446869798994878534977869982495557778196699243789988766237776758899998962969371799695454589998288436729737339499956787149652689959468689997865994599997431726955855126737919576767569484596873944553499889496355845988346499775998571573657865759859367579489599898897876664946953697998762672816697189978399998536668499997759967755693939874898984797595798446996253684748568356668949822898658495967745885399978794961928279885884937388998658679959817775797699854395958768465559886865293996499891743729848883898897974286773485674296968788437452789864686964397422948988739969199989477785594692839796347653658495217784749877369896868773399279657679747676996919687599837399786854394558869562399891367663468955879836457487587998658965599998693936611475383477194644386815597868934578679256975194998467829658377729898779666983998367959837874394687684151967955996897999776884839587778476976355574999276649979981586395564599696797981658976588545997673861499667968795669836772537396997985975228129999998596669916469785444578399985692793791577928974868869786985367474675877899615768657522484598841327972948296728757567524589973946655998434892579612794645495797266593994766776559895444647976933945968868988355687798387984678479998485559985948769328469659168264386976899235384685699869867499755847848547474998947352879679279998994534983748198862974764857939269478897777856969978955647752848888983779396366589447367845888876997898358867966685461864966165826889465948699466456656564523895969949979487483976498967696583388626895586968824289949139449767647819686446447962584928857382638526676963395984334798253882776156245968745489988998585789836858887888289667767988859328769474795779364899768543834988297986898768948999377984896344962959285346628576396673479294569995999895795588397785549946782763799496762669934385942879771886767554325697864585399884788847786442769874689334597593478639977992999988787535397266477469594491969841679965997855952739664487688559579799694579998799669967698369826465652986779995669877899993848272898998837929977495699938796995678567589899887969399968475388639993579578178456476887657787795378498787869918659336958878569783698639878964984849837566386969994818726985319194988487984768987658957772353598864419899378619166613486637672978961664997966972989769767589466788999977534773779963646947629687496696764238279498934875785878684958989564877577943796932968857379134898759717885986599975393486558719699697379752697481799449459616888984779983659886784896637996391837734929569386858982397719596989899515958459782469829789736899988679289687551356816758754878773625945657768886686799897969355618979895876868889985932768489754963833581829869842839879874586757736869877185555475769776874888969868759945869459296749986587727927925566883886253974795364393797766778675158629758847857293939365356689657899748935686691197896529877497497888653796899759943992576788724984696437994659799293786767685568753779676695179599658891698687542778794759783885957776295626783788436938899686765889899899322889163479579775155846956297499464889785787897573478949346654896995962892397893559989795693876996967565278878789767694668285799339518976677362716568987794685898879879155496799853792889856397297626643577789185498767484457889888994648977568547469678835647646877478878688732369895397996359469789697993964995949877164547437944897692787439438745699595685956157987499798624892993898889736893528884854536981747556738967986742959658931992659249453467985679987971675564889858993426476894389788895472679589956984746594397898622658494359538482446698498997376977378889529277554975975984583636986237779484976966895986959397936997397947663589958557764633495636488695579873525744769799949398559954769512999722999975949984797938887981856978925788679793689458248185774834826559357673979989866488376575697485873686794398869569659699788744267269699896996594592837977862886639857777292672698655859547996157466968566479249962988976755578584174899532643995598746784769855589888712486834758586388685996838524845896875998567866684885787976948377597492969937827567268279669938657664896592885996986785765646467347753926997473863771549985776979238984574935889599544896989686457667939867388838675495494579847995878552898685517698854589778322399899688488499536498278976688589213568275886687769981942924633964543987996727278366886859839748697467458585934586155557996936635869739367644686735528845557456946866665699886486998958128989978267845738788549756358646778775796955499719373749553899945747499758564659841899596867489799749959555789686847949779897784267688689862879965669829796839745682871773989287485699475966677488769285291757898973487664679498277777435234763979595982976466515959978889934872846179149913577489789899432492959984598876845843465664536898746478978287669965677994244236888767889799975484768991839896933865728964898853597199827587938896195615725784987647363935654658969311896929289791593939498838538886696779669788537861986927791764732358864969392989695679798568283687792338968996676987667884889797484739767597294249984844552769743684598777599682657684956759655978788686872878885668337858949844678959956879768723293839639738398849797537558956797354892887886849796328865397394769928248878797663574849118987526388366538979988317591482675378553854697755422915981786195684763467496947765528991748895464988665768772791377629789282965769953785489389899779378259378475557488647853949598361675444884995469341888948538497956254966688849977684988437594892994895997829455843796353898798394889939853599894798699488584725489733926649563454889276399758865437789588695878677689567787468969428158568978798736967587842856894887754982693479968599892644975453888967562487499667636897891999885937938895767554783237457488749476344968775992589474389794616986947867655976794997161826825573839994878319483689649587156696863994457581675296554758866886795876694648787577289689699428887692663531699869483319553637187668992448838939288985772783978659973942699875416777793845347559988362385366496965335673773779657873973894979358784567778869393559945362848828789198656999868998287878636776964795847727767891483482593356885868928857872799697688687562598955979793988997734759947656887858259885369796661486817869775255337838595576538886998669955473578978895966945844487369927325298387486879882839999985785885547939979991479663668877446335956747448387898751894288743287975889948247756889878287559676472999998797767987795659525738889668349868956666588666838298998842486499997999558396667588139983889464389999166795788598275396576699895467898283933897548299757625722567765395478957373144859886792989238874317788699688489994899775729734549899565588637997768644975967668829795594972995399778777597785487964999939386958546988537979477732663567963747995375578983488678959797588688847558595255572697765636495858888947694427658694577987278657483953937868724714865138639696366878267859574676986834764363756498792889565679198299877675584298897476666579678516857598629883786547864787963497844765846669857893292975799879995675767589291576669695858647593278676998965689491847676589885453588368985766574689998498689696735798957598935888678823969995993467395899485599636444986493764899586976919847957289386994267897787695768346549799947864796192998667281999458539872574797598677795468343598657382595965889943587888469457648654995787798888834662367763793869986874866789877447685997349994574859979471945783437946851479286999851746988676679783437355797797988597885887878488387457517872778878867419468426594475973987976466887884588398636477895397527953489626855789559744996333738983497834883414576596645878846679375897689596598653967387568577857491874886336528477956847898229673629885933879837948597297727849843891264629779395895725989951316954798549455796898697968524356367698668878759586389668932991897473754997813375569976798768388934554594969959846858997637584977841571285837856189869469466176937626766674617449885233368558299548467988748458557979989884829946482788467133568995577476944868848337365559969667978867684546757659683479888897635332573899396285997669967776433999348965179948565935966394877998774889754962677453832895693867658498788995939834549887795619969896975969979829886815179655637553987724765588678997349499867769191878966896379875438533868878486572759979399577828771625695577969468986538466699798699977972837949929487469488932959788945779958687827577793895549772659972888855981865686291548777971743373964579775867959685192767894485971564689274775699588218558777864856889699774246925612785482256728956797155758864465865874573456165794874598567854625858175997696624448974652844898938999558588566968746443424839572668746889578737333286898668674451399445668759847735518786287177674594929988588749963537747585599927983697976766988724861854427478589819673869759969565261455816974949799874946857745888875676579698988287678985879996297779753586777988696547696992759285963614476958599569675993192594986189698268864881533548828545538995976595585834778487997979375983947844985489614993795987396799776648991986533589668587258955397766296884237459979455299789382967359999968545347587888876957658667867994878579797947465892777896579864448796791661276999467975228766129988836498744468987384885853259957949991999895978276487751675848529594769566598558949991556676858268185973997625785938778978596294929778636378659778896693867537977376997396759825768795759748699689969563659815658589777198798628469877945532764757998878783966949965879947599898793397699937653887378785594989558898775827378774946699738942947878559336738896866917853684984937976686864636948466959988446899888218777799257471647969792944989869467899987945848894712494668549699717414896878679457979566497579976922776855877595235853749936654632967989458826686998578683876279858394873944849873786695989299533883478749598924649788496668449886699754679849868873869947266993958387546636897327894498759427937856695679779589615989327549624487799683979897546855786885871848957996463769998998576949247398895898758897768434819872592983758577725789679787758886497824999561995864344344878799627518684991496357635968924687884664398167828391857486886236869658796869685775555994529249582247467578757353979882663978899687642442396727489896653887479349795767459399868797988163349577534988766763726865698379666786396989639899889673362944765268357788349576843913887977395967919849995379339968839979488928585653356255329545599256378537586938887823342867773776539994564978695549981573618858293589793946567799889289395563237968857845835336664329398898274999856259657688777859591695698689187689689595386968869449496177919769529992459949764959698753929563338776557979698778186547438649676699346995827926953496658757639577495698863997557882565365493785748418754882523394889837544517789954445375587599693242792885852595698896854294859623387375463375599486688696426324286678587643969831426268589563778954835888399899234967439699284857779954882236789753764354486185776894718529573269886858836959167567249885767846951684889827261797746838991878793753866987888479168699594563839421697264944843956256839997488968338353689699934768877532345877585487849977547879857769996775784377699299686531789559936879645939796698985672553958449879556579584725956866989569287637988891178868998798998965996686289728976546386379477715327279468754959699465455765981786956745997591881169938976999596939349715465486939436799996523625953649686237678829846289752267367276379688886694767778829838554971756876777889786594479773584295866859686885671768677526995946966677776779674968937348762388645968976518637788248489687887348899826678896983799755598988759893288586599375817629168395549965892367659949698887439199679976839888293999278296889599895969673773557927688883564983169897588571928366796537578966791868664798941877674169849557676399676836474965997958467797426286673948952984578661896995754578844638859975398669479786778462399996795363775936498995998753899976354459789287485832887769759418949593934679798999861586766381579949995857987177992899586897398718989391786968897599893457877757678997949169682488859887722889989648983643759867653929698828783739596566878984499689989499368829695872759997596437667485994638828982799582688477696487749537878854398965385359358484574986876788998598978197477532645476494965535467897896543756998383979499858945489538673798768496184496383462898656797787776168966878758498195834486389679895252794989998575752689421513698666568788786877455263544685288698696969784887844473958995766779797875887798958379458567758462369784856593749975959459645895699866697889267451788688628173448437866518787547725368435887867685979847498344953472755658859578519837799969946869299835953598664779378587865966779896568643698782366584259766396944985898947796945288698789266665197693346472547774645455923368648865876778766499399864432695554687491788568587963578699637976779997764874255897237343448858889988997899773994946189998785853623657879622881278795388578944974458888956932299777777668946279558874978235852926778757785669868369746877387388685835857698456824975549849997565989964383568791976663936658997679945646723357985965537623585992368489898419566985984767715647899489596667697795999262539365629824623547798681299744676879646975896699888597617686319649788987459187994463955598967576847428442927988574999187966885698758979944948716576941978834899898157779438988769866597929677597777997878388797373987964497994969679698163675548999254598888937393383964964977597598756777893868781244877767727949699192385933679348659672748773377899666573981745784758539179674495435778999866797875494793676471957695669947899737835479975838389446283661795782887888244339836997899394898873747489994818858548979882588877789467178985257984694842587565853493783588789795597938455339998377979732996382545893289914899838966651694547364639558655838885998976898581544629978587788926148865882235989954741637954838485673697856738878859364187656575489727899888961856697716779584739938746956394347365879889699793628463877756878894979792755574981549634327768275531979638464749449697287585676796769865595776488986988439986837969583487629779665639699174718677898765798979476839857287686889978694484875973556967762588988893974654647699998755959468589966386615496751377659454396997388379948896967849811896198625846876487888671799977585565791848873299795837986728795346979769696399483998547695678997988592855362595993986757635586891675898955769553799318562184955547585818837598567672975455667789266798948395629686419779869874373537748998818876926284941762897585279596698995939957868578988387827972756997652459955675368278687869233278485496828883751789868783268654396715876586155794974933983999779836857743884424723538999988696941479449545979953797196394873997768948879758874747985569367994896468749885995965253973797658756924762567873884548768497489589976873292876568927976474798465896877859797399996589496658426943957986763918419668269457981569996995696177568556449733599877363796974656757982642995442698846746564889666675288576876559468749977789896484556836843942636385759978684376674938489698789798673579976377378539134398667566869886978553918974918988438976484893488954877952284636993986785197759655698736963269138379498888664746984785197843855939745567634752697969429237779198992894964689696985875367465567923699598649895437478637787491158149678979558995959684789488658348757996254737791464868846537693394829358996375998888889743579853879878873928978618468268396889848536548743982792748987489386863384957796254845678698864258599866297893676365595458569888584879594795966172599528656578774749496555898887797737769469399699947639699469865881634918477555858348943929577582958158589533891426749896854996554433845667788495798872699667856847933994958669487589598674684598666213888573845186688536575339694961997778711293489488397961877789986837563974596682669996677493983877856779499959856493648394758716569465788298634993849667879569868966167587775839899567178737353989885293728756955238896548947995588998967588569767947658649993764697835894787866985794333789849742494898959953588544957888947743777957289839348495879994184747759645979577845456848935488476783659686937476623763645998279896379568979948958887484299429593996888949444694554377567237886997896797819582198988487538537872493788745625471368995236796485389199897765977999644779973792944878687685433959532989828789994767448566835949229579268919595844499689482548438883571979687469689867988779558954899554576898869979579757297463679996854476327298251297442946567689865328444875958947722496777358659687995879797499983776959985978659986793978856777588879994797555456955838484588739181756379893877559338945967187672875896396191795496925979687858764758789968896855949657944998793856839596998654999599564544734971888167849294996629393531348899658893689549559675258968424247945779785337849348945993557878446362946766879876935685385469799329779789578547779798672399693889485863787325745659336987998879796285877753247739596729946986986139747947959598183374538681479676712982765695497998474771996377989779966787859378664857964784965524856589566895998759598655383453644979947646733894299412752696696889989641989689477648783988951473391748597275768658757975648887464967959783532758918969634499816986954294846865988275966784582572793866966973543879658775646986997835747683649578933866568428383887964569835445359772598894761927575873889767987379829658895576616937579828494895856676579387738917697849755858694464214887632538741697365423249874399662867572669773557592379865888698947924745398494348547837755588779979998384671697675416763284685779665897953625683755647382999544386679988676884734299595687989876652877144964439791839498634886868758455978575158696869956534665917577498816836998929765928786684848647886996865667798656837998678457985778584398656666696275446464977269789699896817679854666838684476289858458459973979768343797798358478829879879651888997548587599978896987191689989889259999983686959469972497798855982687599584258792854499638762749473374888787656877766759376639385996363879987486748969759878749949884345718867384885881957898793637755186647769678785734666697475643777877927988444556887169886757968739344976547884788876896966985778966796812489998764435735516765585499269696683736996996458288876597866684657726972869895932773449938333368998817369734366856967939235588649578983763842997769268595979589596424418872848878799829488394887294496184984787489387633463887889594988373789989498758298754258597263669764985964475878788838949654984499858874688866733889949846768987832378543796849153844637967289619946246573665937548936599687879995549948793584554548384784596654848668767997668685757843684657967977659868763891888956634987978649566766829594564267959599759926729888957578898768768935792142883579888925547559396416576978779966694444376492664693397373696647796884162547868972562586963829256657198264699689859781559899846276893853155796665684999987694869689598776462868734925255956388497677329726776954796985848458458965399999579525962644889974287898775894669897985474272366665885959689797372787599487397769857469835888589474467868781557657699328688244998883598697978499779826878899668939428466519467464879296989567734447873699779267448435798798764885943677883679879295576566188885959587769888675956494822669697564961496699972987436967429848699668266678893398638685977675995946997968797694513756868688952857479598584457947495383866781954999499692977878284478866264365599597483975784189896576997488756875765516595268452789927895779928989482182456843665887197978869465888456741746547349768877683559935485772349679894859756857584577599397998979318687755584934688895877787977484455595768858726976628581619458859898546776786598897476888699859737867987648873845688767945777475895193977889758368569594999384869992785869884557955936886989547699698779997844846675987192743836466748868835849824885988579757899658554892595928579898883538644689966697197589698898997995921398267123295776678945179148265568586943866999716799999889626589488548487498743747978469781877649578785957896766936322888868897784849492772887594475847846628936465792898526989487998656969653525169498757795564918359632584999749953794894924989746495962974683779996283688854476578574589696751274846916667718493955969929687397456783997333937268548994899849767993498713996994693945695775963694747675873487267849865688877938827989586493496812497364893694368989989889686957269989945875749798979989987718884482889457149648773958775476966733579889994466776888812843779433594934457183665311589575274277777578898498966959629459351268876937477858789389689743994177627397367741546994956588369678366825897237236943844475597397678488986772869697637595176585674774588869873737757995957493935959598898969233746357273468368975862563974983976465287958334352954696382575389538732638874864784595988689679678696969997651779472496769977778468479389498394988118986957668984498738998758774892866885968685686496567515835894952757797468489997777679789977787573573967477977588966589547956886732988989589846593897699556867879799829996883652946577677579742529599981495495446535749468761337999787898986979187778558139999987579686759499993826888896127977749932833967949298558498196678998615829569314983867469966636294938931756447325989946366288856477267398797942795848825578999298387887996594694435179686969667897589576958596779952981598865899368299999999956768453869579968932369689766725899763793897348999955559367493829991868488988798468734679996997765978994192564674499549364688749848574892781535797558966299638966787287461578388218877375898959793854969588995665688782769869478979323666967796698985659587288966178679237594495577342917546566382659938146888346769798198414797976449687676886737589824278948268744665499599677697587935584589188832535666984287355299972659897858838657975768799846744696369456989589691836248349398499568655769869851867689569978948628573997888979591338942732685446655378239779857575583378718648454654857187965757753637797556596584968559779997768383647584958754754883785349764585626558859888888869886575795852478987971443256867743966235459446399549875299484298748897567996389679861779999867948797769338843956294749893767881723488622629327267558745856646861488739598976825989278871399838487979687895388696777888977864977874879849273659838939678976731993997236669866689366878498924487498358968385598374574488948537939739586692139797837782388186889489479962983474556543376858299795846959662723894854959797547669487319899698677558949939549896783791361439787667736397754958794839829719744479649494782895296976863645295885959675889834758949892744395536398868858456995942379853445587789588876148755898996899457494788979593994749755868253141386684935968586957577399969989871381873742976979479642882488552687997191976697837465878876639756373512548334577858495988282799933858946968549875968915777557697855959923884397389794348738583537773778599678237896965883878826586948975988579665539487586558299639786429663488997866187831257928934598675457899877547764877328668439954196998742663798569736489989989584955899772799119579698144937874263546577994795479778886597856728783859998877569988757883969853398493898664188997884689761957442931844725986344559881477288951849784276372836638867966389685692597584555698825475376687899897329543774769775695995384889279988955593753886778476696872927548968999393577458589998469999875987898753346234667672587767837737789966448767486938375965748566866856455339934434574554619697669886786989975487956679979989765668597829674927698897834566956586984373557628549664571599569945767968887698948689565897964335376873947997576968777196686784683553679784697965448696877888555645547656586885368966845297479316999667949398595232549689659858544456649998283858199743788864986485899895999999989856672213868779954887576246741991796677982437939358636299367647884863418488594964687689871688397647996458543849668644963928784336678669967273998769741647958889955947778792778654439944542554999488816666998661967332347782381746668657196597786889575686889555694382997986184899985799475787967977475297175479882994995448719954749816816956587296686284956966976731817788899798976999989897769967993895747974644195665989438249976469996559248958986363955828445859379975649759755973787959878757658981764348365529995989369877598885573894267866374814778695989949596796788446788655696445677644969896429584147257137958778855697854981846698688878897586667497897769559196886682789697684829446968746727679276388675364634964468979598969428573978735772499895323179194722239968795375897549556875597988596734594488443459669964777371799977996645757573573996592473269855699893987398883986364652419789559696989478965615895695287797265665936398577959779767872468364499642986383584685968649593537289659357873847853448553574448879881788137979945866378643567239859758696148298391777958459997879567885586637867678788966575689886377467784246676938895295565798737136879898356951896658334699692936756935317731923377189998996217481369587566675938898697439364387718977899537887474867987956684669921969968448859139887163698638498865885653784789679854844966963988566797787938589858882498842699979479269656677467583869587864957363769684927397663574879897759578477998617549889789688965667735439498483464989979874763857541996728865794328839957694624487495798787848958289799995788576987928959857967359677879466899869758371356864588499343892456893789959645686779559868258852768578878169797919887748896769885597585691788896965229953788629988657999396997925894438939571585768994425736343444785743999678984794569869946654866388654996955793733823873942984415978779669977967958966796998878699898549553877699965897657889697696999997549793887785388884669396722366197264997578914937464573386674455543488649675879287689828688599197353657989776796697888788928795319987476838895899585187559685444788395945495377799478196935865785989496472545668545737884785955575869359756496825183854745748768883565659564338389312886663873658771585177855558579775857955979956967978679724476469698996976367289874479578976611698943788784776893984854597366565891888728757965699645397697679861976779376978176897986994194789589669869525389959397683776568269987595776526655944896657796988787995987695788393149765965989987794987996558877596887558687398962976768882566337469439697358797664838121396889469974776877998799445582259578875687896699885715689637998569578988999683859979455396979577375697889693796934882196459768759889579625982786674999539898878785927926552658253459894884336899388775898453569657784388766973678391748289589898594699759378488922928695997875877497536547996556774386974839587375583115886928427899876795838198879183759584998663948568289699799658477884874999828353878998264587994679947732469345692793789696357578986472879939911285397973874962965777362469187455597994834436479985929558389855382838857715738876777715597837881499795946454969454678886787876836617479588448979977785786992777578677589695838727657991474664396449852455174583998677878762985568712656466257754626783382685484569977986867673989865499576888936698879887743882489562545588698954499886448723886744576699848798838778359468564777548556933888915766888478456595289874864598365886923795964366815488598957886745945843765779779947649646786746922286899683978976864864987766358468676759841777849887945552448798895933356266786964777899653426835379995697651285783846878498648729652787674858948796965759788782777855869919378979838554989995361696489587787556767894631136948275487669857659898834827766796999499688946974488989897816579564377576768745944759886934999646698587582528857817773859598149339976874842565989878589948793983291755469999998778545598989781955558677728888747475553688634689499597668943984866555495372829674973946676695699873444899987948684447545854714849766873681498289377899827589878776169577969989676846747899889717888874588557694637698753789658939899645363274698599788927888355646923855158996894992755738677994688372845484992985791799879986767466467769396823588727996564677525699476883389853769987986893689497457679877911466658279347558656436899549668579979699577796699324757658897577685325769687489179596375829579827547584349797349739787952288176598768757787961998681657785675997753746749645528254255963586748789985876846398172634866376258897116992744462661799781995679554899249849295799864657368919667668527215888585148184899448899687377875974752994644764977866997982939882536796198855894936893799994862868273984931982537459895988858979382384888678879658479498886748888896486598299987626948385445893789724645563838632339728619878989989446346549999577699957828767565637498699477789183289688996877965488749867367786382884659888468397847592789952695769799949685478825541939742546869982589958286599896859847285928149473824487859574347869979968878358989869199883987984384695838959589999194778565783197748128687372564369449596483939454657738989898683689977867379789846289969447386598491696367995798473887828767493719178487789776769335766968753888659968655379847547937971549633874229939564956427564536827896719746846369586472826856427859687892669476789696735327988638468798528975989686679659536894773977967772965977534797778476965399837883984797835496179847728599875799899977676326687754756887847978939178993739777889995857995498965588792935263495681256697779957657985777838969669696519984826372597425787793967858895879693826993958778759843579996794723664179689848554787877655732528942869581397696479568395496567378959489376589896785777684647589894746696884279477473789349933568899968395522288669856868357955684988933931987572674687562557734489627259558867359984485753536937364878385939468789587868577648671688799689573826529588935586837555689548869689835339683995855769896983287755562885759958787857979874996748352896967354598393999944894934974942742469635876999644678771351793776398698488996783469581885589258477759649666768634528486585596977859697678578864392686895796887576568928769658772868379696981865955918928758598478465686564833351976859689976889831847741657993854276976679899787496486989395495997777999977599953657485774837976963983757996985163767796979369729979968884449896167727687675669885591674873674252866551386576947999998586878376997578357723965684949745887967665367947739196475736699547962834532589889956937779488457867977744772798654687457997576359984459476685299989679397754898439986728185559759977977771776869397465397585996956799749374757692879596364765548337729529789774974979889369955739897798287398584455684281914657717679229444996557786498235742778874318638388692786955556898969179694382796395586958577888888765878996166996648486177699738375616379996859296687596558869696869769989959781855657888894899978396563468383799465795424397598876963357999657986555776477884893556879294448579868933696973821668866359786489283144966979797976697186929579968887699879596867469949891764695887765399959759864879899856345778665894962488878688525397778468489387485786978785354897888999754945989598987485777698625158426938497559683899546768999251775581989169696686749783443367465597581958635433697521595828898877937986859559586473878644976845854536953465469965875736739438787579467686858839863596263878787544665794797799868899975373995729516955579995969684458788477767679999454568968875597657899383174289568366863877749939939296778794898758449673299479662989658898885589958957759853989968829568829829755772588955398888446957359885994668965876987366835959985399576457299869238739658575344565892954373868866668876795769876752456955439734635739696935894978457945797934353548885974538697269861766735586884646619962769689654985897658995893968129666974394878996238578996752953984737595646976788366322759997825468876356939775977497846888563369964884386578883497889997869988833532973668748487348599938464987489499783797966594699637856853996957683696919849856773867679965919827457434578988789777584895975374895998448235499986785175483393792499629777768938285859688668347886698958467685197244488858776986858698673485598774973788822968959977965793683387248859384169679895736569894738886856849779753459554544491879657192681973879896898797574476858964884556984797666837578838894658326776887559836961993879373866597358497555998878988955726734699268427699883879946995349789876578885553958249685838887975867249728792697797997967667486535328752347436887878994988849994899985541697599399786354876583768499348988958195848149356545967457889789528857816958985654863877829997725677285599774451896214887696152939776892682978864776998928873888763995589912879395877888788724848676788563616299689534359278468941658354949389484999768653959574596298874985884888557199983257998778787898989698566955535976387297557795859897926392675737577296883893887916798969789388316658591972876193782955949996519739686699269649656979565288587483828897434639383689365766955765968541579965988949467754987767298123724986269369155685277189693846779999585898347485973598391928697798497787749936699987796487744956898633245887529299942984538671864742479766693456858379569378799691767828588834396897792776568855986598898945976792766599886895745768969436468534864959994458669999289457553755798857664699528774724498246799639586342973546669857859629779963647598992522569698769452446738677984869669695194366793793767897856769393925697476394279559974874763688996784554578647896484557637994967475549198175886433996696695499929996888915964788656717235448968794469285638766897946377898348699796219978766646638587499875978169755527826888867627373896438997867716896999957389892459799989999436588582976737868449887599878446789747764698796777879959696657948675881677919466555983875795992895889698456442376466488936198448696934669489437968688459984994324644787894599437632793975995867385959985338785548884985796958366964699972967395755669498996759999224746395698795789294873957895787786762947987739496454876477797355584352569668465955534869838489598355523475978769869955982995845974776968774379697977857743877868588799487794459368586512489687777629268927789653894215394742865455794626749676756277449686596957929256184439657857758539585977846828779699194833781587936667798926926987487738763336994976261387688728617976478989478597545316499181936739589567838792492474266763948383794184895836689297899638978688876433878627957888974884396977271786545785476696935643747446797589898948866634597895783375979985758572637955988756676959928767858998448797675692797699147873686998717578594448468578976756974459679782764634159527894437936749948957569868966939496879619729995666778828964734455776765998848857453768456557566976655859979797969785379942867979586878786849698795364497628737875386265588897939992489574198979698345489797988349989431999797258397373975924976186669796978686784965543459974877674577847554995793378965778946469986986582725579699994238997876399892398884819859558842872377387899977467381817973941961243677436586685877899973968568478377898356253694579586973195869864776667187485896346598725999998658987734771336898476767989699996222649897346875379183735654559778442995495787628942698946776796328592898838873452999368676574738547999577888466377979696689385798639579679994968844796453794687859796799148584946839693988493439349687748929569934454888858286567885779454934997766638757589238964683456793578688549827399939827849776845844796847267987524551987646997439888989763936484634536696928238997964993999738569794438685545575792748692767686694687568848454767488931995487698948978555824139457252897445883846645767416487946885994925698456998795647947664799559798796799934828539599779679696668878879524889973559724879978361875664798985866588788924878487587675859838769477776866274178874111936863668677456588899898999544682589658968869957989668834585786897478796658943782586759749788998588987565149884946486686467797595884644125572393898837289459489773479979864599725578937467768764597749587949658195974386455534394679877866644487343856877799864975885857877899758499689959789995969638797495877797894588386398379786464852499588657354647879629876566972697961677559845679569682992493897396996972657489757374897346958878649377567885517876964387395598889644857765964666979485758953839299645695897785653355343748223389588957476567627879689397946863295837628959126784893658633689823877788849745539557957527899895688637378676765996983562869999985778277869928832957437998537998965498874839969587349698453949597888699665659981554683795966894884878627773679585857575979842118788985895748697926961888889899482824419798865998594573475978687895754525499793856659956679298779868855393486689977953829723566986967677467654698789799758738836436944699189999897449284456888949889488682592383755885947517699934969784743877967559387578995978976488366998888963997658974886592669786273698899788975897977975886872983978893568933969587947679877479573695737367652768859989778854997594746377852857947666879672669779997569867674997662994795855695458758177579495851433899958455681794939877753559227895497554865648769759696678536589987751685879999997397938886157391659895789579945987695897779198838663863688577775555885972866827997947988983798357741736589931847964788736829982447842976779887765589958146195635785657995743789648878988526996299478627778555782687197847967976773894387669788873545869893726377995597884978549747826767798578712678777896987898585788788768929712979977999357785785897917995799599597539935793469576449964562237584964976598475659269986968845349899889196337489847542865575858988979678965247348887139967542437689133968868478284998726875999445359765575578779538476798473554969769388352189896939849784999395784999784568966648585894385974543962865869427695349397969699858747972667829779867887869937938397945685497987379999351299996897873762658442974886884928916648677258596719866698565766847879464778839886735789956979855999297685558868588644725577193953467463968778674889738476857666387954784142565898996558496566287793256495926488234169979635862647666478661857689258546284973997679359775734536763948997926294954789667849552584374778538627259217684978595287947525649348739864996455539738455919686884598565199839778568378956839476156193351572752988757797674189552389995983768778885439393594967698989772271643998396955997965768976768638589627666592692265677366928779265596833829697841859559937595957422656553274799837776489526596661975689776692797211993778993619928287864366876754869989576855589885589957279475965766869966413778491759669656989196689764989885776691749796865646888368673669885695878894938979657579285453672798948948684258688567854898597948246879989678547959329939797533985393938655975956875826868997497888998438835975542586527788289597466398364731798399593798965362765584257347848697857876394631972475946563828374398668678778383798998973796798864695335798689958983895877168889831947757295696658988548876949618738478587769588695956999925777995135526773968625982985589968669984957966327367488188518288895837998775679526453768478747775982719539683874923975726677637429786678248177978686587348668736988888287974857967869586779544768838847733767775459991993998779546766865174797593779945996838849586869977585484569793468486698676852654669595599349857736898865576158979956918967568745489965423991669898974685699389949526499937576582771756896968568686754297686834487996873878676387432695999986889885867635679964976498596187395689998947355624865643399987899329893465679715993424897599985399977849789976876958979724961844641764232935687833699968669689499548861837496369579689969848945745474758976858649956477995341628786696743897564296852198986866294257764986998458672756292839284774689627699395889599768872994736499649499553883848844725919865883975579988759575459459763559734679666999972573959895996365796873887839479695675578897349394377827794972932888886987458589429675986958998826899574475637772868798567282346235775975881358476399599472658786695869449989768973738767396997595982664286956979558858975488873979838829737929998774899487959688836926743739598888993259855872699766259235938367727924882878599895989979645879755466527649367592765892385398767799981493678259696879848798459257648865875678746176989487516817762628394397395766556577745737684553469568672464289977379242848964933946756789576989779799339267468297336692869343967868681899747428485685864834779978577877756858494597515733387589573474497567875765994699873577373697679979887699488478858638678879787892939911765753735996669987297475598367838257276889774362599598965582875898889929778939545825195972859439953836583429878595589889779529842957734959594992587983447877588478644753968979485878879284568268785978985589479933784474636996166685878858572579998946679463877496159798556536788998957596548544529776595496479679268585982676638478479372735736799859822177439389733656466487447465785496486419769848547688586669717798269998568196986848738859673973987863543979796749699458699847486495626792795972497768678697898775595788986844677958565736474247679275768469889727269766748227899997877896485758668669948878458459523166926537655267648657187868448892768598276586899938679788635988729469897753996967738197676952665684971219899729498664474792973899286249888699889487745947789675768726873396945826331769999356664488787817397975887468789487799745789269237679548999798686699984879669997957889629437695978338676744458539797738799356385816855577597487998967645886249561885976937879643923656788748749628384888456449968153496795496746892929469489773959935338587542897917452889853895879737899644738919743565679996785687763775949669478969468231184783376285369389869677855444739883864669734976395654861998493899567545679626758837289914497864985976668376975999869789879889659773975979494824848886996588958797698636269844539389915869987393996998758898983675878799289769844745997859645988551989455896586696986555672594758559889944274585659944756747669899977885798635653297939728999798769935954778575977842168729818667278696944469289995685898368998857685567954978759396789884648455964993999963758326621766983917865986854141554785236761878987995898776858697389839265776886778836637978385146359452482944677764772677533931878975387875854288977849478969687398648663675969999338856778747663869696476377856743798726769889997546588558149829777677585867996698799825886533479887912586859819959787167166432987325996784883565569776568885955358839934378698589683457877388897675897478958697484553679343669677957279945364982296396189527875767666393795963349482763989989475678765353791579627858594882999755494857769949999984269498573757899794894963784628426865699935556744864974895397795556489727638796684497593566898984675677992552485845799959548779878857776868672282562869696922675132968928799827873456254765788266697891987331761867924866996699996824559679559856837227988998399796365963646998284571959469963783265956563754387594777778669879479766949847758923729885795528598298797958975834696374829599686869867795589285938493789955535599795988786959585836164752936376615924885928788684578994457557377469665497877767674289978723699979676856848943653397295899939659874679934275867989224698576568927549688579979382473556652464368998968869991485885878828357692363966798578198999997979676926364945867862266937656455339888498496868898128979994877298478935843967975713869598897749558899459787688757757536664186998869699396779223882919962898728398465697629677129774498878988397372578759849546846727989593694663846754755966267279678889897969597362228429987824966474537973588766479769675787967549377357883655887649987735961598786676656967467669797967788276988714984558798573689499896789799899999553364877847896392636869796876583946986257269785897557263327797972559966165693478956677188957957967588772558389757748888769785777779674188684278587397999347726679926859497788766988168764869578298515383538998679994585947654996686731489296446399973856526847636476195298856936798685467883998797975994536499275756985994786987425749617568989538649592996945489993726513438887999988767954551142292885179779354551546862765777497474638568596948764993496489452644682988588379787937545549798137267949938649528479988758739976845588899855391489527369989694788939879447644792979766995661487988465867739598996743679286897398855568967966464675573578666989367287656855945383877889677897665589479851848959764999739474678256537539587785915585669799784584379562686578279674993774663685972436995527696368655772448697759894247964789846379883723795834323382256899677299345477788196597697391855869497886897796826774279516279925885548153697597576565739489959639982852852497428987859244567915566585575999716456856768457798536567247587669348846914617829267816845896578565769759586532859878528875867965789789985888429555229838383389329896974637779999858865966363668843479779665645495853896947446999959897873875586578598258869476399233569665685637875799183579566914944798876936778764275877944988696679699596855325998834256726393394984778755977746975986558288957967755436576985892759729836585477977979413685589399684949775375885937586355998588795124895772843632756958758388755685747239839786876865199496999657819784768746959949658792679766926988975983885966256837477649456954457997868561399689712452746987894256432998937781976186593789944447816878982888655567784826819585989959935939935875826799794555968994692589758888589837889869973895668362798978276872667268469348876753968688286793867959936576575745877367293638868477998979999915664623277968946999459675858954684746599711854899884996579582797775518866359878677835946484489479525346848996486157499569957867598959778965482283587983848643587659785858868375651699669879289539497864967994687779996673238493248659745864677998986789457488819649791169947635799434938979989674963227899987641845595532346888588783848957885756489495379697777394986585379897945348928468497967636879677997444695655786993848866796857891938378545893262799977785887894399869469789332894783665988754519565997695498559748559584389187378845595999889736492699977996684499584295678283776957914482379199998779888777795773247778999988538975695697775717796932569659845764815837978925564647336787889948789786869759465776579789879687452997618275998678634969867692977948983782788354439778196699889792775576954338969267542853883933997498689766857547744557227475399997595399293498798465797794944758458227777846976715986996674443784855761346644865478435726845879888586289557569368474886785366776966599959886849763988798656649828893797783983743496789587567767487479684248362542467495599888868974598912742558958958879522859834875656246397673557891588599238987828899778115735855786965399766954895989885879696772796596229884337467828898492769898875656317594957357289757683439467897968934415478497978494797979446454896896852984787649767737996392789876997896459558941632395377589432694947788673239748933729188478959748677569586369698679776735589331574598547313729871668857459286756358966578989988749984798855835588686446585997829445638547146329537766368967656259855589978498798947574314959885189775848388988413214658286677887292858858138956895579788384855668288744832915266675657693698398787714481999865476858487448498955295898798849851835998446869157629464954969698999986869897795679428498578669379685968589871871684378693689828279928594399634435786976667988799924889963934896389664285975787898878967786599556695795718643732864897374776678998998674228676559155867495799674215737483559984948897999498646611987815666579479478759578674958799946889988976449785689397559752826497898778976699858237784955467876425697676299868567489466992676944495149989897248168367855777795567398335864958965878992968525858436582688868927988579647795765856899576191346995696753967888361879683964669396634617776876969458788798895344697712674547884299897265581825755827775597363885797968395386559972889697787788945649777538339878929999748659756979539937779766296687177657596978729477788579357575899698496975234435769979991897895856898725247559444433966646655249947698983966734564898982289547898367956576985593957746565898676829398392932686527798994778477858642548867885848879677355463569752756538533668548891579982739695765985659786338344497989932682888852629954698565764395658992897594869868857662766978677434776394597348456648782468423599686896967625927667148927367551699748437544588497878369969977786587888638788398154729879589398876699866614366489584957163519789684594473483888464872164958889988628914775897386994462499986888978893674468997291898297979692782875642599979964966489999389976475736667948229735577987389697984839788979359284851794351665247996634593999967938985958968488688546267483894457595486869896697989768846786349567252498865658385424789884386889958568899776567298444689679899853283147999789537945386849692796799839667577849976633463564399479869879673645763597879344954949457959639891379786659958956469675589483579924564897495248965963585438652657488693977937599449998728738646187487676378858571897439535997673586298376959926554876397663796594966993494994999585754848886626565475489997544936913785283944199763955247789868699797614739869776597598397384548825346197497933975555978597939289889675283455979989482678182846448694883397589352957382296512819248717476257872477969847485978964897996726998698776877288968388478489849556365765761682993573897658878535826862795748949297357768694599569886524494964996993797463777294537958914967989899885987257595648944216357782928557678653415346479834247666994642337837394725877723678684765857996896696896417724688764887688689929714929388736585997667585986847772872766464649134663988488698769835663892359197589857474367798696818879653989997364846456557824298995477192946994768349998498633648727789847893889838878986681969762446855887889655876768794887625892996778994673587956368848179839864674844868638989678886592624792645975924726977479138889992497936993385889768759975368983767979647455487863877677675889946773833669897229743786949936948549768898897997367998898678948368453886384424686552645789849583868796979939999598946759548937795846973146841387967855267718679267463839574799986799189496495949878738659589488859649865367929596247867598638772785548775887894628979539976586898839525957666579442939689978886589568499683249896489689438649563678337678998837669547489987846742768588348982988697858955854971668946584949486873797977698368533549877374886995992782934988297854956977789989237896579799569536535778165988888566259885578372674877839978967599633757668396722985948978767893394447847496688631878996596877686388797898579543778743568762788766593777696455764986997537962875888585954597887458929858784898899965749945985796733898943846696782747495996949349582587479316787685829469494868346193399569929692475577985758687984146568989988497934887867898686953757499437514984353861843885987658956452673776965557768789888695763897887976977879888988969978435473366947585738835838676645247382976286583278298894577659853643828758584796534555393893756964695879731579855572796585885396873899685747678978953551856666777647487656975774679268646674958433615698636987576977964244346385836856846649859236699498757866886699294719594237574689714565259557446764974363476689859649787948884338467694855676973949679723293479692811579497746599699581987499386336167545769189474567898975566782897799386987929765859558456924961939847799589569185253286995162778983877935737884937557499986957399859949994966359688995691543767756649758595389578999787878498185483894543268879711735724574369968936788986989686884584755599898498584962274264769857447375456557478858458786866728829161624875164994568976255688697468959569169873949795973968973797281813898897463766688984769518396855369455685572493587862987497982929388472383893959588998569997354589833499365586979398291165525967767868976991997756979843739948559455446756778829884998567242689292869584885995799989997738697588999898468394842946459887135964899998656689887677999957289176595889916669983385889593883682389914496974475794786917559654894997545298989397971844167871667599979995897998965145568946999298547795597797569896975694147739718598965566589673938287949828347887836893634993772698982497781498694586987846798859678235947887499836716888454346825478765389766972887256877413579685386649589643261784284885656576796986867785663728173436824899933798676768879456466612278889787528748524948789686773675668574659888658656774888998844735787587988558585866185738243878737838367736826562757648745799969934169876995798633457575488862478869362989599841673678799783741942773699633986888378366376868774778998774534698996939795789989379996487697668987943729289877658976446995849675566655914758478697583439895653689268585869513496337969497974966894598285989866369432691876858362823437687962939566685868576689786953546864578944952385479197824728627667918349584988579741967765752899845974956957676577647997475694781199766754426626973987884448996516986379779964398698863697866782938763348889944653482686847279657966995377637388558935568982986527896228876965468663788588892679748299398667667948945998288869694477777784599761772565787573887326796472596644485542514788339625587736996784678738886692687681957948687864827978487926979783593399492495256496991996268968396885826747593699379583444947685983579189936698287658853951685899965727795262955699958572859257676865586766879456894938478128298767938627899759756569797486778843976764986967866397687689148984648167874746994999889887691944992234755389661939989684832295295486969778586265488742328975932183559398977889575597968986839851787876584968795978666366979799791956579747684698897777368873559553846561849328485196537788969896248588485232752697798867497697999372864629779569448978595986751889296269975714956183689825736899252494686944692987889528873781931427876837935734998949145396877774379678689559793769753635869984798997673516977996993779685768369983776859745546897893856673758658775268764976576456985494888696839563583869569277865358757767878463584948996988488817871184568598936717574576666369132338973989681878586985794675879476692425291698989965597778524747898886496767684885944596745597575676877549483546742168268578949652995797938699676569539725988468964288999977455385544979539986696759994586649495448699948498545997812851764977995795695368123454789859858787869416766899665535678965185457298755459969898925985679876378779587979929458898954656879961989975686757681874249256955849994662388798988775441783957749988598577843349436654597778948798968678888759925317558959924342534655787991666947257872918697591377969829895884329875221867646758798694683967998169467756594579687682572528876678778777466696685718898893886449759562445844997735516766755993959528727537372995856675897598665373948699975688496348766922666157696539947772558955788999463889984634734537677649789818887614772557535779958659854475579653277874163737734695782654749987854778978946398664839478668988929939399863949922868636753778686766676698888589387489498979985598866779894858739968661955485878898544859821866769355489745895997997899762366746779527953658888568834399822578279479897897955796723549495857999241895612647969973749399978639918894671557684797958895897866667497965657898558579757846781796894798838838978558359852288695657961576649377333369774749979347875751689888695857559797878839753994696589872377885173426249449466758588558994764557495688899912778327684279796576389238668898789265317987695874736557963766364688898357995866739457759994258675899879764445828996555857356658188952979789445985639588554497911877558983943773636525487534556634958386648689768189787888596854595859989658639699436698954896496968775169769864673978795775967658867797569898179888716273827895995574989462888766578644381487987823285945782698885955447814768964688566897986596215617259396895983978968489539986892447555552876857988928878589982762758975937989876988569354246352985266479866684489597991864212599998559849998714699443959536498899824936495678985579559987884848886769489377973985812266968187295824763668992888995729994353446886556894852477896982995976779985449848284464967618951546241776958757698568847874947998778486976882869359659179573877977935375738572977599961935748259698585795735937768789988798679475888848499583789595857953862767455877971865599816275675969999547689849884664986588998166948555692548861384783779638888854395779597546997988984637142986835797977437595774987846926669577779669463988949849968778993549875398679697978438798845437858388696879995692995785597649493982386986493963587484866679855916834694677874477782633657972698974962857837462999529498822797985887589498756587887745141977624253266977926298725669889252842664745687857281999755866694387577283865798459926357734773659774769685188245484488935787998577977253694997941566898968452473745486675939886284873667869832896879473277767644879866589385484347746598273786944894978997977963464985995875656984854479964998246469527694897388875996876829775979987837779847998579557799354964949557862969995968879959459538689975799739578329659664793846466479639979789778666894154999987261795936938646984378717688348844879936599979949668456924497479455295677637948885495488887468679596727249597682769839979429949249994886935876864714835748955986779965978679573977779554897656742689845868298863954895776748996768955561357397836888876755894428952818277955889955986179887374987618859898659857564491769894967684867856269152879977338889865992498696576658578666358287294589439588447246968787969896979595698888348475979832576681495985277969696874868594634597445868897797596896345979569562868218919968562519587558543374999597486786888679336737674765254789478997786996947994578436676789385785819556377868899934884867935774888598878156649677385889782347668988234877756948868345944457737597877592798877369629647849877843673789956169675597394765664883475959765756975839968559996857698484658993979569579868298654997683253657438481799658948686927798785989752357369634299499843567764362999953863663999833556446447735446373489797758775233757948774726868567487749626778871164277375638789827727857571585577796234526836482757498859668875387656726788849992788717874676278868817976967168776698993995326555539359926462946989394748852355728852493796793787565747759986873868976548688671467577668158835789669623537469664868681649236683583669598995829887868259853547837758518727821674938749788657752631679756179748899964571799899648868566462684625974643699968847693988989979765293736795518398973784984657988297679899989979686649536925978859385235259598849676677686669846662958988978568868977798397896244455794778992337354385978847877772858894984686296994688369738987667594774864593769749979769369885746924265979179981693398937382968759968989848479487994799468485514836895448749596683364345826899699599966147977937359829757596866476291299994999566998959695279775658849987934855937678675457943497844996687483836876324981774577687699536875497679957853545975959852999886847668792656936841399784789287459215668819299669579798576768985778688796226956459638626838483737868349895979367788775636577981793266698379688954953783797876784984789868857947387827879567952997999478648998987572989648879799989889749564599493155846856572998779574769948793889977462397967485787999899549895818186977367999168286688839411799886583879549944388784966929779877168588591654925938856394687985636496395499144489986979895828856947798894892958859886897779696286496988446519576929719837495959995889778865838485986924977993787664495799755935788439899889395357959918753878561878945958385671968858868868467886744895877867586656928866486569892398771596895998334356519976698594234487442772864879728569899975769356875479697977658895193598498683829338999678267534967583979784992394878792899575877468978567829687888977283657173866952278644866496968869658999928897777598959452946897936698994887795689987698518299869697787826258699652773869986599658977837875884786786531683397992589947984898938743986653852872997579867844648876299982369445588656229536693585787388549177189264788497441779865799687226487888169628538998581983558997787867884944958576943496695279295853473679666988935834953994967795875879598889394563187316988899966363836922558781395775954937958588689766786966559795879726644962888796455999589891759995377589595565897574958966796865931679644256398446746891937964948373637949868955695442849488643566989728747546575849918489695858759387268898843487834497166475997684679934752262839368678597263247758789665117857859459849576924732257598798268496996964787749852586778789568969978553664287568524495696695177892594456565776381573958882875379479631347793555693394868487878669994918788647451538557883978758929324759844841978334976783767839473776671463455939992689685558964544799979649979629619864998854645566989873697968846986686475899356755886669929857776879689567889254998968764994767892769689754869456658856724767535628995656599266776465859488884787796939833549999279759777755339959577329896679579724899866795984976565539915699969999689378969449689436459686697596648545882283493389659768956585669958938957686628879316187634898149659499879397566956389997666966364899489996365886688664789967598647887848631254927936449262295797377583253688284638416535572997884442929858963458987664786663796733598557726693761386747174182575487789388987868399989669756789759389798795698746596663888995836865717314328359888996517887644739893559682841795862946678499776964537966667864778868934977597463665363848938797998784962987258996872948744266698476712767922849935768885672673975927763318364457487896731565992796979958775993733595968794475338233692866288899487558647899759759769588968276586985585826993444484886695273787375728687546788868888743784579976479957927396737899773875599619942994762496588697878895875598685999998477899997677548487359852683489984652897995694656879488888888889724949498778956999169533499988222998595683155295584697583779857957756936774495899379996757589769886924976874586798677799445827979346676936528564695358848359713857953278679937882664259997876185884656621884869756776974865729798998959658378776783132686632981968655968785477874378469376968566399249953585969878531869995645794556769896894986879583471758997944899593976955749745447865679948395987987478729338279877688986772916439124195647887694877889494498182774875584996758877996786758747719886534553769778866562686779399758769777856465968956978969688192565995274789789837763896655883781657649956658519987346243678924688384369882898898539996855966594497868778558548965466663886896878668535699862843989898389857388959636579643369948686679687769688998798968787958973748787678637592767997868579389678165981827947884696377986757858667359589472796978989796968914754567448789259772928539693589983738627525388869598456379956888538537697655956664488999665893499979639997663667789596797465878886747889761847944459673746774787429989669175978459346849397868854298949875688789867832857887548947865869764842765239676985443763266676555388677833889559665799539893918539894359468937726696389986979325667696738788956196247499649758766656943917888569898777777259797884499337888768998743526991568967989748698949788855824591598875991997918657969867968679769655949599694597988489643384766989798729886869875888881791998651576377958953674949996735388635798597917813727759478775787499593785928968666987665893527673741276599894793858787585426789748463496777977684659848983977628876965887996988694788688576968482852569339976869679597968287584566984838694859468597692965699959798845996563571694969665755878917677955569937788497796474438754986476675886896493798959994574965458356385975979577876876965484739479989749757689847879966697187624997683749988764744784574932565659567878546752967994988418789765849616799898955458939787958197953829576985499567979987659588874869776954686778897569436882886497469589852259865397636977696987973738371597369978666395968733399987264926497637988857753998458683893238936899577766595988474968938495789697998888768886396855959885496677767587838695234466931992727286953843563684589896887491216499889919967882684762359579862678889199669996982675885468427546579796899668786445394449726598594848559568769865753458244817679677298589378276994993896995298774927689965748626655456566488652599995876689636936784746768348986644434387979438859397849991796996978694368368998587458849766663929656969548879968848764198393773597455248248998679987994668789699484376497947458754328549989771377689769479993346951588577789297639858966894932738395478644727985327366434598667789236825666855183982995468824958588576472736595998655997891694887686885577986947377453269875253885752566589455349445677978798658774797784532677148898256838789794435944979656778787896699595694847789269454863979416795849174759857729468746857777958969572766243935987559356886469479692677174389317465738865791594866567766658777854297798899985656188956256996817759788468964789462889944679995896748276957539587479687255439259475699953963576586349747767965773787979963548699779685559791498759428599225656378457798415687695778155619199755869477993787395929828737773976578993964996777942979878564767985767643943239859698989892978565576178785766534279978775367677814497798844655586258977789679936763889559996986985966585739259567846865774455757869486558819454857739554658564953965185986868795398778913286764827848885877869497835135975649678535873678947798879838946255787573945997784392849859874756887466383368189956778363841683687976366755985687489176582699476754837633973887989975433894325957898895748889839798555859987747857295568279278299936969766369863883288798967338997994757688478978886598949769896769738786718887879384798557783197349296898341567945565447868985665873558857918838758697947987999747499399185675975987698797889995376378856633888597787675894496672296236898929436927593598527971788839526949864445378789449796588898376997286477679558784777397853897567862187893778778966465597876476558159739976381766989998786674895779994949995937379429788956867916975267747864516572987633897994693976596876495565849443768696785383797689676549898894328979993869884533736518268667926767777937868977562959958973693929778741897499857799568887578775694795298599897789699562573997847269859826562766665972661963548834455667698723727939587236784357684865453577751499548667978156857999396388616498944497467586767227966647999998895745724781877687989398437779979974557379327524852637388477528689595774893983895784673877878586999432594246251398434665166985679292688483756769798758456935635698595633854885597769864787857488385682464354837449757774594486967974979845687395448969717673852997959837847797587356836839946963493979468989955895487456974838689773286262296446657985486887878494284978698895627266562839458557576884392598779894562996355942126885178863981965376977459574887888947897696665689282546735985599597768577775888347892781767764746951978555996869986694955895947698595459485438468736899768993752694769499773758989798656899639971543745872389954648843737183277267499888773645969787759657377737829879486987917869597996874918475188929812775981781968977792689399644998687989685628898977864946561944848929588496356354577154984367688939897477375472595369448624996385994756596785349999739588871388657285848897569758796364585379793745493473655516775648588571959877399649969789379969848638279684753758389765986778897975613148753169586768993195496737244657293496886779976667535769597997541687995556839678569886898586842558862963798867776883583985954884879938869488479958525578368163458895778886795679516559695859599733995699199324949797688686343296988788187939563999863683977745827969968437485897755974499792582919999994967587958652483956589617193949754838466776899797427578596468245999988368587678845743888735839478651593454819699694862899968677739968772675893854899837268599884248979669464684839758965864516689698954585989975999158367552539976274972648347369986666689532977678885943498877745889694563668745158744998498884754655786238789256757692546998987593866922964859997344479978449684965744694677495625418498664978878775487487836479288794886829858866656666536997719953743858574967747729399448684387718648577686179927327379789585379899348984646979797997267998819897368693279916797798469585888898727593694568939245937825577969968994526689776863468873859985379965374894436779658949973157894798743847882219657363564789655599454876775698698389584498594748945987695276896578929744889477916882876965766759792793846498359986885887599466585965648443926654387459766976877736865798758981573759959695864897495566883499879688587828865989666278421799897923956579655938847759988181892964296572999545753942892245495786675998937858715796668144638226295643687768944475949797779897778963842853958864982987877799579578978887517583877789522856859548485354383569876186938873384969967657577779979283388639569664696889923867197537798437946997455547445645878849857553849895666789688766878567569799169795347387887979995286876988487346897877985693948577978895675744788934896584955867878977547639928651865732748388989985848647537988699296467715664736517837575596894485559586568798775777787875842758549597284777657997578546894966861591379248929429538989925393697688687999979757792587577726955397575659799879958959479891866863867978989274996974913869998537473889767998279997719966735898839644576879377846665566493723894972873899246686898961744844996566275574744429918349993187415692985972689958748766545835487976886354777184787969886986895989868549896378799984769995964656768977963897457885472454596998919886919996384949745898668853679845958397678697725658968556563474198986466475859166687266999786732964995865838478884692385858679165589898589178872566889961585739726738657989747992943813984888436639998149684775778687477657866599836915556877789674145298877388578995993391298887996879656699799446897497969473998938599272938996563588859578329376969677379988818328759998488693844859842787985397499464784788456984697646668688596976232349449766975667954845785892567988465325184686932887754997868397962879484667574947766397893554289985957567397936478756647362785969697834668898829536375999389978875959892859969992899449436881833785984997279326468873883996675389798295969395698928748641559785674593786949896484625796972777749776256287798496995784756967795748795729576835519977568856784876996593768746299577713253797677769574675977966973759871784657577236967753494377899357897884888898997627977236747591882399846367959966843147898297976629425564969686852996834498959199998548589422819789736379473599969586536295448476798965354896437577439395999564984747987979858378877386678989765958898577648596897858947337668556948634957245986327898697354368369983716758758686488378478421545597897824777974569663736928739945636343287735587698978394868969998884838595997885454558687812597511998966772679638978849994699992824789886457739383599324578488967456246589953626874995775423526713196439891899396649857775366798469699639497987679517955819672677484185163975784696559873998986984385916946677934899636474293845757259498888858534395242782949222782876689677887977576346989343439586738837673638615798956659879862598633587869691929856894947399988754692857439941983478663695886956877486786887858357852728476598728599859988464997287574889755882939924929799445497897827869659828767258986958898887334788558735752487959566738495752436448926865794994636838585798835596966698618829998886498897269728669784787797794762642845688799577969866887943994679747983492833636988957558283845578886957799898869399289389952685692382979969599879697958654915987288778857999682987189979673799997899779887368568756695878949785527536944784575498757799767948978494956777969759893569372771859599993294514829896619778885895897859444998874858761588582889499778973339942995364995247646854397764446388672996825678995997594664975796976969887357988686756891859373316985866999538878344976797979382997767347983818287961279648935387776889656779973489993787668895838882967894997456976723625656679748968154876542678698679834376823799162798875699967997872489627279975619773556943722966932498765552956899595145657129696564599997899338887538589974944676671895762345978748669587756227276865759676759667978695168699584678754885829876888934948766279943997273572925465794468664297797768698188876997446627779897895678559953292668875586797592775748545875659867795515498266529793875363479293666798724627576747678638986893697198929699994896224578785868499992687655495645885554682868477979489722825849574684555579989674755798735896964858799864468699684776458475887864448648676177675937668766784797467669849775463699696494978434862497686877866286759694843367956638825355856987649358929883898988694586753713845978842884864785849886936989347494649869725889999588398749388767719455997898892696877427587988968785963789167489952748971983498679858697296256665597975882381372978268976248284515487329977459658967529885668977648936338746789652164586696925476487953477589358229963853149629364647751484566877737968568549886996796897977558884772993597676558868154959397848577646697484459679175665889753966856357769383973919945894683429395889594993148674858675796867996698599588995832635857985194383796679999386969988933395266795858165887791865846779755824888945917873938839457777997382977956968863996759863449954765839638696596974259386954189796697899584987326928263678387366898491671578589846899888253357987555974965879652583483697847946897987888877973588337585979389379516395938758977292749456487477568467685873892899785769658485868821995887387987637919889496994972563551449458252785689165676343987137774589766189857766592857725786879486877779369177994496628896672647996579967899966943278471697687469569684979928559276299845825848745887555799983975769583392456936895633887659387389968872792937691347848832727929818649666487776623434694659757478836646753628666893793777495986543677552597464894758935685979595777722649882839566298363657586975647744273661867692858686546668848948876389636689741838967638459989522377888274917696888122554678936889827677276559342725897899776998259394957888784394749869596294246276933568668786452277775146476484297348962988278793948896799949688169767919898977545767475762797854885876384799543355284264538668761925884859395797659246567984879847988851337973648969738629877996469989225978999619886497844756885769693837758657182856968646565837865593783779889553158137785777199753846847688195974998383338562884987239498984425792948959959999868869947847862764385958949868856786687563897992637659857871489783958477672299781579775866398546455774695938465838866879965847427776739862938996762999987169494669833929376989869977756474358936975359865478989148687936476684269887435866472743678851967293766797737659199526647987959247799868836794364797798896795957458874884498958459558777557136477747361649299648859948927869855664675894987867885948699879676684944773198585374985974491897683497685379589755565786891985968992349866395673563826816475978697994295819593846974966488839619996756878378838857899196356686478858967999879134839392892875697369933473947427384917867677764559746958752567592595476688566587649769699984869354474949762497858773249976266724799985793926673568489579395488464978999645845953624919497998858359897875898863578589294684649849254917999858737774387997988949368869889288776574568957293399289793785441848665889898693865563237568668477368925777461778987969741489484549857889573439556158755945678949418763763885537169829538499758657796372693698775169848984569769647795367963683922989385945288347648549486269339118457988593889355674774859348894488672285656599584755987747699279998728598158476523997857987584598857553998775997959694796987676515297345769977496873975856667699938594899774598568947236929563747766848678787788259187884583625888739871588395859957853857654939969384948395786799685986465644979347673989786597674675349415575987884986847757898799696429945555569245455479499756869224498665983764645375368997874965947856436348523396973897664945696541269965586998917916539972999296636792891859787327878795682389368539581772397687557888876936999977658859871695966779995822575788351497748842864669785379668894369449787985688287699666676998993765582588477457874998998432996962563967114965961647485568769396969945299337351697898685765594755983999866857813787293985186775794689459929577778767998969338881397557696934587885678467693896219998494457636886447859899758447546964936797476854835689194978757889375867849867679964473342875773346763849789855575677899269476875995397847958497925598299974848399379387377558989889444674449553466469869682749387355597958785494569429796887195676957936436748899897895788892715663997318349445664386769176363186899369859758387465976596579877298969779652979487575678759688677595742963598952764497798769989496949857359198733989258361984699998945959878368744966175694839579997689269635347931675373874244567516879887982947976349697978968857912593922749351396464452798839998468418439697278967689589986675896899565657638989833754984679847877674745972775729469698759797664359889698996693399397943987742885969768698696887865658898988776594997359826299919977975433991789999859966499897924259975853948548867839788256757999983556658793875399664649468685745993787473676914699787897359489625472846978672787897146996995644567397838985237785768898689986615259783456887892597778465685849882949578558869936458784827835889898864724459987988925898766327489346944822459671999938984492272156777614548688843448949813863692351784275864965559425319996492335429936566758647937683757488892685794169659859989865487688949787319268879474945899762342846689896698949798169679699868739475679677738829686799343574667468665729859488854688631966685787849988596929886394967879881655796393896899395969879375344853974487541758898853998941789344257642565598587688834668493594789769953865664448975486896688269957797149999643369755377974898896377879892556853795647925595565386994669579576625867957438978965828699767697299164338492587814256798878826789679798763956838692877949979699976369498978937432392575899284585787867513798597294394368686885766954567867893486982643537562675917857885459889478875682969658967846788379987198758968467942799284419899878568491585266535587931887666796788979884772526976898984828894796399169565977454945361447738794859827862746899786961989895775286168145358985288976556825493763849883747744557349651479266398698768437836898997368896483668767874992979878576997844355987316666575957699766596927975585763595567569649639677794972952399566899898675574638865117996639919667566579885798622977712498592338376776788999945652996999789737887453979984396575568866435242869579875885789689983183859979595969856575999999985848148974559449836889566848968787959457632499344878688599975796998655438276589795869669928576185846855689896884599567299984783898979941334985948765674673973598796759151164795559865984499789592475843838944546795966988999797882354995393865768773885636849895155955891749949674887679978799897491358595988736921836588973667798766662372334139685779999248936598978795939968298976379949938956857969576688769939929466596954843581836496359745648336195296988959873768593629754998597987674677787398588786397678978448656679583565787584289294298985946764984685994998992443543979696985956483492487779959477846788473472329224849657976448859589775658293334999889345699198327319499774888748639989764395888985593997298987234427588553879973639977847887237549999788477936686997859966546431896497735999858847758949579459956488896684597184866766764968786497767695947599825476769847957173998859979539487686996584577999559793347767558334799959842699945677572835894471564348887999878947955687399685697554797946739349598637879555443683676958597567865678661624692581984386568688999866525659657766176248282889926976777339574986574778535647229758977986794836852698221757848665623575623567468878329921656884984185759937698869977983658879646592957768854974728543489466582799937949955979886978988675998886596475616797877879984887947958948589456877376778955828785666629579466998776278666285554525387834966576979777965985899395389965798188579988165757326862997395445995534539882588973925477998677974694975458579585999799484557886859859998989989894545757798981899869478395996292986738979484589587688857623341875966666898965582775471653847229773695987879434946591797589659896674879756849968784944583918956997589619897695855767678957835698731398386767543979975999929549967898996699764698548687974742224897667959878896567397333999388744472958874995348726949369879389959422665896637976777288989595288276868758456324359217638877655874867579898724686564268799668995962649486868997268578359975787697946988442887568652878876674759924159644296229477429628727465792758649396757998447679389425947969269833744597932737578987839387878998617938539585694557678673256589491798899946384869844565675488593823785979385798283949997967749567425957937968859898866868749367657799777677398889778768777999875487769577957828646785697967467795666198845783546389889796489675885876952986532122875881719658994994993278688734398488794762948797788855189543957657548288539295886938939893364294885688759628559889628978852357647692988857151884448683468874986939898598763756856154785968869959465495288673549256956935558947284542968599964274927643869549998977645448989769836898135999468868367937368159966768964989799898642557499453581796792788989867515989869998868874794736379636778326476654737499847164657487879789663494667698315752685999278466359868815663879847217895997378835967789988844848898732474787687865489348696694778897977855759322765966899945967868984888752588488988997662693859848967687849756988988727556685459587436898914846889567889785796926599437997739668437969576968894482975689286782786677762175738985892272246967295966887894779248771779797966997579649996875949937687899917689553695838366949471645958967879944785244874426929933766669348965824481697537174455286797349344386848994984697448488215838972235964399472326456648998632754447559483577795658879869577989483993666869759737789897658857114947876529664929743936658884898772994799767968496342188759798685254875598877346225639398773796547674798799578619898855388968978246763475731967766959889438117775763969386579755468364771926973882659779736699689853779926876918847365698997488847119995988477785998575758495897497764953977159495927886477979378852696922839488774447524765593677859577588418459735989485997776884444567154749439968664458494935758476358483769644895762725959941755746849995532862265289287356999742879944691827889686659679489954965296886754968378733879797868738769748379697799537298966799668687455838938926951483797692974312498796998866835752277497267589481747525985745579684943977548339628989834497442894942579956679947959437266835686693595779986815595588936388484275967356899274272783249635865354449918494554686454788469663645886469939287985677594653868955885949767689687575857993858391387385254889424365494598645887188787758894855567368494686964499724346197685498896957468994559867862758879689597892925871737698474397587986788863943578759383237495753991648697888689871458449997795913879998388644676977687886974796389845699253884668696778635674478699797684768368999947633961795657256699987993688939886443739667168232939465749887235583895398962398489837299843598667664995484729562467828712685693996657548362635899697157638598887437978779769868789673395784969514678336685949587925522567384368139567599887568167589538873967929999445149769996681854427577717985956658665875885735595673678773872639445989449894696423624967698989598797778297316843838857898868996685461775567987799149974968945976788998889677569587879869967898574778989396379768937679429927275788989978875874655288786458778467689445952754965594393494989249777825834698199359842728825189679948597854743927397266388665646988582733581887779578969568768989998865459533563957989974677679686897648288356998988859776888799668639699753675874437369448937987896675172479369289978942867889558382775665886564658846986795852773779859165577864995683829993496893669185669337988885944787872895415859584964936837726768674853626585484459489897393588749866446978896887556698788986643198779659367957875988624377585779989726445457898847688969759895937859397798275779847278756825148792893934999652957852669678683639796476113433993891766689257458329496789962788556786794786934643947563556859774957588278964795747858728261469386345757388985193279886865757689563288978786387551362397699484439999594589895857688397482747487479668878967854586948785476863695496528517979766878569875879767589728287877969294597979998755678484498964676469536635785867689847898873886288574573158699587456863417165583624376214555566878358883826795322857724936547988953787957955348823927676764558969615894935445777628889766869995679259486993394438697934366594769794624898785836929645675987874559891795287976683683851768829593494795621929475583789529576649797879895579956469659748656565867583418777727749555671268989689745686887569827768449683844584558658659776466459696378589796676967495754295596685892778768848655779967628859992996797876477895678869439495898547784443873722893785537598442579987778917864845349793947988872888428748493475459769483978989497385386475675969788569573443674985594458855355477548842872359626993975864918335557929887394769959127227945578893955878933269774836199894998248697939789998675598947984245768396754984828263778948969487357999597785585498995889523869698637188178597288889783954656757868529226983798743649679875726939699998998783753299543672684568479146378796797976456777984898798994858974965567498952898997544782857247882974999279598454458726746826778388599761847999788873555325569766559794799995846639968775495886634568965384973658973678255638358495767897944293776559661969485398578936975869269498647358386976598837553978882477579879786699949967666199666686457649486699357964481469375843268976654248799937686196623897875678579983669258834898835959849658497777988846969728784999898494789683962879745379976673874888577996692568969899697953395169455954687857974565666588794295978736577966783766937572584826524694572766693437768876857955898744994866988588685847348968877741679374968598855191969587638846259716379889629998518849758573466952878387478996978576778693946958785587968475687961799886667797484773878665797598629842976733888978658576367762815579681456682759738799666989993992767755879726859934927235368869445993295768772648273759675158253969598967849931487881894857159159899679793949692637476716655681959662387657894561558985642725568747993897899798344876977567775896879198833745539467996997767499868742478977999788957574799898969562679998646959939854748854158777755756779677294785277592923499389866997598897659954765838437658598598899963742877956498527869568798963435546999976877563877498878476553676431998678749794683477973818454446984982998887896889988688397459384451955584879529776329654757269988672274129965959735299966558367995778939626353489949788937797995926993889177956619787736968394749466945665985299187886996666578776796659718676653899699568419819574899677553387972148999866499866597697593576989786365599764999938979979574566655599956795924779774446548549793448777958786989598422499792868959978347687268577977428587583945854483635887864558652549888767584875635269778727759586979589898887769795982277978288789988955796739877189878167865858477995924972367389956998779745276898577979987997694863468784836966889839669871895866854585769777985679667499588597968757886965769275576299915993386486748849877947626878874636799137486216853897476399396599534975598999167999287959657792597996768873984639882779875798938128989627978353574747683479778889726778377299825749389869993954857428877348433739895798666974866858978992534877887478876875352586757988648896799395949766578875832918869979554866848844948931999577577811935579989758896597979797446782766298335979575689463681378889919979687468781999699678587788933895789899998885967358785296892896664723848963835498968566956968867745272464585879485477251888385566455957788991778859938656799488496697879958744959435764568751797954384549853249585588779632787866455376567579997946576137749984389856982988155979779399786996489747974975746759786383834894969484267927918999568778877855748766548685877894368286399998885894839984865937389771956798989553285956463869194876827885686899769868674973579599597967453586857668345888764277962994899976368281846755699875535893737635963679944613666885725815816682978425689498858799289998876769378597957746774599996957379889195957879953749769665769799637419869365498687966927175173351749983686356583984279467592996468861856739987899447636928787378781496388386853995635478738577874367616627973699782697276157364854859755874265265787582873469878681999989747555798973924796828237988468865377169485946795898888649787767369863946787874578496883678256389763963958897763589816699759954948983389665699888477956794679479276755664719528648788889684481675389689725349854761189789539955398765955854197364979664997699799797968575383887477636846427674715877644793695997264654859395686957564875796668469386786388969289918685559783897716473329536398898793248647696984954386979988796769846259749735975868849996978885959179597685953595627983869914846229788788658799949828849969956782333996987736669385955896699739967887967465476888566563668788889947995143562883263665568899681947438885899942577197987289599449969696439997969979974957695969345628987796836537835637548559631296937534669796812969745499465667336866937898959734899452849868648759764759659568447715468447774648814856867969943674957898433459581588299535987989868958918646617977447863696629661149676555879861977773829978586897779986676967474967287598496929876967759486919893924665988774856779693949996534799983559899846569779396398975845789543974331987919938547967559635488679197699359549871595678775489455396974897557845867479619957686552318993998776978992829559776269527257567298983737759287423248688495829418484878852759379789766989749326693285975394399279669911657727969648824949995657886941849996585986566877286386689988388896359568799728938865859869779677795664359993794788652395834386738559897857939574166595865769843599982627297797875946798483847389699667635929798988381777976689698587399779593878976356842859587576727748259835249889989984668995577848395453995654968639987778476889877349566866968794476488665499619747369367697433484837899758964474788686887768257745689658696872787918699563489758866796846851376938457958614599556478675649959689665991896919985359389464648895788426667377368971797828751753689729858367998657898883155795874466858797538799599727565728966698489988459696889439986859599757158957379885963646992478564521589522499799857443968726265876665997763497561799648257876998249857877646865468578579586733886898379986369553578785959567867987987864949556772644968478664375999964899764189799813669777775991366697769197776829973359248981765566986988783999766297795189968534898722859857698982864825657855499573983983131657155818758789945999765729786716358817951689599897742544866949543675762865782895857598777979988557525548998777899364787693984597686259823988599887724654788756692489758479794798938388137599429849572786789776859966755989977875756933599876989317346368597577473839575897558873935921544667734733365663758324666258244787727717627477966547988944781569694467488879869785962731993848997398991974388696988553395998588568584885559757774357977187419679886383854424926967888657657374331579584999858379885534197968467642876214397236649992879147752746959685776888833969588796826665989878945849224969691989436264718699819946697976628866838549935768444593477585339929655265346779948667653969767973178768475443494527679858886385776683785879792133885899375567485496577999986646885668995368885959684396879971648673724479438758522864566774866838936599793499818558359679779765487147965684889668495468786233685877575198795545866933391941855975568787965976679972466922896695968785999155414456374287844883563987799978579739898998989478989717478747296865964597817968995797973799849449966674779876444499958888898687824764956398622837786599588776769959789634868992675496564658596939899469768745566743379579645849548899278869747745952592659878879633885947765968626847394797247489269744979653589638559946668942496417857569468558946873435885786488572441712874785593868876698849967855254924346974966633295982784579859899947533557945849278677159837868856167886798969676989874699375936662497467487943797255954446834661295892734554477655783959658799797463653675995669577869384993799847888674596347798995757567178791388898798848872565443589587398787287551287887898879989899579969756945325989475778799595896454979872629835474657753248576762797858797945978949633479998989979594775733946666333491989571899238888689739969855658468983656776479699953787898966896888998597864988389285857888898647697839966689467546765416889783266789617584664899859789888664979692695968863969339984918889486679294886955748397269989585659469296439939987426836713973898685777974957275539768997849659835755933389987798566786957896977473796926753558369925888464585442334839964827499948357799143467962784667697697874655484864614637383233541977785646698697934258785918489397465978768679948397979778688595589652287595955457968879388999437882959597399948728919284985556599975885867835395976485477598566526589998895894994987476471375548317966839767463639877756537185345289888681379967333883486779839794596598889898767838847986415876732646854979296765358773845725855537835947277888595976353357895364667168559363445999754747298654448849986866349867491848528438852192477887977858976695588955188679879585618697338958694757986897887975888576355594228863968678545518766759879789498329832355877836628864197693687776892657334513947353439795459899978748763564985787459549953264868736437668665687977799693868895995528684445399848249997487995669898685749987149789289991767131897597976898767959789978566897985848349457886599537652729899227769579989468661599295899828776373479696557547799891793688758478328769564597568693948859279976995673659997572936856465455378668687659985731684787739625478858986674329797748899729658578671958833885819474896948673686654698954547672389877964626388896893984897934997463155569989997875995996839769983786195643785979885366119858253399476397797377754889758964782759992897564915998736499839587998797997554859753789948649882564687497744851889686546643696867785482889569779967996987249843898485999677588838558978474397588985981974924285584939784957428488919752749954278486554898454742995928566964528569874656752999745872519528794694869788657893826767771912948787327398993475954897566769999873597545413689655688459987627631855449882135738786745461887679787911595675739836369686979358388546756987976946969378953435897695893493688678399655767952594387895753984529948739174828647956468696576489288698433844765834769297468861569544723778129995988868573879369669968973484484699998393926619897469733488639456858848886788993998975889699278857999948853555769568683986893987999888865468847714944989778454235737758879658929819727545766847687849446576756865934599879589718556877766888665347878674296869557856925538728887798588965876538969286883587982615298867864999589566736746668759667847797957559278445898469686956557999459564749798968768269383785848579759985279358779633857642767857888667959144999478955793798999448255977975548996275886668928366578695748787782137851895492888944697526849764598789319689978737477645499658857199989588965579875934894854629888867844676282997597693133678575889938789486599379878982974795896888399984963118946944774657749549788872869661783379871876241637689877896794798283415774636759943676438766836492775668584695557858896495599926962478863942977578798955747389857179649859918669689739899697794943559988776798967894769375697736888834766955568789988999568129989992387789958787956358858887443367888599944799852757997276579979879775254796875383198398797969776597598569942978799381518359879887576951784893677871676988874697389999497966684589889977533886889737898598357733485979687796258837813639976928553882993595667958879579949698183847466846665779688443442393779357888389473954894244381627589954479366888477988937654987719677675656886568598856297957793889957978776466998839491995792978592834216788876718885789757584584767665968746798999538664998959584879764957456999848687442296242348943873784589999358882857296878479296883978345858685719764834972985633675966767269987729717349268699898116891689286566623359968748439648476579666644434886884379789969279463736898498875179576668576299544522489878585437947888977578766373566482737334573894966648613579939616456889986983638895967377886468867949698186645994698736996496657677883837697715976662786683176943264994725659862959484895588655978889785486797645637624789667642849189967499699719866959896688777969762988742984579486796478996816875835776377763867995518816778568397479915888469819935892768991486436539965528666575657588869762498886793657998699755983648787988792762364771762364979947872479688789896786865789857615796285682798943875989892567288489437736593976677883799979988962679431926738826381699372867453591778943757759856992626897348877947748947463619449889296577659296945988587968867869588669835979986766488648759951265774449359496477642694427895637775489697513558695656659874937487688771479356796697662868949934438893197878748437949849261862597573495746875885687628797299983938957716938797959987576287772969888885497482528553995346454984579667414675896658948389396835992948587737897778769974247657999994473747399559849994854959485496395655895784536738455568638759897579894583779697997697578795369861889396672867399796688888987775272257985989468736848996954657835872417489843768767585945779647981498988588543754278345972437486868354545464949388748977787947485882995584998837689945836777867952449987968666657923365255499768756475679296898866876899484688327877776877566849933857889179796647543767777555855979843898858995584643677425497865788239896297495984593996289764367323159565889746598194998367838885646879797468895448796577937278993577359999787833982699447267835256375659926854694485977978774899492779885598234749937656889388688839999991588842699165177967979879887737468965889752849669785592826985535996997694927728955916189687417947964529595869789877459389997896688725577798927424634715684772989679633497799895427898944559898747893678638845569977645677998826953566886948799286699867667143449569488894359788862298785697994884658568389499694237847189786653896788899943469297348886879615245987788569948785899781476577385879797998618669882968696877298567946817297875771665668969477679385397748459868696387689991747549764669399768969747399549856877949993482668698575975313368178335875944857864578462787694983297789539427429859969818267482997984839467826366679466846624753499496983557849496298864384645788265344943977786657985178559898787459894453749888678875797673867976195877152329667844168886344766937388476939876689757826443579978668295858846698694394873376834176594759878454773757956169934974559668495696963499969757695563566659199777987539363577525687659945823934967438778563559742787946887878964973996524437974996945166689929748224858537488598758653797826933567833451576867539569672857849779778657687877837563356863898766862233699577956676979363445384975772239793599958885392979443891579768764799656957984869494844449477945367788894562678749946984495276776897794525852484499516389996794939874659593528856569398975868824878734399686986626653558363969677596459979667384592995579449279445765995358876387984866888848288988669773618879744649747957772377938774414846881567777859577688969297366977823384861969999847488486587457459192467984798992789884677696633288669973425894778396159768346737699618456782699884859635594596977215379983916543695927299988793897586749995628467148498112186668493747459959539872598899386867547696695662685869956588883949887792396568439467216975794684399883612687773872878887263555686594979323968499663876984986285666765398993439314566887788988579968589957967899947796588477983884436887657363988559478888357892934981578992295795795533482579545896292249899878299938767879425455778495736486828734366258926459799655951598783779741924866398732329888578878596397997367894779713548385148676625486994676535377375847978547848735969868679678542956918467723648976997688523689835982554974793694968738498986991948979419298277875669589547399793979527999576793857998885969736499797929986676925599789798143955423746965684665395948468836753758937796762876236981349946848896157519649458556779183686689794977958255236997664667999284476995374693684778449297451998778487654647699977689919282814745619568459179887774799777868782774599999887696657629888579877567999962666988829694486867556283958569934622768868885749769539937984694789273357824667985926989376999226598839882994938478736569686796557897798126938849589586386438649715784886733884985269941899637646981879759568946397978825759979577435179488517598878679415459959459722849879971588999689977492543491994889876588846888467776787626989987769838945836654973719955897989758352697886796857739979468656939268777754496781486468869966854261595689796939215546481696796499564794866223626755827967952789878948589743994462482871721945216996369695959959436538594498996945444854952968965851665879973499943858945667995846757988868576897879732749868761774987769485998488968992895828674899583848795634864978812349894635286169794984994345544965298449899499588268789499994997834359299579823699585498263531767275696637968747829968877747688689355847869949785768189778199227869927338457755636577392758258579476596318876479793796676797796981945817565549997378843868754154889481696487979557994596177924754943979475549592978476669685759989919985239695197897717858776995728973374799758497748786789597976685486957969897538448676599456982959567698764677944296465597782599893988674972344794678769739447856796995763357979971999742958671389558832987746968973989986869473993562698599563616965897685679866528576844955837765576729367968899977684652848572988894594978455285799769887559395462196875686897835137776167947419996854768262877284838971669978526689978974474678863995485774775984679588584465888269177566999279886859877887788247554899772659969897868698485859248695972595788785659889776867693859962868542985869899579883977986974745779996219444915757772855775884586898397269836743928985218439672573226998442634767458786448999969957831568455754375696734885438815865578875998594784347884875976847969662679948396874798777898952936386598395388898464996989963745994679849773856754928629444384798999793956683697482666987779847532772677646878295487838565786928894699489859967288696782988974885886897938694358268849498399948943639859754719754297792999578715598458859734719258556867889575778569566359182488687789987938464848696681386863799899968548985799939533489887653739572469886336745966579674823996284787678583345566967895452789918339474964994584469777499594385994677775988388432548387967879393589695755264795998756375193829927749596783435947986276956769869797475792289598767768899426549997958956985768758492776837698545771486782484818557898296793778944859534958989899728796773889368329778738397374289539387979477489368384555653829537868659815499956985567167538873726564886526699669737556567867995297758842565687885879367982384788497594879578969767757778798568977695769956473753674868873955925854677935168777939885645559346964289796995844894738337569788788499791389347746743884793494586444356356578965968743482584789785548277978958359859374798647823993889764672769987794629457975521987699979899626664527777577846687257789593989474425689957496868967949777899479889173657489851495599642853647997895289523555474679548763566685992849655684194855837324769879578277985966482346197979958885276942555359785599298656898978858623664356895798859196457752679989737696489489579975465774955969758966974888128847635782684269687695555637639587648526789385959869749687882477349978566598676118754387268253576743384443928365562966945725987889798656682699679648758348958662736498888947655682896579875297984395363989164987197559363963796796433985853918559975696784663543583569189576596233935795777988387287779582874886541567869734836546636797767632676896866989826599983698787897963967995978265496996519696919867896769768476499878482491896844369791592799465654838689398924465584428289569835966996287886899889686668793758616741969276739839993446798578133996995568847426297868694589698794282497888589944967948586397638277969345945167889799938451865827937596688455799545859688379477679268863455469973579795417878297896847187989875756759877996819688868398469566575969877876549779859867998684595856482689387484689478988995977922556868867398198989699556966677549989888789867886785258687679779559497429361567876189673734457479562866829889356781997455685546819367188589769979892935774341567957218549769949338961635373959523848892665596477384989576877554529686676689952935582878799286487762626638766689748892984486396469477879232998984874829863492837779678554748887987982995848296428598788956994673588849778799271987688852683498887875478217699842955968845498495474778178524947949982797545653494585585298645346766965587997864539864587397865658927969299777772659349494986897733887686341885123857679573891888974185946974488192523678729456776989738581399765888852788379768665757948734474878897662758929999483969278676998676748865788835886365998395973567989844397246688888989538718835462959998895476497974967779456981992373959798698668828998879868829826137492159768686393888286686546697587963267958883256758977483967939796269695869544776572959548866493858598454576479326743739927857576695993995553478957385585192798189967667664287838847869837379769593566983973676916683587989588892176294959658486774453949637929594965377497646747997924994588846577442116956971647899878874897759922949638956998858766889758753386178666669837699997489986166966968677729793937915579747613883647189468438564799889875898882524211848358187732229664597641799875956677776858955435927969773828876776967997667997487749579595934398786578965949488778892973926879486299968594887979958799885259749595564892678376768664277559595684588769979758783484458797788633466895624858735995985978847634669959986496679876742928956488838978883799886659945888886775865979547866895945549799848387886556892565966969953769364595698762648265817446779995312347535558848875967587999984496969584549941984553859799956719399998768889826997486589987599879989587985959689699659735362675989995852689943788856335599478479974464785983484247926882794988772654566876785836465562668242978849785349628637969325768376769975837846954261739938859263989999164663398994336798979799685658667996876659899298977878852978938989476259485967831944846747446593455991697287294755745239492912948679838796699586555845638898775377439776795694522437557665179376888687374991689676897876945934496766956838587685927359478893686228788485249281783354874777686988948883567972677928974474928768956943877943698471589887489687657499399698887998772986892987745575497886683999417795983259289332684967583875869962777969999958767695781369766585796419844765675682934979924938324974551838876899985893463785992888446569978865973849889479489997868763878841945975872583559995238182968473298999586846388486579567968772976597469946568684877977876842428855869784362177357459291437958359488957547542558811877873696777527624748556377755699899767676968685878578988387892697459197584738874853777969883774179475959879838827535177881568422998449593598496897944486775996958746789894359872759293365783537899688797473274777799479787937945964895896291778912634976199388777957848399695585578771586676673816868936926948496795475748596427964885799559755834848888635969385597959885147498793692859787693894475679777875795442989688299981248796888583887596241384684726787985798797279655659863576699977879545757983746878348973879946944929653796427838686479679947999545918787889872899559524955767697373999788589677926943288587459459889227876998667865989276973768567999896988687717246857774998986563972996489868952872997543578478956376595599368788666676849645299582878595357965599897977852416646997984298987756546979566579793865938546437363775859686859546485737486988459657868999755768871549955775438896974676977933845877497146548295989536597698463988848665957383344457211923768531772569253959857794484586668787391777938674487785595863575968233899944997939334879934879979368827885299357755797529998949489659779752458197955768459597849699685967681688598588777595674674388642688597929754527254674416328495697864787999951966786255639745879999967758576874998756888575967578986696978598642463981358298189479566756657678549124938974868797574664649947563659898875489955229868874792966994663986427284851124765975885966738563898839899778583189499879782319677779898977625984579844689635587979949663988688299647758965795568389669888689663292872784662956886266988568969789849423796369798587568848399215748495579494778419999975246899559869572526868996839992119923836979899395789637795762566798949528556947897982984366967759664596342898898789968468876588847846398756778933885979762969687688516969887876461549966482978758449887898469786974775184957284923529458962582583666386876983713543889997789865933878592751848996676712847775974963722968955944558347626769716797592356799787773789884299884346996581789389638684298773767989953184679365964979598399158936819464879948988656674599537595299677775756772696857868571694496867779495787948639716587989546839989898289799168988868346879174765996448266956549522995597978968176555799448879786789725588667287651788417756393926948765373755893591921391529686858399647877684152769877348957966888765896838738969839989369778268898867495952988265779677535948634658892756662938919219565868691477247299623978277999986757988881666387554447427294689558279992892977867787899875665497529898499533674398997437787667699528893464735687847595576889699799555887888888566496573692998774937795137929895947288269914713282767597347851288474689438866985676699888996979684917596568677597899857785444766764688913546581213849849478267854975779357137968794289598866579678143439279396878886783858696968655833484764574796628892977259967964563466867628956599195625967996939869744896739616895495497785757878982835685456966782414946697785351797426987693454573987415998435925838795599873443844891868745492859978938198757837943664967977684386988987836125963998465778899699825765879369641998668884597579988647794659997888699874778986659795956493899777957789859882994698387867965787699936459785648693765795867686548999936959977994835877876692697884643855268389296794636785587689789678445594654489347876928976398967247573587557879825999788876998884589796859425498885395986476999298296467899939193592745966825897787951963925789849213729697799822773785958698186946717884628274675614916959625783849374596868834989489779755558985786976748646298787854896796679729857978455843563767861598497638456378691385574865958955698853612376263817813815176796885293832586951876784489198965387499978696683839729756228979888786696997488689443894244743792886583413459985688581898487559399969919629292417888897979394999488587344482889573544475364885644582366767669896274868425533595938976497335998995259593258859473877967699833669787635766886968977834885996558372968975649789688566938796966754966469877698872338376929869574977565994677989948988899496368639578894956276856679868719976979546967775534998877835884368716949277738438394389854886665694895799955966625885595978591749917559796885829575966973558979837796579388698187967476586674896988768283993484858518796386888788969789735524778989457698922855758797396464533798575139185778836835467726277979936537888498976375699748676299634989689599965878585791237259669647857976784231686996675548836664337796859767576857748992855596975999782946795238846949644896969958785947428938586886978958796199976774485444673281774999696675685468937938767877459946399594557595587772917796996679553818899969793789478479582547889999679965415795699698338874787329863867565886652588436939589769959386461846979895565385576674787829974658785866849569988776984884664666984344681886768567748889765799697776825635959678588493967667949769448986789438639778772819387877853636538659168579798425585699394379158776776968854288994899516999458556468997788487844764869976561667428986956999867476885688999978464875194899659878598633889769652198599476687464856276782889666755558689786938817869957491895876726998395762886979978929995863665623968825955786567688713896972776868687938897858898977623889893975856987499696569374437446799687565327788637756528958399688788679689598655776569793336599827479992564328896988785782793432958539368396963539176747568218449983889479262997659398867898379382865636594747543776163788669389948993772886246396897647884868549588799876348663227919977476689939869785797954935435973977369838746786875539986939598618876792765985287962997883969946859585859794599876648499799775279483965786859973988885133627757967353598878876784793948789997128799238787946895778835269253884944652765736899878724979925475425876578997988347779562924576939789445483448659693696266356676958497384585565999847545993564386865474649687999551667942675769726997978577625578887566986666474855977228956562888345494773659459869876463963833569989886957668642969995896756186834989888788485927589582698374188893797658673687163894645955674177773379467998567997885963174669998688987666956652296897653935862397886775769797748838646473689978996557869559983798739188299696186994688858595795462688892824485958675677954757998557985586158532685938924525589569836334789992983888883549249954867879877889186799997686988956557575798799893367886887767459854274884398868837897865797989658765687389998696977897485361797616493984996794588798745998377356549859585922985872778352557351658949874269993757867969789921988798855767785529894587435858699867819326999468937799696346859865765627878436957638757699998542872896928572875872681155724747777868595568944967935717769787345746983389388672577574468499633578857995968564636688998497786674539775988581588888959395853657958589376289686132698992163568845299298768983679788889777972738586799892874898798685789265975665587592999493788564759757887494679955314787794989366896583337376456469856986378985566896274886588799576868966446594993968558955876889764297975847379768274656782997998847892676599595958937689256335867629362192695562659877869869899989778594797815699149964778959864999938994785985896838235492767968631888587395757868784764643574768374668923486885747859757429879886596999985589277688987988869898453788716889778943335877683778829998839799159938763586459897745649689879484564498757699295599966877943247497987958863869784377726955985628766399399196969677886665348778926539887457869539773834497899633946962339866698299949577666686849299873354725893283646975565698587844968987884837367817419888798663879678998529667587786392697966458746777523897964788298177493776935957699929653199644558168562458188126736867897988787439889785769965782259447798576997585795877365857248134766395174878275776585773375859746196854986736288998975698996987944699865786586495959246995847658599896745164382957345589264989444878335659567557953684828975779979777756857567937564249684648686676563798877777688567254398664472298764738976636293677555865935362878488652288725899399855543693798867459527967998858877688476573966847787832724166749385444998884959799945969686997848667957446483541929789593536397895862742388763949687997779572846834983773992463699739876757938769844576969566859783917356319925886837952999886685486467828959765858755133896886996792898563979743
87637967994489748491795793795545837665559939476366832475392277585778895474997365579997271974564829619376669978942842886797877898688577966679557265372465677899627793795737968799917769199475159266789251736577755924898769324464596698992827734569637878764758772169352424976652576971727993543696979979985267689372697873979646966882567151643695974857326587893199998637996848989976797538724546829966984918958699877457197976687956868949677265925554836687635721897185888894848779546767453896995786876845735854848857659888654849599499887388555935677764961798358599759884288979889798399663886899558388947597759897966694926639886947918778954795963585788477977855985524999899668654965939839845849588896454785976966748417777765859583268768996785458864678845695969945445268857598467969818729999856736991388343988768975336995519972887728538865589697965768775663184584458577847659648296696474929432755989599689135776989999846588898755485964936329619686568979979686856967636957897869775545882757772926489543769686558928875985673679779694757472998275754897596558883992767879799649527997835897849666988698659898895866935746565481468985969752597796975839588697557137862749589628257619295578836299846792855688689684993978613478763397749551399295745593948846582915966695486924475399748789926194598276775979486749343959979948575888898649917844749699898837299679278988593979968991879489165597479843488549879792891577599867695795866775996427291886899492878393677841566894956756789668373367528783595825789745771688999746943156956889573883968698756596698553946586794566955945697387889539899985955869442695984956994656779899865318876949244855898437776995875823684237588934366729387979762897987668576576329235874878966584587792477945568989798377585947648699976382149656732596548984797573542994999669779853756694727656989764959695457877355657874168338839379536699649249469788846594574887339886565898933673543692746796438986636686879899738993279877976958873893986528783744895859846764747578818994548863868436193198887461873927725566946996666199965674264881834332469298974998946284379769922997629358583959945921946848548759744567627544747454828756869888948177368836999797993792898267298948757259777374357458367587996687383919869847949878667955799985432637789649496488641798868835797446446978654682296799665798673789583778976476686966795752899998488297558258793538677959458189997944927548527389737254597352357875978567793799796393946559778882487374784633398784798985796766746456739638357437892756997979568737935466575383896794982847387278468977972869593586337495788899933434886828652888356449399348857678648264144697799258696899577797333845898696893857474786877669758597866366894566987158484968682743134997482899696676597674649777944789776499559737124988583512922167796894987499969687225877149668146966746488788859887997869959329979687872988697786996856676986495952857698697797949877428835579785899295797883839569877672658699936874966841658861493558979678864598585379778924597686787327519689579468849849794448776884368595599688598632669478959688979996543999864686934979195796775398878975585957596899375647976252884842644643795229999779187664967499958559185449666479837894664236597785685897769834889934849798251987489437367445559869894719891869648732325529899682786844919797698869476973542987774825478773387528473357728976984875741878896966656327293598873489648674519787692952798638892797889848535899476798968671969687451642788938778898887996367747895958667831969667873977552988937353565599167876254858556376858799895979997578974677532519655758859557969233389642867952757997949794998395499787465789334679736789699356723989844958668286999498738523899789971549298969788649997499764874587369787658459899859997769788657563941722678538878958488379538567628953571556396519869828598953373978789958423943765678226919587944997797789935337996688567493739994974225297848787949865998572867853659874767698368688945263367962987375565798696565798586879897754754855959767586467925947286274949848666549787614739735857549998625776455559461955575589679937345356969378768967782748799988473765598877261757984569778763899769943757668859859987887857183858929579777965663892989157559974572996925579757418465647797737649737686498845326882959774796834458893756533944966688834136987954859694592744526989889978757356495868999823738845951126794848484664687726875876959452916978267696436337498484984964969975789889787649498877739499958942998364789362676569227799969789594657978899293238855551899658798989689746298579947999878997347965359384998423782549398959419457979879118798349573758727662784566538682884814287829898567177925674785837897992985356955996899458258875648569626656545846979745686989757862857849297489769297795872648987822649191784729943784184993962998825964995957755948838269747383833788527483591677269627398985726691854788419993669717453696896497857547874996694246972998286389887558777617656549649533954677878579489479621245748887986584886676566515668475967899189489779566538798472647683794576359679796848147885699947774388729595359742545442575767976963546278986996495766658545493249755463182837976928197887476496598889728443738872766658936772674669575995759494946877864979879478617986425896285939562855477536999996978369912679439688398785636937489736266698698988199989746889188699979577779187947955822787898551854781352568376897865972454562934668458679578838777383598381777768528899699876287868536578588953248883889813559399979282387688338366972667587174977894896794959775996378788351596799957997346765979864977263823556698827782623722295279958988557887998977782198648889673656563485785914968987249998795734882981874668425527787599762957245959747878848458648794592959773867349692872569462595597867467788383289797996857883699399997995949567834698788999646637149697746375976528573966899572486516991699839275367586133899959667133384788889653798856552738779447557439678835255825989497886737989579554688796758866587691786715719979437895952973299888778638299386958858938485376267756897749836946657892259842689669747856554696766659795969785826997844627598775879987898973874837515688898864825384397956282486646598743817358468847726688477869897665977677994816646645865699655787784819949765558492369876553199878827965828787333559896723574746349648857978765857654866925441599895979399984884791864583884563658693769389988298787986974727578935976179864635878436698278459767614745238779533355225887979695686479687769147976798878657779798933763939864995977143473766589997877954688789852996629977859879496999894978826796999438682556468448567768676473475888559985347877514199859715789656797579863589577777597679779769778579986466469869767939663879384979794965689677279498965368832698632553889232769579587873898737659384898399978799388979887695676992623899663689886993842759458788699888713397979741796968598679776596943429277967698997977853837493587599999794982732598279487559947533827995956589867599699619378656578749467672679885158889684837972957994496855668728641758697586435899874898997365895883198948963727676456699793899389767472988563658339598746589665439638795879355778927827888437667884359688996489679557897698568677883972764993956399991695983773336678779376556839536828689487552941889458877743751399862957339743888869975697635398915895135718699686984675666381927779589843659677795597964378751878882794762959936957859763856498884756665979287797845837623478568599772589698393338999943648544486477748873959968637929898967346847475747797979449754789268797974684844816585698688986968251968549567987357848383167989971675178773436976887866915796888487269876949586767964944179677742894796798428982946652345688889955888899399856796389847973538384963747376989949787982884888494874625667297389399598889882697987298888652599543678476299669982719879493398729327249367293789973889759598258272877858559668656959869868749549698598564897939179369857272956959636399595657747646949984191878852676979712364472587965769966892856375399579569396888549848758987469665394365738329578697573858714577677567669841479957969138793615984848749667688591736459798777242796884946888583959353915697949967559368952473489797996893984567673676757937885989138935791888696855859998989716525949659687499299459785689485887886787659169298987355977797261696298628675235739769738688768794997998454693979772381594378869399796788864939764198675893674795687931989659887293969849792988369837569768659685686969869796557685796779959569478487767883484586865692679699779346559677519669795974569958458592137876387951999964935758272288986878448185954786593347975988859564847559483298897614568468189388695563825956889967597957199969949634579993965886837416397785579973464529861747592999457485829612659948577447279888546977657283733899454494396535887463525279838779644685967553535944384888995277172819498459956789679328856759964622365959797564933369874939969653944847946988485686927256889373892894283329894868536993581953575247737641457438794239749679839489948645898498769894769266989697947937514651687969799667964488596449664599667728882487792287574221726913787489994323573584398881569498177559687889195573687949938487848496659188485995783583597357672928742897897597877566279748557674935548693673747857419778586618766664592869768787687999181564895568259858787943599774537797897986568727141969788999298596498675823968666988283829589591866564196884759695985897687492949957538588787399737898367486597799864627684678934958773887541563587779967548949464993953965675728695869575759979976989695577882888495958529466968594857868777479744695778698769797911557581233978987699897596694647766518349558929588495564897689997997565889977954743429462924798899429497681968943444937524994791797689917877738636799994898896886237748927249824685998368438788679881699269866777679897963463853577988826847898935288667359451889377973283886862769458858577559985527997398586939392979849785774288999138214696786879786375766679266366298488995489389385284568897947699293747825183498595999988688895559966878289846897369683797982949983321888855665629697996976499977996989539924981676278899368488999489349685693354999968767673798668769946955966367455873967455236999986762659859795928348799598913536675857576742798745897593249351599737768789775989619689798373888653949752778469297898657997757498659588969936969574699892735886516598699655996875329737866579664341948985878876862954496777695957989577668689979825799444455998888616776794421346998859645778896586769516929979677779159976582465688399273476678299764837696792663899297928834569784347658854316995899559369777751377899278663378882593826534339463896643872757961444983399988628683947877696781299937785948995898888964645848786756189766868947593447788897695487788747874986994989875398985979486656986446893369889967666497798346798876689292562356938888879459438443685359639859691755387928469927593488525794738464855499432975197579478954866691973895438659979825593784274937778656999487865947995874979589898471949929697359488838795295692935589968693386832669625466897582983975975456456767368948718895699995676896285985544797932678967587399387977788875979596893889539789738799798885365644853824876797499345678734927975187124976796979996775988998997348696259785974776849478571778498928916888769895546483632237466528686789598396789278789936693837345685859268871546275797739777535185377396298935569687727445941898698937399798967339483797859969669854587568878496967669784797631968864964638799966926456346844871957696689873958738985394556375588768789888937869776974484943479856545987557457436959378863869856997765746988885789889838646748848688373748892948655775795678677849826862692916389632586399787738869794858898827869969494389995596888988983738655979739516781986778798229745824776892661597893378947955842798359876454918681771787484392925379849689977964657856988965149983813896469346746456658895686767989815948437768475951977568956687539769779619878666589977694838397799366746845659839598758377655857687558356476995998963693975795737979994636985696886858685976674795697175458782582357662765639458147638476435727483396994937895778848897478817742972784842576299997553838578979739695938893983266359593464697554669939759324474456787388649272884779574654772786964577368394528657964939795857598576849968898975968756997619889969855739575966188858876387643866628597879972366936839999767767989586677439368856469289928876979543679193875447484944972999548594992289378936988888999988759735452658497472998696598565668749316898797783767958793866367168768565534597648195997778987845375955969687697397644987866938989867859556558958469878797287798276554988745779889325455579479992839689884612464379678863785128999778979684532936827189942637748469187373993866577898997279689899988596495779959325556579467944993327875993763355796858693175719896779995893891548869448878969288783998895883968495989795787683847488968899768848698745875553496677849676758489978758777742777336868288851227565975595775536946978871499388965974289698998443989345959778868686888655264665264689898956948797534678446892888676469996989685754945379877769829979894984467991979764535966989265928898814583789849698981785964777569776758398993649457499984167556918527478239398788899927676738399448888383984984639885589773885235681572855877289626745778996573975847666959589478727767684998416885485797653857479999659779558482696467997899795256987868764987946258696959822946997897877653671757899968895987858598833842989896988378535327595487848954589778984698867999484931759944694999795895957848946769526235972559859684694864499296256948496429898965655366494772597499589638535781896656574543766298375488574788829648837975727591896877887679279887899579679751439949996499363872429439359979631797665597447787682856769499856898749885547974848868899797469987789892788999786832637895458385398596799869398979985495555468197999473858597395546288799678553467868657296423358476658575787369699997978574899526885849426998796768452958967676375849694557819737563815689887698859555687873365789326657598253934886589679847459378778577287799887458446968858948843756995697897795974658859869418982988652983557438699864879546888956576817384784189848266588718332287889977683535686979851685825859696185234635937982988485388588755694973856863391973779946926631599788876782367797989579229385869798866866778855898248428779498785555864384674788828566767429767179269859878357266926747557577846698989696944689972982729848935699799399766547895888865785279855473686658484978763984698679778798846595751847851939697647276868978887878788556921857798866388184999559989785588645895999386954982928754275646889688969385388397615689863776396699495585956686785483942955787476755387857478795645948919687878639877728322978498169566692989958676899937697886795657699281739886989194919986682591552341988475968955636335929185987946929452979642587589586759739869859491875794988898279394697776584996864996186765897636899745488966184869598743525485799549677796998728623863993869667995587755885375889589784866964768595978997358697539568978555697652499296734944997832376592678785354794583984789984744975785773616978958557728966365318826623697745582977999769268997786879558698454798847924729788298666569769998925757897859295933927437819394896369999499878589996696659587494487623636981856174888678317976726998841636888899488297795976346193734948697929449613869651387879689647395999493667875758636578798659626464959456847571558927788387556878489894498775686853886433745927788955774963947599358258446955198689395994772395456349887738959979892964759984678964589868165444844969396786949757887585883592479689724945398688343668187469797214288485965759779469273897587375983484983889568792628767875671576977885958887985458815965767186649579494889564959559889689795997689593996654577938836139645737596379828889738329878749876599946145758998358989786758378799363918693734694981354995798599975925839978482338552853795758364378786468846646874496957556666678591296687155664177999457588888895846798896294446798363757653665366686859268264776635914397399693528564875697835416887527329746987665597966765796753399488869796855771883428485753926665996495998686779387359869646597779479978654883479958793987648733942757457589787774866626427971892698997567473736991268796439496299968939683487481449975587595859185798862489776779653471943849857546731655582589674736568758673824578415969689876589996578574752899467399569357987557647638876979379392748646696749749669453495243778375337956983958885469496295758367953644847323285794755678996898824984345738596665897862999597874591637937567549596586768967298819917632799885533987679649289816766678936646367783997775599846986694484686769685998785678967783987748868965853694369734968853946867985999867999989469427885785794396777945365587797999653356835455882467466574685758769675731579649558587499834198434991695844847948938868848945578888888749598557655994699979749365988479987153473655999987276987586875656649896977197389639769864795795823668627798978819655673873655549797978833859886567248998596837974565557479657554975199776389859777857968368497428677996531268875974798925924399385646754869857386886929696799951599767978897996756787965938498838761695573785583788587966699766784869446368989978747857895985889327738759522985899999998567344865955464294777997666789249262385969829245918757466869728958869687893448638853179664494965259396928856577665889995139579333948589646467983659978292976989466274783448764868923741899599793876965853889668978965367896874874769698967828785988899788246495693466635788475438474946388697896679882583828778378943496997526557574768174992458849959985593889997586167787988437286726386386798762968758658839737367434896649758665547789484688988463939984668769277985725797944348627499499499664776375916583677886959964878195965675556483887796475667989757586897585778696488674925361858986793675473755766689619889994559485678888896798489593484194959997984688489597229786495924949875795949898955747689395797566692487844974677976678385993636567385864882267457855883998946486487397672177294428544948948999684676444556676594699697482573669928572499779898593889542379887549975999756461785297679926694668665165553896792881948469478447668568589866788747692879844586452633667397966265168357993897847487789884598769595783439845499597139975634484462654186569996465856998889992857572896687157258957798987787819597997658869965995698346686278486698736988951868489891591954787693867768386576577557973319787897377287782446775758914797689779878148984689789454967584974997655857991767364485318584888563547692679968575999799747238585675583955749578676777694786866492849979455999823876787572475999969433898336765999947378797944418797289964555867482996459184468968989268674769688798948839959873752799797384439725859485874698818314646798869994648581489886965986815695994877349795879383939917778849739832748162975992542717869125946675384822399169464785923563472789776479884786169847894966347799967938719888798499858148979348346779899677868499642585271894233478617987169525245379766889888623494386984399668446587667584759739884499835517687266887728826899578798979949385896478855539298753779838559779987867836389819766289627778944387675729964934589597867447495539989563796955524597597995598556778729667857692479644674864699257787948269727347667585555379376897686996897947964689798633599899943463769356552687569937829669299645692524536996989895981989396576997898979579849449297342481445789299695748676695562972779779912819716883736942729527388749858986747996945774863592846588676768868839644789792454737294766378797345577996998598995956345593975994799649377692463887756998397968877659842797786636458223498599985448657948542445296943678989879357693468644868886687725843559855983523896299797628749576877458969349983827794553597759982965759899619843777789773948893726438898187588478875836863339783778663964689999997836845366877797684568789857978879667371846766994595689699864576779479588734487958568844526196587967878799355978389962489448738296948365677387298989799888694798957389918886833799259874529684567678964961842567355447598991886814657947153817779931787988789594893595673677859468757197369877646369965855727964479833988536326785977557326886958493795998678787833689795694966885784658589649876468855968596756943976687993869598615837562286983987198687989588877989456342686937846836974687764988687929988767447495387677963649533458687684685742559175655286939176973786564779764956575739787489729695598461591785992289787955783735959896893692599786989969736759838937995143989888576855167611959169445397482168496576796817497584578894445986578535525858889957977996958478956678664868759939968718624857969477798796789646786978594999768679578679796784577999849189486158788867858566693672569788778464957668982988699996636686376245546587878657684649569183566578497789996418594864796488947988642985896889868646989387288765299282869644984674996748683868785927972757368639876597586699376573982148498254284699898938897528487583595444789697884843454478798436525994586887785357984856499287825598929787564635558248679454778439874799865667391555665299863283556845988979928489874792888496458286867743487977296697974783496933779877552384876875678755636597976695879825265989894655967648885759253778469367837344828977979875698719399384394888529762968567957845499329394584769627943547969856453639774693871586589536975955669879958167577966868288362995676961599358962989439837589228587394999773688466853974567284389865889987758753697729886384842972879872899857895867598935789294856288165958297894997596698891576875498789868872387875679186825595997733878726762886478877534783955898666846499753835558936891479778864917688879947796886885652599858986974646322831971237486189884854679695598574857932699866927977995996948477637386758587779724781792596994742998777589182693866664667229886585478962988857469497769665999855947743774566387576887468937768999566738438796928446959959134876592848898396352885969479581257858866757875848787369274859838937997749648773288595957994567475489467794498999984592549343893887998659566234639887532883839825745276995878686987766982959875458982845673679475985978633989275999949187749896133347638498585948797784787969894788868945847289299588778858495899746966952973563775569585693894978453999687728943188552887893629586759824958288977666938965878889854826978595367535286767228595888386863169988838588682854893259776795917287683697879898948688954826213983986385757896868685598479767358999987657872799986678636548848929989454835954862989998756165218989489933588918765499598768914864477789687312467294879896796296684339488698249393837992554863149572787676763877746237761514722889656788874574393753576657698689479957788192888246768974978987765269588668729937165889589777668974957358288989457486995872565264864771795298674688939223955849848723997646771788984354324564489246165995697774895589956497621589966694892768799727856687378999856877544449899987969933748972888379963868672838769186818764487675837967943899968846565766865669778539928448787876488969899988391485628849784217977128377854673648348482235617918997877742897359585787589768465972558571777565369964818798922879649297895637898989345758187363562896866865977985949599363688794294547979423588379416943795972894578375488768888654661727686838849567998433576768839468784948294859299258484688413449988979794457986885773897798775985638357293455827796748889988938485328836983874581745937986486587699972653479414452699674735486884529977589995958672855569887459713895958717975846638968796464186429273735487594463567535849649789894389768682779848979187597818729762756541359239957847776844678599627234666878776933475767599387889783384976298787699798697787896556845779734182668465779973869757944194498346936585669129968797694898898589778959998978659856952699587698795878839518898896687296345629848757869759575886879485959657889555911995671566744792837992768449999378643477569577596985412995747538767469385538632888568658176835946646798787936493887454395183961986552687766877495969776759496728869447789698393546689697497959187981839396878979791736799285638385634322987775938564559547666886476231244934991975677675839953359348188166889882796587693294245894587929465988149679635765445974673469999633384976987886579598966678884939623657969267976676857548948539469869733567399999199297894146886266564527732459794989793874164788829765368577578727859592985964638359876453678897747276993466998468286287977399463779797196999974186771751962976486649627948679657966997584758879933853488967558964689561198279969949424855689942385978485871786636982386962739787389238588498489978699792958689674549973733899585988879894634889388839547785577971287784479849198739659423774819757454647545552976876639245676798991297895528697827717277567237618615676678635877965285778789788998998796656951448889394853762988662884556976915947939945754582978878389699969877868994769972918838897883997451572668899586989737339762845547843998983449676291684863667659868993488793746388778756969882894855958349735598355769364824888492959566427389867654698445569177297995268737765558987774879857677474586874366992678877894858257614966548539834784879365849454857267592377736452338697562798546799878577473532794717658786952836875976996329677579646278477996468979483889996689277799395552959799795376561667985884838778989487567696892855989939769979547976687666688988788799787745936323615958883896394399445766734599769679757968869988588693657797687742499485939776739759324779383395962892889531289554574657788438967996958595294799787359668634947889947687589984566549933552783848466458496971779779763837142679484973387826991359957743973579839784487698988358924975729598877791945835683777197445764778998879629688653959513686879789427976838998688828939599489887635337973896844826657435679859785696558968764778953144525755928662492885968594974534755698698499558288636735894497996596893327461626156547968895775677482877897254577869849975896696184495582648379336875148737766894855792999887666738887676492647958866858588684417126568365966785778993943481889448979383665883861949746895586845669288886949745675874595557967858975789918879368572994386937774697897465992997574899754278775916499868975844556289957896688662785758978224687554787983777279854265919854772377962895967554789594874447368592969869846766387437953377966797579368798489789895996777758655577766983896675786624635892974853984487854731894832976848277474799866835897658589989986967937976494553386868799498884984537677859365886586885798899777665277978363693386288795365285464588959577589419772689444246326785959597849674877686745689939295749137661858859687579683736887771739848898438478496753683981979819294549792897786838184168699837984698629555858749356576656755578493937898279494664819827786288477779975277656389199989539597938678855172768985974842375894988775499549595657798699797957632788366899895935497444459999698899997792948517699365428299994888399988882627898582367982495574625598895828176899849459276677559595893439836392876477595229584865695563672567556564583998989897699998899678578966836474395229669584999764888577597675866294765958787693556735586157534627649594987567779328685754692592529649684367799786689869338636859777588859935955745246754898153937437493767862558779244952775458556298877598768879746367548254559552787157574483653937897178696592699388781969379758839788897869696883776867888599198293485378994546188585986997769673896985779142759934898598738777857256296985425939675387456767565892474458835796695369779875475398877983997977978466824688976734699926995552659792936995394669996779994676858535673848689774885566229716594566966887998397856557517672862589924589792941555564585545439688884679789877863997628935886945926288829756775885686865998689745488357688946298359494157871696754645993959952999999691972876793994669728961987662795467959569877897571373898455385996329633995955869485947799939482436888876996864586556758789967817957699769692677555744854799869728269668677478689487938892467239488898864976268498969584897687699835557994379937689997983929674857955864969447285395286779946656436979685374456779878836595653776757557379779747588458879943561699769487984855385597696177957126948885489669569968996149757347533697949954727795867896527577473455328597789978999569793894466889797285763555734988649475497888576998889668767398724877587886835998356294684654459669669997891186924894747347659579971947899994597963777758983578955525473856856865979746369943667418879869739887679969697494914588859968787245858669187395267389773866997485599387168667697263964537898852964245686987442999293887736491325992988688787479999887726752739895873578869294922777999892446884887765774647858926479383679368377989336598976867667534777843814176849753839968989779899995359588652736449864958953996769876659697369898878869579771677687372766963637668499569488688619995679251844968969447799598569489889278738967698823199779932993776469745497665654868276448858892881359596868672959556779978879759679971497845593558578697676696493956979677786633898989587849858359785489436942759767944445984378599528238983858885377959875678925384541852379256699769947777554584899949558895928687978938677636372599557539489876939678994888588649668743591974887679489747689559692267369569858887993487948873575877399469563992969832999996615597974249889347888945478465856499822929156875556778584398398188585888728949781597898958968388329454961557871736757485496794375974328293467614774379869898465669859659968759456596569168943679449178996839584838289589175967955595887696955784989647859739878939968495347866974338999858399577331788629498487958644557385857776974978757888856479448966975394274869825388985795969234867938672839365968998662479886999968596634368799676976558822872899488837869298489549999593898879936589687758489434189784952497878233937955197432891384597817789744938692346578379869327996988817198554654984552849685194959737592948954176868863523383668579439999597254597857798899858766453396591876843578995587978438558966795495865339653875799619268774662549561959976397859957792748686973888717425576578399748259779689992487879889925976898743797573897858575391939698547539418735646976999779716172882452895395663749928469395958783769872827693763785989888329768749737787676636991497998191231895479788989991799993795862999646467876184185539979795383934474795184266344855755797975683466994199899874735858798239679877785668879458345787999586443937494389956496553546765599788395996886755587737739779673467968687361667499598428867149781329694772478599998663963866989796448859786898732953284797825698856679456989441995649491658929838869799696983257944489848725995777649389864888968678775526729868879742196979339399536829386989989783779668785959466788976847868683958987537769356988485397675675967954859961284164995695973758263195779659386558542754877652773674986786681629995565864738787798729456478997949389864572767993745774945559889883877667898396466515685569878958999411667649455788938745769388385472876478985277876876355751853797596598755668478248949444898827763794948519287972999817843362333288996984295855453798387878826897984968523849698488253953286992497778359859962959578787887545982499828851866398958746764533649468488898866911699674969794887973344981454457786987596787559646487468977775419747194486788839547878872697691557657399856794995535879989184169676598789599957799766544872286959599784575488738828696189237869537959137799739759496883833689368312338257558715834893552976579958766734757595969857948448645576923761777748766678834542997877557379594518595847599556845844563997832763918672894158998537529488827779694646848659499489876777939822324847924697759433668746938848979468545627587679766699842874875849788695992993859762239464898487516697298347793269689694921486499498898961937747994528572679666984488487884477944669696925794556268987566458147998863677479868985665485769875738463999638556478845879689943579759869598848295386662579857573694588638865651897666149499856647986545737689268757948975688787936778839759667395478915199982979469234969869989488959987979677798776794475648985946396258982998852988914768787887767939685867698987786937778528395656894979624869547298477939655945679946999887497797966873829872974697393497764474685642967786382369483647488998658727886769785735748999897983574863699964698733896727893133349788884972596478827681585697281776893992599665393628978685689537989798298437536816255163498794573944984749516985733598198767892976897999399979273673499592856781465494375794836444264986777459338976687249558699989287667987799585977488958948897692933583898478114758655337778677837589826869753986713345969971996327696996339525835987729283666866889369578599668859926169987778668868987349898484197726289534894476877897864975566973334787382598795875489598537789897789489785788544775796885298635484788529576982735789829589833677443575879495885737766479955863549545248926498637494958667953438877573259774956349934638297986666949867876789588654897749727867285925629979968686814757847339749492648687286488472849457653898495849869779955963998766645593453726978972743645888777778767783756369817934579491789586862879766789466963621997749489685798862675757954578958527983467848367438363548577887829286993839357854296677786681897837989875397788939478668885349965367968996487989964787899693678977779988699996286126776949398379579562344484889336948766287558583775699786897823466799879997986112748539656646968829612526348589856946654885648385568675898288964744674658775566979119664557687769937487988622679475597186875655388466941775559277683989977436549784847956276986672729583779979682681768847896655878787431639834877375356594894768683898691587575776863953643389875848885789148494365536867687597687676636214435994658666383975354442198446599344736745738837899859662587757835687939591844694929846946588948799664852878396766926569746599886658788595956965629986368798956365366871198988287755789458789886547968984763999659589947389837773885843296954794586697586578596584497677342595439968548167788594818798749976468598999564289884226848374864928499693354599718597677589529979984698169667198359682952889855797389359849851843749963696449595728748566682982659375484868685289759777158673295754739667766925781955989983947839877936759259758995666982945635189735855535378265697444388899778753376598739696986769738889935489726468587779996983877882533762275968769268889869788978465825724656848476188358965788974825946158654759596897938989938867844459863949643862645935878679989268395429479426549769345746878497786989698723997538543879755682544568772879827678486876998663583779975635988289799611267749739878795955763768883758748898587854842888886919969877965876846793767478239548562595454948698889677767554695878529577767899876638471648485798338849885395343681343896949988688996779768768987879954656426829872968178575849988242894848665897582696718989189588283599667663838976927848899974531792996828284886697866763477884688973347649892598458679375764989488924999889849996982358837235995564342697758764668447975949885868379798869862876847894858976766685495954592693869665215156599736854649467694998584627931788775663998685583867748199698472386576991664898924268879984565976918892935943857986767499962996585999585985266762739158328659668356666586796469293886687946677797838862823847755869845557862796775977866198434857983774669892474431324363979374366994733756899496989795478832365279595879668995879458997995766498879775665885778995865558847285888743979932585658928394739773473786686955539788183677838828736545399668273671998589297487385756939946795856888992679562397359637885975997894873797368988148746896884686458975165786938675998278934238566888598889649595775789563998686567985356979967796992463299513677938878685786286699234498795188787989998588877858858999114984478898869827296939794269395395164729671952498589949889386727986838965684829884477577661757877667448857948679886869878985969669697533938487369887746699879854787327822735783455797479798799988486738488698749496872557679897969693799854864977759687566588968758864994833358979588698254575649887389566967597476688337735938434549936449377968388256662316948199619315366429996337988967499999714749512435475869785772351967897375656778667749725968529695973799779617538999958799654559588688794947667875894849758633849998974658688367988575639329963958473693951582466379682676986799686827462939243788895368989877734759858494662859967189477867472528795918766387541531887588654577978368987889741357767679638878885579652886456353449764998899677861991478497987983978884258931648914377979777775389858667997748438357938866535958734538969795697295996498653959789898321682597517858988798437528267945989865343179937467659813683939964499977665868768549758966689765697849898919655478547889488993165549984321921644678499262974854763945647737885961798897889396547348598592936868743528917966695885598796345883945935898496388598695779444256539848886394644459899737649555883886678986779494542887778659698297297889966681867839619585769999566777857987384975985687799883966989898678738584349687456527975696785569898583867997793266939487847689867979584437859695275437986293936954578863539369861784796896965572947858929827576889893459755584549857435476774997899598963792785488781998652479994256857774614583582981495499967672447766459359587997598188983499286398368998489597426478927873518757663274999992831929799468978788873873297598498979549225949728457959589787391578999714346895984958679258663597594346788649446749578557897646337778956466536626598747777429646994785768676998976979696393883487997879764589575616989599987966957694775786793398778539693687495656635878643599399568778771798676834345886438726487949523977945278149834729869869626439882799387969793338969998726988964597756876759459698278186379677796236644883865788973977476926997594821892617989277694599859166778662595769391896652796947565466572493398795988833776768457976353674958647687489877579991798679688728687888947949777953619293949592766396449814776578739473399194896955765895539335697548987893885899693279664975929886899575468599795978469769978988897687438547267389474399449567774968368385944939857586482216537751779645889587971755694795998936785989379489636969876799647782944993468326778798882989532356249779796696562254923469869777875686277593178864779958895787868626898598887774459869897743637497939977761395879216598796878684678365345863956536989588958449766797795269488479697513473975843648767447873678964868838672998789972987797789885569847548863876593268618986676757599477919396681786543176988992997559689764259923375599269458673948439879874787673978943786885479979897766975857794666587889567253967973997895563584779165966388766698559728796644736976987645892648835792758999497175663888953735696995992457697476279948895696778999497362976858759931456669927395752869545488879773674665528684389982736859853529398578979277867468769414773974839959989884959827446355889958978677875949348688289867484985466446756738587395633599594975439758385298982648962876166769835395948478367579896663282673698386558565535696538265688899998779779571899695854468787297747896875566777877668986398874438646957379498666679794796719987965698842379667894928778889758986984879894676991876932897876896797288996969388649996853578387613188636657857484984897584912927627495683693867124968999694489737466297988379995897758679661982973488469271154992855819754797965896549631882278392114788863357641387445542487667979885855793767957585669865685849949662792677861641589936848437287694474569232129588693555943998682358799396859372789964954457858985899572929877851544792933959885967347245852235546597577396756695678537889749237739753965986776998678574985338849986799754765749442793899752799216464928648719946774365565991597769675698984757668475789735919699545899987669864844784793678579796754865662819696927964869975789375787578673747887626795299867979942147321556866696933356998693868789499249888128777988868624398473898278256438697959778797625859777788695786364749345521898558585845457867825283939178376977977488479462949597492789232977569959788498978935867992283667998958993797384898998794876788874959899979841546776588958559856924572978778999895737644487373846656388656586847979799398667496597787989776978976899791779375984989757856689379699535969918797835968857538758675531795726897746372975596999795439299192888896865999546978777999926877568729953344573673439825885796388996848581782293977817556988976899753739355677967293578639953649765625738985989589643494767747893547769685854613896486675935594239875279698883764788776662685629949984797777977969498559837669967267268498968396429589567488748852964649994678827656644227947694939991689558928554548496931827846798399896488187446724669577455286487976691518984877943958587343999399634994487553567754719795889956957975678758498696828984347737227843966926977796289558377852576627973577878567868873894399854931298677785899383759785773676987957589697259767696485469592989744995888977798544488858977668349867896298488434197768919778999763399883568399599458999488648875166593386676767857593936759626891879384726998451997897978647428932899154646674317989768699699988199465898784473787848977899366668662772842395878998899265887938536152554374862778876846773653167873876974766764522367668653998565437826458353479689948367954843698658688272887898394439699759759996378774886314954985977384578586984699527779586546779368695961845699838857758766288466198886367657749377475685672457988685966169997539345586745898732797944989765867597277696386745578968966524477597734958962973889493869954684847169498754887976796896794898748869656198539936998258895677855665799655769659785983997983888984887249999689467842593635827868653774554992298359466595599789473396975983895499895784966899397696694938548799896968553337899545798897687878515996257425486887255886849749599992377926773958696996745844678758877784863916379387886873379388298756462959688996897894976499748787589684329768936519978199877937591664667576948692846814899563994525886757954665996624546583486954886595888269798694797387638989592915853866796359897284759635779973893859796629964267948744987768199692664966582794896922798148378963997679246947264368835968677635965678539694354647792789546764885578857925859995999156699955695822996949798979666526148769567369789697495694555738997697667779244955592945849759579885766979756989666669427785388679959868724728993797957986988828998483357949883678946442791968826932367458782962692654795678558295847848475498988624997977453799673653448778893434993264968266315864776788967459378689692867872718386667697559354996483963895966879547495898847629755859279788989255339778786975977672339775487183966977457913935882469694578796555499178967787759899887897775957928668959578242957729959872697598687989897958679554949733283968936299472159649969486765364995965667642726459373689997479835775827892267848676799346787997475355528378936422986961973589753746494999863986493969779798964898969796978982689157738999694354984888566387997969534895436476566357864419617977983458443789868874893987779686669692824566988679292287628559488969792648491858699759699771979897787888589545788636677687275964697838966337477684296718924996266617786175412632497613974898959966952675782869357366833947878496879738988778967677989795847978797769743875427986989819947677444827998749556364425759989597749194884386849929297799748668466998574599477897855874774887485884547946729658493798758391933896997895628128957949859687277787395579516984827645489459399789297855387748138256858891175385656389674679399654684959853599788346588689687444782478729867549957548263939521995792996978934269885545378876656483946876794527844388754877669935886687588755997925329845793798692985858998838979999736557754398957497842893828986765769688993587439846768882996948824868897962766969368937854857774498688855336742886798857657775887495626786786286453697849468687797987557786753589799765649457759198768367875869964968657457485745849889899849926195497459347568983877695849459988987934947927578799795829798959995377981495225858742857678965699249693268618995279887568996287397389886958958296649699698276635843941389767776945569418598968265687677996457958499185599967454748688579669622867614844878779353583965988899545447776597239275646868769647896937379588499992664769797999138481397667694784539359699885694687965589358979644554576589499529236476919869436866848777893478539528699547767615285659433877976698529659868127894745897972245794367925549138818589783294987739853697798368795897699583485446451126385682638854498967692882749849889993814596939473367994474983657696335988889924256389995795429526887398445579899944685491976898624677856585767666761988154159652387188998768295855962959398877764898334248979896858188819194886435768872885877893228899738768367346228657688889966385884689777575356427435269744877679473569875794456558286998832269487986259599997988692384599849547684484849262949299873673184949999399986818874689869896576266633693389779797377897843987383466688555782856388485973999479762975385719956966279895379639797317298738967959789786779673993527757492785698838916794367888919486689643339898852779589935969763872947839939867485748996879289561579975688386448686895552353996649899966964595965356979468579862998499233933839668474996669533879654577189895887698664894398435879367297498787851759687675498382456882987986471554897697814479784654899885656784797893565598579583922593577878628816766196269994859799856979959947834838499969589766967885459198598949799684582755137897894963768595497667988956867775993654545897257225995297757219217789892997878812774334383993372978754877133573888947148888959817847775733867696476597667786855994989768728637823375443846486929977287464489898536929989998565559569643481568685688677589445497572999665734976937289883769576381967548568478838516798747772786557677997378749895685788963766797989997748771875272668988481687993558494854896987964389977688663869581999435589685798594993596845879475769276657653367726375569958258127757869939948948659825547399425975999756675831989686758128357763294673537396448758446258544937379329999755669644395769287928864285762829662655966759879946299926634698288969591982537853689485947759556747149586938772488975945257945799993489293633734588866989497754888379988427889562267695687858455789696682349489878786435975848697775915566256439679465394178997545987455955768589999787687999548618676888796993199613641999483873896385968875438734887742957357244647898949857689786768856441378847855537967788573857625684688986894988878878593221638784985678458997976978699867585853888779438744944599773984587553338988979869591265485847799194263987558475575999252318598995848861729353896558758956265499496289794661446989793678685788998968589399795894696218343959885889894887924244937987899799755686398771979975879623999587559783227387784555797989948967566763566274245597467574249986776296956716397748937877759485539749487818957559266973399563852786846983945865178588689887843888356497688877825391984397967898874798679763399947629592746858367759875968588735827372644962397984663939786677476297597744444489838257794982787386388548956856598777233883836598563566695588947896865568997784527889792828439867497465874778475997973659197726737955966547977697798673795444778879788898566925827999669919776887978568856777568875739587966575768768762378788453799645866838595959689465658769598499659948266833794369927959856878387656692646785893856451543857874768978466373679479638498839638979599859779387747897787768359476728928878996869777978597683487669877717859394826268965825726786664797379753788983379985853789893777779259349581744979773869629437943787766588888748986443999588696757527344377776637774948796838458884349497725756936994428186799957596988548899874751289987388989934458877729551855465489987839549889739869666565778869769363879738727386898718539799396793756874919787768278296689437595115416877726859365548377644777679568728589344888879794889926267883762997693915988924275849495833685394541997652783889427558988587839776795796975964268773515738466946793786951456968982868996188867989979758164775987499767998686369272696398988792586838699937593159768954576749688776448361899856999955777988938987373776699895297973748778899831685995698885557562462887667437996467786844778493967566517498693785356779885696698613755249647786967698848874889834999997468977765744789968965299617589637973597941982283957888588298369766189383593887697877397893488479521879279976769981275768768884288861569699966694773799378783698896697299979872777695637566695676866754876354787873468985966189634738875846773495777795951567584783667986298596493795448568785859698777959914484847898987979877116795359847427379596682774493999179658965552889995679977987744728676684542929443548374798892689555891879919485577798937896846767484889849979968785292854694558385669899657699375883654298354595554928678554374389577499887859752482899752799795593678829865764599953796473939365948668775987876277467993489983479967529666759644283824832796644879984524476968485898179587756837855696339539555977859368438495699948658979876276385754563684774699436388785632536245897294799632897858627363769778597389686788399899235846995689993655525769695474377776699753975855748843849796378881848187987697747685646848999256257773979569558347994194675868378375565859889546299259199725286757964989878979859647916447798332888259638298868595881877738678627751756654899755473229958684262688877477863961678889894149994749489549557549974426275699897747864378794689958457976986917474538999678583563814668978648387884422876299567369522977377981897348688337999943987958937773962785951728696289896664638336758223889899773586655295916938896443796668596378874658488975559746587925974688897768772979373699883484552746777998633871876176768363695999943478589485867659849578364559498962579997565758279788898994879787599489698885964688664287988791889596658977678789378745744689988487592886764873667378694486567595489447697285477725635458558793549376888654587786653285746635467999943677294885469834216955964586777759698975949152649889529492298832936698459774976882878519628578986529977168525954876886983897874855764982799889797273633954385734789969569298948587869767888994767669643677397599489695493495286969389984959725858767895451837964599388746886798888979817829384969717896866696996857584374254677776872782968878776879699934649497876996796677198416437876838699363862957989826574594913535787655617926569748277227651894896395782828853571997477912638279789386757889498864556598954974379154967959783838497759743388299824875995972884977455996897865986994789969364635868845447685186915728364896859299554895966878148528789938397891885589478765972934717782659562523165798551948754197863798769587887339999767596766347532558965828795889367999864445676479426229487855957497822289727447245257273987569972665713572866987248767865938219458266793557688563626769792687527957192189868624879779986489348888634557899757859588786756874997994479668389688875976938999988542898587452754847293678397757379579775342989976957936774792896658399733998699766769968798687362432684898477439736678986768778686778836859589796979868869487638918839591958871943667269999589599968858978393569978556578839853793439847184797938577677628544996965417624468777692793794538913738798765538977841987574841792749577764268987298859683455934636497622957289644565439998698959675679637568996645969888616998955975381988951356573985289352954497755757493685946688835844448389975699984927793852356929474799715999687773857132759643664975718569737349993768718768963756396699986986452558657443858769938794695874694496995484658369858598646278967897499822285749547174288628869687682795896756852788226897978553776779973559887758618488777389599898554934645637438689577579989683496556959736555479959127779379987955179956899868547697739959966695999583768335769665466466896788671979784673587785839574789924779796776787958824984868888977892984968597769968928665879799496847378866647665798892449926455747893985998695453898586226271947485761763863967563685355654849953696457777776985789926768858684998885948385569999889799497975963878994498397666859599986769278997846847959479697784339757696948867327659849996752799537724337377875784487897888843987376565725875499574642695685868968946864979899737896557955699685623585967369686884475978786883786988945999687485946483998863847397895743869868549493893966598474949398176828356543548279746989959488796438885967948929589938398619888599296683888996896996889884994978372897974667947277919988973895682688877799889799684552748687755999936991187355789365665933963665256559987835553987579768495586969345899849876828439286886924829555839995388684795965978775969577588998966247468899896777651226869532959674867754731298269795634993754847737558897886433394773957274989937889769699855991479693135782985966241647868577275736744965966557944697925895899657799191867894841978438877296977911889657899829914943888498558864464746378987647734584696787636959578325946669196476697448963788945586939849794864689896386657275893747896682686823987849399959593688999125639747768539789998881893785868444694389996937767793792562499955827486475977598727659897958594977665876136439887887437885799559999818395569863274357566668839789793227688619258693827984964184696986454881599268866884999873497775792898527523755475895988998479248998993739976788789389846666559579479786887588849999859876969578483328992638841577797686366772436845946859653839648838456757877398674989427779789956483584514984658556996999867489538615789947879474748797978769863758496429348973569895589494858441893292669274873864978938775829646943756888749899463567674978732875977865686867782579798876999467498885528487889278995639578335965899586969268765989136995768283536888976984875487691495868946583753785789788837679875697456385449618174547427431611748785983848369879989543747179387927568988567837484772175585953742756718665388665789929634589789869557398876973627792839787915362998969589524529746844769875797527879593778868792978566891475648759997998675467772665641974937399969764958767354388887733737975586574579968395864687357478994398529838657488699793886566399655894248568857725366959839924686883727787988393868927777464658759568968275839349875976628796397363877185976859859175263987872855586553498838694533947689769469588955686964545679884578498578689387863942267855877231486759644738776898774957269639398939964792826945594717467787898559946898778679968994883399378417388113455948515386578856627555799425578782724493988958897654997962856327856483647875263874749178479964734681879733748585189886619259595166845393926156865367998955797887797498649776993768598386666826934929764247869685898858261826367865479753296694859974296577688874916497157976652688472819687758882749989843195772997759248299995584458687966433589455637936794816688883798483649585895937769863466728785294486978893494883718733427955958799385869975569753887595677566597199697988499858787865651433666485836597379799499849687577578556895973599888595618984951969785367184896168596389781989467989984986674855963975147673969666793392857475261986762677856484599999639592853783698858967479515286949646875797747769873294964677292946923479974856648498996355746996519465789287999592494687797738764683887939995771876497423278983599595984793995654859697799842874879965647789922774855697592727896747988719466978866946994476799976682663886865835967867688969225556884576876672559598489687613589982392699142966969933398665259584388679389874771865886469528977387366465726638938752982784948964714799444617785514898456278569858997429636962899787378876496397896797746796942677834655985349378997649794984879626135694678777966995765938464457492667998821599989923647893893876683927477752592589468888239983787875957763776596977329867854777584574996217791676587948693342776993477654698767745379785774597482848151694179219697558396949497899889588464768959687928954877798947875887487497856799784837668968958957498475848676896475775873878813978974597687895627398996673879748889977796794898495863769787889632434146879877899766898465948454861466566116776784636893917395487568778978767999985786497847844587574879516567787597967563887699694533651287788938988358369789767479689758649377583639538879598566559785996268447844887577756586379849942568588679799375999446565567899837864399198997688845455675543537489879694797985939992298446488296835694888793999787975876996784794824647958956526698978799398546639925488495315367299846687891588794629849787565298229553888938977958896939995649438278895997891857528698677735458252844644429595658524685796979754789677697225986745188979437786924557363997754463359394797948994965558478891768472768988928795998845687975659759637999985695778868666735772788998195915852586762566587846797748657374977994875499468688573756638915946762676689876498855678988675654993458738785798695417779496177968368758396767357638162887873547557867845916779976749888577739649879788576875568346383373969896596768389888267729469979398384954767688197576249454535582856619876773567757391934288859786478149377687848654488866565238958688825597966815785763389884822788487778249785742689986584684398534276384783733897299887769946562867759756717295866866775492772859378695276698857888792597572887796537859691987989964799488258497197482967397757597468995953879676894891838549894673226369379521695718382668779766662979862749838338989989782535899676997724936597699526796355396677319938878948389757999699889828879949937642572332773256888995763878267739477159357726337746939845969883794578698596829449593492328142788365379938896921686969378419965459385467388749772697419667248989944947475768789999953769786768378733243255596586388964999644875758987579837284696787492657757796768596666828989874854645869598563849985246948536989588747595495466477457678473635735697689689398667889879243449845879439476299723395956839767549999258758688697819368779853879555743769275895497538779445885569743896828747561839688885283926799398377953895254874679472296678796748396875879987757972653874386667969389645974969699899894388496752629956838376548596697919665536988495252977749578679573785972458643788588583796884897938482796347979878964766954457966651495866566679766798355468978718848779885598978398938137769796648953447699866385896993899528887177939477258969778977994985569367836532495554695559954897368993267869987288544831894519984568824475949856687657998761977486787679837279896798834967568384773996699766459737474288953676794737957769948668394989699494429888693437575652635976928946934596982686848589844964991986976476723698397899393686998454889565787683874315562138973374696794775633839666877949965875989972878598987938886878388979659984598848774725689654469489999878634988839959677991989495887674592679789497725384289495668672985774792798489675796896985781873252898845489987829177696884882868436648968638998586888619599187788493797549618878887566563919788597516798999475771916572693676686776298893937652849765878271567527886427558497771697533766769667934844698499587797459277596288562873557666893957898978655475848994666965172949429329998766967859771775176857677929787559379894749379896857898938368583896981975274736597787645887329738574269847787886363499691787935837852869732868939748517879897496797585869887652879579859869872978953756948664988642747346489499449883887894879985585867936384767947776456478687939697788939389586788685578965814941289668448975868496749985965577649939769656689279478595575579759749424396594765223974489665197794547756964968878667699379869477546797468495187473636978599934848889376898838892755255346379789689467694697798898689889979977227539797766998977344986869759667893698186659763389667445763393689788453763876389976784429685968944662789367799974896484385982577583799945787938139972587688963298654544768957925366897363325878387726847976886975957436938367459963858948946795597242589779595657476187641841388735786726837686658834489757256797183555778878988477576446747983917734372999889886638439989974756294577496879598499827168474965887957559537878794799755534798873889743857996497912164949495596353966798748456697968945969569598799492988727368646577624985673198865823778769797865697876858967665866967678577323799739895688494999886879569668638687794996988579745851699854928337327875986324962499877299298783568774799653892869546883998693796968658459688468348584568838955995986165548987398787786975976944779394377295769897879796838993244584672896881685876385693428889759689448524876492963988673886685598788443589863937945577353828995569969695996971768297762967848158354267918857166968747586893349894869876996686647886746765197783947498845684988287769999895496869387689968878841782868489384796656998566954947828616846174348969594322865777776692576533869715439757983874293978882328767993975578473858959489989687946769748897436889983977927879855595579884762172496471894569886498999367859839878946977236384486596837976788628466246687397464856952669545989674957929788655184767893432537628796569976569836595948339688645268476536772993476868659798974899977983464743721396766829566964786978325768691979528498598833888875477539669699299546578776796557858997598633683438484684972728971594662459829961784994249869657565778767377868886256678968991725864793536559366745589788787969496799935787382948596847786587762427939872873738469679376641795366857665961869479576483899396513966668664593888689766846358532859664647869135997935247956794937658966588988976897598778984647676698868834854765998249977975563982295559484574936529995984769599762784696456536659494984884776974785896288397888389747642663152425779447968547888968957378824514774877899767886879599966762565796975851469827678769983799459778648496988857459877997588886998398688741838883379993938762898475896684939186796878757759779938793887887885348984877365533478699882784849472879889878995853549879873987451792163699356968667759888486982599669859199258848877778699547757755861326989957684386887337893488348576796618699688767588555694782667379564979277597988878858597547956552398463868968858285375467449984758557276245439887979959678579979999965594335984693766786369577428233879197116697576956878887774683684798839887948974983873227895669598173939565784496265498854575959752749997999335676659961893859893619789349379798788949864779498889722438796779799996745666943349656298996883946789989589854774774196685896659948544669598859396397774633396499588591774978557587189574844663957454697648988188676997532458868452455163987684666944488828794674789924675789738846386755778987428638588898689949828977866677179694385455492266634998487745366749195985898487889873771746468586758989478569329585377587699996788425876878166766485957489647985471943585778578865538897493797974977355375956797987956489597425838457985973198786664794265777478966744913758898877737958974779593777833869643339297775449957766568676143599938875938858994977848487558657696747985875999499464796628798683679986167667453987465889679699299759858634948568777994477855893126949696946846767886226965485959545638166964699792986517646184496894236568766899889669998698927966669668845899539948558584638396576561895669794551578653467994966796634885997388584585593747895789615898389936957498573377777959857992979616984799496713585948752875989838858692878976228979397738265746894647648693563863897886659438586964955947946884999455696785729968998879858489567696686259667885516692799358898783569977656989339537967986857857593998566976796446858729648437658769899994846796582995894519548849779595638995655975395873934483428794657995881938188978875349799999127139834969679887587957965649637619395958773963795759247835659879797983451948459756576597279959974845777445887882759277489751824788969756761886888947762384188366855564896568848825495328817263846848777948724938798716845685189342984954699697762848585556288446836324599793898885688558382895739995636662867886792974863961969928473987698349933969877496398997743945492684997626988489997965699889799187387457844999471967794537554656914829959757438424727875677993726784182987669455949977787667859623599335487495529738488839796834698564379718487729327775922134859928445779948797864989649946968968274654874863875883869283967769993984188867295568774525466692967238789879869653944864775435437195839527926975368873373698357529848896697889855699139583548579699854786549892146956656566798699248744976749739695875579897756879872784745944973866379886886576674697926698789759579268789681955398373974699759947178889289896965998896556973643476996688974748779161449793185236824675542457967269868779898539875881544878343724438747868795799726964468388986319563765987998857579868997587866989986282558799986745649677898895983546796896895789769839896866394689835815978948682867768935786968892687957998814976949967653564639967567287157748785282878557527453699876547769736638877836477744787685649476585453669777187255898795672821876968894966774553944136665995977777479854825985685838589157767859999194996577359386844799894482663428782931887947455859892529998839568736549358475992787988893999469839663899824758889856797864988558535698999824482635889327827783828835984588968573638559245989759954887837873367878789561399868978982696889957488589385947996577678757821282874784465767792675296987789895387889897695267665753869496979896993769359429785937986856539859689247776684279269257777728584357842957335537699879876994664889796338879556498356796946663959865666977675645986499385916877764988937417898949536693877495597397687854347487773994496469999599447196966888799646988618381869358487772838585657969843699669973869889756733799594277969679696574643867788755679988715958478572275899899966954786992963566462238768596679518295774976365295358662777256648586953979937988168799494883468785369688989996741577677966955989739557789376788296856676726755372823962781968883379782997599699821963348953996486576945756338968455383493742698773356669847726699642759912857287765276687889864794867487397594554688766627377567969889577886499581277667977876847296637729857296863763243778968758298873954987677776976866865886988656744682876978598855797897999679766647893885677667464926744544862367886616865534243435499455967148799847894874389446894586792286769929979296829578493889783838889694874968496767889972978688787864796588895664637796869644681898758827568779973887929874446793579566589833839998432185349774793578846969828784878979949578839956995988988155757698988894392695887899368937593675837442196637487647988966997528233978392988599453995867227579427679498812654479641795696899545755959979692955439319815931917861243974886757797762668227655986946499382917957312356788893798166977258886578669349495778483766618887897829233895957949881675873698638548856954888796493643289257199948763994963697697789997979796397779349693896597289679958899398488896578284436466982778499896888799849477538586844769675389535796496946158455756298497987575754487481645767377686697439465769888629516669193975473793456565796868727778988949877717468259577866691967799839855756298971975567587392795775669778978485247847499658397526739488948648919354594587843856599743488546297575217767499726665595346498975894168959259869987494675844474575998374549397549278594472877658397668493688228659949763867964879755587889867224578458236944774974999786357792667962988898997949974572992853598976834896962888711188198664767886969348268538596923752778457855849886331964995796589949443898659698736775799559886452786476719485897357549629969887778397355599319489945987689697963783469769577456843599849888778678741858376745755538757897988786878597589799739875398847574729495935533392677588598558693859549566444976888888448477999866494779426766398687967667577752539939179795262746671299357797768849989498859571596727459969695959497448588897729469853692998628656979786966947856978494859998697814743877389968358237896917768879683235355666864577288896897889797968646578786638899686595934647985888799535559687995688958896896356954963459562557492678658689668346958976958996848573634838436788586636645438932769728597874968586675976897294665937927565389846788758967646865557566498978658988991797778968115769766896759878997253598562594866789475778745998853554799976885967676777687659635395684736885869685684599145383848934926899289487626687979964696686885719337729996899778758962864361871353597667956966398479895755868759836747799742578387776997215998839874789687276882996826866837575552966866459935759748585789685578359656871434387668283849664648297681549554795865667959489556797479997967278666997668968276776849898644865137898973654488965568539757574736798733945474886983876589565943218799695898188998499842896238868667696944649323498684563778498278734788757936988757569599689987948378832449757546786296762937515896735384438214285794916366877564719687394926778994977952285596528952967964847738974766674394989934877955976766227398665591539965449996979928951877674772788613566813393984269279879916356957869195299489999587879659994499388959735873967877923869997559691999678855598797488787483517725994687257845595756774966998682377488898653999868975464376689659956743796797578548578938498846247959977888289881936488297619963612563698748934573999436997195499139658657764778853982998768789839776858765693529963376789999889766429863699997484949876996948815133648896442899769557752497349697898595538686695766698979996677856784635268957982936769957535583975553998677899973766283539769745584885286925948952939887769517864857817773762563836879698584675458719569768975646216863849788838989555918915388866579677697784693948968788879878562842641394546896647274954658799886994363363896395589797439457948789998594982869484989647988794997499979749299767963976737849883886999775998758249587769484339778368557283514882491778479825865899685554799735212466999788697165886889794798895745968899975855779596967747669695887869797978956649238854186433822876737814679996888884716357998898996687965767384156677648587955996546645979797779836686373962897469898374674626664748899468583767825991878717752939769125393488679579972855832887378988967995899567997895859146375293994663377828959889878894685993785441683648439338378498544888976856945888889989727933486355799798185439997465797797544373946538984858718337795836764989696723552959229889489996874788988287727956597978996556737289389797996728845288879481729447758478845599778887826282569769394796822697668598889595797917937868264486368613439358857757287399693798796817317949985475945964998386463639897549625298392858468295679471341955459889629929759587995849549872577892792931758685999474983844699299778179927469689634976586949559862746986748368548486876183529367639995677767899287596736628713989586458899475937898937378259696289576446975685745454988998786966989778378993884987756897589455735847877699879258697637955989575453339785444924454879872236899289858869753888483554448886769284697966368877269645529143865249767886973948399678877444987493957536966848467768219217882735779964375436645967688645239978846979528993855637588636876958965748868355486646689546462989855743776336849898259787687499799978977648683978881652739999766439654968979973987381848562749467654889892975759699776883563337786785599676456694699558776979493598998978689845985989377718986978779982967357755733976958945537975933857443465826759899958894279878898726864346578885347864999836923857549887599669166454639737778687986484659629556266189335729799497669669883886589588651899187136848669967789877376957995887769988868978999784858774456288551455792773955959688889655495883585392363948964445589849138499665487576748468948345966655949344676778998559996657985964879343674965887999878516583859894953894885873959694438659562669928489656954777817997528659839471515797859681769976889759428799189476869558495598688389586664579646893569969577446947873495862886867797569669999574999969888946941559669679643385977476885885799825836664989176568885568597268989178877655797983856816885879946852758644992559889998453749699998732997475965957698187675674473275877756759942567799785697886888775524576849568977388589887699539469967673997429697979125975945698856976299887996395789657897288626686487935724877594952789658587296578966397785778687755593576469625383249981487728964683837694698567558765535799273935589977577498587829588793585259474965675949756799877856746499766964949983746294775736893898968899559498796587399898358369688917776996846955976879697778986756824499686997686296494248786278865878457765969939469846396697852793585697448468364754897177798851478976783897655399984884842828665844866771749699654859629766968876559998495796988267194926819936755279989969697381868267897746396588462398967548698384757673746698966776727965499572792998278943945892975595678777769386178857439398584969958119886564554787925786656843868184589112838929875949957286767523887987697694668563889854788289499889474968697686878679935567968468575934939277235835396758855935956388489974743984836497969972867532878278859887594341893728635969547868489756283995687776853759989148726339898479949946979989884897688499798671846586197986657768776499454565763888199599795898398554845548366798698777659666167431847723862919369679783949182675979468917778748388464715798993689638699694778378797979669862188496265678456697938733162445997996678988838135235977772996966985386987957438888635653996677468695964686569356865199262459955259783586699688891836877495643885398854778693765989278882893779989532973779679876154987348759497689269784857383872983771499899676956893695829868495588657779244588347869479675999962587485489798874668974647984489388455786765557948994687636735986769769648895453369435998993975668797998664889467893927794558466279481714657297777252964999787997887775875938729398789846564819617699538991889899756517295786599759759825832997319888668788749788892797975474847287665889889127858966783893542774985473468349947478995955568746295947689683983667579744418467997358878568366888857346969999668857885897747717988948378598578898497886449744783848778998636888699885359967997575484276777465995975456976675947897969999996779782835273269798874893957988877797984367793597856885988889948937866546995958844969749847454287955594988868838895894656765955569574548578558691929798838988479389988882962462876694889496789757695896588839895898999267345644985365736359868893362589974789486656847599478759767966189899697963995289445989799898887767572648929597969472379524344786697545657628135795897769479574867966886558759766759796498399568777477645744981766877859856956987437923955883985684798357936764982892739939976875776986473997577267997659854965884881367674597794968883769617634917975946938351627877696924659894878987756652997776349385637378969979799884398936586987279546958999489679978766452781985481288898161498735582632987171984977392269778686957684419197288174946539464475852585795255699571471454696798397385934746584164299668767985899989987975976748941172598449855937896214776649874949595363775876699388625599815986779798374896989723998768753893757278989976357737747637661597842839156378297947455858496847434727938256197389885499882658983994895697899386668545528988554628946158187194769989997993286856493649289988429434694974683997395346488699864659858999872778857418386984977549528498867568762799667598569563678948858899398967728117874997948688558535825639954488746765883959649866654994964658468684969499856386899888767787897592789887687653586587677466929957955421899947597396318784677287295542928778773787537656686896749796574586134996997933999798958169668779864747638956888587939958796497988132736689559788878964562748576962755286963739672854475993588327465659888698692744999329784666995928937769571888837454797648979926289879789447789969697496775198959743495775689777576332945848758538367998969758695789558776956498798866928943749585999992876949266588839589456427674956686649974493699264576398949578549682878467187898754886279456229922766535393979596233868776884398659947989669835859729699484686737676966129187484598774229876939839676458249174879547969648855286943574998115679567879983767989547469925569777879489245419879878669327558628722978939888857466896866972967946245598679946673884187898484686787888885786598478859929289787959777778967129659397979939688789952779398344656597977938649599253976984883315946386778984434363678789824752377468399969858662489568251526388942225936399588779884879699998946672898788789859899475758829629956885656858558999877966686688927983768938799794788846925799753218749657699757999799397983715633849799858978878367777586516718971318966978994667535973879572697697876983969766654448886987397176858699959796576789478999169385878399967558988879556745525968858861874552657996623795788889629938754889568976989668896878369553577676827979949877572693997963899619447187459696797557929447378299995949954979627668365863549998863999886964681998997773889474728652646957756679962776413366894856847747592398923987388649854685998379997847769788658868449879649867766789459833973956245892279274969825979895995499867666896678683974939664899797486747983894686474863887377978999549743989777779933558999889713273968254636958689855717974939946883768699591894886696686399465884378998863482153852955597428369977788998888669767926678766934559789899864565663936848678579999169976975187328147577897876744626889594854496789769256846388566698775997758322735646768699447666664759778749856937497755688958988935865985767387752799695668782778685728787757487896985999988769826476338895766852866887488669787995475557761981249484489646859888766962976986998687319749613872964964591678568794985398296698896474854697669568987664669574879286475647823694498879978599493965676664768898695869492779363787776739929999979783695957399878898737994855259683158947549833724748945764897188949867586445864927776767494789645496767978827677469877227774758655355981281584477674898883777538679577779678998973937846959377398323346846547695456256464695582488469758867883933744661697655539245796983728647688898937158669685882669594567666797597794891449883858343857684769839886476876771299743499648797598895241999768877268397394896888576686969847399867974979883577549775858465748736173833985978389943974669997528425775387454924435949697759855585868798366997784729979346978259787384499699879996989998649999977367698588364474474367733776889975392642286985988854846897878669984235236888977828794777698578776233474784638896217983947953778884528888899878679794545849886257449289986681663886863985958989879828284892876756179271782818418279488999345998873378698589268671863428639839999658362997654677731644494469483685816659299688927976784496249938395589986396769597479577866888998889986479416777695983469985397966564999688982346886436957692554578649263982399693978679996839594637674799647897889838859895829459882589756686717868877867487957998642957375168887836458666892993738299793997963497676758896475834565999937346899956943859977837242976494958974889973242835927788654495848589778263646677398184477669169979133498779782615634164977968699389926894156729616485684877878668566649843194755988944684289647938786366479796398686798574988733948778982448858724239877614957545729595488537837766866784688394858743658795569521777199395566898999586813847865698537778228184567227172583658774728279985945338376628797979677989684376446986398925378699632678976638998369143554978864866482675986666987948859764548958198376176699988539497596749763849884976775979359783675944999667986997963497779611999865645799593457773896285398795948646768869979446689997947974897863768587975869797599578579449779835587852556624868753956585927846349499392849815744678843659945882695685979296465998297781954784879418666869977466495937689873583462499989983179982778986994727847845799896198734768728515749676587598986275895897848448766971492783876949157689873849379676863966257569983523758441536877977377873693749379446846857788699985697394794924539499867677245991576748375919788942958256873664379967773668859447729697878769588996648897578771886896875986797392664854759129969491664834269267859766986995596924189285864939988458954857957786848898517399237648754916358899777665715687727586892888886897689376293976364986985662282962233797663859567399577669796247786676639639889948579769882497618285985894474768476789775698795896653894747358887279796788656564798955937897787526793895582389881648973957556866648953598568844744767896998847968769884487899955586588396968997628288479589763776475544686669845778827365669876836527744896478596968568788669769876886965919568949778892539939857369973988811655997374898748954767768679761654798687288748458541588729448516679839796991524974735243775927637754358599988925969879378878967987787899995997449499993966179449788765948749598577857596588549869893728283889662399884836582658484655638799965961432225417552965968796396937889645894388959889495396632534869868987698293775858777773984712447493765997785188344766444682545995829485968925228365144399882774247197869498978583354548998959978896872965697773259656568462867499769869128977974986983689487774868869666969456839238354997452948817438758698952749439778867797699663895449548782868366998938437651654559891437394796979286978498778316486888899754698877535973749254915188556668988764753644457863784749844896958639784959789984923595372987964684879863991679496976294316929868574629775994488978199483685825796917577665688847994387696679747387795488638558956688448933689978816997969856394546887289177699861287889988984568739696885882669986989852596629111495896269598977986855267994396914987859554658996998835331358777682462767949595993646828794666873497524958699798926366644394244749569395996649283734747924576658359834679831995767327888898569635569746577487813469785684776878966768678966885738995945897538686826597868774574469937518699695899524873696929788674888296679985798657886483983975876879895739689678496968757727677995597987579755392856551686376659922899685856182798878555785925798895988938784743915687693986797488713674569535647254365443249492848988988657776889367586245847799733189556737779974688837647876647666746973936479984988986837496749198499679649584716948467442987855484866964893295979988447365579979763754846396478945679997365497278889849999887649143388864198553698547177797695488794796967773959655836555796798547884679548958787719454297993778845489526696836779457663982782569996887953478734296887775655991972352973477794849886685317696874478658382695773968898879969494929866678446896699859893375979939226349737636994761384386458969695984745859376887729785363999365985499888759797679988875855539954691999767862483567514265713229826778715656847495989849813588669643876987875438985989725743375527757884294734561856598883765853978688455398978953694986469794913659786556547763397765668276588959831787869769755536534968897699439786486719479569995579736758699468155938838657795994436377258993797976698887567737874443937465973628835939673398363396676389674678268735455763899376779873786589936882634987895678367599689163592897958869475875886699987493668765897857636885398389664456998967562973199863689767539966366935598478438965753537879899976768689765857766454171697696946598661784974669537259858217468947494849782589984988894667558395759927996855789564848495968489155657799659885196959428528289488366569954374758227879998799975793567964857584467123799993182882887686678385457483788734489289135554423338587597947638879563582848198625659778776933168556683658388929483936769845596298966468663783485977989887949319883938657997472198594394827726597684955868825844866358579795369737839577598985818974857278476938869683812594784959765364647916598639983787465121663765367928863999277765977687598887677349741565976859895726846559595968248674789558276252887625999687957989947973576885899683539368787677796738499926777569881998957493643579777569598695486685998857699498357289647987425932656933499772992795723689475576683834943978358588368488927957367959783813977423767378499778689383678159487895868966678957687745768995186395495747285758969737479767565867859665827797563977668859877789546198789897546956997566627536798499669965885989697638779978497886547578756668586866448976673947776938451823749466676966784877799489893198454989745679654953798749889993834733536758686778477589789745959646743999896517573991885947867499784777829139849848769567469666946875738698687654853779489796969275967848858798786276435676979985999168869447813319997679843484885785498978375659626465796577987578799755969763276788298383567756833539277797792887437474177887356775895688565677693868584971987986472997449493788487768878338898798969892399797679998778493666526899976778957219554986856743677738366649765852868985996597476996458567488951488476248865855755399874967989796487987979867769789834879596453258269789689569999728527617984699549769958999399665666826458776929627447963397774577682785948595859583639296847774687898688888737238956747888982495398236884898937977958892989688862979719991663457768589577388889839596977588956284831664679339978759889555466957433566688679285589978759369388476999888887747966872558983785947996796638886599987796969979992976876612772592666579847794745767693889634666589589149825989688797734974898674295585697968973949478943668686483748678999379999193729456888985967981386976877138367694538765866597784778646898688954878936289582596687747598474979868755968434199498915713257975343982866694262775872283659975953297999939366341988596528992963798948786856758487952874987668998848578515997785786668927997258737836769897773968987537183875879668397936649896486774595647389878882778646585689575797165698868159846477258969999587878762879198792598378598162867688289279459158965369384995176691665998856977465764576817887594868484758683624436772787884977569967699482879669824949599789898348319687939454765753888748499687644767995996917988659469259299994495277899563865865859799497837895288397367874556535999587736559381963387889399794924766596668513824535875856198995789855456977588868892527748793788999756559737834643893897678876652588859844869798874149769777588799818648664869688788838443757994993594968589931939873896497755699893481599678737977189932598499935959844497999978897876896686446383788446864821447248858675677639888575697966966895587817699729997776397676277676997949889885383781898948851787746749758797527869894965385466277886666968388889759688788198486726976249493237289667769989799774281456437563799259988898738566537958922878785138589974998875489782268694949828498759633648955677783674888872659924995988567691946442434977117666619879898585996995383393539368742649545668566778698338799758788899874711736928999789979768472274873935683943513617968578695667823149678839498837938794815896589554682429555483499597594887566666783626855894449899689788666854487469899273793969773495476936492868359588836597587496723567586687784696845536842699716694693658872737775919467697769899986874388653815849935777666646827272989794979958598438549734988978488387998999784684839917568572999789478859768895448888969755345949987737966697456584989615693529888697726999576939569649999796769973448852385759384797984859159567655538118947475899748878869976768897299557744879894889956356936739994394982833789232751668128725884798295466789475499979649459565677536976778891667878689136766988221996783964799546977779732937495469476256764879729999699655963455835443388398574984328556848896995285448974451798975546876568947129728728329758882877667282574966874969635686741999342987888748933479887388682898785358585597756887395987683778569687899686675999695885518718469358971265798667267797686863764764989849675848537879858933869587988483959982783598965887867534819977728975555976965712366487798788687162978968494673872542697797588994985768387859689973896867988648866873744397476468679525158779975787947699893498369735753384897379277788859679559957584594666488768859967565567889959882177148936729448843976835538986987327575757786952161994785555587392699669786999627786967999987885699998755686878559979358634986969794987878845513885528578253728734862868443795977797551968855868777959895977877544823558517595464384838197575979789653985979488779978769894858689928876516639644719685574285499687918968999499677856879483949338344868997445557986979886694785445889362667524898617887932795737339843639395989889997833745936749177979473649314556569675656728694578832588947943116931486253878788584745968186395888948737253679793878248189697497745799934698458825975753975489335377882473935968989699733565942984799898566674395885964649978299457996295876781397445691765656148764778777854267299292387297891998396965369589333982866988989757799997811884698964697878889698452369688586474799963663593621946459418898998978574878496573693544787468777988857717196499995633837873561988496957877836989464379799978335755899396424632598867897557992627969771899596689831683785795779466658737494568758968599938859498487993897955899149878792576596456997389956459852787599695484873765885645689967696393689447578688166876596384636533944368887493998695447556955336598872897787147987599292763368371698346929873978757478949895876755655668477666496489197883662875485229526483487385547339966898537876787948687354782569964585799864665928487957794698487765869675634689953738695553835645938589544685371798758799443787547817976629995986827574394435988477487756589938799954999427484568835867477698266288356828699877777894675374577567244371288789537948999597467967967959924745768967685435618737688282865556237579248558788727657133458748766367476585886293663859517875878636871795398888889394892299629956659862266989619766479459938697918917987598895749995785393789778728238128972583764589946882296779896345938876487688964927879595992657397656767748689983394966687779289438938936987892698467835778985996437739918586518687923859886899599868887774569666778984975249869869573679998784884867685377868498379989988439854297799769987771542857679873976457548694578823846699695648951994789779533988365795373855534798973757876885586659596566975455767377978285555951843986739778688478694573975657898747596822978736399885376448379699725999387453598974998838987887676325787866529369968287398776599464755892988577499586773989869777767348627766746494997259869358936459943571893532397977977954525888868539376745848777891994775888759594699351664337987659653794677978548656597769838758957527678798618946794568865996926795498687899369655866668467872889798858439738565785757457793139477958958828843773693763948954685289599467465838777626866389958794876969388496194778348669973357879174989889986796438735989288374884664694899868722592538835618678284845889868848636796423277726675798736325692999628584892837897588558998775997927564974429279589879297777956316494832756538397397996664694885949586738986573139795895557397863898984488995967796867585448996473684735435858996763964955976584477696399796798592689979185691694857697999631599997769769567657979652939995622357476573685481468489769337293747869454845999768788557286936779477848299848745989626942945487899679747859879666778149965649667612865967999878967174586158864885799963399223199799689978968599593628331543889898551928828375295477998466589943898678865824855787595419998976486673899447277746354959285854278777695768646267579955387778198755928795387856475698977779486888161799436281922649619599718883975256738836857759587799434486449699888783558342918483677656345892887968679885265438545448564629794526946789748965967976627469768958467787953898919679557479497887869432733879649975479588888988464478834566499441865589917593998874859692333698587965558877858596948264848897355996789985592964758997567567688999376788747966793481244796639778537878658676493758798499279686975866558949879285548697139562555649246475366638539983991475859249743158327726853987478956897954957954626685659363892779886668488879878989934874972659499998254597278594998452876736249996569195594667499328878477864959578591778656237857564922779496683579889866999958992867758597578786498547747985554833656434667684695972963458932377679694479578599683479968638747367978828687445677223984968866914878599514599742839486199469544697578975984675995889767746587449995889972897997258786785587167718659989794697889891257532993768437686774996878669756657749996857676897655468368668766496799648955678521789633818679879715275627995877588924566519688474471947439568389755988899469829748999793859885997852764759725979894959897657758866969239487848554862886794436252859559966948689284695996654338669673997896785557958518474583856359979949727984275297195583589493627867556699888455389827353363696587466896737599976227966634459948394497955986875696817837982596858868367837575943419459897998923754689895915826638365299388923636358697795596357469681978577786797987465894683824664499998879469994198398592976976926849983991994838919228493575276367557789787826788991985166559874465893974969879935683857138789894989879983458524769834391945718764836997898774976637777479937279719973951787585988973675735656774938978779929918279875988899876719575734747544685485696562761998777774715989886137184967691789967289975742342395645785674796415787746486776122873264875889798743667979917766886957822498497935674432464877915896748524469695638669572883719989755859978259868989699399896252399897896997982756989674975688676446854577359759498939459986678944945864486569839988277738749842843894569644892888339873749725857949779668778973679467879295412345349757898961999667857559595565528832889423265524989565537884288777964883497744789643624883464988388734277715377769854498459736239994985961946661888996724927487983694175591886387997736876997475835457874876982456364747839939815769869322692579748688437698869365774988843965928866447256167555958748884478577979859384839286799893448459549474558756775648899868656793937748866956649268768994185879983979534499967753685998877776977883384164613439545374974965983997598347637456792682797787939767428295794334567596964786743996899585178824898376924588698236788673958874677657797549855987644378781775626436576795757183753567936259739636544799897885269968334998549983349789882385586729938695979298429858598932859815988287899895689443763866619577825384997976796762974335392955831672779699574947459356798888976535416664847777886867145963577258865978698979869979826777569984455942664949778787398538893875888889992773851785898678869897754149477989889295788684858988694759538779598892982896769968876949578598768666483689859898597589478788878983716987566451798738879873797588934279749879555828784875486229679859674697698445927743775648339577381376963266527892843738946963252493545398979956584597425797485747783968978629769588929332696876833279793579974792894648793283797665287499885739694297743798985794537378664249278683191884923865854278953969497697799593995586579387871398961678288457789599425959663864679567858449583966766462657948367496886939947694979688842956995895464398264921456558889588699537929895895489414955366657685379978567876948667799813646556489564959993639598687976699588345885796774627786168489997989379579655474385853976998956892679747869769688442375988788898427886957647539382963764387157885486526951486879556868794348498999888883777869792668495682384779859795698897169512598587675795899545638837939835986443168882349943736768635494583458565864858999989979497876695776569939827938517859947995966888959898794489775776685464877555598582884686957885127164286327638796638785387959649349568169478787625758539857199896789868599974862439875864476898275976657377775885724264558956457576757226342978467374948848365679774796663694479989979599995969999655981195676618668947789896526259973363378419431488177959743999579869694617796849654699892429866856395984938368616687859782342486519896782875896785998347516587564684296869663966457589684445971768786884372877889799993787447945552492695596788989457694596639559479696275642183931345359847584479799439944658548993697258848896843637767494892798176254869989595239387593957779668385369766258975888985497354694676274994563894999779667469318897828666649292566967895978398949655971831896796477536496884993787774947176489494497689556986477981996989898159749869898757883874687664993267826377396477647997686553974588498774563553997485469734798693466631366436787979559756678848748386977578884974887849958783687174986436489892736997223888786796694927947984758774955567728899895375516887552169312957982974785457836966344489988498759549567454835385685784879769945888698596879297378778977543896793698829359926878688262299538699669782989298779294779865895671653448451598338556637881889738897898572588958694548979785581875769878974683725848477824938968989847761974752749192998992835987392647847985287699957666956888353971578788938779966849844873435799677877198236259737475692279289972978976373865748888768598898856782798616897789597728584248899868397458885592698787969865894799677696696928671468979685828527884848889984978755767795774959787895913989938455858567686583673999436918539986527681826845689545994786977698959699399853984668168684399888589992475776739568563977795894979887969889727694888967635775853473993868657889965696838899897979635388694857559898718566277769698328996986989723954558998829949769899872379776968377799767989688865634788579737699897937744523989796699799856741677895687488445925892879855982455928868491367539979542779396978789958839576599582758875847386378295976646961376577579359898969284869426697379539235378467665998274656993653928759576799437989867368156959371376936872885767649683499966995778796248957985583397995251799948979598839776714992688779794673888732696689375735947599597762889382895838958499879945498656995484495399944769668437789366877469874795565587869765848997788946888857386783857955746179567958867293759439978387174951596873987696646997172984746348689685368577994884666397868987469888788877858483727537798959996493876949565838359534478739796668626916854599527748549382456885645485859956438999466175487983878885665453164594898328867871666849996421997669325228526598549678763947895728716899399893963845873256928785461272472856781991858654273494919421849824537524885343938888866386842267856259976777788749596876759788895964719765878427369734787971599978664788488978877167277369876977789834537595958798944479838718369636377694684789735596798794347959816468927777575698736115233379293244769669395875999379553568464892696618896665678624979845595949788786617287675935949439977255945992822939924757778977599889469378469879162943728983497874998642475876448867372595668395654487789576544858972687696561993655885887786979784684526675863665556695893549626849456739697623668874769899989847928974778679756478398855297742767943685799987787936579678848539345597855676837396669588798759987898759662687966674738949265655337877698997195488357623957877956745477328858538553149895398853789597565864894948898664696988897765977549929681949436676667897629877975978395753912569857978653393989787928976647761769753883876476588854568969885869796948589999792977387792394698595976796554463826833496757788198678677798693954695896559153464679823489569643866694756777346275934374948597446599998779865685814497235318599568485857767682868846973979794839697536889787499848875975479766678915918968698847959778889323998893269934623684959948665956286889375999868664963993959517294798187368934775875959497979336789239879978725785986289785698784979941597767945488839962566995988298196544599495791567759875833986763957898665556769598475589363255948366296727947729496599897555218745495989689894498867679898825719965637773892648956327457699484849671955545733585757858588746794997497685393459875599936391998738358778637657995784896995959975682968518859457726289534474685778598233698295937899466884472889697769894944799169987981812989992783676453856745183436977553985538953496979575857668898152672984978585798514966515876387929777379778878668837859473468585999987598358597363723979927779473785766769983458889666447838479787848565799967797787689594841647914657976877795979275546473187623893986749847294826894979489787399883567979797585769913916487579369997876293496964866669767546534849986649867366428778835566598828468636986635543873998893969997851599988979985899866896316295888569956879769871697956384958713369472949798899548584858586992976769896928279669598168399696967589956992362685799923698696798995746986749894419996484846981376894368736994888643871659679894958969565698746865319466799929791699887472865699592675789782691939965679978559665869977684655839897877438397997667975494957955571942938795694222495745463638594967843677626563716838656648594755899968224637978577664469895595481896686586898697666389853593797794573769753773268473978999454963489995554845889539516355759948799795278823495774365495366797248543757942839356994759539798873669798849968258399375785829719455249687596588471895548928485988769694297993657748365696693362956672475958989467998363567879799874483552897487498938689679217576847927596878777453677555746937488989494526779855169469953996628244888977996926589929979324655989868578954996956935958677949979137595334696584978277888589694491424458279835788576296459327954957798778582964377366637573686778958528445787368448337168978487335675479387789674269946689983985751854859898818434756293799986567657646885664345828477836985876884799588125748796895943874795799961377566726983845755765788694263788338789856376929499467999863465688978894787678955757745885649763279957827848675599478978677866797938676787567497881945542664489972488839762899998958657546855374968798595789299752874777787928945199985379837978349354378917692659414976379977988796768234498998198437987477588481396857897469669678798888489966599349247691595247548945959544198613776677657674745474458929982965665985572597269457699634988984395775897399359989956386993649847884885917836378975943768536969254764999985588695756989785887685874964888478818686386729864357929757316997778534792787986684286954377637759538953963266766487919876297938697984594969596497618598985599493398994652738473697476444743998249677698634858599794677596563698794968944979689999698358968876786777285845834779317888847595674689498267462987754787592639537723964999326589667937673997888792458649868674599947929699867899396475469384668537828459559825699927337743358449746866995649492757587399776956439893597288672559388878463897964854577982381946995875857281359898594895479875669983795426892859855747582759974695885638958517877478629584575379797341878888789955888298794887495537483597998398852873769897379376938863651488146984965797866796665754479677835795688587589877366877485935875383174897868996864783897747994876776957677935797984775939748816296558918936634983577569838588475687759848735889618796751994768487636943796435678848899533663826798694989175397783269656995555396882882593992399677889734442868877979968999836648663894666945479663188572698549279372865564589834689433615869764894998989977799777849431967884778577583477598766468966571957369556754837157758591458135679976737674574598988788659474687787755996656522679929779891417434857795679556928669858427894969725845187236763276476582787964536786199475578799619276977588627857234981749797577459568983983847546995858879766567853858579789872758889554999898999399929786373985287917566277969848997685944889698665785764885895661737657687764865948993938865839849495786385955779769962789339869646977867796654995868156944993887685289524947877985749737934799929758539873146686859338837285866145323898946568795879748345987576964888558982654549657829978579853974784488588997698588867714333592989178962836982337939289877749876757938668877787359466564966853489489699874392597776685897739869956884749228876148758899749797996647879689872483868765158793688978587897776697385689994957999899687689777951339897629899987788989731985588969498468639679499996683584896598284987764923493799726673676886448759897663799775669746958797995838952978694838977367554688877745542766277199969729799794695585476867537678253758439877776895667877927482965298887998798477766769672668974767728694938879843687969863286758374967177771359876653876664659584887379567952888587484686897396666777394696672387447699454937782573846397989575667595797275695896529646687836686447868889765969398982934979366498788766959389449946956595676753348691999799725885853662485655961899455998782838962188377434939857733371981215828528894875359856925258528744528828983538876825872549588848756425998975779995359947896855468948591496855576844753953362497336985995864739547559465397768478967988987691693777689757616835767494296188376886884355944597968652374769546588338656789487499987683395867798737134998799778594745686688853958767578365424899997437664784936866694788983235579479678183987752764296961699884379664788977534964842999668869136368873556233696579997794458669769536382856926346997718928579574876984487978827775618622768323133635882934478857529877489659365866699248726294473856186643259586427875778632171487969235699933979479993958478577295976492865964579587996878374881847453979595182999646777686949929515989765576455256545856797998647696787456754548997979455386577963594466767364796939546958499994875598388239867877398474653287589969669859278886663575865796547247686179427668839819648587799849468978346658979988669439658994548291887654935999479666577899666997395945498757957827477796896197946347959988848968842598397857394888646545999684876877464195382852759195943153949599169688926577834544866346868726977936888775696869986771699798565988849797956676992297576622876889794639955855827998529988128958713773779947596798595816758481995847699795747893989521679376784247826931899663895794415676978669768829598449915695965925445584549991568967698896598559458587489778949969975895145686893567599996849717864977779468998179299274367996446597575489563998877695649766677693917899988959698993932919969445986785287857775924949627247848979377564246796767635788997785856658346785877792186589878989664267955935939347745885843986369876697798358476887789595756789798483236857569565677534927859737971792425389627387438476297858277869977837487283596635493899491693476726864679696714839845965823979699993526779448365478447677769775849987548436673752663746797828245169946358759753676998228197675856459581826276465767887998569779947565644998593797946936744779826574777399978589782512797682569439358878918574917789175997899747953988886499932975992966858583927898567378997881431422499551949586857756888796333898459858495568578369274845397888356942573547876649479347946899275479688684748419566797997948722569699477596996682863739547692788489839759481188686537787498978857548997448396814858762766888853637545929599987965894958999687278845588967784684697397878699869568686965594497157876697135766597589516936599897888859458935848784865524496378589273724998626298928876369728784298754325988397898485388349679753791549643499758749369999976665798352896639357387568977449788555497299268485898589189959988647999867969968958497774439993997676785661989986849786635669388729746567417934594789873979578116376534991534867998823889895677776899686839858833936398593463893555955898589367628578958673863595664747478195547858942887799957839762852696359998666287444996853886988768778924758837778697888695758899899727964879561972448793267689834798629851779455884935873689789778999877184965477612973863962589428654768185576986687558998295489469978884974661836374532753596628869859356945964825456733674895345698146673724476749753413584768485679885257368688275658543896588592568999897979685796787753959973972686488284252968358767989298354875954888685229997378715997896971679298488175825783619964472896895385986797678698695768996997278579896778797296867959888379956995713623799586666597645184865863324598757899677951688386786434538546468885631278249762858292945896967359274566879274838858598946428989488767367679356773946157656883668397839953835387652992686979694267787953696939898696852993976757891687746819869687373659978899476795967995659834735992354749679188539867464962798885723368458354788292899548446969777838882557957267947964874649859786788494965867758793275999293896473529978797513788887744799289879964598899198865578698967933587765664496988796928489996558638984978943549665396598479974656868659377996625894855955597739879985886889695943865463644679683931963162699695869758835583629792268888748768856748973381868836579865996486887777785978556477598893846977839686356889797734442729589849798388558448425978347867985987682962543943267557346759646773239777968274999886877892677884567246887636866395995557769958841699395517373195439942789467969817785697947479497768589483793967994565887975869828872665455298266938659874796623291555358864629883589958396279676735472977489379392835649989479186984851746482796375733889935882958663988985957868989992786986498727418982887398739869976494745741948338737669987855669862939369695889597788377564498586896729996466846583683382191587649869749979787593689976834766663699978981792578876469989738917967795678576936495958456991299876471339489726788995977267866879889999269975947331663536966555635248832953936424354517847593485697868969836598798676526877973758349671979779487399946274833969729785958463478979877625697686438584598787938699796789878456698196989334887574487278595686389498634956895787365397289923843676773393968595638392869958977384797527875398675798136796554886876674755773875498565999548668594299974599996889877585537665765373788456855792574887576968567778679537996974766525666766668769389619994984919969685976878678637998399989553948938475388969399186873988987886587569957822847985647957978277822589175679599396496467968982639944867969491988969978894799353384961598588614977567599298769769649726558794887686688347755266868251977435569658367525859764499949885568688223917754982865262999877349358877769786986978478969943475889581896793567948186969959889786974965778792999988797986795429467999895531898667164495886854486843729387576283869757296669564938529959777488983769699946669276693258847425168772678255686798784387687635839163779914668667957998948428799468873834586568786797664789529936855766275837898999299464862935789999763658767254879659589358927394956589526487156865572867827865463787439898862765856669885866579389716949459689286856676953953565249647996773917496429788599442968684374952798875872476479984336976836482966878795958969487352289498168346599776587975677669569444968697958933679977799775628969677864966939939634688858659939788787839167639939934995711957895347988638893938949489436565676691957887696897889758916529998664277189989893584349788564963171255961647657858993299888915655786873898555847596991988962146977298782768254936935782395866757738259286578582789499978867986939752745985739267937836863696987596885688663588745794433888847495545685476497383697984698976876994599984455445878939696868777255515789657663646595978968797479753964986891676776777499572838846477969678189762389684886999747734378349687817889958966499877799379759589584698869888438766796978937897974647887689969671368289699486689947315668849847486443369597893598524978958796996562794986863665699988545828547989847684895668893986954498847889981898155929979968193588877975891494963297393757766578768996568579634997435185568796687859996384956757989987989758278997715868954937734488774682889449865699369736949567887648873925969749677794977978243876169628892786413599679978997799979997874951629687899649866957854837895657434892797774492883263894493859665986474526792189782453872565977833998988774728679589858488836551466988754987442778889586983624988949845668654667957866969465893777889659876856967392869887949587797878673453993768859996564639925888358654678677849827848723798298687264779679483396916893673479989599983826549954892198884419949737958336386288965443873688374798578468999979886887833961868529959889937766765657772859393874298843893772967489391598484985668546863875699399656849892768754491588563614969377997357882675559667477769699798777697859789937742168516878955395478474735558496169919889387379998986795972578851389848362146317696538538422576689543688759783963588934468888674665437248588989696496935388969993898445583799193947767934799957787966466578295983488284985979933979873375978837546953973882817793888836688917516646927769555689642837678855835367859957688389528776664788766946595878488745796637887884658946898977967475572758837968592577776722898854687957975469956996975664741578465478664666385736782498857677799334544759965437991846866899679388932567576728599468539949646949983493885699652699745596582399445965879569994973245438989591533545496887962785956639636586893588847388997966676488694616662898829278475929829966359656676658677838748952336557878669888989448565853969984774774779434794659849472989855446969457799647558876786778852689966935996776825396774573469889934686872538569286789864653554765658221479356976649977999946759331739895269726877338593982369885598984968496989864566638787483733599968878763666736895397588442799572888885657629937368855695898787576586355698696886777978675599885557473848996847997385994789537576855292964597938775836558549296842848828662863735337859235684779849987889729959859884388999965918967788445783545849838878381299855727977269649465565778866989996765767598897959729685562743897898594495595494278755799943485329914735668689353867498496626776286994773699974891877858889228378666759591838486389797549778489967684959995987637526594498799397555598959887883768695569898545699984773135264889664949651698482594896948345488268968988995752738787633336689589936998686843369992477972789778589476594699879398295845337666859989938387999636855257399569269976297867529885536596285999389545478274682975988997198967352439493786268589236888776673964558589646898236778858768632347589964958346269868782777897278775898885499966688985885634478685879993689559698758475569466628939656289393895931774869398466989975688887695996565489889999483896877895359552563289699986485274767525699239993863527794855949864934573588867958928876945967835976959585265393469358513992786459868399959375433997188628628849585777696584633867995663679898783538587627789759667678489553671983493177279778977996839687958388777747789975958988354976866759785775669598392865559859829928863868299921795894998986982583647798978327539495998468837657877696775499636654797898966767998713998764987345885495588665995758799678958482648487983978576937369296869936962336678894973368949288623993487567737999983867337734659843184776539542639858749987999779469894873764454996367693892548161446579627467888969767929648629887844599824957725798781596998788726769827883984963279926946876687873988879745899999536796597499389964475793996859399657389892989468888865969676269798866376998869869899849689949479675957931863775986586457994744992563895998998897829962969987985623989794268679799616768368647695664349275798987545992795228899729571478249642938237179298685697828396876244739949223952939763744893365767277977929657959635496294779697678834399987677572788881384692959132531979774698749876633294582497685995966564966442959838882457457555829573469776695788797489763697724669569832898429354419191496774889589284369566751728677883946538864579589855898975689897633762637889497278248792997191592978869823239996466985793737949978395659647954766987856899788742673678768476666954594166952768456767244958391265869388695957897619859999766639699738789349799792983667697474462797656948989927997777757746967769685889792588649982179569799787598789895697695864497772886639888254686285694519748698587968877985399998793634899666535627694781578966678473778989369349889526595864596891399279248975277736937295399973988587316759777789536678554336995842879967777592336546596569517897669992459886898947439969645598974899188575877361653959598369597958959995734947465792326655437486559572983777898791297968699666993465472698746249879878896978685679724994766999799816698978988976736851418785848489689629416689824447955653859591961688565845183778788986682484465764385578145997589567658488585949777579752693891859369882397779979594889787763787296877358583774553688839836343531979397796747375534399688931683246779998998698927598359885258897488659498653176728769197547376377758714858997599738517968226588386878578866975296672778875689889539375753593938518738848569435779863798494569787468877789995899565994899763936784579988756959774848635773186641672889744795848489777589798192876652633889498788798799156299469338937689876969863258777888567864475739645646883968867795498836847837479588989357976647657788964338246948349866161981392968957647684647993399665869551645649968697536958296789885684279526148968465834597539756499189648764597569198969987566585995889698754775649396789961635165799895982797766193788889748896936694476758899377686999777853757956875568769883677985997671477636585889959992954756724867588565912782837966428497825949696782787481683897776567796927951487974414995946778769856929979196489693683997878929585734936875968786859795783924719985495696348281976487949757745894779948776226386382896986159972975969998692886895963338757857848966979381829748672823887329799773462999783778888677647777413865618998936719558399776768855549668338883639748664879886969988255389657899299762866889924854888968178151468358973955996755164823747834587585645674399598525373667877988556279881718978875582869518999667667824688856387792759853869349179539787785426111359299877869339896596678596962697684875771499698868958912979538979937986759649887638987883697929679853987999683689738983532246186994683775697649589778267385958978879686685967976684477987855577647756397689757947898648638787767897614416877813956979886681599355583177364559883557936385846842698577479935586465369959957886573985278887693284475835336778815864673988851778868437465784446983887974794457324977681876395896368589579978955943975698867248439949145346774984276162575892757894997282975988596989777576439689758875487847777525448398489656397873899885691538587818798654565719277797974585348585927862779365396865258494696649358876897995973989897398372991999949829679149993966489698398948997766778169379889999974389298768966988877669856979479477967874348538724765687747279774997757699998438695864669884624692689524739772548787546568747784367957919173769948695664484948787556386995699673688845559565593696216895879465993884898973445457998857938938913986688668986827489568746964496873963954439954866779279797179983947457976992547789722998974587558888999567975877375779982474475398673266395448356569463499784587778969579869919899577764265294815769737994557269557748337968993635279489874897857444567978999668461939487647968656679669747394185888979934843797744348757778887861731834974786757198894537797686739297863385479637369963696466857697786469784697489362496862664137612326889867727715776897596648747966785685277999396997974587797898253532595376396959165998399344482237397667855869458669566998229759979493354649859958796954156193698995499999523398352957448526877497372475352749797977697898865985868169489887398738687973656997693687936868567465476627769971629865478446633942867772649567597385876935875925561319388818586796535826949599653194395551678848894687819649787987398986266335594895979424962496969938875993699787899769778876928443778455667759174699757567823293746679543685816989388127996965987765857988459488576399767714876738377714859584547545778777998487687544867765769855529589889324687818368967583979858589677779757794756754579783337419849493638399926529368936593656269978768279859339977859255697779792355886898779566494736958989969866799888485793678986989884377597897869443587837889139786961854373499747178489666819899989966468769678986488259486874456937748778669785775758581797998757994976946987149349849594424697759733689328968686993327144867598945948398677479677955828691799789596957534994793996783644526957896573497677176844912782851548893582795465873633835359668998768783684667475885977526996837546394768237893981929996822982378976865699984797246773576943699797564769879676649655351285457453875988399589398768969927976946899345729763867988855695872777942799955897744746989947538781468249897786488539535987688718169437549779298666786328599327339975563876666638269544725789945816586952586988688837515537476837589263548897979399966927592998778799885777779976999749857986388687484383949678975688695977562557369658967798736579954469843843994865768366998582838737539871884575898629496996992876895824759826996799869248986949687376989379978894795794175599969927972698685863789555565877598891438917999439585194645383298596889736974857889817545869945666982499396765357892996698996787929485494857774283858729967966467864749356938649586466855625799795953986787674697995223547369838288869989666555948728296589868878644899637194689779695498688877469775668568473158832599498453795594498552862747746789525951996949674698693893679982695586666784569888886549887598963994966685986783292197656343555373684696997794155546592896849787959769897873693763797945896863897296689265186579473885853469247944564865785577799948886776599987778988858955683871979699758912639946895761893662987333889937469885768759776498295965979377362888466967897765667835999567984687126688844198669988996467364538899767614287883777966854889917666994276592688998968967824734997959595378389979897843978784695358483678163653898895893756868586945977957986886258834956948996996887914686456984893745697349789958689355174523899888789374969458756958676658861389878289877485892378426394469458882848663883377959476792836966993585289753835854784896728457889488994658742489785969444667937659982715851984679569576987479659882964527879184887777778524883929857559459656177989895495399697982367567765929993746969485922187886969744477676344676845655687979384885287684688182848275837888595596882884583379279517387997969985486567885839477818966948759739598782897954682379239644478468885999996998894878954685428869979554895955485829279995626767853497966886878786596962485753496794581598966634945853477838986933989883797434163999757567886977868947675988848984993537965992763935859568878989266999484789756875789784572669134689528831775444766185138645898955629926952926765169558627592386554356685157958971759465997754945345837439567999699788388388879769869758871472376519699755489968996678974997984399759945636776979996726854388396668826789485395834459735526576668767383876993397435735168683544699966785556864864777873849776889662989899998889978596387976449994349896984286532542468928667213824624979994953857947294787669565691843747986993385366969959758789968484846546857245768557667488997569739334676959875999575999923533653799666686739988829464559866597984359985447569557989624898686435861786795586289997736618466998893875568934927759461259449569969864499398978883919787199568612497897386895799613758961683764996477465199977427418166876499638489639644675273738177989994664747246576534585669488232516959599795343789986979938998834953568496688894577595467685671918682463788957875439373359994697764357158673758478676551783659588898699986918997342687691868659257189664877869579747758849574795532899473377879859375587767672288693975722798728378149926784997796598645628959797292468788613747685587738547743657564198388563184978344985837427375887798357783325878987829667565763978599394748257888861879154951644588719748776886869437977552949589916899799436875778689999577263868799895729777788897868845866518863674658788979558849395848933974286968969951616628834587678925898838972498899889499858645657787258597987983198135778764887789389872299596678596484296958669588354835975489996874987919799886897927867829574557272798349935876997979769469994948863265565679796938768892698588377987489973647546367665694864489745724664899773983645369664976598536949581898663357859767368579664396389344642775591289937671796792288678976587959467917676856843994258475964358989977774935279578757848858725967979155874898747973998669986689997979292642878788384465136676964677865767499774997688688576395945924799982497985961839727938837996897649169789949929837887669399659989783897996845191655557796648878488836343233986576586966378878897187965294969843994598878669784979756367368983699882745989696595556495978655285845697544592684898799375448489242923436593569998976395944988187765958855844859433772866763956923278569979699812287895697845897428994948588752896945347798579966485637489559699974777936377585896862936598774457968929786927176473949279679746869773978589982996869644645859995597995798984557988959985493786898427866843567969596688696749998575966984949989549799744874775886973998935618159888744747995977917175434484978969898229879998826645758698899575522997556568838997538745496542966599999895514969257588688677593998699569899851976866634699896469755753795649978999798574947796383968387764289669861584778977927866682587931869795896866459699584639971965688581976984789833325967559567834579799943975468974249626742677579248977996867788498577297778437997632789589947857383979799261868764479887873683979996827879765399878246497552185866975686779888137768528594347895768696795947499939786968999975798778857888894566916898945997499898789269578393847728676937698759573532179777323369416779612642653548498654982927589889374938848579683879586767898972733888396872629998511995648669988995478482897459379838169969928968255983988967992696923349974282586475595898589748775776799491699828397197449496485894699584674875945967837924797762994695653935889773665393554754877756587266599976846694589717326954688666648976459979991876344572599687971663528666991329655856978475898656669997824967565387365379654994944267596296554378834247887459852955949586795857889985979787998859579565855592549767597818935687635139437979844826879736718684256939357678638956768659519964896728865569975998888497846988919889448857858996918989994799495841898765493139669279276796759368979676999886835399783863657952739678469889854873773531154895767979976755447472479798684966999883698775597236769845869989784855879876646984253757478759828695826399595784755777545685777279298475617778748958588873588589198446339489939992561977773675549554479474778624448689269675649956646337283388739889659747465779789967787956279599768337554984762899595768793427489668989665596968349853585889966977578536299978755896627738852767515542776571965367972458885667955148967894689895798569635883288574393981573691979468444687162452594286999395742744149876566679479676896898273857484586949967731429763184669593468646596987793738357569969947779737759769588895519765677322672997667455799844577985387638994599878798818949765964596574678996758978653768668786855556945988799799188787589553569546675916791843852983894529692799943878669786883793767758556588576954948498886468816659999899898597647777963784655795986688587565747464964863688755898789467693634342365539682499646458986287458696996886653955377898858961966888886894177689788467662299894877865386949959765976979398699799695779942987971683278973377682736729687757687888695896979567275638755552357879992953975933135833935789487877584427994928698495799975236669482849268727954552758578387193557888862599999377558775696971972799688967693957756848677778561371498999677731479585676633795779747934725696446998985958674459598927859816672994847585876593478188559499597731354761849757445397899626494679646599683385874689856465855988166496435669798587858877482869389954737588994487483895436923938695927767855988485687957676887988297888769878478955988293873699453762944927527284748977677962588976796469245753973966854468569967979993219894935849649459647456886869222752551639378367589558568995658854585688899772569777786822484699845886755969775774945488533988886868863946819739844556379855563395638999685577535782679497693788537778321997959698979993935934692445585339983859566936788534698587867987695482496769422959767246957627455798597978491765645449185277797798668465496788599288858795489218488698998697897641968327737787739395493749967766889988689788966796977791866276897791478478858777467756757899593667213967978997585984389977296644978236787646776666688284355267592957379138139617296596437479972162356843498954996784853197983994879744618979358878946777424957349576885516786578446889859799256666695785899779767569971875467846998676567777769647858967446869685997883876885356368664999978864885658698949394395947984548576779874439595212787812384459693756533882984769286872669386317489298599986499789358498448258788979857738999669778539118694594753567773377949339424585277873836878968786798679879934376668433877389797855746998689823556564768582765754479487758295199977488973769588948934789898369568362497498969525675645574972587749734767946418419572489338978832953698628783397191986979948979879888956687637775963436579958559988687789967947772438876297725889967925959897917638898556978963743366951388757248838926922798896466677928316278999778478558945665765866759749748996498828439922757678695384694319326897667539486794567757577898882689367439495877669289546295789875764884885795346626975678969352886697577529979858599848955592349543863569257939938979585485889779988657382477485747794869887595959628289293899889494198459145631524289876886668587474999362448829468747858469779887769799944197359877597849388936597936347941658732745675367575189684527597886832873776664876879746887994738684278869876934835873838624896978597995249446667539578946578386887497986885294755736865996996863864882976666253454859853172689756198835966585879868866878389472581547954288889666145897785557782498896887671281948659986669869848193456567679758747484798984828999494335836959175768246994288987868597668847489478766795897712958787969989739736375932648278799284947798844657567483787863798346762856655578567944243894687725383888978991578253692937659916492794983838968964847816979697983374897379688677549969789695697868747884994499286439352658948894984873498557747978477994959998996979399486885856879679486654563964777779533528995957756946879556957362879438998388559477899522938487954314759833788949265488559869789694775699839185337954949626916853988793859858591568997788946556785934675874289655768882944498579974787447684875436999858969798855287775487644899359729746889539943567661882885996977683835941928725898768684624699964916766821238377787787576737937938397777357477654579954514445199988945985585339867474327898877895762465988899999355366974379589997785849643238986298989998949426976844788559984869696337689648887862934462877299888666889879568847974895855474976662755974979387292799786878225465683286479978428496959765689875749887362474481965777959459849479489663284978354797728449977768995359953886762945276987838937569594694986987888295868768897838973958666847851379467785548976793666958865975593865886696569473628348777995658588673899538288437657799848799339999588948456369967537599839983679593775997489597589996888859886712484895789886924919915464919565868845974877784387437943899835786425875977497597977789775783294874499359988894897869871896853199855599866474395758299678853618899578889877682874796198495498975797467425849989763453984599763477893479597986549478795767883657884695799721789469557797378416963985997949983698779853699678816699658976778521584247399286899668663976768766793997972889729586257848968555578296778617776987977949859286887762549832555784285786574676866985877979587875695843689388166687823476875857678658426239579387987968797645655898747793964998391795897667787829879544956646998336749998979488158396949987787377882771599745865932974794858898679486594486367872888556757394175247989249497976674987875897679899133643959963548699858879367937966778986197729579925797697699964796654578782987786767986796825997651897695776458397977826976382997739633466776871677451349548586685858899462859369994874779794789558769727939718796165188957976968483754847775782854397361636699478688934389488279695896968298739667649499466441398145731649314436899958873492434995575628641959896874688925855955864796354347784383952986689938537259873467669775578868768835969495761959958676789588984467964974495569976729963965587277975274288541793747796865639969664677452886389761189846998886695677479695547899765552529948572758246555629746848548773977124669979986279878886755934357995785974214677447886359739277868388384719275986888277948547776628924449941975897448778697589968323696695985657915944992562895688957995873466635129683896629466988256458739699876945947998388796889997923726351983677577499868933372272597945538979677794789678897566797367998695677189578689794423532378938789584867678994747856952777659456698858874946998361647629953182689989587868975549955694239999848936558879569888779657547687819693476546754799599659993999766938697985917742944678687866788693997885496265177795927929868877979366499865567645943996398869996269948982665944787748665446868549284767197876687877574975785562292647953567279577795721798584587953772839885789868784795612439388346936599498598652798944598367698477898979958679564619968666978489882633682996675855747545767398557377193388296745448539786998839988774386674759659892687458795658788999884574737699999247372898797899758446688375973877767768329779127749475364499736878887866313694762886789688946738986698548388878637893873989496945793356468587863556874455436878398757979987666687998785549696857654994394984258877541978391178819286876797846976848526484997495686974785578588853187788871478996142787676288736997656765944979766796172899997699979684697888653359998169569879525788477466894568379496858876976487474933389998649939348748968849988977999919952718571789295623965452986592996257685738736626245263686673995886978991876849896752769259756955998966888853992588733678699999667555645344988828997477555883457935377858726978683765655987416365495578478477283896667572898257569992547776978497618397556997777739785787168717238645684899554497776853845965867977659864748499856475578884476674847871578887985478664756871393876659666664245986988686928576657678878918955997949998468495867999777798837357584729997986483546768528698789458796789957955795992552974439669394367638969977198818467665497789337427376698829898496385287856696396895896766934998836894258888587945929795767696837574997299923863757826796788468674938934368967563783885963582858673483989259992587333395989759987693997956899946745562775875833764819348887688776697719365268596596995984598786797965898886969574833828495676887968388922874967879688554665789657884795753855987919948599565685666448858895263488763896378462652999879668648798584577998743798419933429483886649989498389996779964549498668575889784978558886856757493429394897655763598659599467594876977976968786695568969764689652477635889498686777966295945659567884973666748888887747769184788774636796999859968689331799792845577887997965695788657997998631987939668947548848748969876249669483399456846744686999671559438559747576868773879649947193848439455468596487548359974861838269798475488877983778793853938576829977786476794859279728879458879738676557391753193975179456922539567945639267676565954473665489387767289935778688868652485684978889821546859537694573334839555875688898797541397978969638468898696925887519395693879979894862649687789796714681574397477866869618782889176565956255473459733594879194456682639588629591197759246645867647299729779779694647759547198719869857985783986935669694992594999469672887855679559888786699994576397814759397768987249956549499927899495257799789969974857797197599779937179913548469984661599738756797798468534798633889789986387878977987278168685674736686985625889968955166856838763999797963627797857765758668929984698493997698648997758945363988665245956534237595346613649245892869986682723466987777695659649169797729987357577286658775779377956866393516719685264687869396678138753699589898579975299856435585925295888568574298895758869783855883869899996652578896844898678786598919487975788862436778784895379424548895597884468463578464593896985897495896699684596278993759359347849585998748989696927872579957559872964674495736857793875594744777139869949899986773897913645943948889447554985538667788795788782899919775292479974789972948768356226935468636778516778786939114369266679697187952398965894966668979958772957878744688698758966347388786886676988471229978988928836982793579469744338678384485689825679678749585544975587488982287894478925965175169997889268849616745168499897697786998325828698734859476348483557682546686593941566297382979293625967377998869777245488899897769859859888848586396488944859928486898683579679964865996658746399588869843846877658476597678835318498473976496967935474985694894771979793456283384996594961559961928786425875585879936898949863398866783739756869768962824994648255646764987979299772897566466726368568357663762779989455897276397548388878678855556775657839146877668985996585688988382945497534897951749692998478287774775643676987977445985489179692465799968796894864778827879849227597889979973838333933587474487578388594476968943427965388167727979698958866939488517486757589697327586498999483395187419477475388684456798376897426676887759885761997485545481967888299766929813868885849938579299482769868966798562536753289477856428786987856622678799687777399678828769777295789958896895658869757598787589813443476946461423158894484885789848495775382796586789866985778478856548968883377567479998788885882836637789575897889869286815981479941497698687728446894759825528783498956257979555744535486955658899847764984568466487997498462784828955848267989798799289597988581764887517853588348955846997998729975698937798648866658678668189967648698567999553398659785886949497584279479774589857945598699968723397623869799164865876979956877494972656853614468894339256699736435499645757758865796659576765893695588977969829959949863588293378774797586795615697686793778962459195851947575619667796994486688986844597868468644716935649698667894485699798998856866848675629868455898666797996683596644798159977956744274894758758857987496758869768984994969696365998679672566858557449852992799977788365646869769659369989798245736849944499776552592877855974758987858739647968554828228188749659988337352788459954938977778589735986635191967999959699288779453597999969786146967375663572779666974359591268754996889574928279929457819897149323998947678586327889878268884863884986847298288895566479634185498868977616475596763658839726838297689828296968966869947626999572568299555779994892936239999954539755957651679244574699967899989262857575575797554894676885936999696793532388886555997397925999885996946577358898987548986359734679747949676147686874888796977963959916377896695658896488654378865669279295887447697786666968865891498849559889399987544959938476826468587999884688841399994655857578777995499932445824799667898875444749777599687576751322787475986883123978385746744184686598968958582987457478679757689984598453576679933367797985755678886797697889927759685579879181935769898558312659979268537638887746575742767778989397889399668697696235897678491571837134947455653674388593859759759139688376566469976765797554867497787995626688531882856361899846884277755969596477636947967666782878969945494998787688638679891669756843898441729957778869758579558756884925386393685886698899759323858699463346789237898588576865838645594147757446769925786366789588597439289664854897538879937969952934758545498669495767794261966597959828687954665849246734598852782687649289267683864884766558785547486766858597588871962868685562187989967981766965495956985889669778768749259994719858624687638668697598983688584589965828842792965678598779977669539569985773695185372729579948789958999976639285977165784929488786777919974639777679749347734968194969863654897459588911458985659869666843175539556979758345788375589659357396987997855786576887595755879891376934769787679856547649359799774586983667489983287769779254795543469688949879568921569884849466688938855635368594844956829599899648989988681766488974637928455956575669987677929894649747595877643858829788786463588883499997756777966769299669484783637957983855197628972724756989559519689554817643861988268485662744976933845576679491818974379599179938561389887847878918935289588394665588969629279999794285775896136477966877366636863856833873987663999876753289744259638796498847868879556494987697848372467769596559475588359589885979758676734874957829359924286647639749788994995798875463982979737974164933622398839989565585598693686858766749989972598822779933674967489736863979798688829788248199944548588378514777829347636356886629477658837746495875939886769952883849967458189689595453679881573487496994968839724397757746869568692136444889999696471937994991765979596775298769549345867588535985988676697775389386763997746824868688694976985885988785972681949188745646749839698855944292997335367754767869649238968657739296965995157665517688766877999866679738767491692742737569985678768674562895776643834226564988795672568896999699677484779789985868858399485549944974282415696985375989686689785493656889854319984688386618666995499689887755773566786984959677598289687549873397949976986598496896394768117583789484578878356475689763696758979889814667539977984449298469996875785393848877398677429679861658886889979886976379594877799458755878977588785657646557659846646978594789429978699398326896932656577885848977655494727199576947669191399783575877386786694469554386944747827797384649775568642496365875352859275697238734599893999994581785835596278945895664458796894554696177776786775598931598952888674393749667319497568966497222979725699885971639781712345476192266839658746567455466988456594983399555294656941883984839529279747392996537899762959972455595759955584935777776339877294865986769999449435987979653843374797558676838568977259987896966897778865929583496456798818758436299449885998839344969826989763587874857896187817559379954777996946699964867587647976999592838993539834346676988493946588575984956945688876876685186493996768964599959856869767839587695745799894579688899595856355952587354876257888388549884795947775575387439815863546989945376738448698456588779868763692623932225994899999997198897956879759448736666759683795299826266539939789877764796359876697748966576516899997991796988637584544924686849719699899988769256565793886692258498962838785351839666847796866799696848796954827827514649799998974159954784496497622787187686877852297299786848937548996668796264376363762989257436798887159983899586568582618283958486878979978568757719679775869668725244744195975797999967386892759867969478199969943882463287197672844975667238962855668965577439263188776373959794875349397789992964855689876374679967658646592978496989769588533616894759779685977693379788844699996435275413797627476277846937966663968895976938889549978378768682588297969899916588847359188976969226978514855686728758368688399942888385475848772864693153944869983386835993487155782753385886799947615392149938356695829868919198777594658797975986779578659194598737635989974948888454559586169248788478888786791765598716247463522963786679428665979387597988948878994877486486938899679548475449294939248876575456895649839769529889294764386968494356478935979987727868186759327578669977728656999568916889858659987875647199378959568577474378837585699858554689946245897999779895497846989755288266983759776559887266648748774678957654577827897962984467554956335659674889868962569996979694353859953895788398269955348379345374761463991597756779438784543884862698718485985965988565483355989796989733535849727289688879528857396679999476962388653562661853894398974888977968588998474559859893924853471716598895587649689298548998199966928259696877668596877595885325986658646971837477934786588798888878489854898288777758488474858946975849778714389864447857327782458594879286981759627958769757857694256625985287699739887678376439789669871979483264885726969329827477944654769457876885898846977599667985944355954265798636665957998666499588597479678988949677979468967669587626985366685468688695798291772549586892991197869894666773988957928859697376839481989989768867956661865693448379973987576978985434787726693779773268415987987997389599598824464967762539896274868997892848876888575867373988988954895936847589688494765882687869268387759894578963498637826348866479756772847579398993469877768379676978497728553784757245894559737698967784676939631886477435485943328749959878942597894965388684566758739387659898775778675877988785996758878826874938989995983788789997584745986586883759986886746975773988385368949899688368897886399689879967355959597789766588772985799693693259436993252297776155959734515149136896795794764287979388245759667578965682588739926718427876783751426677882768563457989664747992975996751493489594854947465859599976638668652967949298624459856287695489768998693989596293499957698388479888676991573516798969994258762795789989848685679497858969465689688325398957828385859699824937647679993248978838634853744545894594699776894738976969953577668744466469995979954562496556782453796743259998755578757359787799858843576584498487338259647988118927991889985769577656669719699989992594784987384199887197967169539967484788648464689184794978838177685793785999387298896488694457977975796659515529559963578173986692564679357638849848369717975134859788893387585878165976857997582735963478855687625485678984575886779737983969641894385819785564978999679166688497849773782869774487869947687927868658998983291826898744364847859835875856837889888881888888373788387397862788265856396949486778739679959634798972179579537347389348436661866879397756296466874179417753867565282727898249973573737491655377888665879958896489969578438737774377539359598698995596635386946377669428298969174777434965999979877699574547739969669978824926399189559538959727749499496579866788635925974815885895979756858981567283564378929536638954389986649432544936924772994798785583696973829264289965375367898797587899966968429857786759475676452785997632797959373599668877789998778593759769864954549574648486499497558794596787985976975743969796459599977328787765597936943918889739888878449567483663983468492884585888729694472567959538748548787873852594863587198679745468669827463469462885365883987686682846339573987696938497588952687249745597487953857383925479643293798399845376867946894916827799834893958954563438499972562978699547468599584586894538656358497799559736628546294126222587579925989469479526854956499965955898299781895898855986987817697875944789978982898729669799839775774825885647643947984996995929287672179838446596168872874467657438891838388998544674579695287199297686819636435843689986597977995445917194788378698588579879757659978653565941386657166565587231487768698277444879653933529367899954649628977655859382985575596289485968996786676597599275587595797785596992858628688974686877764444582494666969888696789879957977749967932599826376926956775374588783877588888694842484774969978972676897995767989879583857187579994942965888689696549397975388958767698772245494659987976683589747887797955488677759649548759947276629238932951489876917565637899556658936645349997979684789799595548542485496887464389769787896385458657681959654579678667575558723495858256768657977976156697593278585996697947987789975346999154465975429889365396696683657976792429773921956393553867767653429681899999559654584799786947575486479555619944447967962746236444574375589564447854992367867894856767799497838638788492555999259597898579198938455418835785196982459788687834529925977796869968979762651598867788849675596257967988942897984886243963793754783968996274846678554484768987759128879326985779549363952986848496699978495276992868825374745729999445847795797976868159646888286384889758444959874498464879564593996638989885369946989657674338966743884835571782555576954935438655917494845767242979996577396896799795347739896865567571939589429869595779168934739796548788368743957588745488343588848665857289486314915778888869859984978676596999844686698793799283177454268798999475583958797867856874386379756548487331998456589688817177949875979989988888897468636679673297967365854635448958554496647484169796848348518958655995488927777855589842379548663556667766799745376951467965738997278279889914655664953317445783435348929794792337959674997783558728648566478365656918796963996833688983689778819842366248989588737557999459768858968967877875698338753695668294588697555936837653598699625896839756525542645916689399573887947574788786967779969874698758579953965498298777996376959996728999789526569757774739999799485957194763882845547978985689539385756779838743889779859747159776939989667957493676799765429869679594745735626138238659669956434988698928989397383389963357499784849577566677991987869379724587979898997998958866653596559376718638949649765996147854479499396589378496259998659991574984849776775992895764845396848897685358484553979549687989427874984389949669537449974897877863892729868969498798892759857769714448798837487185796939773589887778559744549458718498849976539289377584675733687847768989579867895773797968939485679352697156593488768885559464775749876269766633876452976979899874747758943995378372567883735948817388681689565397976985778445884679982775677846857982798697889599687967842978695894689967957695766768519795728925582784194848595531654848949687566876557669887588865997596597345783635578958269853776381895856567845962548462455879579765746664693466472386688357879859646889989967749977969654577931868749781891999892595217965742787984884944278577996694678386824677974897684662785366675798799452577446999743887885929643979289945215499687599555378378884467291767255396859672878279244996884767457887582975999181979498593625661477926856251333798795764577254989739122769836863876199897492436775796977549614697797496472839535983799567427198843596557748889984987879848925426329668756859988353373647828659337988567674287937786484148666667889948339755687969969969992984197788636825864996527558767995528596658848938879685554637486739868659799883967478499297683196989899398754647688894776928939987488277968326872238646489957755837856958673458896855669798952635498669434393375199535945699639889662154776966569789878689777963968774989683729666997899758795899323982588658891546273989779782947995892799953989787643348294337576787753933854977448264719746858579889886876986647976673759677979976761495696825572889733348996594815475728363388224954597998875298412958759837693798989588736849417857236379647827866957366995788557897594616989868689458495925798877867429663947467979899918744995583248658369768653649958392972483564868878799793689885786659273684746798996986894618556687868992575359779966976898756879847666878936359778278657896537194877595769786997888557738789976627955762784395469364592876574687798783743975277874861799787239184828766766412689857986986679496866949677594747396997926957349878666985996339488677737652423418639759625188796988983861267539796639566967387866979743967641875871993774239898495837769487798175893878776667544778997687585599968449748755997882622638739476619329988374359636277896846658246766976958976775989247368865998667993787566449467679569484959598933966788886388472588795189252764698768429726886896287383985776298445799689493986375769387896887698953164971869747898189854786888464757879529965989868995877887868539726757986444593388457824784563686996998285989895398962768753377638999329298582327326483945855875984793834958892856966825958568696844783685757296938679662277967862851525555329932554982517889488766757783698598928535956597934598349636669546846392287898797895657788956767554388877889677367846949997369879283744459739635958935957745447999962259937978569498943393666867994975943373675688357277895698678437659547775893967774647476869563951687962597796867987876776967158399927226946965957985997999776894776465586878844986989758896849698237938896963568586884858456859277495746749697997957956677778948886977367467769389637853299994788535683723965888542687398798798958566391445798247998279872917596326987992559555278884753845748955849838888989797795979239852473474872373857984952884578964516396843519688676779995756556998992796699979775915698989883479767793756239796449877288992395954425868974996764996869988876147429817625467447846759359677877744999737648857578975886632391997988937564694179559485684399486967777446699837672519866348865995998796556565749757826656769998689497655877888779888784652994782455729766179369577966616978986579615889768784497567894498555986487266696648386879269516427677947246998679995869949995597847727722468587363596898798477495749587485792845868397958654894666377778989562838939187477579434695285547585729636857999515818911474522957799637228778967456885648488497638989969788677968878666697884293654974836888457565998985399866594887689959468775988863695623499799689789473893258699545123766978497469433863361812797757982557894991984786858994752966589848925967579888847968787364769589812678839979869728979756955639935899626679578646959677798778988448599979757977954667759965457695987649747976994769687868968675648147463587484757795356694637759334984993784728627774585678879247918275895733357718885956599976432937939979845668993267896725972649838932577616486959958785677958598437858933777337759936999388986278966697969385966187972756787573579319895969992869787677385965959694973876579878548859397777577459149576336596287438975729376674817886935992966975618363939369977382715858456337688759547697159588577988851699697398795968863963744267448667654333774868777798389285729279493843669455236499645985897999639759469874974518458981667444493464759594654189767266959768983289867624789758873968739764675875523998849868988773883786817988219478896858794764692556949888874828396915981396716877867996398965738689967696888662546979695695745896765455888848866682933799668395829647677798565298597992489941668473177966649596979464928739666639589776687999754719569429845599588643566864442588279588249498885495636647579336186979964972252894884263898836765947777556335835417465696989545559767979429648913889968399444957899889438443945594899512247749736695988753297986729744787978726859849897896947257578276699738185628694929166996386984398273545896993826766878212397866864683775988775697697635459799768893493469259223285987388279379587758959266379863945729898358481977879592874387769695599672556948797737627982789979879996956948487878945756994578898598566655688726647499924599978866386963997827683286796786424872872878858718889212477548979589189774194797872398789527457677699478996997993675768754792339927676886634879598346994752355765877787649799199597255737679785583924982579735498993647998952389899751627699757676962298778564517933853299892925953648991196657662962887989492784647837875277867685885945441779699688568739447742979453875875659996818875895664292147955748594898995378997877877867392559594657934947755657779767896589597795835758857397732194898357994996748386875547469679357385995969358787885534856726669979977295898726691955996436596548787568199848662672426299988965579398855977544525888349488759893699311949787369896459589376372185979619666945569173795779468358968946698576159187566895496578988779888835597873945468649991713985444489449779359456269598493573844743733895536996628785367999466792963896897997795586984975578799773949787573765484999769694576569518429397763916594715688175554776988686786899876964678393839485523465799737644688933954348966847546962977956468545653889824487849797179685956418876868729998649859795297684885586683993589365778768824329666576678686432822826647797587579999783966917547865568567586757576874395238488598576717838878785529852665778246969599971877681991683156485878934984439312592393749625636385778996678459523431795395675789888778788379592976966386397989549879837371467142833218999297388626376467767561869299747997759487889999478557887496933499686696319984986748798881799899679953798549129538953469966597966295628154926869386956576677535974949969967573769775463879666727779678648545259735794688778887717697693638793168986795989732875459792899298734846795588564455699677999995459758765787954568877257788679488597896694884288439865859899986924683934964359656549169667588897572789651585278267699399368874673383992667935736565656783448538888297897375678676969886877973869728758829982827198796478451921666988683464658867198941879893615667937987549788887981666794726294785889147698569596499698938435883875868799994797729546786953458865565989771885455796747399285759719555297886889926429878556458159293928579291978876946196385964668579875857856773887794675574463979857295544598652979291776795528755876386286439374369268692892784469879525326415887895995949339857966761543987486867712686773769987945886847654593287797986986179656772476867926317977299936958684779678915694975888894634785754729594496637943785859986399859427635666777999289949489873669458489877889866558848947627868963959922615877994666979393719298923674864552958778964855859955697696867959536279224277762958926665783955788395932489934789998973767885858888977739457857276896763992747649777386377528931699958669944696359976895917966666984637497383976886965175676689968677894383933789796952387898697678964879975966799996517869699448548559479494197393779594989998496864925343816984658147388474859185956867664466299818999258945758579577844894589487798588551969955995749855887538998686675964925997594588757748997585599957978349495994884389899844474849938877775399995797367996888595796956959247788536766479734597589828196687564287782484759818895358973863482598589996989349563888669799466535396953859998657767694697793477889998997497295794838458693478876453789598958936584794728898688287877769658998848515376375497864679753253975459999867718694695683655949594976887982956239485486191933666914874988796595785466885456165452788778453588676958829867558375747559999982587798536866778597869722675888964975894284934934915289965893671996758639529399568798958453886546254689898559961575737659388975124357969889285892457193757278644996946955588539749848567391715934628179857396474829542378244889736927771598815776443997299956669696648762191677795884797349569839554933484283254877777576342688267673868759256795899969597487234893646625548969264667445837369589982759333673378777999899766756279867464778883859794946559988298546737893878899546439379165745765122726875789973857799249844225885973778484534394799363563977798999993469979682877793959432896848179667819525584387999938849756617797436987897465589579987986275888855826646279945887639968733479735474764249847898966745492978589388998274488639578899996793988986764998829856715316268896829682591249386845749437799795245882685869566996969845391676479488764635985942989948758476787978337389392697936699263968839585898877965477967318847953967257613865699794539927735553679949774775685824939899484999436571888638999663967584927685979955828669919696799864893638573126549787984192473269915986863468457986619948867679499275767978252758379724898399763899578665851273447755527686264997673345499875526568347685638558768665997659964956485584886886476978644992876759552639968636777399615654949958966485778487988858882589879696378895877197948438488957528487799295343499878989557587799898699875999882851885966543993746567762468596867155425599467265697897676754567888736978797378678279197726973973754956974555848935749949998198947279872989897854797637655762375586578594469592785977886892669967634458487857758788789843863981869399987888846999979748977775473385857661857255525596259569626789228588738598899987562727396869867546987666492996866376768677885863998837788194377859969895786487828589997988683756757576156565551623526799498895136999887719478728947257658289887998315962957323719589875498765498467789895698673594653576769878976658874478267395659866979548773695694557539995935986951464997356658574888783848735824747914889569937641375754857867764886676986647264478837999778785475924766858655587538799855496891844897826497386566919685957636786796978787657518334466471552946978599618726765175874798327624759189698759692999988666566948687789344993658757349944486968658674896599282675758699975934658884585937889998297875467897984787855779976524654993878166986983845834369788785985993567656548279394629898979199967787983851874897849759818279879988993788797797697766967637687899697639473954842674764358498459399929643715846677597769586888736485799668147926369398768729376567918798598839259986686868589754519857657675895366993876963678738369792753583896984998963579969697534873998598642989578895657885567868797643659888167971876574435367938461577926939995894587953752895659888648995774756877975349162896589472416628293428986767494848576565595985569396786368696897843679889856946699645589899437379738355774984977488586676297789784679462669579489875264959258998866672796884627677896679949947484367489929796586499869299549897897838921778957996325363921658784697933916848795947886868639843872693357899518298175466961775643779673278656828952192765298878626669657889497596587939824978492859439867669791498595724989855377437377846687258294889475884578696478379947368539179961867899989188879383973187694836855585869863647982224974949296934439958255797455779499545569996937999719888867981684468847356996379597379329857414489699767874756958286717178789559897769987945375999786987693762499195377685767967918665573536779419368756647279348925739997638559649815659995785966544368769454979697957778898599858479689298596638735768468878795637987379899994971593794356486833492883215927994884772295179598264987679719678768848867788869887798967498969983586572398766998585849796899928874544592388637328949959688799669895962588863966849389912889769794849776653734895842889189888969677178589294999933467871236376984899834875967969894986889396158897499448964218476674999882364928589588865355949826883779639789687498349473939276897975697566939763595379979492539182999876757989867682968788698978465369954694793779368758975984884597927586589794859539818596949599856741692874567897887758389787729879973995676799697949886992755958938458896588378585775676764838836469659798597525599567834267793544982737698149979838979526675779219488228477786759926438996849779865777825957565855964474475849338346866544196988596988778856669696939339995933867687498763572479682765679499869983489997279728299737778313635245889769744967499453575539896469783995579585566327694989895763678992199996977899787874632977464988892878759486788847855297777957985658884782598998387568849496767589878578984239495396975969257887478338219359757893346426798826756574859749927937764477997784167399875984469616455537958298658373759878469598878496757765896217854688476986689838869748845157938579948995963856377234725788648558679657996966199966778596992827665986858774969974658629467888595337311384253598484849946949437998531675283688939386398247872649846883499477859428579873729464892358617895994599877658749565684985488676326968266599666928872954989998998879966565848739768265379897847787637677589936449956985565539866864566649389528998839565914947784858676252421979749764958685884867958976728869636392565817797687726353938747356684987875687686989486719795789548895767779968884444954987946617887274553833966558799793696888442793659988977635856361587996936468348777679347869844769351767288656757944678857956999598893766288579446765498244945556699562196569981476967199536978587869684897491863788683466767529586669253498978589978859724877779578783992976698683969952556471653478969377711888954986978499977949762584868946376989399994777599668543467986322599728598998977577638988788299646437416257499985887764958576383955497967398247738998949362388596384691618588985738267869983896379983987357834779789982848779733846869948476979738563798936996886994447774653486659495235998485399989766755676655849486259884975677652592769898988579684369989673875958855791349384534656854875694829885789875288557696681488949586954948794843796899388676769139897197849878967573797593586568983968397587798859356866578657897998798947768777785285956655765974838775842568598467942689251348489657748172866994945698789899243849888498794924854778972974459517878971699465858975388686357987946489758897887478884856972879375658563368269654991489758284754939578887767925214867394247859879959638723899972788587465879839896987779688878687739588554787929928375277876567989658877287522957773598976467579952998859497378758754653479957468577569687766889844427453572895596363758896998978699657766578942998888788926497857885654594525691377668575879869869565197887476865698743387888858777818936827588864598537865838719887945639669186889248438626688469997678958597988736755631983879878542578454485954962873983496872694879759927993358867996969797864896985389876675829399773786748989169917328794959689879947858793769297769867488886995787659774513395159565595848844955987853676965976689697688357966787768976894897579746996819622449883975733854983846728964583449888788367874358886897174999648538264864665598585648578947596698858785777987549799799937755372345855888783359993937687597669895883376355698957699664568995896465436898765989186633662796934788445928858645893859978979284551887649984585269999756484589392364655399676555297998568882963399855964388343589157685488919997475884582596654168779696935953456753951486656945368777928579738836555894237469618984369997338299588439757588589829382999948377687895199658679668787587872197795325965423235768928758769968669368797487888674927989255269798168578725593343473833759865798799585799388792369588392996849869787984936382444873387699663875275793966589942578492154654851595775744472591885819387997739784848975465785994985898338968239749799598886213827499578784745826675678935856546967695596927745467686924957999556276796376557527642328979779683488937175957698984366662995986498699698785886571865339963891675656798937879813437789896992985891947798945682488575478997995627527763892789878684524779693989798675688396893597834694854185847947468395668999974863989763367786355864653864186964439668845977257769877952438893798685384625299955867983255989178886493982793846365978856755668429875473775796694959579587368483659986686659769885656796385983855925959957785698357779486761663979259559887929597393738955398935569488858929559746794448248257798478455674994966869827798776859991676354638572895769981977335838668285398943899653286659497958698896995557791199779398236988662897732687247739994778974848284374397758589688882764759725798595696598939582568877493345968968995917243455646774797859982644685397735897377684338854484776995199375856598859799796788789784996667897359458577959871597713978976192948795999448638926899989798672378856557196645657867998679857976655746168812689793527586788142176374527975554682229947797835868248849269797944656724669537758698969896998748622246549869859688889891657519669641877789959543634669288588363367588757998376559292968824922999935879889356784488886833689799867666788766587222487967577482848771459467988648466988996446465579577558677715798941944997898875548268793989278753882924471989689717683267348859453798959889785797885886871894677845599468475778823899668559996593772636599881975247928875999769289736413769166789794842558694349768874886991978957892897999883583655558773772887887124996448995995664279991779688679478675872258382878876166796978597968459557682999899561629496514169859945767769765626889599789783778473997178638958371849789884984299385453997252562867788384698435976635577457465382988839891655178298974457835276986787579922766747884973872647796498339245279824679998599569596652436866887878634887859753459378695574378976927589583653778952693935729188789649858997687942599893668893499748578756695898527788979927974779894557956781854997947895297979768676585357886868832947761857297779663685889769497551556836695879395694696987865682332497674359978324879972984374948954199665179441565484689795711787639519719462669544595486271785953478658376891776542885795686794758874976577953632625659798785673998789477144834767884947296497683984998816715865999796949398398565594399888879837865828795929988747787378597876798386249298366794278156837688678956332858998829456398553978363366555945697669967997778789475698265375765295478638385511887255798658684286547754497988586943828958699765568946674199979979884144817867787948962872989531666596116884567316799176777749244598441867596584998194989885952464297188796969267787989879475775796356898889523688978659937768995789896687937946765793788999878959975696935699796869595756998599779572689575967657584694935535928137446659359577899246873559996668234898668796988476792549647768357431459355675798989881562928857949955653784986683718758919695946428654672798292956779466188897448895399246959868649787994369487962828994666845887659689869768982764677867762689874398669797765798769574646587994768688869767293668872688949838577567449987865298425637286775469537198774666539695989499837934996747554696966977478898689438597896554968386971577799673959185973755999827781767247898986797769479878289378789499887838899974972498557588639884696828857872826186347867754899678782789842356567774461465838676866998896998638692728666686284497859887877998438998879489125658977498899945876549949798989226687874859497794584996592536397816998517398537755767485179979877697674598585899466397618844986832687965164877746998938638975995576859686496797779679696557655459489387844693935569689798777488188735471673681786866688338269769843877868669996945996677568854982639978639389988778738558656657696888947478738217483689926854395268778786666654538595979493489869767724498535749978597398999879996678819468965534727649894696548795599393657856676487898576485837899992998573958897659975979798538976617569696342859131164898969929789855834945277772974437778873678993889481876972734878939418983658814631896955487873866746828937492778779884498925868919799868989897274673989895532666979745685449546654998737349654598564887486569793588688667739782994765685599598976984974268187394896886998593159559358699757897537399795465795478688835448856878559874997286977668786897897296618791963498433834896967994289426745737548859758799989433997598992665794892323856495594983253296388242576756893877959442386493695484877329687369755658459979444892446669657895258658156868798679765894978696276782998987678398885979891574856689899283896959895867864189938687679568348694759646593973256997698887987779891286563651954769777866758734384895897249512472798577377446586693778677199387246787999977967941797989843224675938846997974568963374899497778798778261958768487329568783378778617462986472996354337678474289818995266849587188574895663577457996867687964794553768852599468797872789943788996949726998923733689765184768983999896667336654494795868836479882185556768894573876748867548974946397788965578427797977689673978994536528586627696999878647629847749859877894927638158972999326456369196899893578789598737388926875689616986754394869789786895373736439969977884588559869977999567989929559799965631639881866788579995366775784938976945634999759284568984479857774748497935692693358987286789397858779529396998868665837613186678777839988749578547788897488846648985368383338549859686567964875996957679795978987797865997987794573862837986357898458687294674349257843996396878497395677547799464999517299967386594726365875438761868877589888884955787897689994728697987726679682665487524276593429677846565429778759778899897646966999492737937868789554462338556736786368959467564595765263838694453693792865739999887747567738644754389642879627588636996858888745644754818892666977799677868577955588927698837998668957693397784756169326425684753595939662983918825667626997489999518547583799898887785355896859388974779468675689923892369858865967899847446962716747898958459973983759838879886236788773785767783769968248865896398278886192785788882598828899858999885199968858775933277972897278938987669998817898943844465776793566965354938999946893989659679382753893796914946688738295339688951756589993937824846993327179894599293695999657887567771645266495397612298286678467919579498438886941987743776496358867749766748644578664797977843883768446383898829883967779438529848638769685794898784943867519879289923996499987786797798851946526696664598765347629756597556367977187463399762867577889775963615899889857799669199996918697295278677977935767799886585849673568757589875981376384943793178658944656464858691768585973459959855857389854394499887747498757975798568555966981247883884577354697168382656964468445279464692578472536778597847569677598998866699649383743688539949244368733278855961758996825655677547848885418888672397639446479496184849727698588467788964637875378674285759633769486655736782955398769495663699492978887873386959599729884888983695986935982834592292758839767178673868643777184554835569499579898687642678823549794329753676696839497547767727485979484497868964997996786898499632779667738981877556654161859728974889755699673487895978853278775367896675769883997473476966979194826543762299759389248555959958862896547385928587799594997729492989998473659569693675668989893776699919235746779855559553848787645949887969799893454835685613498499952247849828356847315744387599856468595671187778972459963958497458961746819555956998488895723289649969766558388395775895568948823478988989538776945998566686959849899578793574989778567977793959658474799698475798877828886759595889678239689866564917678566972848679829969669539767791989984786793844525698876988268987876874886599876318542981889868749184764298833356484869693934986497366894569829365994977466658856975846799869546734936989997689998454487748895799978666848659994499986968364717757723438767888965624995948896314376483971679655655956297858196371866876584668748667689779935651793789956789762599293983979857977446786699947788677787788524378576769866952493596656987967936897391675374939858553955866148885397964375883978815493364931559958888272983399597499963733256955345478878232664969169697849999688429796454242971843279388758267836585766245469466851699918797884599476463988865921897378848726379377969483586458277878699977695995887663988845965824987435568366989481999679883638959748685548366596368693788737488999354799989767858988549986433581984492767899986893768866359988275887385998679474777642476557454569586778777438453792757987888727495952672385999758196387665566399694766673996789783679793389433744875799885687565775824834365358999328375876895254837678989479876874492273796879899821741994835553279636462664118627357755868914889498488587968478985866342684277677945475859959776378975844979929838567756566322319672271278856325826646847774573597971789396947879349989857566387996768959593678874767796869959971343468859997696626883467579837977669364782666836974795597366784892635769278369468689844283598363773686675999693696769547933699759939771994738966873836888298799739157388666688857558687483926887395969675228698576838737852729955983989536374692967365658967768976485485755959887886517687598898499785797492376698948545496797898468337788583643465878884325337986788913657766377639824556842335928853895779798698479646418684798568867933436456586936947989972739839994937529976986679335742399994895756573975584693427988629658944769369219486889784589498977499594148751459549995959877896687569346948877684978668894978669744157395998329638296465397986672874396744961628288986429766769736494882787787927879884698678739956973798688384643967897398416367398374978883749651322787799757587973865899668998896584563994777659745821486487885669799928658592196796787366868997767841847129944857539578546949838866595966789576499295766888925477997788375745474953799798866662642824899772641971192577895849879597698781898818377438994893717537898789849795696993676867496995876565383148998465897933766838777987693837399399578896566633686874296882563843954538899449429686453926366559524393888476553977669465679889877346625867239999558399857565743556449488876448968978897925364982856987372854688176741147778494946765796492677357298686797899877989579989573577879989298564767988758958885267773614958787778968967462886862789868457853994696846698459782997855299182789676463845978675789568947698823991245372794494999549899647435695969993879697792399435739599862778475748427545166969744833958764485534559992836494599689869586748769474627177626596588668884855995765682815732396998496689797789334795197589587651697924437924722894786289749564668871898819138656765975577747595675529978992187413948556138999696354886689989875954479985788986887896867628489699637948459397748328644663369984618839489768945861673199664683969778687778665975748969571167775278978438846844997368958457868767466485475645768791957836986688792737797325468985876769899881476669773896968565675971388715188593916834758498956778599822544498795889488382769676937771549789761693789279557884288384798938894367959486897562372739488475836365776798255458464986659492687677255969948688566386855848597761498797985875976799698587237893267636983479825359883595962866775479696992492949829865486327378799797888959288499682658675455765383436446129714296268775863978762439822799597776797749339784789368695484757957798599924288996795669748257844984892746689657597259979681646679846728671664385974594984988993476248985979935777589666688777742788987664396897358855218858787989476895979366932961556373987795949765964997879238614859989972668957346759674876668274368477989368879642655589966519399278866967423998793476458989858476578998584497888766898979998744175292348735655998529969449978662789492663464458449797878787786889147587989676958395352365775362889687447694772597869626896577369798975398868997748578479468669743378592649773797978929877949887688838778767787993787367956397587678627687878765853975569626687926975524897573959389577856453585895362296257564388823236936898897985825555747374757663563998296989876979396689865849976899956964969426787997784663358568173677569776647655764251249879799489297585543965389476975574627569975824854775627587582873688784299949994589436859298999789776684476663969999537686676393844576696968387643778994896735977569479732984669866998867554378479764745336397765952986197481888694659587887877796646595287993165798474682872687694778618938998893399558845978376785963589779556739948965947878877596443672275935476449755697438989279615777845957996563898597989926584925865535862647885334399868568687985873596588366678946489972298923748617293769865778469747653975895639568647758888974889829997587968379687374387819979579968592345495366856959848599429916873325967986897898737934569929897599862492589582856747564886621898638375915846148697295452825914268691688896654886858994896748876947283737489889568716489973595837548584667372672978782939575929696762686475377859559595786998843644587691997277963293385495559859575464432797865889777992699379946977898667863687883969633994594874949699719999468954868856298959877688435854688679698679789888386244929574478395976596784179859989936699478795372867776788894869474882837996399687979987485879841494984797424879295969863767868179539998196884687449956948388557975768588494473718994797478796578598566859879478586395897799676776878769369767954779975345348469998669878735666754959953599838445914378189488572197868885798487846949465675425878981699684478657573668877544768513577725888183976789679926543652916335779498595877739231679216996644666493275355594673747566539986437869537994858455239647689478987987848878696749499543684579428788597875795687989968723496696486746679868379669786929455763947281778348296756834577997728357973949859184595768745818689296643995474999437444767988537884887875498255281469497688999925373422975954676247938649358987378599755697787747769978986484996298896679757895988787159368687516484397656727299496593889877999834466598563989677997837194763767948877884961373948297854769779557888986616198755446751955685676638858633757973492499877627867931465356354678785366646885526586987579325718796297327749649839597799747881878749472749964595939877988236439993563887799726367286927587757826957898884587947795794798596697265825476758478266388875795897583987726649445878778688789568964771878887363556887975967992985328657975486899962794998258918788557454497736995956266948433651597997613999972646884344458345896774789755996982657444657588699875789562748832898499879947975792249957547727575228869897798765779994766696331542983857869326889857868268957772896793859768447149768728743327945896739896828688866197648586797886958388194996897894139659999334817874774468473543782898359977878998975637749676589888453999677871228846859916988821596496857733596957699695219629632366995987585866674555979865977962155525988776537938375756667667944889775798576889647955577995877959754468891353976661399888699759179697897396937347894588864776889796675798975459567598923837639126823679634659965887462556649599527774942949639957977985735227855999776968848969897515755887384387487388558839776957997393575753791733768759664569882689749664674929657847626889989236544594567936357687849728847938787277493979688369838872765987994676257687827747656599169188878798591547264786626994678867998887684979295856388867892798258696993397975858333776368795599688546787774753549684887479898379585789999739799777438986464766947757995897472567995765945993799998689478975578834598859894488549499858899593876876836398793956594584276337177188878288889366989368639976635753667578898588854615369988986197983939895474958859979665964977615798366857996992893862399785789797648999969933964967746976976196469727969413835827789693559963598627798956989379484749278716587696935892686151473977669388785747236848276725526489962569997897293352679885583482754764395898788698947788575691998674696897586942663579893965243868943496985556649825892666957595986398368387738866936697581968688557759996937376798521899788377794456464649688813795887858975757648798374877882776657493475364566963857989898638988967938868553599294669977754858678669968594666495487936827962876253639886167895556588185968849927976973768974559685938757197688684673379542422995937342993846975933797484939435884477843467199867686683276973589846868189737969997465777484796386897924779345498459467598365746869147994967966466466883897869558446579647938239445869489983236664619796939997668975856178848995657794969456686576995583694354638668299999735777598453778933776784841695999995582794673566498346444396587972836486742963257948766713877664487787455566878165799992987972468935984374346365853498345777893758622667797788686339979799959238795989949337868958878836952944589714942998996578989594873571366798159586989976779835186457613742167747568569559349984887289751897495712754698746657649539857588298976796583698288718789696358375552284859937763647468475934584888878787575894722797968277277977839498931599798965765763396896797666692478778495969773664968978287497564277562878648558673889387638642898698995959769999697871564638579963595875587599443976798312385538251949364955611278839769879898776479887647797268798858586928695998924968967966359959593977697369877989788474748966799485793963847951544996999433887966897865757778798475899956976499687839696732774899954869476618939599938558944895988596598736285756695995979896965549959549638888797559328376974497843691994988353549439599488757979898746255694795924788126855874479829756995989887857798246588445847984189997169798594279155867315948885495523426889376976675796635998599589962396886687993687787695729593854548277978456791727339753377299577995346998979877269795496646798884867498634944696587719452949664778682356792768775798638448669639724559797393822865367976398422669598898769758748961685748995424876639746657948596698919946478432177587181589764834684674699738536496289335237144379544899595874494949921879955759829464987374586688398884993985935283697373769899867755968534899936369869925573857492845847895437154578992773853589955976863857949633978959786849595375857965997662658454552378189737727649636959398965779643274996687569993357388897591568889389948559626769348439574984786951638687899594772896658957979959998282459575787678593998239967659568754689696465978459888834979699849194853779937997772158987799821578939367931586679798287881769928938788665639777877895549889956858777799737764756778769864447792449676797739365799518979874828539898967747129849697489477858777687569893883469543797879185837693479794466586877977867778369695639966778576797277728474648957863965468986939186586454387794966889679896895746685868299769999612657754846848846768356854244829876884293636534967778989559674983549484589568673688959471789238872417969969885695935475599981417815825457819415893856899998952546474384859916486963999349586337557876435977656577385938619693951898539389739764686853289858956673294877428849439852766433988362565716899762599667952969627672344539734369578969946498381851697676696558484869278549837649296559899244818767294796595898983457894165677881716542634986862865167858466788633928196787687998939768953641588846512925883214598876284574618782896669947167685784552789167859454267747868685858554998894641845496988924478943848857498258885752886631629897374959937568624493271198759948776385337697968748588872283639251649864594779782848949499595459652666636839768569396919838439695783471965735777745378962795958744723779468595749648924783361575848887389246799647778696862858765799868967996535676758967983849583996638854342589895797996257295976888239558795865788889572797978888799892639698757691849823556796866762867967389278465555545973698753575658979668681257497367798438855787966537979988665899968895767799373823695574469575694484979874978476877477777713666976657784596976897598356897439757394982997399858974839498869884399777589868775695934835494883998579786776952165788187679987833747564569458687894889787299626989686538237586967587289776889673695676954388778388296978986578879858379993945659464665536437968479369393889888857555789799888865739474486942997888877976758996327774268698848758677929685567579867584964659986847377898874179759536546989648898689946787948565976377795859857666697795675919688948796728988587995966789748697788988727868954788459767887342935876781832757748948777769662988965357589886244947269255749372884247456447794948468493685555498844783669996685249889375472736579568884857746998736589261764287776857643673892988897248463168695387739736997823849787997597576727955874767598478694784378637886874497628699354897774998597778628295914128478849668978167883959978665999954859668896669462896478659321758363895759678899735456555636847981523378735587795993995347447588959358698677869789578938858778669666294899275614457695889337887978867733347698896687479355963677189739253193758869326824773127597979436663878324599864937979338489769535598928395856687678643977725958979566657922777354479687986474816475724682687949996998759716866199577767979969397579915899986733697343617964864786466832899695755997699988839648655585888767798465564267987286872795767968388494857697979238847427799696588639866466458959592497779377959876576796843986746564846576974529674699494947978776843245985475771948384737579898773379314968655888494959497567869674962879378894889384549257894159992566463774964599866887696774958478484588985389866897886597877813857699436796468597552781938779722574987457499428268527297879997987991557658976688476853979675338549646791827478775488533972978688727599544895699758686654898999957566278699957853899393543684886149827365847783696778245994127784129889579397758566483856595953668576788523448995185596834844765899975497597796777458886953899419675867189254984842397846178996471735686888953636695739842849999673996987798377581199957553991378748799789776936494984487943868499443489577156542999588377458687399488824199699988536944317688393243696684287969835997958769837772464699769879916723867779995685789619355652877316964897497986296965568658279768528388268759939889689775999124799695762273685586887713218179989378469542248379478658979748589766589993237795473562966564987567799483948389567368492738594648944659999698948272548483615498279558698996649789968969948237618986867758862667455712666888999734486438896875976868899832995795877879969959528479263476994346497568629939777597251486436582953345917986846289784957368686893858486992897786674797645735567475739856369749497598996767255863798869888986377679964785345957386988958997789568361957763858593975669658371343597266877696944745499553577318686338858999958978999974873544638447735685184467599773766743794579776547979766595798998886765789725928979568888969818438651591687888694716657954389159373598879679782666379386987166439738274279898778658832775697696566877949556874599687489565984376957392769694529897957698684759853887826536867968597446759678779798955636634895697993539994178694725376772958769967584359753599896897994466676494449455858586978747477947968898645963938955285846685355399598872965879912488861489345763497797465893855279716638857992697935447897671149462988375896576774637147228339779654488995787698754839386587378669792879882999868993757895775879538999979688589565899877676776796454679562696397897667686556883496265763977685618728766928255978963956578543187764646699496442289396938898919995817758375673587379516482887669965387383986897969932387749384668628629789453497597778588666485896815853876686729584838748645553767929949979852559259739248685828957948263923815469569771394366398798944749312833398534857377398991979665894263959856981687762949934949759629278999699855659837849623339376579156396687899868696569474689777336777969386577638289965828783575697995756759838779658294773857869688729974633786558979539776545929726779882746155941729929726658988739664797799998293393691676399876867844936594856859938967479924555556857259886791178372255896396356999679275987597879994738957395866344959588557798879597287463418985974947624964898782387924839962592894486637639986889587658686774844684595745865726775949978967697779358987833977785999699294366926854298569678356262975298968873968598344853983474494997577883866718879599638489467573638679986578677485975599586539865783868596841938579978239775995644493943688779986789998778959997977727666977868879998599367749946955959765857692959782861877364997898438888776788598394827593977755999646427965929785457989536598987853994751819671966695591794735375274275935761835677968889624659937785468788779233789952788665857889974949984746389479599769986588675886975935663994688566728885944431653588997889957955527742853789595789285988559989848543287917987658535289587898954863636778795597769887553796957256999566699358977898424518659778574749593688787888991594978725788773783536796858877997567799972979848397747898882969648144189585286939319957458862671574754774297998696814743587569779326553796997239956778195959345915553778799966944679688778993992486437847587877939783943858835878778548698539783993535828537469869557774779779579985727688499466629377739786777998654983366457847238673885724938797417196389276991995646815876929659298289845649889611896966796979812788766789997838985799676275974667642539955564759669494689461974992772959666414649997319968667793897944366737589786959868655684898568344875985765898949999968266963992354998799479293285795974958547896655559933969494885697786743398987837897866837977683926345469677599494188494555796993851688987149666564868853374655188978735376679946954889751942297789554298799679449863923989783774796773598689447676699648379872948542959983919899989955596921437596884756678698285853786999953696866989294946943561561545838186348999584576896582497391985399578768886798878888696565996959683877439699697479784527198486629336454849888398898489987442965618399677884676995459899537269396381889999477863538867566965834528187572827889873733995316987553564886718899573664258468666475958983993922578659562368829879698589988988279174258513688679899928886888698994778765798113896791378943868387859484461962595888469881918378818797576826879266997393832768499228297979896546827948888655999787564132874899925846726469975778377795774672497836477548479755183993839483965676342564672855453395559965644827887754755799727877979544686798598388969596119497936874878873376999439848949556684475879792479581248888995984959981879429877636987546886957749188857773488876682869989146782855964739848586354649387678658858293967876534768799699596194367835775648697598733294946868978749997748599786889977779549577945392959669939197468197468878648568659965916368683986956898499986284577487733889778987137898439883569664689995274489784375434659815585899597776775637259978731354558998992759775973975795958159964498447733394727788996579869698859895921978673867993562747259398899899267982983799997967527989622935158983886597158799386456399694279778447646566614646584643839378776849734568385954654499289485878766823962629645175973634355976483929547588766735883496944678649788696561294895989939956388558999855918798975595395636188294987996293887795639785578187356783293984749669874469378454767877379262869749385867983638296878665988728649499289558548747845588698487847797788838769799873777677572587696525879437615257848665979539688293668766992777729456261989119875982997599742596788788663581729456779778547393846879921877496385785736686758979999777279867885198448428739868796665298396974889989655899157678589863999674648895892875696867798564187959585198468988256549969647739698785382448713566854767815434899369958698662758682784537937986929489789596967997788518859539734945876397769989639199673937498558772895857567986354435856676838818777799696697849967884297963849659855854267784977199867645969497737528996793677429599892529688971979598896489869936356267337853498938195176669493887766478268779885779764773987686774732759557853538458165539726565775656657629766793718977964855888449279778645359388433944973755788738549759998765689795276975736928497271789186886538589972968944536757659657128573984983334646969377636869782279288398652779969367449639978877987958245847974289936468777688676747187478647716893875654966545977685988996296491898878945758754979999355783695985868778796599788587568488983988396895786975793685843965696639448769943795728717968999656995438757745691458757941895799971982688599943539796888785993587779678387767978337615578877854966772678992938947599593334528664648866687914679395795267989896829869858698886154973767883283598971428668865379855895748799348698686884826665885782678997589347674965556479797482799652779616957597988724838618375484967816779666589696997769629773838789868378244869253856869869479396798795788795932955764469866818558951778998467894462794238899486968585457959883276535845644794376577993459487989637779786585593737997137494952646988567982685654782232987387682874968355889737743693393469153583798966964438839489978889295763858279358376898845696386887569677782587768489377889893799253626987487926733789799996769438487898196596694147996841649677383786879978788886988576978999798959263955997572794459673669896268548894817579644549178275788917964782845661779523745667944589495467728799799899497667689399673988856779729979796583776819647992998779369927488565977997631167188685886587677261382944298836931758499428591363185687454532489788933566368857713463516497577699745888568474997556589987798774638192897888857667999895928839779398548489594677997892678564655296689838658574468982555683933268664497533478657749799872939775988496478999797997975647994775858996693773969553653436686799889775958718157336948577993939499989755469699459883859975877687847898998637252348993876663974747688376564389632786668596677577363975827877655347315848836885225864458958698837598286757855276993184324376799375769424735659873827899597878685677359993934689897413595889699798865239899238992199689267369939758893499358684737482692554686434498539884485958456699799873778965897775276572864986874479846278275136678486564552897353234238789764299878559695781747813791854447478949295868689587862168938648949826769669699979469786498357787284818979874698689598869578276649998588675577778878995746995345638886721876559821856975556789817969671965577677964949745283287938739895958431852813988978297799398773388779978714585746991987788885888685477653559639657697899819674196677798963952974492493686974778986759687999434956999939686846659965599269973146492944789812699665678959997946748979469833898657859594477959947499998519889799884967462791774633856968883789998199554589375399372486357589377755589884336258876358148977895537986666888962479594898196498997795447629645889974587187858515638583366979599836677694684829458853867538378744996979547736889653988948946687538735643789683457717588438757897427397828696625476758877279584493854669857728783498784859984488847686968959498797868594755984899873689539794976147699716688995868647899745889934538892894738976887946746898577659898487795837963798585969956986755366928623256895692969986846766737484378897914763988278957988657824495778273895764296969995953582275768947886277617299787377647899596765635673625373576948487449964276488796984498985989617699144728987547697996283875699392858617968677578349779677898765963495943565675199887886475978868587568984989658927877843894964688369565891969483454836675998649675736564914854913977879749763916364848438856693948573228657745853257376478985197786697787978769549545596662499789673639436575699494719594748569798867921959437997927645597523462865546577628995989793267996157897757744786955589773539745819728695319771698774496999958688243915995986778691967958378377885677834699447886486895997787456444998477637393794984898399226487856575599195998788859973999528294499656646465898867857869849465495928968298597344786892768292675767898949489599958594757839559888948756164276446298498969998594497398965467449977678599879739446646915765947763299535949797595857892399328525624553874598888838966699369996547797974889977959455753598991678993487859799887355973797257997938998759287858786636956528966968875956451228948269797889848182794835977816936993689954596698444767814779596366576868767662646298576687759749898889574941559778296916665686147993875975848995879397952898778696949484927468867662759953972756388499887959851788796988548687845389989525267899649758799695837998993889966768954856528319855895444787669956293979893399773738427592788478738882843289847564785665928575866648696275429758947349649855599316894948949767797396588797731886837499698974899959877577784796997979984384878744789849938276874728726176938736893778916679693651566589484725459985899982978756394339989674487999995694766786437765963839778667749457657739423488568536877588682878846762364839597999699554487959854917999134586696678988849738763524758765684597988969737673998751757557796767368798726147844997999445871758627634939969884389596477367898337689819887448824988459546578769689666775292946598175879659376384418976765745668869384379978698349889565127648529828976946247779799534889688974839478372914979685995858889795829955967594785968339322979476344638595775359569584579499955782582795899719726931996539635155987983216976899447695795986615597663596956979477769948896797879378389966768798114433846435939228676453737597344558979933671966438657776894668666444898757839489578495371664629959935485865955389667683377386625847996787843985558934955772498737589399257774896255253413763599441717779489648999586571767793979936898975783398676585894389746767336753526647459459667468897745984643439796787579539886748367678466981868958799695946779793897792967728935998633864935575754873799276585697773587597999426995993666618689267889928468866986769896772679297877667988998354659883498468357876267276689299953969999694356248587226498593597835658895966846348898677993175554736386348849549975658477348946858445397785669632767988483799887988748485496467979674978297998481874888268775932477893878988677589478985889882996283287898998266767843375996878879987837498632969848697654449537945896579996994867568747888584796617769769657988788738727969564678768399896197359983499875673597186789937459556987575979855798738378875875263595997667289978195278488485468967686568796955599253462986848285549989846868979249524784688765979287586376476939757997686398849746557859977643674876895756474878938268459896399753256569591897873879468697543649135974595683187526798925951596964497963467648799678558648386639263768949497766973885735899977789576887486797826545475779894899489248629763882669259355476699977548934496883857974746989787437976738389977857896896896713257586584469973271772396639928959895376665845879558999758489536356775975789664845764784886559389245748973789557859993867899888428593855789423299546413755786395683478835686698998698392894677882878466619994871545559494495886369895479518474579759578286838537769649995399798398384897563686343779997847935899595647767876999779848649921579889564958243568578856535694798658781998679779826624786798297967276586946877585999914719957585586913992866167572342881466289992599761598977895625439744965588486995859811628637867496389676866453298997666426585784995537774937758982274197888667659677869729955498738768687865829338656765175368492498924648578971567847894788653555479948745952936868496946868975455886968919526579558576797865449484352657447899497992247446366687389376698369446585988875738663855999363676745763746797358797579575897753289778299594266478898569567644953126579978576923786867845997562495623839399787256738486997389472923997574877625675658889785576289896888898369539827944497553399883895699459267874867967586568368692748898833974446435797555799655885991743987589685889388665983678589648786575419984696758559638974873649797387887898577899656835935587584393698984853597699355582858596985159689577548345799839367764774638588497457649852957647379975477932396859964689855954968793937994675577316186565772629936769246899879975848787967578438537795699979979557859978876846687778858736271387934599174484886247859666249133169993688976674969279968155288453592954498958968557965853977383968788887561976658159958985378899562694879367659594566985726994869766748939573443935778889874899688942778897284699987646565777187889869625968856488231748667897617825699796793978458265856827989679558764544278797995988988898936486462672567779668185388655378684739679398491527979934945859489874888793867566447589374876877379179697493898696694673889699768755864651678394867792187948377758895239655765887393989389864488978356285158778788759696479
37424963272163348261594663665524422364236324356256322364182134522442143142336345544367271132332715213234518264221321162247141233158173513422415221232235442386417333124623721582712445141154137263348111526324322621362367314251484147592514133426324123351333611169312113614431132771313983412171631245355122321341615223729524163422352131323695733526324187832182342436832333667925722213224415727734923315256147732454166875176643313627274141612554313262235311234113277752544237144255353725454732535523112743433422253688613344338222877346452431277363721195236292148864271922116235252112731158228151527276346357465434415339461833818242524794653525615421361612825522514586423142463629334333611143415154264675915444211167212329313154166232431327514328413155112144233215536267225144212513624235322181242333645225514231943217551542528413865182152115553365223111531446333242417345124435171513422645411178517135332888329343488338111171842735316213322217279852144655654614826356526561213671734431923137533443284428912114253223261135682436141793134734166374337172292452559692642116224535872627546751661245111841342832546161371128281921621337135724411554177214133451234521223123118132571216287223411142541582374211132311413443263431441292254642262341615472815156335324723134128647324121174186276162216482139232516715942323655377547814842622271882524117227255467471347563261151344161122318421473435813261311423321662485691666765271214271511346212145143435741161741714522785118252146423372161225378615731524447421722145835651152213166425313434253453714232523256942135274261276529121574624544221464643821642212528252625116813732223451765223256425873311623127326924322622327869722177753454135234218214453142616481446132235741457913177166381917637213913222145244421352148772462512321382386159161331116652427523275513254565126472243516264116213535348436611347126224183736583451117113124242316722472133662212395236821613154228628626992258156331528452433876125623732172616832562433127814454445321137326111194836211833225211425733416461126222513251151523221267278543285611242113769111611228255411424631311635822522351343421214312411144113722213626232125163512493236621372353225166121756248326344321427331356636455161915734523827876651255629551211637458537146424611594748412247226434655112382233514122745663448561428656216331255323712293836181224435152353225432154458154477631827311222346635152252342152735252561462392683333833128417222344364622411375262162433522715125433631211124423612726355621116636515145412162762312481535377171441336451533343446323321553637113114662514431454142335234118242413412263133582127141181323122757332432353476282745451126245468128264631116152214274122132432411712121985412637323441183222435637113645243355415636111933163411111167336651654459614635221225131264116432616323334625443737251531224549166772513443435426726213312281251214677455456638837127515131354793222297772129124125111233661911552162121443511161123424448813155251169241912444225645327416446377366322432691346443773214511242178448222232214843218927614432139354186532811185361224138278921282111284453121223223251711332241612312129519353164631542496856512171437124243112523432114547413281822357733812721114635231551269331146211115626121711451432124112311115336351635134718687512655163841341485531223217311323127442335722712661153241373744456126214231177561272625542414421471122768528572334651743314234352231664571153537111442382926331551825745116613722936616811711611572441541315937253552414161711142218441334254275463667864225872313232111443635247233615211247312365541354635747324178141492244424666322411126379612142423533621651565184886177112223564444211524276533241223354367523352477366364324314373312942364664612553331721578125823814335244123351228351431344325511759814371142363626565943113223614335214519464232682563627121117471557337331324123521222246227573426222996162257111354451656134164144224153355662483365565222234515428464268482633123345746732564264123836136113244234463222542214114633216412464223241315218261722352354154314134143132345445252741316736643463245494731221436151413153262363756643715661816158352823843132423822522774162522542749121241974362134812549333217141345481621326635316474442211622253731731511451613456112821364582313123236454758621571222514952229545311154132247996411217345441116123147243154443212371515526241915154151543333334437422732923366963118733551517471716716285347231248253288131421461111393664237142443755863212236325251892115312522234313214153446474716396342921146274836223442329152949415154822641113422147152343512641512312123522413814233816532317143612141124212162542552312245254447233221514533164411536514121859511114585215462756834236442559171151611127952712325191712627731434114561242593215842362135722442633255723282731444213322241464262315256181322131423173319533615313443683776177257442531976322213351217245142556558463313646313417331221657646535441129421133414762325344836336265311635141261481139357766432411321431346461761214145271363337144671292221463261421321354111514132561156356751116153482766322353511141361135455353111136775514132466156471592614114422232712254125613661174256445625554121931152542463319127213486214624223228352415115522262584917262711379426233388743536236443424126667413922196983712731161388212237621165137853711486235141841651122456112883851871354152214643232274138125364351592381236252412359438334272665324377155313225732638811339394753241347413115243511625131142377694843382442571683133622321554185837557235314572163515131313154692214332423711132271721466557655311673452137631881551456352345244514348215125557565422312541632626425417556238431247233953116258147253447343352426522243324521711346351265163726353462272178541696726752275151932443741135613246755769631337112253426113142521163532518122232212431494412162161576122558514157112283111337633735221331625158237342238425234251615522314436335786252423687274537435425441244115614521123454121372139623634612149185655751534235174152426643144316711554262142311531149716541223634744621164651323723285813411186221634434128271814315215432885663111234347753132186121426232314347314741111557474613841265453453712513511622511134111766364516219425525471224245123185814715721321566333235494721563116227212645154634627543322212431528855215213974721661711423871153525621762189326287126746572726412321872167634322518431565234421665313643132311521352121633726694332437357264114746625514135539227321362739634953336132233262269167176352145636151612313221634237354773332234726616865424121114455125445247134211262667431874216851514162351212778326421134111322574532563264569645311171352353361341663125411574262467454344552347247414543354811373522243636221215335456112211234659271434311331143138737754184655122412153561648444691721645111715556741312313833111642861288432123533741317165956671446777521433462382361523773751732355271317221141122217953835436444552395317318415365241362261426754126641174634611753323476833518226321238496261415381261836887132163681115443843621565333179292891171642331967541511217327444356111328436291431332172914515314435227832144684633116568447456543566132252352143381136261691194773162325372667322551532326425445465152111125113822332741225731121321512375444853127431214712714114117644546573655625281816547347143322241591114131351241233642531412849724234655231644357433341554245287722332823213311163541342381347151233269613531433456365418811646122522229236115135146311714284616334411178143724412482341215215694286176355151955114341356143827241136469121145133562331772355611412271854232265676717231143532344126357631422322363226261834141134112636924576827245141714135616311322121232325376923543264161862631224651421636182319144532157761323587162643122458523312365283358562612721113144315327137136163357133684546275157172441844432665353322555813213224136313261217819132135542231751456212321195343343646745712141718232133337512214141463733746462271236365385277157242412519238331525137122264132418212264172261116714417375447312321342645162118261311223644515412547321421417754272122515721226215353344222115575618443225122931351352513214373842111443124626326711666138924271583591722413295469113312511438481244199454215275461833576724417141293344111925362131535117317174111226535713457421523261183231533313232231451277761369746556152213423177572253214463544221174331147231843628232362161325526351513573522335111115256414621562539317262467412631263576611291216563724133148545519624681973538331456291132172115451937442631137111217421415344161744436251144212444155154325147152263543212551223158122664212624441422615476547167513733422554643953436232313165481412143452514811636481371226452129312125128327126144238441856456262123673134262315425761213325217137243613552361111223323142853985222161213341251331215239315343145643622125623626254323114473522331651533746413525435586316124284362822842142228493364513992281652375125721441126237664232744415626457215431744492133491758146277411144434113241372727128136612477486239241349455415662336442183242221521113457445361212272461151461539263144128365764182261446144225276842185623181174593641462327136521823421471221585852236224438311153112226311263642217419626162414131561532655422663245386151264125212139222187842455234526243433151218624121437765257177534447143421512624566232418515511423233116873747683875596387462946413117284233142214588357135142164431223181545222148211476131153154663765243337212153422941451425563164231228945375337545126542745211415327425134263833842361139323561351252718187711151521232827821322736415182213731311137115712375291213145679762526562222766652112323162524742511113372421213521311723311761671347373512724631633176483694625441214337613119722645113314314133464521428256151165579613751422312244742825833822322281543251441833277941122421231325236515346346681326823167255418132277424521111132373136213196552655416354233356243113114171725449351153133555713847516151124222143468122829812112651348332864215542885127652412672135183121142115521211495655321349636594878413224831335275413348433342186245463233351692842246332262651245216411234247232531845421222192484632451615182625126538461713136314144122342796422274522224321459337411539165817314317638231833231617552578338212547246851443278341283823313558251211352424255115215372122822755329425155359214241718585323851621414142744243721652423533527754424652314241836827113545211211145163254215271766186137214113376545727148644361251553174173162672148651121592711341288193825824125353324218753214761173251347616641345434253322251851173111211215442895632542547611231941212355227123227652232151147835333846282744757112345634224643117354732324531415755615214242747721731211534559854211263435274154721433233322313263515161711344324812382111252146911531443212418432453314214338681432163718115616233321113351437241444132131741134219467234225341633773124333221222323441263324427243767111432916585673826189515341638428235228483524642113332333164444432321231626411266357121513545472144121327366323114625679143531113115382423422412677255312228164672133112535191571831531646313169388753333421433314543194125111234734812135143112644761859726463524161954221621216313263671646317221374463527716353552433343423312125355428286139357331276168576421641133315475313215131141251426632226534131367351157235527147122112121425635925361316211335372175114967412122221451152235512358111591411538243724334265863623136145341131451564539141913622515193111244366431247165937237672872223811332516433383142225132644372522866623394731224186873371634516345332142583342411182611145545283678646526426522311214115222485283116723336681811332111664266454375242532563718152612653131124215181363516283121245111452532521573143217612643241782116773124515121321472342161515347127276737712555214367244131743813155222133312141234321122526233412721433143265431666432332254216726622516216563228327531124282751343616515331817588547313424247175432154445253474913563662511525944634521611123363127364456474681415111452332231316211131538328111136312434724423313334235422426711656336812412241172541376277777311814562828524554214483123252323313423445544536213618314151141472361331122454312231334761555744557268152323127533427422834351466649447871433455241754113542651442512373256118354826373111351522563479362222713633858767454146581556215357613233275622866237211554162333123384811262227535271442262344213838127144158354133351446356351156233188165544425112741714762326144661641255132142122524332527144523177312431274114451316267225343853312526216825738534522658425278675175446225551476243574348325342416421821311576252612151327427241511114258635835673311221225162532524748468116371391534152668196215133362212161343572631213216467232332333224834192743233766823362113311675718894392461121448117222165262422991181581555361365485444553616375552598441826481714675133476253329412443285363133365222143211663166331112233643442562123915657561126113465211167696781423972124635356722366138113163615231578526931248246231656413682353513354715216672451715338437346125674164713466671867134323645312232523547212263667639554311723661725531473725186241334221439131133353217226318117317371727425374316132227611263931151413475414422341221221531343424143324441751361262711532551326351422721436262215216155375186651413248759153123252242582421521117335111857355762432833215213811811731315267814411131422229812621632618422333611316894553334433222412147221241343132721281631741282321134133491445382143847726415359516131562519653444261113377146232542453329355225643156482352371374287121421341495115421243452278152462433178619245421912725481283435726326213126354441353431212113981164143441317221226844521785364256424256511515751285856167116652216572243314133637461472763571345297216522232561354183396295689642217439225485553262176647463131157292526225769154211324113312141122251332516224557357124156528172596224625718422971612246121426163365274323383452516312111512475326313629314645573153158123517444232631656418419725219174748115283211436457233566323448442134835537533521241526747226317821264331733551211384114718232628543472214132483188532112574116311234134457523513255649211361612418594132123234932661723335233525612381143523623381122233622523511149236662341212732466575112323862493356653132541418247314223443672241544361131515117334662126157166247144431234111616616247277116682328216233137912722113625724352427321461435291725115724137632343432313113347163233328231754472643373221626531218411435222836854264228523213911534393211355131682521543335578342832557126132352514224273214329626244352334367214472663211324112494383644454372142432433326152345174143423311244312217326664335771123121531314119262582137552354537411346233765415148181125675982192212232552431332241931214427734216224317182856443824311239211271282314344329865715231373623858494275342224422243931441936144112225225679535235216162112472713211153581411414383773324623562633614466575431724355175374169144721654145511612995234452424517531325581412322176134512797712235552312725333474471423257682421124121451112855738433528613353313721423683112172641861733264833523351348587453623427812126437172321447524256523631482148235321725414514121511337718145166427653692532542321142421623331644133342133216133423268811114316114144256182455136151511338465619235612721421376348482217215161372622554753635367141449423132726255225561317722485285354262473261292644215212261113734612423425411212226514116216231231138681283572342185451225555427617561551442144112274364457755155232342443253566438452882265141141442182723621267266222446122449726211274442762632213153213571523161732314261862511362115556665341136564582823482322113512651445143135144112249553432436542646341715558421664112255414626134524617453229627816424225746538531516914124311497221951652124318463151115542313662861133251772341311724321332272134311413732247322138263367833641532323427114363447591235213122412114929111158561854326263411223343165261547451224242443113115133156122512132312122224121874371715111251111325143522153593443734273311125321217673623331872218413151125522365425354516315266332151245296157174472151271422831752512146132622726137228111574465522421621681212137516212112531247396139433178932825253186121144815422112558115523612118336472351361811349515444321643171181534425516412671524567211928283242571353231112432295221387449143752435325234554764166111334133596211634321232333131434314117614642453482132221233635325441412332223245113452172526715322751344432522461152832364547854361313412414247394146532966187413213231399623213574426533172613131442415625346332542522357335772433452424458612758724416465481783211245155841584112411116711424222185286527166351235323554424481314435424263483133243312243434134781262243571341124226313211438433146186168131121124181141242447817718763747134473374411646168554155894434259449343677326936122131115933243212287553431344221826154133145627435142633295813558415218423714543151841553143282742112735631552227387585733652154411222156514345177111169824236137362365347127572185131227752814224123124316274523412826316215352323182252641584652467553992521515344134112412451681543731531732456944525424142826121342715317512646355965145122517326122482865168253131224734651311124343145253154148241333828125233513431136451316657662654251133125542163154181433258122318825414135482242113328112236262431152453458411161664828333113182145421335811711686339373635524321815565431162126711432213266478355523664447343256222471173464615464331128361444231211885232431412615138324731315271324557523316122872243532936664112744171465145124122326114112275226756112754634221614721167222711329756361534742464124288412717753362757265465521516344138123349116479213144154913571441416447264375191231233212131631584115511412635241574212465615243254224121611463212153222413756174214476784254232461428874164316561162182715925951256488175229356354113443622664119695431236589372545443311343342121574346233113793414265121321381142141642431342412235255221611161142327542823523898571162123216452334592574322132165111512391338561522318131377274247961279516451113175622222511436213112153712181621841229457325654414574256651525372243533572152211565364961223152226511271745126387384365321371431128434389563124932431213362512165565862164236333113612537512343181131211136364963384718177421118737865863133116136138423558324777521562118551461823223642734654331163137444461214122442354122131341555212512413219317572131651652345243647252333416331442961336223163213273251353311212431145241474295132116231565382434625273343336351471551141541965321222313241581331275862765333417134115239611114122712311353274852431431371595424161144738625232241425112293731339149353532394257234227624836181261125414114341425617642328251133674265923315544131266212211345263425316657213431721236132222731131317269114644153232121117131464212811141121575415242421422159845164342242393951413218164453386141116675111324374644437738254421173171554112245612442166521231276224612825113352114581166236116223126471722424552471821113113115781517323886438617641245125183111835318177312263524512645751841431359415434168221617243387575328712331232334745415281212113521594232114417215463365426176317414635281153311153511323113776721254213335212331245135136237224436797536253616278311573852933452116245552561332815712317263432372214325326368453811423251144932654832541625426145322371441317157642535361382512822233156711317613562514511422416358428123264414494843671712291243268174521452531443382631421116174611326687223154364147531471444311242923132785544316611463627211416237746621421822773724425143222441452962415231426322312232811467735235322393412632315136613414841258242723313822148525416128143517332455222321724751231256747322622533813311612437149722133262111425638144536328675724362124383123532314277135684633735215745596522234757353658657537311714615772541181329443365672428517413212717436424522183523147116641214266152642381232138175216135434334213936178414271494822171211661723644246873125661354511244261832553214231195291485612553944113615158311163936373564441215232367445117242123252456231169443455426633175231918232313775443517323364713272341636514624713172214342965135162223543136244463635745376226943513685441851521413212412265652754157361855185336171131111441832523213163216252522515312535343127382223644941433223212623533431311132112142111133132861756321331324414242632352281127124554211481252542243525855281314822865131141535631548636126332825114444131328864265655166211756159433154122143373446763412277283133684413175113332214121583237276964736415126474532224511736764313412836963321783375242241335956262156416641343636655224313376732165461132152327124516293322535323437364755237131381234982431413374133116457375335663538117143442448137423474413464251123267434731131325572651632113183233146411167272822121841371953514232857481813822224233316233242232195234443721128313253241632576312145423216553191133656673474633322172321422213112113571241123114754393224613266519453242422431225151142351322121566815356271325253165252232335812534451411438752282356131256174623442433312174691173763281622357734312211712671137635325577175461434825151923521125215417351426112753433133611143316756852153614311285161153754216451157226112315162311311282767127413441929112421633152393211332141536711734152316424114442931631277162161463911126233452531228831236224245293137463347433652441534172364334138144323431583225735281231761754521752527384557354824435233312235153421143592221551691291263865314326141112346875275135613211555213576422112586463741311651141526445131393311512234922791349172143914424234326361624451221496655882432321212221111234283127834634674214464371735212544354812242183696528266522252236457672111131532324811742388352517131243715311243123141344356732248614217261557215365633412312424324337146781142817326624156718414134927312948118113246112827715135211341557225521245113134634833337267112161631412833317136235612277561245681133255337353471312254961442331213192714287443363213322744112523211413333136351425153326736441657225254241431353422111411254622622143682717142135165131221238312223543215711385917163443318123727243284463662155285119115723121453232471558183522532564432594675611442153221576381119381157214148213961645125514374117453121613195126335252446214192542252351128147628458142533132258651795214116431194413266635238221223211472932224632771811641562334344241967847554361584915413315527732227425354124521612588857632125117186335223287716622391138732412151473326144111421174436755342191652336283583211362237761411761145231221542421811642214431312421329235415543554112531213341273273446312658192767225125431415765723215142222427922143159353133124134656244272729434474425431113161812671754227244158728212923523817421156146311466453112324453339122134642552711264481214135211412122391581622227523414317251327126674312114181334117322642741363166262821672431148133214724183565234833232224422812413131145216623428224232661556253234769574181315423849614117866124234314452326214471114514913981266541211254434256434251353672214141722132348644316196921424149274792136616147214131111121361246632413577464233178162362354283137744121171266112611472261624113154231438482541331624131332523141871333434738415212372944172525264237481338111448821546334113381223512697337265965635152251352222472614664818813133121731613833271422737235172181285561241148411142193534612234532124317469872841672113238817315313235138416924644512355241153156419233732385231451445412437313726613117535411566842971181484812117352333531341221453514141132471518325113656228365313262162157325143282334973251635196751287383332242311456621152213453739462668411342143148344332454342121358315352771365276236218275724542652251571336152642543834415168745164235145621325242262131263515333333636343238543711411641135113412521922564424177315622437255277154555311115135531732213323337521624148348173111234333643276114492553322245172161962322415551165181667646243245412322121715448153142148696176952166171119272271433561413596131513122111311872671731364157211135712431111122223711445527654233432146345161126873412585142653172232511217628332917112158615215322562462435917432312875625313458155336233774521311123442142534512622427916317237216523342166971134114223143744252162427621125412872192523152423423414243521531126335171182663417246545123476462224136952443566431266186526368152574127176423123185751211521174181637624341122417964527232241219712751247526526733141131122176125445424434539711131422334541263324471274861426351129112356391227354264262216225523346733213137482358666572514364158838413625372471211433276846132334442412433515154351115512152751812326245512632271181232425487827515127434224414214535628131415413182612134553176213542522841113656162813451546531312415462915127229312523581855848165622229126162923665132911238442531771111241168583185818623212612415413243157962438514281443831363612213262362632742347736626563132622245625116325166111616321624133132437433323388221643195241311162232863155237734524753253229457644224314322234581626522832251231613922324535534661664154122331452163122266611122335614522416444369752572333232353711114422142613835414535313274514414121113912343126182815196113211284355452446693743272461633181572412421623233423134491744736614443471443972136132187942144641163212515323214454263632351131435142532532362343235541169987488593146375323112354181522653634724124245321252231881139121286433131615528424221955923473243345171344516613924259226534363282416339423341661417123144196751172421512124142469371772356715841118943512651561424781156566834314524344322344164531242835453255184135461164212447227385151533312154438181322131215686137612139413216475534123441574811813323322366737424573228432363141951134113751816131151113726281254324211663442336314111615735392414685573111226131415144532541441575343161736364253327835328844894114113193382236157325713136236361882651352173846234116486275221135732712544554634215124247325766444726372232431173236351313154721241447624823465813631211435533323233723152242834443573512414467218321642132332662276252144232417452875511114433811419567955714145262726611525122365644336113147133562341614251614144113542642372151271211152626343323323326311261462314265322136713377433735533131128326322123256525155354343113772816234786411522652934112524231532231254511976446252363113735824654656279213923814624154263523215211295196424584127245143321546573332541832743353112128363472183286521332254252413656137252116541186242246215673835333344273273325734121719243128124441646718331323213113714661626344645321221176343682361474417111125572335431512171127463232963236322232635439153155656222547452332394237294112313123375223135773973124124234146138237176722634132131112642171711254591238112464127291311372292146643222571162396342525453432119748137223325722236114156155426192923631392125682314392542133681471471311372431116173825446146125135557471623428515372644342224212514821435232641252431141221861226534456536148168563362416273293129554362281362677436135432466212744452316293534531344137114523128292277542679321184134152382414134444151394683474746221135146245264259835114211122344173133714221143427622323245111942443343335291415216555243321142137234132452474121432122441625172114443532485232171926331623338657735648575311355535541547141241222262271316127325116141739152871971766142119232628121216463227124155921222524111182451765332862224235125746133322531525364242314451466112665311222572353522395713323312628631931755132243556255872375138113111648581773472251223314594156556465493386222421316562711442123279631141322212474532423327883256445763522696121234431621715165623343653855641255444269744415352465322255316363156211483214631553454432966575571321756573943264726811412521523164527241547621541222487455252584327612972914162362531142916271322468344172223113236454557612317935643747441447533241621646766627265441614223233477915222234236333727441534217268866512384485428513514334362616516125281614664254735211768133241123155351615441335749112373142623164526552551564741114153769143351413517331251534436146542832164196164175957126148154186259338145943121422133522576333751526625257114423233261433223417584873159264462731232173184133162345614658428473442486234613685654525291722254441743621945336133324432319562126415661141721121637313629342761837763992323831157126161421354424271733454412728324251521262317369127739732674152536214414526239551556222242613115223216153431742541231554341148436642222214227522241634222152357321696152143212441111372663488657133566175522711423443132314513163211671844892434874633122154146337525151213124214123918132563322825342231436112214152436111317148888744348154154224612116223421328322276637453243376168287423427566131146373251326211313441322436178664115795415111513624829343773358231123619243221211165123147359312712126469733144653233546142145831831331328443444272958236644258567211536171472235472232177217634556133253876475324331427386473836312221532184425212419454132135961126239214218131141371115831263312214172211352356224454642731554513364392137138434724255467137611321162251253419429641717258954145286346142122571853774262333127225435491155261551543212221481122162321726198133142281939111383143513251342117224146456722445162853246611524123515542647324396232165154771224519461393744856323233313324521116641331737362295784145742221231214413444365224841443327155552446149323241169158621372117162845616323328118561142366851533641123711574131423845611577137233385326743862338711711343232221788211385285555144253282634713453733727831141276241951143174173246214243651443557211363724112623151956926161371365796441151234146158171325552812322825314726527193349239919381265447712316575235152423188242831484211123422744111232281321475313447514328561324427342664114245547712156321453524151316412192841636231221232174458821421241653252122999142142333545432172643641242241471432421462634482123214333623773253522223251151226117212632251219231454743163141122741712373213725411415164521233638154311681891264334676625163834312345113332125443341111158412221412533616353613264411132472131844254162742221138321851341159761727341331224131141213154317731766116333221452976171121111174637521181359223465332129214463626172142238671543172733231585181261213833334466343423341534176448654435616762116429261185153721436111186477536232122271158445471141441324138356352943833432175612326753431312447263251615398255221513137411122232742222263328533551441681626325714383217332732281646721325144144424162111363638411411717115717579231822117421334626713421447239125763763561222642523622254773121171544224118221314241511551733464336625728465411754237637252736115114728132485452327652615613232426131114142354163122743221142327456312114541553612312473174633175321223233525242426145762327216111962514133264331631452244252215517825483765312416136446211182255342217181211612416223526428213322118283472463138272124323566121711551572221543535365331222716132361311141314825216114322956814542261131212486411134343442192266662111485284636223626291384212521114191444328214629262554475632562444272399315831265245811212521311245231183452415711168363928584884112232731443225182132413783541641423421526732215132183444315538122744122634131537432296634274592132536718172149341125645354324128226514451233422545773545253733822673143117136427915113696635125173643723411327311226214254512131351352875423722533722643315861847922118611472213431527513353613733211931221155125323115472432212511443542341553832322716321833128347337115223815174513434147222487158125726513112123517514327747332241645431535553438333226215131664594812751143544614555151513641511235362271283414643156111611223384584611385412263485251712225564114132215353181176336181343741266632314174426115262224443136455262417224834765432361356824635152118635115146445767333332412218321546727125371432335213262364435122462241356432136373724145911414312327118654922532343284435365334358341262343812163112522268231568821685311638812632645392561493213146521814241126461176552177411254612746737737135621264685341821443526331314274133512345446122213516534945647636415564356132631172726431854446232427532244132131662661351323182626436935651115133338141313534772235413362862124124576723645416881111342327383771333374514631565287131523422922181624331118161341361434314262131427314512132113437193573343913727211935431415146312251726266277358527151271172181744751131274372544336312263912431229116846284242156393773266165726723422214362625117816121821342334242114513315137744131713525214655243422412234312341284123131163324521714823411251364156177348442379663618822165386416122418141347782252131613226321381251111865722933526131314271162112531135477355414621683326326135388234155381611152534483411324552221624227314444831616412121127481751737313112152513422414111116363314393742122932126353572257372245135832513196226512848566473124157533295626323236234323229662254123313324715227615431547586245235211745227633443471313517176515631942723323211323322568211413432278554421513261624214511331364141556582431831546323264332511227415381311275222375635422216742411833425536334338122146221837723142383829153822296552212471552634835231241461639357231343238123311723292251486153641669192532447137821486216252112662942393217354421321351428134244736213237463213587324675321314521566284131112615214234334324626312214347148334322311434215362127473795267964311543343343233712116211545241325413146825212342373513111142252381452431443453136271672474126237543424845175524171712253378418341321211222824312451735411633323146223333163162525612615481534112523253533323317241531334242142164212136731665223423144635111433362122422183465142421191132469133236234613616237233561545654533264726121513524526342345588446521422432561126745223113344254386537615442531563326454166663645351165161114225164533442121589445242245531742825127223926345722312633731146952584356173576172376183153267221455317843215155217244515637548241146158437314137573223825223342824426231133153514583313157326327842492124241145348151452161325577251219213821513138652182142581222726415552952455132381546512241342623142261255752634237412923271811143653745632725824755242634584433151923413124213742411364154244342165541734253143197318231653134524425524124124137462659274242736781313442133256717215314735116524413522713553834216148231764647333415942121331649224581233444611544244417242441312221313412171174374153263316321124342238143726547341243268142411574435322525411412334124472435316324313654375322322149835513326248376211227639714325264424141237312354517695117643132548545417548875944831642542114253135437412451143726446218655112431313267423171531848111524141212215338217535763145321581331634448621516342356627137641633912636326713351628117143121148212881434632287251462612427175356272577655352622941725331462324531182666823113354331133743425862253851337431812487453154154621577264424373146113955572233536213292221322286427333133234943727624446231458364542835134513332135244645111223311193268555114155215336612139243152786133421531276733343343225321464413126392331246543831113398914222213732335516917371813523524221444178121563244336215121254351133123217238664132543456791239123843176825417774417411711123634339224556461243355172456158321845413243644622173111223361651271146642132523892274524573373421151218413241165231218438157412521392248155311582573573345557123282345323112131552437912253713623241574473841235187141425423316425531244542211441323432215331171226112622353125414271242432135324512875614414144343214337738135141175321284155365155285321442244278232235155622233689131425744123153346456211983315316714123911152282113147825813553622144289223457161184486266616345734148642985111554328434452424171133634211292394142414131342113448339889113224834438514363712164136476431122156557348527132373145425744383454223286223534376169513726337447742777123112213673134783318142418744421311114367741135511353361386358323483413331973314571325435424654421961311111222483565213252224312221114326366263131323132735222121714322252436138231522112814178317213216223672137834511481539411112112121345425654311351616264142642564653126623133215641511521332411136753323722343539486281571934153554592547445123319991913623443362817562515222213922332671721442134275151123233184385221151624223756564324748236213754723191141719752186441437371111584813614127311211135232513127445254923532211342144227122318874223242781326333434612385599133611191164454275313138422216111536213335449453314161742641327221428312222762514626611122826581586123516316232856214413211172383214124973624431113244512225541223174817436447413431236313452241233758754139525432233362296646162519353454143856163963124138373311821324347393232464741631525441724465111758323252242217115158192512443342123612563594123372416215583144114136131112177444515232253126115331164143353788431627352853386434286377393212155436251546195187656821441826631113121317189226351847682281974184585416611561465557128718182148543452423861261352359261261667547652221413132115377241461383137714472223411233163814854458242414143621661346373952231311345525616221433461221321533546346433366641386583591713451645154341527621217931221845151212451321231273492347142443354338235475657458133461422126346353936136424115324521622111637322234316541711828591412366547363261287187244252115114312327451426568225181362281211114332584214569221133122382321526128146447252357173411221674323443535412332514344212211474365336422732776276472363452367551434163187515614969478327954211613645265551295364137612216184343635548433462315337162651466366722242236434325217147413472123211129523625747439616135761597147961752312122638325188221321756843416247532264116127124261135242142751628943732443225394274321721113958121384241415161461221231126291834351255733434365511472257413477623254534141826231444817246312188372361131116545536614372552812112635842216141828352521132319511154512423452119194885151254423114131325243135691615819493259413234425612877151268368371574315163525123771112127112242169112391122526332322257123923525321344411212537741648512578555561432492122316312173732222239331219616238421611322441152321362195361733112151248625564131532122913418868216813143173371142142325856355686453122283354411754148325422222522156817114161235462212328734422463423351132162943414484151651418244385611211467244282311371522831131546211613578142517813421132347622524127485271262447315843726562251216735475616247236619261461622142112143912797534669212144822131451129446352626211638833251161838431444114366373434411373135222132465747545143435542764194141224541112942344741124555526761433115374746441231115713412457732435144423181923615424192951423251246155312644115742496392341163124656611353343415155611549124263622723562113423632232381523556253316151152747171131155218113232811315139555771215213326333622337345345543716212252283143174754252436555217536235311145542443422225244196682144921173145764721243144238344229885261132661696164335431324423334123626729515313374551774242653443784134221296333225153823135932374712434546717162222265375461573111373622255121252246881118163624113736912548793511991314621471134871482134371236185636771433522143112117435625322271631247483312916621432442272245124744345673271727254187116118272333727169651112211482447211142711732219541254752484538621352276141111247263233141232111432376367656152121723712325515535441651324346612791377651641556314838321263592243116211113478442335422553241244714136656272522164143422613623291441326657311343792311828585225226124222134431183437195114394257423635531137425241823941726241148532574122245225497412453749342781557122177213111621626411346653313345891155554411287672256635471555712518367111457933468163334162791173436141442222331814575613652229855665364422453233547474411193216122226221133321355764522631356998691711368196227823117676425517113336433636143222317594942366513312143473746513625133617225121227115563143355653422133621146264942872435154162833245471726232215225553415172855432725371271121413114111336262391612611225473314635289722611316533133827531833623531355577855492113642184262433423152134263631255217176337342151261335721113175866621749242572445226424659169443111521517494815325617222448633431662125183115251763353131625122126151331481721422236864655275522361413413911243351533234225621434232145811581431233867117225932124496111314112352163161226322843643224513416254418182641242261714673234231565431312371144123534541229474137511822724332666411474323343274271437661518311336734662965113214318726293415232356137312742522216413335117251114226832651325711663557827141325314221625411648346573357173332214637232321244473443371111643746823445283231797167332742235141122112114134887315743924575733213456314463222233127121563721913134121246267741565514161317618461456531464297832111225127114519373555414542415787523464282133154263363112562765232452873764521543485658722218332315361151251414122265213274452632136861217354543436931351631244112542152476423831212835348624551518314325846421272461968532314522717114524242216657317694212766191213515511442652417645139251356512352811183741981674142154423316141554262651625871342551411116212672434555341421133666633464325415513131232335616723324411731616213326232156456361411556218557854364721663311751912434373374523712564113233244344316153114341634237225226742354281162151436137255339176154511172222676572451114255121243225645823731692742112464245382235264261724525124232323444215231951962231587141631522361327153344734172955575434124396532827216196433233331142522477231114745534621613553473155632613464741241153625221221352221413238232143244892136337165225348327471281415962775217313563345596193561692435533511115964431322239241116224431525314475114322322574124521518615458661225925372721553665712444372257853684731615365217171871162383132541421212155522534221966166641571116142115615535118857156832525131221152545937481415111847342424421736527431525691323233211274623154374641142788531421226331879391412332136483123384161352612468223261629734323613136143444722144127312362716532442891711775125278242964645145241112332112814355213962665118272134645171235333461473464531814351761867111131933543822123928188541616225147752442167634392223142551631664562317375242711422442829334536225665332635673344228224782362346533361421317771166356542252223773153221423832543813142141731815732264141212531521153433472146241741624225124135312992177332297313652241372321133111112627164215713622311245227268537341631422517372153255511323542223143394334535415184435222512643451119246137125216147613421775561319511374162712324324412532431142634366452323371117817167632318345727252951412237523172242445219128861146484674282314627447331523421231114536237142127443563443265361382953651241726147213562167224614531215142145617522229334551627322243516173314322722421851365711143274963463661222546576324832895942686964761129141328969361144931168312245332267333121114152336235413318315174711438232621233622252955415674563171723526876138171245117323318446721531451117586456428741975144214422342533555512674654121444261433125321427444295714521291222416361125312412352511923765631354152634471522233156312245251153547111527467447472121634641316295615331655227971369517734524433326171446451262412115842365542162753144648328155673727227333223472235332327414631514365165484212842728252141275721251633835592273127126757918835632157455294551113643122313481445142341134433231625113123511891123363633224154257224644642715653182181311335268571244581142727332514953328153424311545592212568723111863312253452234231111311181223723324634132152611842573133212691312327311222252351484732814211535624433125712251934384821781211922215462232742585311824153721562936512856876362421317116133244421713287623835134212651325822422561331413315663213162443112228341567251423325432432429773645124451648175711343732465521343211112473613417347539623225161351212133246623435111239431151367411745521451158414213182231931255561252215738111824231843561213391266411583215751536192257173283312928915291621693212241125423431152524732635135118198434221331264324252514316144184634314517684254411621515312241747117253543723775458415425342273131174522433312145222533278253255622612765521794114151321433623721536333368821532312261229141955533423235274456528233216118111421826614224163153422213256124414315142545412622572353327544517127474313254141134394362413132114515128542172913429733317374156734746631331472331341121353582111623434761661561423645573323713592819412135543444331315151231527236822245178792191118515833326323166637812142271111133514362525272234511621423143141532354185186151111845622532223166762255332221977853536123413174525435412712573241732226342221732312216212513473818524231122151375552355317422225744823658111233664612143556133252422116416222141148454337692231395326236654262115211131135232273152326363144971317763328735743112135212431171327283227452711561253112682232761223218165911721258111973215216631711235262326136311215245124812545461363422423393516426362725434321512362253346219343616341112642341525469133134133471544622925216445241712819151541216563661281111351665141121144322142766132492112313954268477661373319131833416661122352147123478134244166152521511662233275133713256124235234811727514512126382421412825532231332775311113472113634322863415543757383463466168282422362275368216616541153234184257593151946656512112738264766549312363242253192214124316221172442126422412621443134446514667233141222133423113433157111654214212118215343792537623111344231333662342637131172121542177144127381323415143232512711682252271212372713121485552111521822222443211311822465135363384732334112429956263218169222231533544144113245114473462983651213324533265221144414211865311446415725111651217461324557261956121135374165255222531751628781423261864211456452361241223517422654212177412127353412422658341749415386134685311842533841318225161223222653341314151444556217112455556312834934644515331177323775824212151611982314316117322331143161115166144221416153144623176311337543433641135126236826724262121729422121642326326721284211112697264539571221522241165252212736116142145156412521134674111232722332512324292621714476752165421732277235668316655122121694613357134349211662137487713746222262548451121414561135432454261394172384531371215321356315412146543514523518476285711451111613511821141752464342323311311112183411223231244411648421635688746716431241331443621333761121332426511353512611214148216415421121632172963468416464724132419637164851653549234643414381132643546221131234359334181221122426445184232763253465575113151114431123141721719241463443234813222422331131771341123238362137281712313854535219343671516116221728511671241534313131813525246789333265143111566311854622821116255773223155453125437816631655251762145273214211424532127663754115754111157128923124347113518448153313955129146113197551252271233122513651177178314157632448246462618551222141611294613525612455539713192834418191345521116717742227153634311161544811291143411815783422415173274431323417136247753381533116314111213413212161221843635158142264682183246822422342313274222726542225338732425353372432163772732151184121635323113231271235191111281411718522471146514612126161533919761757913111231666365635612522644431455253221138156141157531236213293534465154336216332298338717234413184216421235832716372643481214783772154311221817173617877122223478148333334124623415424753546116615655444447255416621413526226628411714246271133468417612225321713268745715124226314561116723562843222742152147623514443237348371443823171543119124923411542175178747431332543526676411216242171712431641844172327351482211281124114424812128136637847586651542476522411147872275651923455576229431553123334141334331731235458466464135556215341222514713236597215311236133691753411411325257234234286215433113413777321844143246313324625654411127387242716566232664814221351261531641611652822235419432521224113131112641352477125558615217129446455582923631165132512516255141143172531416354332158493156143521319732144474637223753777575263142553382134192371528329623512149666554426126367541142241385841664455612323112571251646121511115531718446781411641275174461246211232622646122325423176721611383632162112358623723253176651122431512145119546753943312824611472334771912233633534444778443733117315264533152597141142122536143353132312531138363262753641321353432211279111264235266621441211257546321243661566382723692233587146413683674275245413531516312521451622336834731166121333433266634842147323334142723271474244454241367134271367741142432223462428523635649157674552711124214298415779176112721122141325329283581174452598136116464422727434475867462621625142664511416221348343254221281335221262313412462225515686712262262875828719323133132121154218235523681156333115651153193124382154413165152122288414435713616121231838741767341571646726561412563111684251831342333553522116724236342751258183416144419225439532223723621184444177631124245248115464177286241217824524116515511361758113238453243635531429734262173442331381573396113182323412414244761284176332863257416162766425495116281186221757132131581435772211522125684364136132433522173623722731343612272651635186876591641285432844644122157613567242527124753163633617343131414443266121245157117711213334923473637479216212413226455212236229437127833283781641436566225431223644821243351221355222211187867337641741632777542117983723178133424217573424271113734232253233792116254455943481212474332991226242331511546265213387652111163248144313421723116851491242441126873313287212914232431562631317645234193411228133546221324545253513622242315723833223643514562123832217418931429436252414824336165624532651362234873331341633233621133351752165652132232378411163328115217149828273332443236811374883434155174517365213419416198153452434632568663113633391724535246576244659148513614283542157522583713621231121294434316363357435265252266411321157323463221156344533562222133224336132335235741641193521139234111815661366125651466554714112233463319411136321733286416271152282222315224527986524532122511754546323242751773424543532619613477151232512181411123946263211123261416413578491215613223443382559414234342241135532383652512225345366682231423152124162614744518434625313419252269211273545563535536232213153675533512241932427313765359432545295532314433641166111325122518482151321352522723164442412514256313214813255431147122341252125313462713531331396122112538115412326245852422753425356932672328124353759252435354524741226284813721952432633216244383533741571812686514331423626623223284116911217333522347288231224453512137516258524153111475386221124362633512152246331111153712441211434194153622614384116322733112322263314212523621315244417315244124315475149115224344633312174712242111141123122232647433661315712561856934224633234322215431266561351645152623713161627417433111175747424625573145179321331621233187117759467736514154573863226154252643155935834851628221846585321352122273512224115173237262342931933455235324171256323134313236389562332218435281331421111532454226412558726151161581228816231454331442413133132133917232211218161243263136462433288431128128172518653434465735633642111735164311123376262225543225641412512211272331612384423612112172662123153331565251441662345351461121141196538583142811116377311535118323332216567144912315174436453466442759622416217641641271615311355261284159212721464732125223335735683421432113348114224414217671132154521333436112759646173447121523642364635312419527343953555713743532712142653173151121328252212545726128394283312351162675353413141253167535178843414273812214747326123112322643663182231174732841418216354957511241261962112324435513363261388284888213431233111324444135263153673193315528722151433923127275121935345164256228157326144436356832552144431263135449141264164114155671412324673274773517431234621217442276371424613622436565413482333765172569231815632161118271344362252236221455651348111121113211661522574313397125125131722432531431661152323281132314527253223315676532954719922518115332993184913172128662487734114911512345963361284214841595331354211273215714328125681762116513251241331111153419432251463122712314326422161475361557711986341131711312134352411223332261346243651567169521665535444665662511145913151176514354164673481475928114475431473712443686131334124633512867227238342193834323252742322163728156513513133141531849133526428524565423116556717345311635485145132717152744665746872641943122474761232935252614847513851421647844499368652543112611263421175622431127314483261221222222264256255986334422867116113132261148225446727565321333241772811217142227222348333752752263244332425142476862116123316565547231213435331352362567654621254117132511992643225236427251656231354313116174582415333415491511191366211124352223223231525442577122613542353165155243261924461121457198151836461221417117453134746411266422236623314432561362551442152545275534131433144455286534936526225323262176141525115751738131312432331192663482256285546251521231382441441422137632262335342316248125523325428512341684671332171238142392172273625723512621521374124411174314431544722625615448484723565866132128856251113585467318857611242349831264243316536638427133221412513126553711912531122222731424341227138421763711262167332711213211513125371855718213233232441992429142725542142746445525278138634524367341971352541716211441125522216441153583614254221123734924129442738315211322355733231324136211439162244361544111943521251376732315416413413346413519214338225427354132453486426322942229653578361611221871271439172251354528925344127216223144334341483331335133131222133625351671725142121367665347361284245223214345113334232235121831113526361264143213133775628123331728373152872324671235348415121631453689121113147821153326324312417134216111131411328234183438164251329222526152155713163821535323174342151412751221656315635334515422522321537229239516381675332226491422624512152911238237414312731223611632632526276512641611691256453531123218648552888622116172262121472211333666144152157313178854533423721333422449918251751582322412891111423421214442111712286165395645863116311434624232957515523485432615674767292158125322151518735417363125634139745654312651361121362154854333846143131527441824312313415825361332841514256366343355232131425212881262453478315322142412246141326121415422341614361577644553227638297131131232311833441317362343155147831687437635923593281224142414362112254427113235418722425143379311433442723363873536797554467842524215851111641315143564545152257844514551874421525524135672115226473111321183625156614323376811284513592214226574961327454162645824134628442121227525641238241121232522151113143334847474263442463612415312147514241385351515546615171446983821111121157337131296634363317426911332523323517425782611241123694413645132383431226541224422331122172674881463531312331421212827246354115964461641181515466321354117542211199541322823651223266173732145154274428123241237467136484713218374242414774711128622265114395162484112641826112926162214622822251633142362347231623361344275261241252256543181177697216161451472125646746243112135727626454297145265272164553653281726721419421316413357973211744794117155124152132581152585292636532142842937924671144277423224681248221183713281211447241718122331543453623224112641335284481326342647632512114132111632211143511955662113262652134521164464215221142632536242631231432482237313316772271231132222166322191653159362264266368274261624886369422314252312311724138622712851132845342312349323116483313363224176361325545121232421417736127546196385162574115263212674622213641324335227127293911151216115124446665231232623411134432121164966521578288713616852323366673912366612481253255666212523621135446543573452571129456833111373132255216741125233944253141133941271324134711245142333523243112321151213113111137544261131452271541263241266256343224213556378346575725263285422131772337634946658544246335146361131344674331352811354721524172623426193766443315218511676256152766293131112452678321122114537665185136162311548214751314432114251724313741913232331461133236435415933444211733244353121478214145153523926462811241471522431285242134428248112635544131233214429361131118416363262534346611813135225232143564721333127544632441433115349373593144151456483725162296128463132113134555443314468444383447725816931214432314135621122747362281584164371774451794212537655456423245843329124432134222135122212211289333623291256343226127512124151224532311218164133554927154645432117711676111633513665154622417111522211216565622513435394255441224237487221446725172963217546522151113941221323243314436341674954555246191213422248573321461468243664131334154117394283493662511224435651131986141311751553262215282314642537552333642371612186213177463253135514126511276114511163155138983512622313228714735174322415268152141952121142223144125317111112731326157721441516251965744148117329444156288251342217223282143515786536521325815222721137225154372443545186177374144124524221732416331432337744351621224547534228111235526131124141615452238425556324314313713615233182563712526452473141554222162413322541143111213182312323343197673311631431435211452314283142836243111422156252615236144654432122587422164634521458681857281612559366157353136381343125541111354315323573115654391624223542361112325149511495712321166452256242813512629612112365334782121743644553413125483416415581231325466215118817816377251799291726514835526923621142222771112873525631342212112436155243321236326316515754542792568696433119231371121115132651251355324753821475844313211851217145127275746552214411365237536142443235633754839112244662261274711221122291121133242438632762635582546336261356227112351426281347444265722318513211144627213122519612236142516856235734533174123176347371443311432666551424331634724752111413412763215444175312375746717415415534121616427132211123134622323311341652173793142211246414265369513854622444241237361865232126195171316213573131561663461115216153234263365648974214831113871326622862125644251427486756464114235331517612727225111413117313565521113251232674124437631561735511124511733187261674161183436131544317578426952432444256153641181265266612412347231255445616217173385477252173911111438172627143134127112213162982689511371175813153125358127537431723346216724311464323435533433353146311137758663212124121653114724517812121236423642537257261827432254479737154362693533815211133772436664464348127261152622543692236351268517111172253619333228837362323475311413423113145232545171362525328134844431152735134123433126838343115986441713161653362443311252112461163142194241421535143112738931513382512825554732112535668388529413351557541472523477621445158358468524651626351532391449274245642421657448225213132116174432622913343342377434172715122315571823222474343423215627153163423571663123417413538424322528217323133653462381238118211376424541611785376512165583454461816152371456576571156832234631824223867141122225365413335262471573521216244467814511454466553657414165123138232153412123462311477731511174543192632223141417122324347564561258351353161425257511434112243551528269212715458911362251253511631224423291712644455317111534235145482525143268621675433416812859332128731214514875416113415371547237522532223811634612752632723432614836212311325237236137532876791456942183822236221356624616225313422329635356225119181465163241622313641134312315474165153737744153555125514615633477234257264521254153113324336392251112473429412161211222116363825136331251355557263411674468453122161314471445633135282153474415421312255316142321169146572457236432488879721863222336782623598565113152734439347863571132514111342327432412282653287433742211349272671113333467741242622141416634513372362582327223781223487821125521127588542185311141718623414153862212124524284522111916571533414224335335427743742922622341125212589451411156161176331441364331165512815515338832271243233715142425121158144212464333546143114223122421527166238329246552611134246232551141398511142452151787131152237341534279552122451372244543633862454212113533422392121623676131124212332823146225288268431815711366421476612284622121521312637668485322547515552763544716347666463312254612613458472179155625553345226512162862822439443331381134522132214475331312432343447218261352122754596242842227434813397541293928526427641453111443533437454462511154447946118331754663916131739362162164758293358156416673233343222816561142124333643326877646279224421156431233445173364175536238121418851915333376323625853345732633595841434117532653114136241246112532161541645342492248454766265866316126126243653112431312247535534241237554698561393657267631542213131762367233244614442311512931442217112846122332155292311815536273462224422565615224511813752151644811317767342323465272118656317722277513458748294231279353367124326745222262723642142124451864222731458137317139734564831455233282264525726652334316216125367326364246621638525736262145615253125152114161312331512455411822532631574716326223644217136321442811115833546517662472823143422232521394724527524932254357312436691426417357284333883723256119615531194111463276631521856836117621143435241132112314931214211459225441262334242723625223467532166336853231338634351111563171431357132645586228264113135644521181341948455727761445542325839522151127152423341231455231315661611819112533213749366411341443513362426156656142152222841133424765115234812115611674621144351216921554223542666511121552253834132223411114226517534551962134336411572536225824441414584422313685352212359283944733656753263263176394182349336632262151414724444941125213867733227712411513356562417284569253816751445724333451239815573646463188333545633322438557419253913484741685365225341332441224721138242434351192552439111426361541315531915743617661644142574713215433148642622764512462758143122844232129534411587331361123265356832242531716154482168324124181125714516176543413655615741214855352482324134124313475337331796414172325253544355271222552245411632257463472332443465536325552373443326738247163244337416984342234121125114311978548612412777248165161215642432142571214445318112415127111483452336453412234241221395112474217614271343127242648296151324334451182163173144545548512141384982321631232931422343632611315222111763315243161669145227621411243154468334725121811248155154635863345626914473131273434143444481515622313316225525186146742621116358488271754764352256127463221223622324466548615145311271412146443432133112861354154843263728561273115914524255415146125141274732224337256778613733125324541224173531171414212166533775426713131738155162217236347423341624446235323477473241116471263265311392566423663115154444263326459547445241812522555254731528541483414672155252231721472482234239483321128213145473138221363743214733322555724212144143736635124511675461643223166421124195325149516365528644141544322154128841141411421242331451551122644844169312153191221243562459115133625411587315763132678245628544633612135541453273254261112126423132836314533213213432348111423131134333161321313146132232181215426765725221639113263711223168141713384325424552214212144344241674616713441174311247792512111633762581386551553391127412245211711143214915295122316177131236512921211621778446111112527141432418426445171142251224371173222245514531247323641533523351233244414262734544611443224152241614262613763441751635329152335436132356141414181763133348343533241132755229112963484627631483885535816361131837511248426533538721272445622462211461517236324765244124933224545342663312232226361332971521623148917543146441781123115534468521656541635535628426315283256332952652358224214614867397843311935335255265386241823132121127312621131556274439721523717755516741161387141341343123254624364883217637823155214713131824813247132714915384511121484114311752733366187451336281423174234232323561672515234486523331484216144224642126131592363812741753115122973594345713647354163273594633142272154864524145155696234484279473123175311412568271752372234343216113311813633222323216364266433111122151356541444742243637346126312389223317213416411155626744634522144376414244116312113312111357813223116713182322189225345523324274612223342215462653111515733863581173751213311341411365681156234161638344223623821471435424163817222825311211851211395355522533854561177843421118471518566441612355227351113924314111733133131223674528222195655377557314222632424142333843341126824233164273525512545557658223158576231255262322844272416126163745163113245624794312473231435431638742612258161437232123133523614122237662136663568854216315471443221143712427631242411726724722137287775316251352616663814267724223167253571636281445665232133245436376291333224131653783526359115166142242442721411448911651637664421576328782573927233512855636227251231514621116233155424131211843542512221398152513219713112844421267534175445634354282441347775177141361473472421426364431614524532622136452992956464338543125225425613524123264332429151983553254211613539671211511113541721275414253553761321288234461631344316454181431555463214453539211795324721161554623822385241425531932211272132515127522181428313873241414451613421125655611641355813572331164335461299314964262485373841175377153537845541248545221282353371113565142214173635282114342324583161145541223317455239336752138215321362615221712134432585222636451164155231112514424227841124125235179573862413413744453234439235173221271535451439343636317635643562341185711653534264612416687117326692746183284316165521334335623522221328791422136152162283428236934116151847311112472234413351165621676311161118778632122234411246423554216252631637531332174861515227473231124896767833241464431941555121116734384537511284253144114243228342733123422545531976823657113637224782358441363622616921111472653521253336616452724225172241346652126235311311332571235421133651852251378611422234131644412426411312232552224232423432156251112445325426611232229612644235512111313758724734762237232183542126645124123152662758355442292411252652814522523145127522225113731721242374251735216641334885673313312512234145443123242172872215175825453763147447715116451762414111161525743121131264583113852411141333453212754126367235132454356435513251662151639126116222424234273623671728512342464732421331747862241214164224784235574464622584264614511614613627321746852881321862234762271513579712735418332143346773122523544354424582214612537178531346443376354155522686965171272385851362122325312375126331182117223637653752192218212374112515141442654826222263423116325411342326511484556414115324957329451153325213413231615651233621861654527622357122351365836178361613331312246677473253145877251132165127244315558253165516534242126221412513933111672813497227511154643527413453423176213172442342163551213515575995936126133217222223686575141135725624284266321113122331353672635296593247236619433313444611515271164224645236614146155224168314251514243123171122643147233521114164147386516211544153662352593243141761744311567834923173316166126256851331312212532124634293431975155573181272611569653444325113423171332364524426464532147912313223482533332189533176344277374213146335422431365114452141624126543243421933334325832453335812171323237241262284352231547357166281563113544625323844654525622574666827121524413123734161463777426345451122641444881791843644452212843421516132184321845311174118612315125422215258528215521132627344534722474231721333724129616132334231565432461426356633411471444411451542344315326759161667135253111114135211684518343613473217466455114331353319262373528241355114225242431754757383424351591164683518622188644172213442111132171331266377526592622447235223166157152437361134315463115123123375337532625441611237221158575232744631262243767311746762161812141413224116651154734326237345257625134511521348516554652732242643744166381426362555811121535173435156117165114125472551113314131464424267854417379692136341313312313782373385324526934414327513322662934151316364186252343111439122413232672421144235321846635228413145433523513411437332125132232922425425142164464381221946135122342914122561224316626348823132113336532291958356456491351363938112511266292222725284213566462153612169343578724615441311466773412641476141527353314144563416645624374533219113311236423525735215355213245153333241161354115223216981721272233332114231741231262246132351128377263645811646111721273431358274775456111346639431218182146231236612411321134551553644124514323638361177284517121436751311144445113318141446187411147531561545347919367222141269911522275123327431935245155335222342135116681851314426554246532553473136476132531263411573123572544521115486684788143252257112586111617434235223115112277212151352171136414664555311367635214352387927233172512435453242764281262111414352711134318112275473412315441142415467331921634781834721221575427141851141712227164561164194957612244911946415125171161571212424111891638818531613244452546312211411372431223143411613241111112164288482789587825511964149134234125241964134811455126329661919621121416582488165113517222444385252424412115214435283662367378723423347717812113356225443131741336137575545333933184526137611523655288171514123222614363212313367612713131527221343182416129527427634533422341695618147538121835424661126243242768252743224428262646876133217253191324514131227416212781136555422111241441223133325671195645346851263577116724233128435152131768757535232774143144275749723665281416426533314552113123237712932555657313433721111522561421526251173144333448218211616323526112363242568114124143311913322316318456185343461312636633747566241342121142335342625234944536691773581343233214251549796424226641779528434271839154247416584393644335755414134623653532122741261881513113886345143311629252134248333424233312571261416235121514335331121526225211362853336683142713134451298175511446877374713777446744625457663417665741618243232218732175221321632411711118215843133211213771458126435841742183143241313324751461233225714526469315151242142357333683344164324523227198423171457312551526317131222517113172325657524221311322735252135322422726554851592139114352223582143261325524811836261352152513421672435213131158446443116114514711484636382312331284333363462121338182161233421334131115426844611713232412726223643685611441925116453231176123371272244424153576137362432721272148736481721121268517431412136751275235224317231716132446725184744321515321164727434413312936345112183148613333142245713222274162217331813315818561255721841546354263215486125215252232755147254126341221151247342423326218552235619221831273581581711551562225354731541241295748171923422456131746135834132522431742221148232426622172129134535483237132416174361316125611535375343189425624682424167252194238316342634262231342384413226942848163213592632282656813578155622131844516469118253227651359572432129671424423221456431136162159456669111663272142216442545253275911211253169111422143625226212756171914139635444434247211411533845611446521211211342224531514234436414637123242213277421466425152333133375321672856741527146222282522558516322759413633515233625497118683121451727748953228362675661111135658546114413431123822177341613251536121554742661364229542575571123211333344125522111553452317223648151424767967372124553376237311212778768772621131353511323635131314311621613232245122243678834453162164486313322112311882113823871232713657248364314659166153211326627172281374539219234263128332312268296312655822264317585541176155114447657733659175252157564461745323324365817154416561435124121242362611213519662378535131542234261122225111144374222123343455317126514164741323326623624332476243274212945625422544722213514451735394173316582249363743334633231629274223315152541517358134651153317614525317732431114485235221127326617732323629162454147528352212648157222533426311153156138442411512673284461446523251352116128522286918632635421451261334512231425476841342762613524221553114232271155191151284152631355161383132216685855631831232623811538154557422235427517722932261111335575127421253242242462124316912135711564685886165243321512725164963236432841122117341351133423419546662112135212296641373178432183271788433156112415366463733723874154941716643226244325522395765131256132133222135615163118251333722261542121483662163324422333339233333589962171485266623331293532145421565175147411182772822133372326552534272444254753324343715657331323472194567144115313361338717646431331844312424547217443524812231313877134293142227615131551555433534938217367613395365221511382554428318123744867116194851338662312817125238434211842327564213832551114682121745116633323472153248133256966112182726318533722224965137244151743222185516264152122351211547383222234641511258855624326133448342122787223521112542923465251574523151145632437367133946518111825133221561725626346411433123581112615524744849635234667323212575174413416441629453435163327852314946472143721313311466538234225711714135111615261324451833656355241574132973116292857162531522828165151374544331681421232422227711439151182122374115722311424141213326245311444823262242551324558296246341534124144672343125563216113143451134163353663866243354742242336671374367133256167321317112722619112318471533162423564333714778416223362315664412217127293423363324443966547621131381223142314473223523132345776912121725435123221175121991263255151723711334158523131325642145134742671525113824148222236413254362586519156751321671455423564241833673511241821275562453435785521922471665645143961242436244687264241116231642281441364465323424213693518444313334232735211343217668215434649911264385314416363262542222712264246141672144452742652454516333945236753128672223145235728662943244393486233787217561117541513226135131613323186746252223915524784751515652625324321348235524514216617411611544245123314142566595445144123112865215158413382727143532493361312634274225758672116112835162833321541235171438314834377711623444746272336121422742462573244115422337311412557155115855133147812535433284456136517735416118374416264375533312543612737778441231611251843218415643272473122512213594333151814574244491311122333325352513272253312421812414388774185331123441176634685856214116131355533322618813117412242143136452152226124335713372432334532432431435235325411919673435438275143683482241142253623858461388143564325447629885452145112242544161124735229747892311513824116443331523128372747116635119531497333715273132225592337385336331126516275862252269223222551561315645317123354147164369124337832874123148631737511371388546357155315113751251856429212222952227611623771223133762132823234751172219519123172472146312215321154987353542315853871332324231483865612118317124514342526832241626147456124545623857844243621447433227382226344628871144461148813483513213113612567334675316225412681924441175793131488535161421426121372423282161146261134472413117212161424313464373222342511143122431411314572143281371212424521142213342715543853584756152451324731171343443435222286111563222222947214162762232169144212299314454668574264875363712462642333291137258675253335335637524221297112736154114121341323555236426314524137243162317783179141436471444421666353332233442125933413413321153134154251235544632236434263613231952424421354223422886113113276671331357318456752154255413113772827117413221856243432186333426264422337842354227314641712113121485641146414333225121133138333111663737348346321132952637444121529269415344342767532774443432243212547233474421554464125754654421356647541373115613365136121511921656741673437331481171245445423526123785416433833296342114213241651121517223316132325956144333876131532213447355714824461514553142753164943711631251414471567212362127488173291432691321184166831416421646471485416134231633172321217819376342719552487225232164949331494421665211336311925442718534247328126742183369454653313463271631912113142521499842321718121155816584323126161326671113441273123124435184426548415341465211135612731411124131226222131131163762595111823425744248547811852524822812215275131475734411356114185243375662221726817833222444218162444332221532712246331532665115453132233571332226437129613537753239244222116429846524112336612122613438172217333235765632717144115116513722612854176586461425624172321281154475227714185464853444326415123352113614418484164451547161123243317772427113518133853864533211441313367144323161155686422221231241347834428261221152121512177731224414175431652532239271898214461545422173257394451738727622312714513615315234446253521181123982231333761163521235325761451211438536589217956281163973515621422412658114634137314311516213251213246816931147124471248271571173623513665422134216363773266113631623351463223236217942133145865182135256325214336421111112724211372221536345223333525248416214742241518222815367612476231521411555716837828635451263864221697118112116445456783135312313275182855443432824222537311211414461123148166832661153895141853364517621334525333277132223413122524831317541592381422167376444644563166324844342214364317527225173632526146219259131131256233332169244866711439391664261626643495344682942814652357613146644472381634163612733247247637421121562726741133116553218313223845244235726669332412471426821323254147591772883453675293223724322524821451142151241133225253623555195737115152115555332321221226175744252421723518122512433122642322161221124124521133532123267294314416747266156416121241436463854651121623513725171411426522455512518852934497755434433337622841281151352132115352513261526465116552353357284983754568142225254136641623151414533156555576363452516161121143344121522613444141932654552497416316714412352424213231615535773411324225516762324711475256432543464651424345126245241423551184166215349271623542564645588291221241463341462742538515115655213631756373477671422343651149381146216219631614217545133745133936742553243231627422566284715321462553175424346439824122261433645144311151162376564353582727138536332624418731732717726156115241312132531335294322254254195181315225755716721522721561392631128141283883116446473415231138358465822667572542253717171212871145851817211734664322538726463572551241542259618494236141111963564742125116281612641162115362746149331853551762161515613428214226516142211645924356312173247743514423751281452223432428536113115553541753151595453115439124867219251121454244864224143998647461247213486447333212244112521144213221162512233534277733431285744468813115224441646127131525226315734211372143525462116252747151178654426511155624212684124227686242349252855121113142451775251712265823261892861712126271482615117146355211125235863115433122248141551127539129766617312371511253411444363257262655115459194435523164762396212514183349543333134213262172535635951251242367211523285442122484117322111555441142343342214754272214127229213961381113658256313428162624461389333124582127415695715134561338113245712665443712127451735132622161117143321348152312931413221413282663384234315135144112361779721143468625533741234133112963252932432617831141624324737513233136375256163525463272162313631167242131134241251314533132447316141339223574113129216325533431566242225224641132351827842113257424421625112465564372612575323487713741655141337421513127167411156212223125152323622161414422235323821543443752339111744196384244847467163412733661662212267128153125213131121515563513124844632216366522454546614228261162314384384222137591521176444114718344131424713362644221113521654911438331424448717161211136381323528415414645621819814966621922239113665324893437341995563394249211967715224231271242631185132111291741312261236946343644932243672757742412373712423757333451356116172723181741423612445341323463522632327223342214611712442632641432212425614468265325626226611611583268112356347617462482936512221521311299122133117321551221451427313512777863178324733514512522623512548286125362315326324612171371582165616152137143413369353352325145128541512551311235221925257631653747237116543823374196453155263191811532491245636141631376346375617216242157116462143168946662132532111622184574564512714513257347531336776864941432332612654526113214181512811244136534161826983315112134123313736238122754145111384844384414232233417221411131552434163113155615441212253465265469152123234211881434251252131133666622314221113415166485146543634416135784812248155171471515121422314442331445646741375482365533774737238175129416443356534177455531215313522752152432252281515733812525265146922235226333533244471492112168151181315321644525267191748881322275318416712771221342115363231245721125218625513327111131468196857114666451537373651964319143718337871314938622321562914811444612161632647712765111667211421748334257637137231581512327315171638531841113244434132761711615614225475153711837859318857621925211353941345149288352315137245454351413635513463143184468139226213521151849431211584132212217351624338189831341311223111541214643391236522135423874277739486363132112432528626473594183434434455431154611333153261175721155112533342441112694222425657315113115113152852111243143445318644452234145254215142791432154632453258242248212142456266862121624932164841138422224366751535931111724118342122452324617214324162141225422431447592486622475444525671367353536234131151541437351127223631218214512473311216226235222414513822423323116232412172352534858651443542221162112737643254254137572637477461911153261727323674152263351623431314271216629836472629662344372727187221344811484311122453275342364245235278513153374445628447211516347533114458316292649524142545227287175287431143436917523546526565553631325711112511526614111184573257587242755814211863151513424121523525732592123311246326111321121241234153322513191215551363512333313323722352132114111428236391844337272723723713364137345114131621185746214745643361435153431323131513152671362442415865453213553844534933841731436242323184163651253167613513372491587322273483917343254814133322963674222262163243752124634293219278531391523523613341454383866549633161255431616233212611664423251112513611422733311375363342334263732511377473644775218611222266113521251123331233452313553441455472271254273222125466321111346611367143265112346174115453324612435133242214913635331541177464341136274512938135432213232124446963483161921815413255353923433114121136136332149891135484168642424757484439122216244165212553521111691443166614141956133236433324343715235315812129211326286215334182231744121258113173521228326143651371342715181532163122243643154445321441331932147124216513582315476262138658241552732841445362811253119121677242174664228161273951517122223622314751331284275417847284513333835136546329583121186315555261534539587541858214412331432641426756231182313211263212121511536413554615211218536213521327343216723745132651871522443313113721882163432561421114713715321658172235393324832451255457641613611235513314422283334256153277558121725464254751232222444885677332271455614348242645541532257412354113512133654462631125123214211535331256453317415253211224462773522225523542276152284673181623638252433455531758372757232211153613781521316884152224127386141121897947357463542414628521211461415137312216673212159164142214553112511163243569465322525244433597443311414431437713655473611552252715314413161623292221234351661554115315246646115238442311347722238274425251336511353131822912335584242344155568354133613278641155152113417512243256253522923333517112851421772843551523253635183245111759792132342257211434252127482737631146246133332123338346555327426624362211412195621214725721332123236221626358924372124769413575223112256441461485861285887136316312438135664162136314231823525442542445267423222221311579681367223833375414485515434416113455411728583212382162523743252136111487219163683142111331724212412761829272333624115447133156335341462971545675722714244364357232242466531135212457623984463925737717913464855384442316246612154556132449613212423341534233342242477456435171652263485856225621186126236613673423232155233267152611723723384231372251313112935356534222122511653232657242412454413454136457361166151263136151521628621664645111415252241135173143122123718217131222223263753212152124523433975431859441454433183412334346334442445127235655427147765663914361324733717316181214431121314334745442766472122244628221512631235274356742654455228851157113577723565653753476434826491412223534746224135462386185424914346143752246213543581463337614368444277617125846312462143351625523325636387413251511622428434362165847415216154655274224173312251456134124141613117742329822312883165324211211226213264463225136511232225166512256733114161233514732527235646411285421142144684241142742261431665423527243841715854321566114271362453665661314462226829822194693512883214132214114466511677647115324212854221516314251612322332256331724187162856258215165431474342117641142135373611652584146267332652816535754831435283343225158662137456574318527512313225427645718633335215312314146322514626134152137424116372215538375412322528196136112641333468258134235336427368741221161232414513133561234661167442751612114591151115155559337374187339536361315151141721212367112476341471135144133222433556427261563758642121386425588655663542413622347273754741973611617726588321461356551132142772212561341231555343284633361241332212122171584119624655627465312263884561114163172868532936215411415633433635273429359265162625236854234935581145754616135337522432253655313671545242564385721243122182312185364427521114541554733164131136244814113134224341771264642152451622161621312913145944314111111237464128112851785927133314157332412113583311268421467512337265531522515554255124113765646323863684216182672441438353721631355124344123527321253761214216172655352792111457365124421252147666851356537352743187311442172124132743226129232139133321244341765125131243633212312313661453215666254328443145421322125422331314576146915265382268531224611235643191316113314319111632451164533145521421556715296411212111338125183971373114831113833265127482326621495244333245134455222291372526352241443131116123154423343545147513413511443536197435558752314415488835781514743653566792614324224312223893596222566142367243423468382832123362214511443313237633523633612633223345224752172841416221521451522341221143652471574142331877135821525366312718741115817253145365333146416321135331311111235233221271576229248231176655554211566517566228317236182355272552573826326443142781738412811772243743535621521821794315114156153664126344143575318677422172162715954137393127254614441171238221151255432442334237858881234124316155622122575127356212775634389781231664321628194214223647244114513412228372616712145641257651415132432843112266617311625541852122121313116136312134142542511332198228296114634888221211512927571363637634232134241515173543412515845243642621521148441512315535128773215895126223182427315451255291534762465651581222654341446153374537235211156419722172452465741241362336471663321517116483472434112566245367744514621334542554112653462124432624641213464197661643716723272552713824222551152321124241778232432748463125514132411927477127968199774162625512261412796137132518264113233638847125242818761137246355136332666612613217488535126786431334128519562196661341112321341639221255472447158226621138117641412511224262347171413284115155613814473569213332131738462224641211519131531335112724252758133341184163184131617415562575536753663731255657166113122563221273433944781133373344332634293451135233353425727673561155631424631113225171112381326542824125125285447571121715445332321147347115421522121336811852536152361952242444311564641615111645411233532321215361631195514116153122346861342643682213462267512481321495493152112713236135531161243315244731632832633753345537474236522558338932355147974432729311253258134152254511719213113661255846833212122335647336162161926321374353152541692332572743184631362624547913166346886426723843723353124221528414142559372154537147261344258612751283256247244474321544526123411484132437468326424222132413855852127128424213425342944532122375614223162726611242111134235323235212386116234962212715825382626412376962151671213358233241411143215763733368834512471318415112616623152536211784837126321443651648142859664521712533121545416364413384216182472324752613271326117356375443374153259924876412435233117471124232282451718465762169612242822363721225112423323143422572379771483633232332132542214233215481411435715332843628183525287264311215531241147821153615312412522415321216383138412388642523115731156221577158411211621173175884618615153673642151147188535427723295634637255821654321565389223347282442411357629693313144121441276786224462191264463437848218117333254755351181144331644621133614616344241237294111114283211193385453354358321641824761343356664417711263318131311365527371431331353584441772953433361211413248418876533752354842143521323232284165542227137216131375781512522832551553374535821633922433237179113234515617282411232574261384116712327667151652294171631133245412668451438721154455543865237935251336222923467342758132276512173586356513348416242322617389432384862445175333241324513152444326352314112534365271323333842338243112978591324425845322531641387542111821181122633211211578221516631715627356135451352525432543366636365249143753122172235216114211415311114223853152512672152342485121561245123215558712523222427323151388145665618611321381151635225431333143827243341585131742751376232512532514414624655786121361162121557231267433285118399613891126172111614662237482152246133124326661566331614274264333134271188112427112479177243123814916222245233857471223516311167232212211134575211451186621217123254442643364444151165172453627212544164436211314375566252111461287424642558742146145116566333252828554316215614242473539181284161274236618127123621561333137416561132427543223417755176421334823277592352127187354761713685933272131235217234336631724427331444167431464942154425239717211411681822749623793128753742311551414335723943236612829232611991444134321153363548486351665553329713291226246882161331753152553566414533441173221745322354143311533272226232487363172351234424328251312852861571243233553213235252354945181542911241923737176636142284532533422532243233311674316273411121218179649124559342223111974721838963837661123726754511226947213187456393154214141174352334413333347543757757215116143322192483133556153335329513231593321142245247654422885463132214723711664531852553181432293355211212334145126622361157228511645574525417343132427211442614545541353635852516684211174734128242255354464711414644755315737133652442343581116426336556321813711521331217234355228257132362431663623853175724441344317142423192252212441523343656154228874561732328335534185364571122362839736111431214331113258132841768421747322314122132316454121136225381488128121391116874277148212344273814252744411222514513262321944313222111123425257237745362162344535521325142131136732531427137231543671224524813354324532315662173571222434817125753943223822323266246156155445371465776141191414231447553531545745269528132317821552536863112157226533241271155337719117191532137143535862648754227116733619223531171622735277112642421454577168517145171424677123453314347111143745435113731154182141841352315923378113134672536158118513171118121443322391511913427252141321464131126842645157844112525753273414243213375441789247253231123951125751212643424733545121177155215366137652124411113641463346341715141547131111333211212441213539217722514143435616527548125661421414241464621142423312311473373336144461171656472224234435222436232514684324431529516563262226612314321728211472552676519362215164454647525411522566522854365257226847414323513526456321634313211433638613258542131236146922356232751484835114645226221394184755521213637795231142538118364315136333332461233114231261213257212531191514221415261473171551322417376233314226131311451114235141135411331361621265142215513112113216243887258335157333433512115333513313491141562113373875348331823823511157456253221286128572683441314331142991465193424123343125232376663354468531632256132656264411364222173313816516563413882144158356444224288136443864232523224222136654124131532437731114647282322435494571234951332227336578721332421131112952531354414546236412491742725424138365312252362213442164745366112715363442585364362692614245734653243144513657151621523463731252411313252127336362153575533751115331672154231656522355164545461145587226245368221218521511343411415145111315431226112235512137313411236425341173734648873412529624416571653731345412753122111346391925233331532646627113461743534221671362215122253119912311538113485195311338538672285775422334923314322311624251463432321341161166124441462293325556244262487411369621342361431347414553625458236113336431121435212367731242213535413414521483857538323311154922315426843843411124617221214214125245182228923622144583343536337461161642246664244323422642132212563251893168213282174288541224733816728271551671311919227291343264163217315526716457341854123226463132732273968722422183855138348291657468123442414234224391112514553435273295351676533245378221213617522251545211711541441131135732312123639816711269114863217665419264224742444461215431112661564366412713758531113152636521585562262971142121173243571162761415727133445323111411244353622462311631727913142465941311177457733263121312436511152321222235332134528461831414417414554556247147647183353834121124612762136622453356553243548251123841412124123255438252876244624144164364245424287175215416422522411427243522772126421614513821447624434625643537361172271212225345433666551291244527255454213122111566422231214481413214474174231553252483511364333623382154685124533235314313658533322429732233462381861432261525441711421252883281152511734345287123871265373623153643223532256312612636132814437151322151119621263235297547161243332442623311462413146111143847218342127232975647183728121462261212253419461433623565526347554654143932323726936121214552432132731463266534351714742362678661214333681182153211325433253463353441515471126516324212151224382415741416272261222452185363423221892297113132314525232714148443233122412942372512541212126452633523225461151524126173394411151141136514117231511431136426363226816233228223613235723762223535327236423829142321123228712255711714277851212644242313322416476523353522333164461643214152542221341712691472421214354612264546512215433236712441462115923424117863616283957711551112615426174325412131126716414165213511325774123361332151334366667618356312129467874719242271473326122263755116256543761831234135528846617557466453213241349543378486487114121452883113273564121766515313873146554114228315815522223662874261119434822352151531341621611434147128573321211513154323512813635922933232323432214159612222151413522251336462966328129637358121211663773213155232113843671381221553263197243116271511435272267212785524261237177364227251521141814411335343211913758443477758281823164373283421171621651177313771465112251212642651311232414163742634422343141135391372911512384254464542545214454242263121811156333136514312323412152624446212111125522151245853141333114462674412214411115423135991336223136951352433244824796333216353137236441414219152324221275432714332243791348422321169134111135836524417214174135322134312952353137121423234112551414863254845561337223861743311256459612342365442354345121251515872119312473534533541788421315417638824274122154762346241516522222272572155113561851759275943112353654376139615821131112846137694235753841432343318321315681441473141433361372684937261111112131313128411632581375356449126217161465321215427127116155294556165484212322419331164266281243336657346321233312153435914116244625221221558265322414741143576354661112491271651256599463945228422111184513117413416777281412113233321328411431384156236231751255718224212566416253258842421423533254253124342614313645721121465116191712654533164658126413281432222274246661363217415453241731517486574342441549615652377225144351121165474734522222452595518343446646241522131531244153245284417453327323444143983256157624724222412714194631741124133429326334136254511811464653323346453123612837452457343141576163213341694257251315439111842818536117192554913744873111444324521531614211374415176342973354272527153412271353567152222331731933644531127739328725444882453371541273126221251341327521784382543274122382253313152922135258231467143353331121116637848433626626115742345365125521872215744457543115112843132169672326613213216336421182727631964656321811354614771744333513351322168311534932222184353735725242258423318632142551213413111475464667528832386523596441293243123322422696421217514351423236324231224226584334181157127171152266752132541312245321284114112632411139321145366151346312674431643764481563412321371411215745131712418318785615221374621547181162342413522381414611712153398337333743285343611478678612142911615113231224149254721112124237133443612129285352318945213845237817354252255112112344216154168135315523136723211265232662132693352948561444781251315555222261262926253628417174244453222947613613631111624117294812264938312118225375361533591132617229174217371422232658415444283155618729229392313934433128383153818153331252334719267342164343333629564669236723522815921132434611113571364356753963254721465263473421137113612442422113456115314216118951432365311554252241622835622495571276631263237423155365152241234275268434126222224423111633766531226125331241674642324334325792114823422155213726271322422216332533161333276144616471318112332145734245215255144214211262345426311583859112131224444218531114172221532986163136162353523323416221135254812212113216211374425841224121339383434735873311142126543473433375543131657718976374624154414292375311584233825612342629172434933272151721339262452418543225836812488226283122484291123638667236788332874156164524542134256145326713116226357612346483323411512161354915613291351321148326151951193813337412112484112421546345213311322227681122345227715277222156156154238172614232566738826332431921322715137424265334276442211212721459214634221151134412641432826634215779141144425332641274311422141113536117116361354737345321824348222212326354148667523841184315316275217523132241423222821153121222171744221191538631113383213421128121427124781313612662424314531151421243146675377321525243556326474931511634543226311612462141449536341188165815352133275328344775216121211544911783523141735714124215222333544765134266278581126422216465723141351635235111232133193221124129185163485212441338224311646212831345477624841432362331368736613145663113942339564153344711812331711726676577493347347136148877112113411472357762721532465525432511132463322325353316573316141425851672196251983155254717482852544682123113531151551334722532426432145217394111418412648754388813314334137164331465275644296341746141163332633264431545214316437242141612675221376169447744249526572558431184151171122412164312135665475166162367116122153712443135157224111333543148471151543211111264531463737685542152252442451266248626651734324521141856625644755776271641711528237437221152452157713833241511745713343522372288721266859153321585637218173241415254311182246321345232442331512813344256133152151433457553533215734359123411549123325523242531474135365212242714271517241145382365364125452211442221217547365431146466472135512171673141312245311535243423217524841356545445415318833131543514466381112567481233513323322936728663721161145273237212113822883948515194572182315124774661813121637216412121158774114364931264244587741912241375545614435119521441974224151123323357281461436129622711374152643734523255226423451139213253514356261111516521473263834214216425441636413252484833217522411712334127672312215942312225415132749161552213431381757121128112424822121233192141175344613271645714255478526255613471216645748963142156513323413325257111322114221526222273295125866352583231869642718611521741148822881711147772222665223723343113114575331983417342294353563822166893122352683142261347514221114765325323161344743856266436616251362454781232476126325313423172313713153134426442732232267566114412461533633324339147472283125373841514712533471671472451233242143135523631822229823133216341263151583182771456224137422767813311386453117487871112355513846552356424324317165635125351123621423132452322252225776431141812454233968375831332985362531793156811216134855221651427134511256612223844712346371531343529527172647513141842652132918234411236123238182641287813731241545164111355272288723646875711751117713264431721315641325131342254523761359473523422847322577641845112222374911341334215241141231572314254532141637253265655356435735573461144826886317425235967251463124737621211642113514372121261544443115434825131364516542411323532622151723662557213531953232312169894351441365276553285313163141231253252191571158133722165441828811351162115842431333778211316333345514591644152123291612352224162144228313454342323355542455218796862262654212564252386133421416611131148643366142271214111113441536355513135592225421341152361152223471424354619154418143437754173412232551716364425223631442115162127524295874717411546134735325316962251524432315125145322275316114122256482423418813731114524773137233351712833522114472924913121595114533442722162313313233491413155221315238122276413125151352672776351913257125512321672348326523342256118334333134232461133334236312552242143831238752483241444836772111311325221776461366123543763524143228474426482535311743546112512715315612144253781531374562423161414312215522294141152135764513134912142463442562312435543784454354244334622445118513257747724333232436322921314252557917361164242436371644332463163552465217141439133357325113725261947352514764218741313754272822434154863332122615343341164115452315113713343247127176267123163745183223185321444421142425532222367648228126269165592244212381292233424313425112122313375327553112224112246421141115344965131593229142489123647333153772152137151454825233531343242714244914212377864833512116823134643873914567314225258182777534411513632461611435374219251221314715113252624213491652245284153252271314125134412533155351367514672264111297513251548371247115154884487291136764122138173645116144213864131312617112414458143621526141281753127534513581426448255823873341211131513623275116761547263531537432262421657242377191314222322631213215163513124362534464132153611866453311241419188265861274265456222232512425142229822377421321621215229246826852143141152346116346422228192232282522227268448332864132442353822281514174613211271245192323652435114566532743422481858823336152527922354535632723215713373417451561174131131728631284854848252383432453426431341776356142713118393259371123611411134126562811254715732154231263337522733165211353523365157382315444363123856756481164213491744883826221652232313365222662937645614116141117925122522115442332377221313231217731126415282141194666253614943441215652641844412351512232654522165226573264424444122232832112173261319273734234132351426418852571816336133584534934259222143472253126178242845144347132153113612724241222297241275242724417121833213223453542425321263246325231645365436552337141535551444114339963531653431376577668654272243244711835141111419111536271311312417134625524116342734324291161521342113216451135241341577933433642149133523798413133817185626512234581314342312431457151833142543625252411115467512752269339432434148523424146945179715124223334233911124156416211944452824766634351171234685225441527236235544664621393632755325713283112131615116757961669136155524731115536251725815143931133635633249123131252524431217611512912524235371145161631335215275646112111758325233653844533311512433554455454981414148313213432224833922431222483297111341564411223582631168652314631121928241351141625355214437536545335115452431821449273232633311567411185714726824251731615217152115543482322591863614853233752142644412145791524726271547355631252258423341887864257525223311112496524661915364863621753576349328127535256116934263413391494141664344311232717424523432745143224112551432314411444324221245713352641562411647141112281257611431465225124715128294143243423232456317658252143111575452312431162613262631196841624482233414152672213361447717371823614143283657853163411252112142211151716152511551528343343358143111585457441221563314244276211533671317213628241622631221733394855243466252635274374354515425272235343114565165212434376252724679263316468621626228134423246454135213322671768143523684212141315535841551344996331426562167274422131547723261241215812215854345332354724114511432128413242331731325511312338322131314786632657762119324536241465312471484342325814513832112447221331714732124433441423296562116723175635461372563424424314311411272174116365331441243114484726621114114523136223445666384466973462362664611227133763235514111511272188123655451315362421358286314262651621524421761853131512253128122321121763114331434251236632728213123614421983432712134138142152213286176422213331518648336212345321234292215113564362366372121442715665213611142113123134641233233116127141159424351831175127515133423511171143118461116742512522121334738223532312523276843112323215263266112812211153253934427311481535333975145131793231332235334714112644614245223254214542555842332354755434414417761871344343212951573116334131626534111226459594635525118128825456297243422223382112553439167812211135262213124226466146122113216312313281197223165626143543142536538412221581512121144312134264179356437681226897242222392611113624143481896185641217649587625431711333323113351277144223329411653832261181231311218161343153529125132333816552122443642241538624963411161142362755946461497171353588337195726534462133465212351357663421513513527327218233127842312471758447376625474716427421424314219263212773286511247111232121526711167112331593214441864613446713278329211272532114331544137761457643655391421229156152451275649942963332113116742267268263528611263616465446674175246272336794141111332358252951735175248351135641413283855741653993432612947324271264154122141524547111223633169274141244285524511554514381125111136713773572115579361172121111621823137326615351732443111623245148127354571349531242562148163131717326423262112527257736951111113145212322127372175646255354433433256142323612122481111152336625411456483313737322854523839437861514428322211167215623547251745181526326432121233341797213115162732228644311632935115187223556158361824121312443875191313616414314513834443622832925324537726233332292574518362411681221214129325576116164616688173993821146221112182276611921172115124152514842434378714681431312126141438135345255632544312368241736145147364327171612334211245811471332726142252235541375123326317621214212465324987436721226669131122166181621535112611148122424759231142481432712488725353511972132176811142451621365432212135626351262812811626718181234815518655182141481395212637138117681865444265151375411132761291535212712563592636535332423116634731213374317417263311492123111426241263423153288744215675355168475334225429552771539631218643232259457126314572311672116324121148867444255332386112112265332184124417172313311457545243236275353338492964636415121341255726724113528178119436311412112222187241721125111333123361213234824721127132621621375284237537322923171463161531151132484264142217448832411621591622241414155146757912121546315113231221672222562641271421462141845323121733621141413168236621334633764684323953569241651145763265341614271126621757234353415263188184767118864142634462111712862721364321521654154262673184126514131384422736682443151834152212543574416443433324423942414423323222852232431135663314323343651113141636365479715254252341222236221476331122168981393475132332537222721311972474387271232156137326129298342455641648185223824267612125874721612132456125124342118161151895511215556112662566165735633292217511653226123286814326177236434263112421742382515423224184164251212595352594113131375356454332128123427482411231231361724192314196967359231335333144418827531316118756214667131473254122946113216251162227831822324376451461421659691265553932691132463371352543341446641536321712651223171218945199115762755283121413124211232125578148333722434551794551412151228224267272223215414766476824542145246234126644112244355364131412512434141453214146182243243328177212311765337432476176617554423178147134323364467533265463252432573386117322532225623272334243522325294457318632632637459224741322264312945187431716234236288195512521233514531551621533141648324443756724563221131211621434215512127213161726412163244715135342432643166522235352531644534436271325449577732211113237434757143313332211328112453612546542851432813154133142612125761211221225142743853113352124284117122187121165144893125766348521561175517241144237712128311926112535591715361221257212113121235553311744622731317612264432124256217531274635111271243254253326661478936261257551615322251149218332514626721473184221521613172163254232814423381317632374584332443478941324926238314111122685236522258163384235221911322212226531232528162735216655552321683232524296134566217316366545261242332131137546653541341227381357713232521622494818811512323356119484521813264772542222232381918132881134635421232234122325394846126323875832379123421535121252413115311534245732411431213334111842343241566122111223283734645113835551158319661851161361142923254313612612274511151476171854323535152317461238544312212345124456315194185272134821433434247145562358414412514593643325321174321233471122132552133412171469637215281763411754225262747112785134552416162342332175138352429212157592166162431254818812184213123665251336221733121243327531165566521343336566711256515656351624669162419114564618114623851142225215993195469332835536332117753259185751558976644471539811221341884312146976162512351133122531241222454313542521422156921341773246351731438221351351284281212562123298124245146337626456124431461458123451262253141257424525252121412638241196822813117657223311332441455261469877225346776523133221646151557711313627371863242335435125345925638353841822234132934423372541415127137886682521874155121175866844252512327217251211568655131236521525514333335117533434271546239222461227735124117462244153651134161261635633416132557111355452641552628213497434322531464457342443212446116822224733121135378316299132812334385232313348427113424116239357211253156333315352143351472763827865453644112112731545811557462113321381513627442127226215313253321213134511415262512461117478471131366332371411342725541121443913121313515152934152794728711135311179454116125392555242415622212124444457514625932341945132123411351424533624136537421578434346829344482222165626124834981511433683315966114191114429372431561125411912637513714846346213216283621244166721711373249587541963161153731615651754741274533111321776312148532317593551237921133341254611214114316911432155622731526219165336241771264327233516935742115863338153511731131563362411664384653538342591222335636151242131154142353594414283124134132558763311143733921543567466134413376325161544365538165684162543662671721123745524227252115235153334313154231369283856428321713114122187713213138161222117768175135487134255745486427363531573426341434317852467341471346286345244263521312261323117342143263585292482511343611216786122491976342631315884241116345255513621294246853766722371316254481541142313564654162238471513181154321171241611215132343445448461423135415131435175331427236244715454138286381536237457713748522823321126642361678416441389256114417352134325812821265315476532114858142233121525551121113292616735933117711921252141628684117131236545421513834556132332162162211861163432381334533974431211462111752422321425117721162687413227545475512273626231321833721951431345687374922214847832344511354647437136626143361361759247741814331162554815347251372758571213572246858614114529715577324322414117348311313713778173451122321676212262711222513437684224471322348742741157174219945526535324315248823411233366254265478338758351243752422461212422416783727726411344552419262133151612472651137287311486233882438432461461391188553815122722543121577221614366375923252321615131253246764125535121142645533937421153311448825342133341124213493125713623211253941971211951358521367816321113114695417238321126243421388725681621478632165888672215231136374378581166332111336191163443162714131412341321474413331455116254175271178113674579131333531365755634244842762811613113876313527813416232115329241134431233624351213167338154624255314766161261312615141616373531752213757244415443724161822221321527721534252142115112211741351831634241542174831223321354323434644623353715462223334147498331521127255312471425843511378332721352353622584323137316212841872222643665352345143294262261422745256548171871232433184381123215366413352745354323413155163576443165524622621385352413651686825266171718223116125622666646472826745511214154766228576388411542622852551112244219132153457514311111252336439432576525557676232361112268842623893476711112464211468459513675872222429266245261633132141356111173153911532174459715519221319521252513552338133881248671526911521155243324461523124383122375867332333324521284164562121191321178475556224637128234184821716272584231576194423325975232374272532313436372431113272923217437453651131163477122535421557213245411138528462522213222734235513133728986154317954539832121469311611761578142141124836311758321211141125951144612431343141336177452363762433334439715615121133753281433353311233155533515541323211414531615144323322177383414653123612253288423871855644676221156245437181534325117455541253154364134812451162221525272377562383124311616354141523322353281231184554751122132563654815151275371531595828233232151458551541341437742133223138313823743263543218791316751149247154254143256813287211612226145316585228262864235221144323365234343113356128843423342231843155325258222332622775744121254252123472763133454224655135142641318431424748124724411217431243523321225133234646682431324114155894583151252472832764133127415532781364418647555441329255411717512159313274911613424388462351672178475483553333384521136432172365565217212462124527753282274267214646214482853425611435514242511342334812718815811945614534564542114123211243218112142126436743242525365312587137422612141341247696583412413594653461854342216316516537235221367124243171581162121264645533492212517633362724424485675832433254964815444233321524313242632433541328218241768127511674671168564952573324645726227429213887343426215572334474253426313737798612131273412598553915234241142512521154755694671714221326482672351422422362282661736842323446361441138346112212721484132415525683344221124513613172763433232137316429865911246128174221323111433267243561128141146157424167213727426827226315213614287314137322174611176826336311119625233724751232215123475456631776841744581657322472595253136714121322251115363244138682975345735264142311136175125274115862614362511489731475355512831113625282386322652113912231564526214786415111154887434523677172144654552611413133625562662332215681524342191651123836623371473112511212222111281223157724385735224122334112631819422224392252516166874416256259623123243165143572624124633241411421221113312838122521426121248749454333252411265251633465264444232143128571454335521318323337144482171682149652166122517162622851125124219141182253715131224112113621711267842233138761439437141827125163722121622212237367258217671356181462178753811224381162824753327949173174225431152515116544272353112123275252416121612333156851452146745112338181112159358143344496111556367762438173626618117293512162155487251232133423917743816657746413126815317623861342222524212119134756215163326723594415611344142473112715111114145382412418175377665613313388637262433428642525314374441115861452451746762335327424324374341562291237163233773113233117143128573864387216737454116224433311224843821819146771332114436592427513396635581252822162443121226343378932557174353716331323656118354424331557421522741433651222535131313553531762537742371294763423331173155321253534127535611425921555261122691246568195313266357948466113441315571626174337219311436521332235131333381311622134745152174311275352341334122341263134931521555231163273512335314242321151418237242382265733131827152642173236346148171643131337511525143221553224326336311121237244621232116469834338382923454129782242185244222384413135516627177422373126111611826352198132517913121523361821321336611173672423554461241333152152292427515522318151321369122276254219454237512318482485162972759461615363444381443855571736212342115411331662613175545471643545717121635251112355185353632151133159159315827521724711521252632165544544375527142133873364363793276836825437433246475132814624621772722335232112117663141351122948926532134544161127353545221531241643571211211163341272261227526147555344211595118114223155333714343457166635355514325192365435454323612231322551525122737675471255634171533662547551624152474335259362146476463153747636273323668323664714183231237614563661736862352222122453585522712532212724121377422314462331125211213687551542776817321443714312794234177354312614261111147411363227323926143521435111711565734114422313412772451253247251156182332554141481738526665115152261893153156621462147698431262512343335617154536563538251526618442813847111655431351894683757285241116161213331414423334318435363134768513536224115361524642221759181418568124323354873121431733249711344172113145131266335671142926335133711447714184453115624291363221261433277948316144761618835221361535413962156546513214254166261249241355136158325142683315111114245867468327382374377222121124623373331183598415727912231314561927156456336637422431251163527261812623433381211334812431124124981543335284123468423244231813515833152155933852421217426643157115443256529621544162527426332433692412216746713932353882411116311163173334244342346414153526842153146448811184123269343132176142352142765443224415132115573714623123662151258531427124683332573846932554311314946511445225726124362168934354832422656227134434618111223762351112122561292334352297152214728255565122142332644132744354516654321218275242113353313634521431235523713777112511517212151523471323124625132641132132452143141316612128566552981871648893292341121666924224558146232545486451352933735362425146168256322734387124237843345817445834477326366531244313423111344571245169772867746533531412364613157233224631154512229272332585513163447422224811916131453645615514341722655236352915527131123424548355371281112871254361992333134473432243174341332731413616466437925113349257415312383572922422125152111268138574166842646131462591322763511821943547536854793251363126235164152154371135243161134335213419243253244142323461459527112581551644162193613344214853522154114733135635831214118384533224634332127815961662341313354245327154235668626383141615714634112225444232637725883211521711553672311157144223636574715165113114272335167961664134344233115222132134377241491851514132512312431565327115563252473232516466134674236195245147331133765356143322124234213918151653263222312235123345141469233121463213117456132433131542542937661731155122572884263995113311232353326415666222221152141313414277387433225264337111148242348128172973425651653262533167442451361516327171613123477225421841857471216523133362264233433721421217315211262534113123833493541111194521468237211346411622664181181942216332114635666124232146626918441282287271728667213516312133144222623525143241337533812243214434531453115113113114266335143451135178153335356399353613224224351313251513245344276565748424387532664253514812428223135212217118311952122651723332157546451251615134149162137111617322227234323427161713162512256577667225836132744459142593525561325323367314431454731417659969156257442241592536651689413152322396116243227424232113333631712233129527142137265812422559665238222125725166244356544152132115572463553673615351191924455471371226547124224613283421482314312337225453244631322112343148144124285111476374651328621796678512922323651511232232613321427182212264575123222811131551345113561562112512221335235647168524311511556343513351423435835414111665237851371822456622972378413454282961535115223464543578244354517644375446433231245154111824664281267318235525911852742892241619462324431232162361714141248652832414236427916227241453244222431276434135425321512145433417165258652125114148212325772522243631338242512121545615315583712586213435233214333266132463221444685766162914915332495233676363575135561352319526452344222354222439277331212171956332427325641963644711356923244223541972723512244867171638225334331253162411119184774622145823614413721212194612114442744314126666136256344482391133529226112412356543622329141543724427671138112833221173131313182225523877224713621226812522131333355711117373244347371594244313287111422234447342122651222442233231813133151123545423156153525438774642863221553325953112522254235266141776212341425425232233616325442489536143556414293394472253449761427141111114821356175413724362357551311545422482323651144823361697411472274431164165643541544348566332652233123522861123923533241155226212522313181576617524151213371725814522415546663872542621251714353421464273345125166377443671233412115924151744572427498744251274228725654375124544581811972189333111619645241251691651337323321937267144166133752423272152649174341575251933441225642713674145832242122482223164448935466454351121625347314282122775843254782316551814136151531871346355724712465341413352331941141521415371381236383652132222377273792113122281525564931182756123611624136482893234513412456983552733432121126857166123164223896111439272316334136142412313421168321285373273521321125341246255211441562722251412476161513541732133289331724321162876425147275287634238422484754814241121732347842512651133264516416681468153322314215628114457712233413742216425445239111112987662134157287221332251222723572435519313322127714819521323521141524113643212531372532285124577172612212322523132293811123581344273517126567764424172113461632226511734635454427167631352722171311235132177417864555821138352131852131312716625322312443432715274921325224852293614834543586156761282553431623121198746314642522356718511823963443522314142361633232685963735536464913727472581213825831533413636435153168141111421653425553246373472568134234211421434413636143128314733541416824431723424113341214352136343355274145524121644412484441413143433324212125272182287226169229359532351452241119425334427436765443572747572349418141611163435531121534266263313314133342273634324711412434546667142376683357225731138322342195844583451453251176253636241742162578557353537858226264543422692311574544132212112151921161111221621952652443615322192134628444341221315872511262331357355357679613342612511524225254316621328297215435232462613231343324223313122611276234314619678227411423162435613319112232463216623314722564224711532335144247525636514155636272552334931911322331259435348247734428231936321918325198534111372737356483149312212911281653696143125181532111214133771384517117413324261131314157832113453733142325232512631377122416442424215142655985574512474813641464251214394371452127642351217462332644351362129351313824421331344126351226133375341583418327735136931618187342585141153116146139554366552172131514735522313232834443162623737343147155251284672952211165727267113924443972683191315415233496192257764511725661474611531722551133132358151132658222465411123113255451126643315657842827262312141831457342415137561531659152521512263717411771682725133436311127169412751233336834234371794517141622359123625275343763517615626215542211248776731244729395846331913173126361611512418414533666621796618171337563753188436421213673231464815981146124762563245531126462231444643385221126941117431331615863255586833134115435672555923611619223436261325346235355625758325252682146711233542453691326438681572134247881216351643144252644244612316513523243612452761542357563562387325718511611643335859125154365562314385144242373131225731141373242253241214172924444516152516113981227321314258879174112425127121623424717714947658121122247635113966212424379131948161121163787111341136122324443441346279313474487162131365715313152172394925811624727334622996682218136438535824223862213362525859211593346243161355416544621546318616211121856514525364324564395175345294321143991496752432443422731254253912616531423248293315423194544422133725162323432571634589332428345242221122152438587621121522182141233422824623534323511343621623311233354122265711284454194412185222251444515241131115327434442614152116151417389233324221351583576222712333311221917927713222131263617129232331244552517217242214554623241147943123645147724422985415525232242818114751442133169436467265128955415443141143341122552733632573561163551325614143657523633435371512143133474751241542228276954824611527675668214112625223161531263216112425322232196833725212811117148626273551421356123174651814643124226493131731443572342776211792353941416312256252131166424731574355833517752272545211345761663736426113363131731635345571173674554823211744251317631445446832344142644135322621572518228635576153242171376246727122256321357444846455332226679251547312439217813481513982221818421375835122324421183364864685218724113311115122136185366163194312231738186562798941161544442146242415614756822392131871265216142222222127345616477143372531153574122234112115411332612532394532151817421837132234545238672428463717517711212476166461325955511921426665124522252451523442365428138639913926222311356456181215212245812281362155122352358227523552782211239512272121425223163532129371353124123946524512146431731684542223864631633263141534422525426114333744622154581711325734235433514151257573771822341411449274841641114151561123124343677152751311339593424317423124264245231153924224515264123124324213311451522854924272495247839512479725575442351322752561118454352116622522123136311858521214312432718671146825225314318921745158116152292418864517331623754141246976819219342323538712912414892399481241876615283116546238256521721213621441232822523233483832327642239227331727351243353221124744713725451514424331129755162962341512485472341134334142722188771722174134411971252216151516121535111174285412455173435285546152293212117428248512472722433315118312223465519981321553233135313114214154445624421263229571646322443211171228219585335326363129184345615751252532657224542443352329271755752426316568564141234741218652153172313213354512181337232296227211511554211412226561734341711226282665551131632181646875357428611372162554232811311621978243344175122141431213743135341633143136422552179443156134212225212511832846331325753164315473224113124637161331123462355346547537741263267155216645526121132255316321675523324162377126511417641427213347161731153152424734443532123337341251145534325231648764122734346343146536455716131111321281231222562143911747351686631222253444421423356933526376643327311257515633286187221252461352531561981388461143121162644843576455387268326332313222153432622411412212722284128684294362252323216156135851741251486493143272664366552229673817411212145932625416933235283229574375532877751213121931112642331722275741135766284375624321244618241431237164561222761912121423415723272352221424161614577354372555235616162313146224114351315115176192515485411144529154154272176651241385671644332436236221413515361231321177117121213242143121243245533431212116216847533647261129316726129815241191834434615453152162547363141711151511549216145245386122121472442572181154553387755241451777153341113628364324333125162145158424627316264254232123336921816592413526524658434566416136411155224426425146127613176162322592222361221514427223428766313951318446694223242721712164531421235652951213119624434514124252621356173119111452441127124315379234337722532251531515231542569134451311272517243862643438565262745234323258124548412946618426544541259525561353528629123273514121356242152328335517121354345515835571533422691413231226233421452913726414342511524776444232125154311416217215111124251295344871421235135223145213136386211363414241489142754675227118133437918441463321965113425551515345163228937235121173473165252166367661544132342531362343528512444152412761592161113535524677212743227267211142843222764315153642688154145147482617153114119112121445324476561121154542135224841324243113853982273741617738257862622656224247119421631514646224435441849255153253392772455452362328531765412121584336512534517317758945332668321651181816614356167434935933643461636541118124214615263245521249164435281111156811242145261711512642381559171521125351311489262358313121556342416314245643121412524236431657527114593371612265163217215116311364114511815264115146251162824612141441111411321676831134874544112534414247552453153128151434265199316345752517252818631266276226312161224268859523222234133122417527412353814415118372315225512312841611215643217151774147115412867214953472521341533213148844515347527724346646362122334175114787643823438856615123452236322633421324231334122231135323112326772234344322112242349261242548935141444632113541328624357423322922513173553154644319311167166113244694362652541683511116233139431434414154521191187671321374613434143311473272536251871373255522532344445648915141129422721346126612221542455182812455121626311277313621251124653384226326181281231651362123326142331521114436566228444312227351447229265113822116778172341759414161143143554413143324192714126611538212512625215334113414413393415431172574623852714443262824338371148737672524121812332414852514197791238233627125415111331323264113911771223544421444991454421242352642164131222534143151413456178512823434823522264174289412241422634223165534135122484134351426446576251261331133543322334217192425437671244633363627342521363461134415158175766226671215352814465531114427135222135786211455656868118719731253231127214643252923512714256465233346763258134451614413115232131242764387122163112861911541152421336125614122472113613467843836214352276743224444226416667143664453542452624714152274178176337322256311123414861323524222516451583726478766655187454435234237563142542213952513741132315672614724414549354925151156427713373118276473212438384744114659833342314143336456262426564572576423132324212219412814411252121657831151535163482425513463123633832257244541441334256328863557233462655111188543248386253287123214324826219227535656528112332531461184512361222834621923311846423681311431454213213221212234314635213214133237254714156163122463953312421194525445261342325862261315324627513331455527549592352312464373316511224737643227754253541141242312156624143111531732462115187123526431531411642293385156342524251836563275643412522212554112247337231449315358214224423263325567328352351255217245739582151414361413422752439616475151151273444222537327446721448282257352742331913243452514511148261684354275545151814152775728651856332437331231316745313976533141637122513133453672612155143428133362375221275252179213282212321485821236335527285317112142416235359734231644383622377373321385831212242143612162195135364713116513162311421738343861775581214212223416115712311424131195195554355515273254514482212841392326857731141421115422185442474112215156447311417436146137465352223643113113328243614313322428555533213571132623356422355465952339268781656313213114534183111119366532435158416822851964313652542259633365324312553555924225521544145273162486247262235638243193231542555415224133648152135145211723416653924756714135164832751246512255381141112573511123712271374572654451821436364153246112434843613115235412132339117824554275623635312433383364683341571273553725416235543545442123232522842612245117155338743473125122611386622731132471794516718464255341446317531681236524321164223973135464233512465525354634357131512521363238412311626355832223211985135511556112391487644412613533561671643354552813616411987611833635712334224777621532351992432223225665461515341219522482354221698441136242662143249143666312738416226512664125125534552714361122141414651332396341636615143312212358435279155572827253424414249211321341283142311232112212418825233371112831522113131439422221537922342113364366312215383343731952172222125243722111257435364727637211621195431839248216287453952462652754492243215223212625333142653273275331251236616515431139612313252321328741179521962114595665121541143432112441118732421716132312119242228246551372111255359884225227815224432325632665652212122143542146733126735185242611214365434171211347754414812344341845367238111592373634312451215551655611443552311455273347183252312231129573633122166966253143239284172624231775346711372377123725131872455373273116712372261136921234677453512586611467226643132814533656115143337131211422327728576454627144771327646832465112454317134873625633331515322931131673772376223415328152394129792624513513218539156322511431621817192166313612347344217221475166936293385211241743144485661733452456113274112154511914926543321764222261212212511422432125715876158535272223514156223552232235326251367157763537641563774442212121541751351263321292511386152355441252524134152411252291212328257321535512241157611757824121227533353555226356353122511557266217477711533461112411711534511167165512273183274176442221336383228724326242215573252429791563115113253746357174332421139467145341833213378256425183173953324222665226632112537125132237733271677743311591222445731321342116576131243336667311133622923226134272316217265433143244154116655134347311562265235312515421365715114281151343225456531967141163618142712386533423434524314443134234121115116355222155445131334586121286475236311312616651134755615185161313212358266362585181512218137126465459314173333135183313212412125552634181173332177713131939214225827337437476955215851517421641131622412322144222461212655437736613115161482353424385557661256535865342641131441334692656717133921183133313135786644223634144913718961412452273122221353646625857651552255544112161214222211342181271444251897256244221224336134365114197231213515223345772117615238144331511542313443433325444627556334823548446746464555334262364245431331714483377443733571252114444622132122412686363228445225168345911632942445148458393116168145654615153152128333851442512647521667315317233372646824723981132622235435251267215161324194515221633386151217111341368226533114162164826155185694792111632711511442143188485211511621523524613172361185721832153213356761358372726723314617341322225842512858422143746239532525113162286447165351594935629424534142133451733463316324122124546677711263164453495721232158231231932545542219522532812462411452867371212422866247645131651383615631361652532817318341532252213465443637373122131312764264311532677235132218551341116532412347311513412223582415975158176335124462539431351464742414933257452621153152422292492525632456322366446272311754371566135152217752233113252164532857124614445115223313211267633411211337386766117739162575362525435788258123419211389191722277754612332185373615161518421672534142431437313621134835139658112314232744131681462171546327538641251337771171548245173541222331111196467513326464861228246274212156826213514371841328274814817575456154144131523231124127735311151391721132961138425411228114213123162134161441343562187377536136722128256121151351343364314611431246427653142234616123174133588477441251262117638258436642312737212192493719647472712626321253361114161444277151512633216662234131515414215113351113381539153413152315178113171122324144141116613263315218432352136453525136319319856714522633123157371371453571367112423853353146187163659921131274212423194363954243451544499513654344144426355445464855342134513565221124113312425232451468438554412538338311396232287174535213225175485212144241653334626275515565252411146846321442182644412322681255355111626312281211313246416125255631423333836151224921432234322345312426123181838375161213316544143461421332163371627646236113113521571528327254224162211319255151212364361675132551163367193117934214824425485811283146164223243112116652712413562523315343132413144511893321124436314213853512541121544642892276121445313322573233351267154523611915286232482697352182265841532232114314235133412978185626642415621452232162264353211225592572413624431129867314746443331722212641421141836442323335537166422444516572747813665131358961471942711215212114825124513547311666412832111148261353285144321247145734831343824827411947557631281323551612323313513864156127361222476925922222872562339445113322446364133145313543556427261434922361322652185124222712915112118547658167747614113167398576646155452212213123421412122138333141551343666533941165244142528231421814351145711165213344167616449127323728423386383288134356424436777422239269453725646524114329185117711445516431262146454723213127453516473554834314511652561351422733146262271586163461243211825276115314235443615236628862236536331229744716511731413343631244344623943834271441844151416213242366335362131313539333272163393541171813667153411732635629136115565565796155225524161111486423464211635271371153165614754611276621735114382212165641444567862191342712275516511728224194767666362636232513131253231147151383243562721124421153154725517661834755525443115374216519556112485398965233341173216211374332531153581124393423626237342473241314273231311437383168113123213438815542414157285241457853113367552525251224365724327473941614122116314672131261522714757436252242632673861216638547487483353711331453924341312147864463321263215443361121632425466512233161455143132247182272145139852432714641421434324131291783626251511861211521353271484314332291633725214531177935211531412411313134443315875622444253215141446431114161421816532826232234145185126454835231624124217352346215842546292718324213273627513214126216125433164331125388427649341347544124354644353261253429454313151425291511548221144223569381152365263316124423264162131421513444461122154499123423429411617317322721621516613693285158163223116955112642572171314512682524353115684644193638912454162211636571311211564751136447582234176868256523215121133593211163365411534723431236817612418855445585551382752283495143383122252221514132342134215415466355217656635713824131321241163674241543114246147321952369147662315442843738633167271612144634313711188761322111274711344214673431233235831542326211118138132372231312377458524936332368423235352222171366291125225256547322574991967543126811115612132235113731138421153753564132264221149514343815697139321737645267586226358273111831323772122812198287552256367312185456158154212365513433642225616432181372218211465941345742413917132223194553325293882334211844122411423557631675142573665113468936262156123371395352464573861631147436512131354453145671336213949714344834414252533981321685342232461246644263135533673748475213911847416214613584113243314133144255436252183144325111366352355515481142111344174285644121756925344612132316173321513741333793332626458234462112211335612328416423824234436551275356151411211446132761772122823121534332173245184835144321231336216518125426811161211225425733337732155632674685431155465416622164449242171535611572237112443721211311338521733464121134155858172668398443232395232837474281561217131435153322662332323149637418116135372416145543421712313346195371435522342221151442231413343222247253944563372235233957533152311661822353361611126326642831236442712475131516911325734337524511142364123211122313554617249344312438441431112542137744563533823515223242145233141551125553121216215571427174113851414525259717934351633622243365452434531143151911251442515535234323816242112236241341623218272254211761113643524254211275355751277337171361536353511133988256851461443273741585651442344556323147321516331221332124211212387323314172326962613521531852371286461935618227434813752183112352513173348282454256473631282246134181815315534371619354223222627435331314158131668151313751411274811424713455132622543134112416237435211375142469116252335466126154554515515495515636461174421548631656621534617226197462276132652138151162516774254685431161633942114324311231824839151521234151122338373431222318342228624922172241165466864213526424943415521775554514863445726262244623658621745366211273582397775125651526323146231334112123154521644167525221313242222312217488422315341861361133115442314425912441563431381115244355314136122251215624747131413622234281382555117843411211427671123711631135427112274244411243535523433781433753512623274543257312313476844862659242263357681625232213316494453332262118248661248523653311331943324248621126211223619358272861157633231861443322923161922111216711174134184535411261435433119122311572812461812261953284412743456491114121487238165542327113126413664326115321242831226223256413423373425423433512121152428917111185487534153356451113213485463933128724375213132414548232123141649994283121433443691714478142773111621314323863384231354112131487635248174633414513724534224373942171343287541432651848114731326626218478443924222456234322411647831639214655415421171215252113515512351155676988642121522725241681341315413335115423272341844575612513115324914113231528821342234333272771456933126731318183141322944112311581315251211554336544292351573822318154156143213246683182262416632452345564451656363317188581436323157512422831596232413161524111543318212116251352332365661295424353838514643228474333216221136154572325341621436354466429143751643521624517564626169413765414231313414757547445512122137313124521142332524125761354148314751711635524284513817134163716129516347533141322652212631165473461146253275534135317296364635374435422391224615321521231183117633144753821861351141325342174943893564221163641334224131435675344433331421531168154291647623116221118462355222221621312533941613531112324116111161511216431365414362886323262481365213193215521641831621326174546231835516458122812261151253721532234313111146114627274213862521689338131845539451722214551553373428441355145161323216347245624518142491221356314447336212228213683119141546216228432486664123214175513434116512741763311388863225583514716457352833252215734226441434322943144433341615134641856666131172133585323462511837415853711613224221233334451214647286244546124142375243473112484248539543435647212274342336312832322159715241412427494232556438736561262522112114711173827893194472946342648215315311141171783123112212322638675833212611128841386315864563113115615251193884621563513414226836612147455541646114554722765282241261721814723341716655417151113152682115276821512317112641664211574158514634495212322231147223376752122236282527923128556656681113263133252367231422611154128171195411332251611172954216873333425455314614532253766651721221524181425646284432354511711414211255158727642451311162145671623462644121832215328145151317241124152112532772475311333538252663441485612312448757647445272454385838269172323212752713642453433571351654444516272111245413345317326162511924555662135844532631438411363162548321477152365679514135845348173614112213814312833124324533356535326612466165145312761814543122723863533262234673185134221552231324658336312272145631352481427518413181164581152761563471646258515111433432313864452731522112532285144211646316351786321264421514233351112462543267316411121365222242215856921176212156828152522213221137152221248632442151283227123635328349221122121742154131248621168233212357122547326156647231423654941135815858311133733362323139265244442245344211734465173136322334826112487385264243244445263542233161962757754523352252644624431663812134542826144432512162452345211656551719644942557834759542352439511695143363219513211349341343641423451136446755238524122214522363512332452445628545273134656691144733523111523226627526513236114368348321842325253542611522351323472368433264266636423445355382812322151313326145185332459138528428149216923146632754533311713344841312766624625651411455714341486455631568335723197152732654265223855715931411136112226753324613222211411413157242871715614138657132845313116524645145264231657573344124657526141132363242224616835322326174521313348124235173193436417188115232913143924162778232364846347142479421174161174974227647676343836264222224431235583266285592144271342112455111911166432414254332532332928457184163728161326727443633211451344691235376921982155415662224173512513336151137315922872865325374487423343124412217282164651345561837111766332816242334933412633534725182487372135512335719146231433684535133174235221114531363232732613336374833438437765237375463156722533354337114193214735382221442115421431545426122413742114739712236312232194465232252331121739341523562775612232324436521443132368624633714223753932563516866152233736213662631151164122614563816113226521485266165132413236172637466215628473177423315561835792482411134113272121115753123128511214143132223351334124214442335235154416431321411441233723512215442531511413551751745112146661132325661134832541163113132324612334541249213322252322566945128512328116141243327527517421811271232249746356141111568433171322416763541794158411664356452533311654141558938313383677315378723122122655218223911432664651237276518534843724232544131625755754124212229552427345422153139842642913551475125651431595141156243211373536352125154244822424462271346233244334285113616361628973437172431534313469739972364154873131124153177147151233366422171617224658174643458326172485262271514224194345238291141342321623559215129526111556111346522322276224115141148364717542133819484173163244728153911713935261411421422353532622173162821452211761512561657341431261317465522832545655126541497736621451662431424711347472717156118214652111126568324163424628821654545634116845341527515212272125266212684245224185725123356721473226333178661134533321145266133421451735737345144124346442132415753346214281715471239622453537481545127453265373114743346542577218312544326333249576161393564121174946277219324117156152145434134286668717111374434323849219923213711366119339416128316341154422518723183323911611312281395124246845961463112421326728431531913249873547212241223421761441318362513416811325224285855154233737283574824944962217522282559231612241225897522193317333518422756351877724552145441833813418443116373244393436662183444914843462313862195231196873327122122117913642513124227331651314447212233883444262241461368427672131463153137247232617212852273131122166263725253662222342262362461243352966254512534228551271354112364541231332116242566357612857312823257242253251346743313566941782712517787533412258824261226326231262631473417455199243564732414541145284331243134621136242111121526323912643322352524434824344614832198282151341487512216524511283663333339156172163518167241619641574513112135532117613535994511271231177626314481113831451411154134171134242472224341568631122153292654615512315442579381161165312434817161152215621147361275533614916612154631153444133125383111214413661166241335653523421127895332239224543553434341952372462221165613253185123344491213552544171423546861814324131824175521331434311242213545738615279575816737137236831443314211424123251372273463812341151534211163372233226731466563113625849339433434112312252541764157186693514185725241545546488341215473213652264252114243584493133381272216215325141521235512114312431121224711121331294425146815315344916768332241338153432521244426212224234611766231362242425521433431251142123515551413181417221313457957626136327213143584851343514977663673315846141152451329246121283366613515753672119341811211392522632762421322451589754429111243656511715111115475212219211224433822235121232371315423114447134752145623234816345129394518218513392422795244574464119114638425418525164166432149225147521227522626342752252473152311367824374519634535215654617822214172521142113453254663366563231236676221451133887249125245213674444339331551634736345331233423213442131121172123313253134132434214512441157531331216243853217432624661162261613163151723332751272117121172233162128355731753235561452312366714325237451616241442431131975833443114211128155236736414753212311833149112711391642115613239573513326335411822367614423321186312331221138425112914563851857118981851625341266543163411561722133113223154471673451511722116232314362283111322541284311957232583422413146744351318223681755186368124238321197727125624224417235141482233311163241333235214232443371217615324644458731123333243533147724727142114851241841338617221274652411244362832213321382121348928272692335637223485143411412138551131263652613453843485722577873414728318621323248159122237546222458364542124263462573282118611653425231363193455316834411188469512821816631112341323716135227553234624511317351663138818234412616533232645436181442256374836182613656411411439514551714865529284956154422261622331111672322521354412748624221764158329124128343339239621543463555331635425515474151515632521125118243141715432933598522966353133135411223179733245565554156721326149257413574752815437123154514541291437266213137132424641581144613357496183348126216146533213761353851412463555392654534623253314866642337454242172115683264217664822153846325421231632547834522412717215213177723581144227652613347338834343152391437642368446327525211213345615377518512239152221574574123545236728626159511265722484648627255368351496125381447742634347143413342644267635213266131142961727822632455321982136231235243325421614367671486534312731553227235144452911315371436841721426223278469286424222935584433227665613652431257519461622425562424192512263321251646415566453624447431735533325671343372133213625248134248313123231293725422144912424151245747412623634213641332342151531123119536632333753234426533358332411821428415581431893811135112325211725711581334265557322362375125613634171145184312544133332742717341147345777521147683814143317178714214243214591124346368633166241556111221451271754271242915542737325856262745655131579193191614151121311623241132528682634453143871531121421413241835153572442433511185613348212615611224232318311771299161213127812263545414783512661621125525321123527544445415143122111325437315673227523271915415361114554664878643128444264938452822562324174658316423833284112125752834223456127446631845385514436332736432231494853633234378215361152559837187252444163333531915416663375174462125832233221455416112223832938251335773821154538432625248427124241255166233133324637573412143541711354364811255437531847321742651724655416689524645516123881544117831334232187733612524981392367933977447232223164114531474532831424414331151217216448432149752274623625673661733416351574131474363221541623133336261521313113717221142223413281892114235312536526433682273958527232639115856125148534224722917252492466325485433312224335621451223212752721431114253844355471116418634915551131343132128233512637282172153561851554685262117432366456173353533244391436621217151536428561345225533425221716436557146256257213354772175653195312122567561518413653345124227442576623832452421332254111361225561332233171723414137272711791584236163523135135411277316836753343426523919226474716245762125351123476122234245338168665732321213118124136123136255743312411257311174329336447381213931332545431173511852741134831234233248132526161221245211266212568234513252455152432744224822841211215212213215328644372251331165583732236233714354412246651243133121432588123343233244428266338344282744131611115687143227262383231134232421477556326426482591135173255231162425216485343161135627117365634556731123941442514142125842346245351227359222643164258313343626734331321624554211252166312122583463672653187242246892216722557222342428462219243262323223232222813415572273522214332116442525912532273431133433525262712467642241516562631211115121431314411117115145145215582114286624314112217134354219114663334242322116636571872236782921764332331857768242135832717641313119143443449632614524512136531214534242238713346247313441192511523581234921163355625121167455695665423626133515153535621513251325321821174521417251725727431435532112365113213815761356764911286541722625351464748342822125734546528234111617844762448425831114244433223493531142547857832713565245332255167324246133231321541276361544521371213142471242164153636432932454381421232142324237771813345216827791115415266632611141317235128138825959564165843123141272442211371852742641363557851115346613416458415566714644436383791354483177125212597331451425333241625225462323436146911234713123816962996512496269174552123417516423357443223138216311766342787413543354251272123531321434916531163222151348325211349351413156236149634261418243346152473678355341343147611724224632186583276434844354377765261211154522432111533169368364641512758981529611827148214286524762415531254235131213221374513167511121654544123494245845313718692383231525412145137262491227778471365634121222311114536324726432832535355341949521812633117256321332195143347154617215633694311117511372312657362211226626237316712211255163611651933337512424546365421612233242211621246142431452563151366143555668116326775385252312122444297157376241121225347545122662724222251311551351211235537962532452371312311711632141444118538521742473872743753461242648176812111434226121127414422122625615192315163335416758436255714624147195613612863552437624753315184373332212331832219445643563162616122443433172153244326412311612332944831632526215131422518826211412255364723313614373413574815122711226242142115651253383613851144123911276512114226521625136516175322251532557232322933355331113164145561951351343165432331675462527217592635682152334413371565557463551652468226441641165542324411128132333466274133931625324373413346421431435712518132933122672152215632215327487416447337131132323861241654346242533152141231244156222313624121534526155536219165216267411713267452111418121174827812415741251843952311148381312443181454445223553167632213521713832219456121146113451123724132364815421476225341584143332411814374214235493644144764432145821277532114245813551155513242453376192711232163623213664311135551655573145546735245268818715321213484422154219413664577463274211141243111255242171162146334224122222236553419566444223769352717111117841156428322136751341175122147112462684363413531163322141864844911122383364222424415134111236452114722213145213549241419367713425348113214918197133644243186427232133534463512111433714441816723266424215642543953226652432817896942225166235352222142218312123116751225451175173343324572423235124212386235452362621732664433537114111393223713193164122123254665128248152263652814166217132545614147338151442564432633353634212289371511534787713627141157532419973231921136226315743661268431576245541632225525245814294542535132122742826182171551442211111662135616411436211465142846512154634192142352377239212423422394156492623412174433733671115415164723114168393233824611222422544324647519153341114312647533313324431264123217642225685132317227131417285137576311283425544315931121298712823322342271113455461432473878391512241532444217113623711523411748694215258516311211853313861255625371713312675323242121113643393642843261217535241432182215194112811723454356169352395184346741823454134294311124643247472913631263841314229472151232494329345673773134323312635628421222553114151722973314333414586327181422422632122164886461146282355857233113717215478426172121111847711326476115528224132174161512631242142173341533411251214442485252158125425611293247133418115131241561714413125941511765342268413622213415134581481451644323312874424514212663157522323652512382252381365463171914452184743917445151545464283158334146234215319321631114132514126122552232536132432778726822232243735152313154566616212258733124144314235434942973243345534141236722365835491128263935314552613518933546444751165563863134323922241231511517213319652425326224421522123115513252316517621542514442351128154155556352652183114331357126315123656443527431212673213831191351126611421222146411272632673127312572151542213214112734394254119323311754355155681755642656358582251963361311859548417311261235141113216719264124525216112344441247146413564253211784972352457134183832461431541316551262323543311718249673141214242115511643428715364512131116131813224164141364647422961845959836123666154263864436723744335417523223633252574251342314696613525713165371745735631544313472745257132525493314223424256241474194446225241647121256144257575412453593762533363173132251718579152514582524143232223439131253328624311447641333271211513384257311313382142352711515253134441315138725213454253468351115185755362448724752221281715195676135151721113886181434132866137541152832612231526847128118264951344174715113114649146187263441359541726421281375333584783254714244433622147462542222121335222772415354131545612123286352215111116811444213157162326542171463544521144152362562134165843814341285731154331111342643265242433321878121313171528145855262246332234339261592342221351713311311413167222464823223854642151342283456263411615522411547731561441441543184282612783152434522253124214116474295721715652575427711424552724414612354611514471493231712532159564113113225313436352675267916463633541243147455126834312343325527226861844811514875622644216141311181323521232512925622112754157932327122432929223132221112261918126664332545211215722226314263598943354422154337454538423212173334341432143649342371125516911558337547331375349742854816544315581535356331314555522124311647214664222282631144165322371615456437651368354445221542115767524226523129143231126133725231333286232452624322211853628146273313455183842322223154112416511257912531259216823744584187791413341856413735133455212117487654132211515951221463753524421112313154418241395391534247675211273319638517273387675315323816561273281142123223573233326353733584574214113634242222682121234112741116233362371457124392232132513111452676156213284931436345647111134284532315563637613296252454718321292112464323481528815831532194717653381145317711642477512211263332375351466641112333312728344317423295543644414592264462872712122425411121733112412772816666255614234144443124351676113242147412711317827125114243312436431514664331861415436455521511485931674513114933821414187235622341781546437324162211644647253464516121577842554641323721152222612113315528173131471344151557177514396236345541225442231547361315814326138512312462118321236244572724117751272615774343777187325238453344641141463323421742134145338312733252232233372734354312448161243241531116395893264112317131513425511444867124112444712228351571342223173157751339842762121275115111633281624241335232985124225733891473564522236356135633123111413632681833231116235711225424852123461332374182361331325782818281431259331813181736322553628153157813313253283838821817651615254413711523122269328956141152431534525326114322711439131532355435442762122337526246721112752146332721241421138344452953693584132422128526421315314168235717221181224331522421333562141224631355457323224246711151353239156743331154642574627513362617855226324341464216643261242412511364672434142265116616652156134611312327574437823414113633242443651272622532675233545312231756434515162234114721561343435122336718421427441641317212113443485183122173264812211442254326486612636523175145161322661121236359214621225613474263221431263122511326422161962532145364344226253124144114446633114646336142632423253653671274446314842652223252336463615212262113341827825253245473331356815521415235553366545236127832337477652115241513141322342763854343437686835689223494532721611856543582145317151236316323153324492164143125485665723353852526146287331427251181225653832452253231221446911632331371177216256121274413342127615115421343116464263447241722316633682322132221155413334246742267433222211833253137518211647731233544653211354426211744252322494237128511562222186415157768142522125245447514244472126172172532266522644742221768221762114323754653325182377423583146663542432554444153264151212522632134753122194271516158728334227647223283265111821123211511455722278521323356735813572612434111354767261954615843342264155523316934314613334391154514255322941141261695256243562215712112414212114813381241516231222654746121122874232961613144131421483476633422822754747533561127137441476281224414222436145544212435414124264365446473531411234252241211432847421614614153163512718217121754162262311142458241452256114364133332131433347116134344735251532622386162162636479345112653381214834562646294455435797951731134251674212124563563146915543122134215614634731881123456532255164213291436136863421871511262287818632611217571336842621525727516416634125464523132334133712321511411112127126293723421211833221275322184353631244735354127522147121418612216134217162256426235634431142251622212716344222564215942753353315428111631721222356974521341468244615231762121153321926468723335162127211523541559665166231271532324152333211447523234242171521522421682112166424142251241175324312151175383421313428243117156535414747554111363461332194641254573282643223245141211238314351825322239134153434231545473466524286641122653111639318119753261429248224845672416771125522653565719641322126147112653555146435137415491681618811332116134111141121412631545622112823794331225431524831112192342325311247135426961644513727521141421214911142634155665314233555882135256445811314762451337112167451371274462123536311152133316312526125174855323312355436341318944131539167131362569823118256373843165451311214522845223513461214123637233411124228143233322252243224421964231766517626527181211116835316244179466216124222212288596563832215833171216137249118675327124423123361436287342622448123247541432643813653441422728119248433332224122124325372624534141713343493471346134124335241871683926771248466254153253125413114714466463174615231834354866483811213791113365212331741115124351571251154147598144122519112571644546237722343835226352416837661351132145725751153442392376617441132242158337313819314163749432393821362113943116114712875563721523345143314291331354168888615523132214214497932326231134252883763413465262654544836144314158756237223352216465624368752254217366163434313243226173573425231536164239372633142461213266235417132521157441271527152741366242539725572542228255137221315633644212543132644513154714136427345247591232233517372119448841311462522363265851442312777115825262343325349184219226111213947532348252263153445124571253511122126259383353513347267114266522143141214222147837826564125533333218264226437481556914115512147125635755322831541712632174414444238121465113144225526552526623518375727128255121752271124652312351271161539457723841144937249113248133565113321232355414724315173443362137571145133411155573451314542747794563375422145552547145243354132734334213391544743251434223224295652923933515321131122395361466514442464131148544571238413313515942257184115131111219545221225222481216125114441522325625322366874721167377534844341312422317954121234162111376218441743166543145565112224138264972378126569415522156932345531584441314252233724221645521243625111932161614264165762224635932158112321672557315233483351321311251111412272143932136213793221135213266718154397217211531244441196412447314258341423361112357112353631486325518649324132532453613124445121435356123851712879374866729834245813213111141153244611637427533165614349226462441535264712525147315127298814414314327172236235242311424424214512152354737641726116225234351351312367117523241134424314621424624587584885275612511453546214117225633271214131351133517257134312221432535396373574187412573312968465211535121276674532211312376632112367643539341264238514117143412847215361583593765234539325134243211121251539142194259251112315131212352462114252414371751771631443117227565638111411572512728211121342232377623991445117123667231524161243465645274611454612625968333732934442432746621122962175724247298428341132346212298725292398375521626731674269415136113145365644786753735171381315324267318225714432941152388456351191516513245714121818532764219772244115834763346641642655133511519417162725732351272613911586782345134143112132342214671273297136763751321223247325245122761446551282756514248363141257882271654424541641232334113215724812153614713625765187422421141476938512853715122333143844211136441139836182342151124351412142275412432918211451491211141142443623457424118944261113215222523414413912522533331461284262112349111338355145437122654314214578264845143612231345484821553728771144139217747711175145536714218373157331521157227563617338373711661511342344351218258251921376153252634821234684161822114263364127235224813613211441731687441464821629241245422254477275428423223281524718145231742232438634364184211227731396126467223322754237472277655132533372514322373217613362455231422123152472222231716335977944528357534276242163227281514312114684533421315371176432532718562747515177587453235197722325321251353718221413376732112336463133114256632525436141457116332113671113535241634515846622215521462755561512237422332743342861182255841162822559212413258746565461383131432573321764342626188753671521516146816313623854486279117424771224243131315227681855615522521413182121555491624131124133212662254953246523182121816671516721452247231226263218321218321812632852352743212633351324881768246451356731253162316315114222564432195513624164711192266428435417665344772752337322272244531463422225111934327517337462463262154321935412163161334273242225898711642183633452534822242425913255221462726414222154131763535774275253183616464185362221231399676541146147543442413236745531237312377117143121419342354573182572451167435135212543252623621415233131215633618476623436123194222253517964311332324248354114431562188626142151113173247761184158469261263431711142342121932412235566811113765362535137571373525524823145211161548118253613273322273731251224394788322721225381343256191763512242122124622162444122324298642671215762265566322528431111512821172464514412521352416342841321621345335211434331181195327928113518393228641212425487253462533225264465333535525416352276511311255271214252298542223561361243522641321423323663185923132441191472146622473833287173171115111421523316412751265432457231214813327135596191313211447573834431128565243393884613121761191777113112113333573963438653536284131147834483332122534945328362215431871361725763226634114814233324143453336353443162124536642921225391566381332225125432637831213163177746473522281533362563434755228223223241334131494919422287314161232822581131334234544796264931811613359643483253155726226111262617139115331613274352336523264614231113551511544133363137248124324138113441171215152717725753637331251341213351431417211736313825463122251642121411135325121534322464464436121121436283221174422835431557225723653658621441242143252733318232372231342525736545652578826561557553492232565444612715121335631662745818931234142275112676333513124521114356462198152135265145354322176624751573647675325444477355261563512167556181114553326311636322345985333212261445531122123656545973374833435235332168612174351414446648141166364422521312481211847667314264245142256536924141314257226616322311772965415521212132645331342737121431215657521312736551341224329185263243124438726783321143211925822512619833575745124463446722532421198254434332746563222417517545381845471224166537336441731221344133539456455245113132941333742371834423264142716228123762314431412355614321244126148443394248166654556342211231112316723255343343358722624355124265393441632562531462116926144578129265524111716155232682411211573226443634811151623254122375429512311121351532422284645123444128385421612249261613433277411413451246222266755165414917137554154115361673156151121295414116244815612335441115483423575763164272281128636926121417215842922268245352864121312235446184476113375525356226243382864327661233136127621243533244454583246121612531431363762444286174225122232811212121475451316311431861881157323622258242254141644372167832117133541311327241233231616127729543223292573631359522228783128727431114343591516646131812423463363432943721753596711652154134554645455317352364121621311114254715222633174312466151521111623523265244695965511131322267511258114324348841352312317114166434144431365383332353211241221316512251659412111476141784822353453113271413321212272341532258722141235441512415323293453372314542163144113234244816112161563832216712713244835764739387243414493132363667525731318144626683526685356453636121152216198312762147141726441267445321856661523316247521666213123544934425226653457366226374613112265333185264435312111325253538327122256124723392471562633115741486443331122413185872252131112113834675843742121761311464563114464217313675126715437144516131421292423365144461531911432177133582214142214919813242445145322723371221226153115224566345134283536932931463242277215717932211661335172123326244755631354227132173153763316464564513525412131113529119315689144532417111616111428333726732413451434546541352231227324172141178641361614112825554531131212323117532716243621227454251418191812168435167144212371131214726828539226112145251932215574422314252431616843651642544414567452543654325546716613164468572135435114764677347553292244631184847336342521427147361226312115266154322234121614155314143514265431612856325143115426713468384687215482341122123136411546464132454121732232358311551412143661712757711235625139374322362153128187331972241437533331712586515517552316141313164641654647161523722154436513231214218374666536195965438361416122525223424811371675691413311378286124525813251177443144139431546515212433454544441772133336221526232314441412341117712447433139417144533361292181679453213214433923221172241132234646273211422225631442214136415292334366151346125123135274314633223555367393431357144621421441371474442546332128161231263123559421311491276214742171427737534245556147233245621157421235145164237114441158921414263131537666356252431521851231188344165312485324613922176158383117492432811117663423417521353146546591513273656245321164876264372812696382844273212782328672758434213455317367381111228131112532931725447112534933271461914324222613346162122421342722622114523314382621213121734255331472534411824422222341247713211611562916457417352533174371147534131554417724465219415444672133134624113243224172519381514211235124151134333285487167144574513142155324896332148363156241213127335615523356454131671364424431122535652432514443276427563483321522264317781562296212132213811833147325614734234321534367977233147573961611771681322746173164571133166356141151535883274339211324173125412153118677348631533115268231351225137347341211413122463192174755144756522111481198347521127711169571523454544643211294226284533511178521421261456128273729215362963255863158421551737881261241331641667426155115733373755674138312141438277131122461131148126137375143463172457337231776932711114234321622663861133622221886293631572558121124346352325252613372275511132172142334343223623262162714411126434552125412622432252311623453172424284451162441349335244851686831345695738713642122513349133142644972624274253116644221241326735327571155316664832433274547143328822225154614114371321732977342631831664215212226424173113312641521614439117336224424428121761556113251156131543841142346458512346515154654412734613123131259173241131125425163257771454317559541288546776317111162363331124321866383169891224464182421724433114668638252423571428643251612193432221211338754165359273738547119125286746635132211166677533518473248543224258434124632516675216282212436148261141123575584414543213144571422242212543361452221721813153221316412231222338211631954352227321323354312358434615412235413164223616132745434441128364583283323653722264284764523322886512516612311163512151153321473134542113462611547729491141762621422213521658319131112136436632366325429127313252331131422113231421542421411268877437313425532324217411329311433221555517548522111214515271256774476645364332251185613591616767517613473365413616162323223561231491618532423414724215411441363722412333121398341467773134814724234324573416664562812321118352341427669331425952214133285434135943772329412323561222383232641123261318811121225523392254751111121346812486223669818127113145547752731812211242672115138882668247515838733843141375741551211123335754931722253438628352241251796512732274237291229212821455227182116422135883111134551357162225226641686311421325142222337312297285462221219123171123455421134122573294335324527751647443573523772943411382721345381443612741215662413529128237224144521645611722256119641137923785373543112367565411741326692511238734123125643232125333362161122373441123216248271731513844183634359331169482317276232254547247434415158273562448511122736472353561256171643743146325144323151316341255285331424441325233233123371154136547436444172422466431645561231553143412253533128232315462246434126434421363472435273387531532557344378843373524272321685232518214268431232251131214951513513652113515474213184651134217413263263122422312525113162361731331313147551143715532514481522725371641246118464541441172353856472242151569317523735243412366825612833111142517413234131552256122774163131614263446538684275611154511511594216421474181613376213565326115822461231757943656573154661315212461124421741616356321151853721742645635426533422823214222148221361192444542532271233152125233164425511612231247271143413119118762576341335621225276311653411452652386131554131252661311715462524693817135545124732537121624684525148721715339361451833453113367242431225849617314422115643357162536467242631127633721314122736253215741424114341234591412395113156647568664218343161614333227547422378952732416733444526436255758813335125793551867342445476672436212151231697154548672512364733414344125224672865452814568555661246139214421625124647321766314441551114514371151118234947612174853158244314321921516222239134553236631352411863583112943117154631538224115461923132644156163733796536125511733649716366652354187317315619553566526213382472135968231217624321136361465955411361548661314315463951254222311556254654121151641323133218542116467738722641392212456582631559272331667126555424215287531734532271424412243135422416841261181532623237715625151262354529757441725662131163376253165872934612233242121438126754131461395522472331123213954125224155131242949157695544863157214633421132811513151284625122422355544231149134351288516766642486442233264442221813372235213128227847431213337152515499115182212741561465245362424522411167366157481287639541431557745454422351236251473664536427128344427968121433736233466212471711271145199812643158736353943133316263347113214673441143532321428565771312316341271634863241314253941321282799154146154244442232613636653551656632524742321433322453611821267555534721432345156446111142175231234413368453161255764412253484348681821441673423342213532252564117513325114654211782395153311817442821365311251234646813221132424362258461322231818224134212524111311451131217513125315143545654532342931225161516631147944242116241246354548373311662634252246527551341415436135446611273324562826133649144182453833464543572342531652422153113264438174112211517363342465553855442463318233811594128226171993624861713821754236189511114187656242143515151353121764223855362128468445513711432329553951443123232361313254423245731971385462124241734642217563134792237421761172321312615431222613715151316214273142324678174324214756167511615513152239821514222225124811775733548468145416218322218438233432124423514112121341722723526351521514256454272332211261851635744473423221622215367411155333156223215122368523167373345116222122451242247272117242751547325221214143472561542364857351744147143554128612221262226224661343262122131114235782328655419524262252651734715754463195562418213363562652343541731487215116127353323962273415351211265756552267453142655333718425233352884462141421211176213235524561118448132152195553322723195132821512127644657337547122333726344232813217251215173411682621475262443235141161911364674663331112211686161611261111263455633777314172111435217276232243541414522853176829784493763523127246731852434233145977351857113364524731583321821269314425126355422345674246711413813911321233446417423123312322456224133856364521443146354246453546135515815235143121283121231312456131436315334868921475123352272456437342551128174711127753452642735142121665154135224633537426549211286511112549786111534513488224626222134711513918522678421817331535622554628117422442412315146234431812712167152733351421744412135371157247234811981114331713141617527347511132325631143556253672261413513429841365373528414222134444712121557261415411527752323414493614535575523626254321127623131388652444755842335462212131372844286233772121322715136137555211333413117122422254336161345243444361354216113554323821445227215633216531311181412725535131829256131156217247443253463723548274311145556124319118122827312157128118411653119311312125465163345141343111322411939427512728661633635911421164361265545316133231687357347354228336266214414511628661737514782353152731592114121381711156638441374527713471135161541741232315171221214632634445755262447212244166431819287371151454914461248377161473383158534241131244386515622116219322147452362724157471414214172252251113433626647271164567133319515555535181332337263261118545355243674233183425137652232111772166713128141341652525472352484911192513319624353124225651174827417247114282215154131415343126112121611216254135253443411335611226265154166721137613541122385214616325797257823172152591544215116642523692346417223326226678171635139543618111651245574352143946373362212632972414342111256211277542646431633123163235521216622285551276544237243931211414251634661418344544584613125513239976342222536132719242744656262233427546141524611134254342519364178631157223812463254234981225174348196361327862126147961764311162281132735422296325159418513561512352521163441314623536643286463131571121334114214111155721362655417234411131415821316496475112343842348412673511444262364527342156572638331323527928655849252476532763365474253611356556285312333416444571255612455364425626315113124327423532176367633313552651352274133321322423113926216244354423133221214333561122872232911421647131423231513735224623223214214515715412141325116162622351346342123253131119665762221291434541364381451364271616123371823443344212473142631463142277137414269323243153424716744573134321344331117271676252224462231166356111421871111133214219472612132422613958553331267313734334133224431942865143331113664351577324142515346415234691142427341521422623463223212416584233329214111325156734631243749324713127734423322372124123531162321253133541577231123165515153413443493141898584636812253921234421822332282214371517242412465312355111231245721356811235523542117112328225458249513141123861324458316254357761123515875163167175233241321211921435944161133461343536932315522326612842111967142312355112222414813461587662471169322755746554365611616117123212712113295113421821712242491538346621561638871341248835836182425314654525115112811382437137361437332462613651932251426261421283415277329328341353742223224233541546177242163133241512452235343312431751837543961326227341775146157133432863623223633154821618642216417326524337415245833313574222343261121411554575482255121628424446251231521131154826623232682263375232767724322452815324161515156237556836155372678811171974672124255232632361235356123337254151331522111252841123112453424372454132518792261132472574268144729264472386243786474273124677765127335133571364244147318871235322325254153747241151126333813258179388152167625831124477322728265271322333961572314314132231422126121531311436523834162926423159925533632511111513445262211231221251116235533356233245211253142731223316466137823325893825352128646287343976377134736585648147241524546118256144641212577773235513114281151646539658268334766622151732811251118333215646321257292615313722347129174181428215115129236631422311713411343453766512842163415267253131129333444933315361221542741634144916123155914132158125623676212355421321324961126396628115695132255122153355214182272312212164111231273111541812252245262687612256623113253165414856653641322346277633458375147541274212154213415631344685114521818231157922221419162613424531441242222514181343132363125153514169324614691292315226121215146117714721646213112627721133125223278125121373531221683213147126722184356716856666723435934211671531243552245122242117252112114731333733531265615245422232136584154236133331242333363311635274622441835315524325354391811323437111111266445432356713691545222137113531183616311338931341642331356233872663366111591211521413336134218642549442538331228332235825812421114155241415352121527232312713133434562156231521732621434312677317418222222641633231528434135127568422612223941425424342228537116195136582467785644138182146687184131427131232415851673236433333761465257963727348433524349214242618353227447451218315521516284721425273231213293515247495111423321125474316355431272124673814837242132521662436535511312613133123323558463458562621332743317621356818741143221151725561129547278431138531783216412244843262551431588751223471365337532225312734533111721614632123121457452554525595524614712933426153621771715113222119635222248446295313133642274146452171318832674522913392312253631321767557662124742443539613324812222535124634841126231141211633225473332618417718755274481229532268324872443576833235236162225336642581144113164383531332222215115914431617953166171534194311131863821365223225563272632611333522241315128483241657563411443511655251811328373117398733275732336553234766821355541311162223684225933621431854139361111317621344321782168337411454575333713246523378152345141341264314124158257242325264685262133665314153323346851183242511123973516146723114724122915328676242454266314232211623831762191331261355334521427129965922833541626346646165443212454113834221716313457433332116438413848228371538272715563586635171544151422831225158354431223742264725415355431417712842283131134121321241634423325718516244714636263541445251453763521542543169612522121635832162333435324122762224814521525127256186327832813236551255572145742612236244663521489355114541125224317536611753447137421656118485331435882236222243274333335233241775747218748953218227333233152312745612747346629113594145451281735827411132231615435164171443257114335428623725761551112411581431646142386211523144141212315627321731324621433456342139425473443423343134762541313165841434523151187335663131144353374735176384524159224481434263495254146854111113914911241124633447658431316241431318111322111127673114561414595223413443612616122525434424631462232355161691141553251134268226962214641541431357732732532231553179645442713343256238246142191531532825263541931152718142411614553322554411135668154799561117962461323774333134322212357233221261647222612597641444337256379939118571244746213252157277634922721187313512941975378371113233451254375111371883654651512175332311132167245535254149239962421176641635394311112432232637337336116426112616773512252171712385364317255132234558121611114315141714273332321181355252611187442232172222221126521554278332654241385834452654412156454152856342263825276245291454235541655115557513381383431621491533212748646718583661322223164731261844334398443515463311345123131714322412611127527212176141125423761432387268157741444225574478221852946312218645313742532342863623464441516236787215511313116651443113891123174533521225726527238124376536643144122726581112564869234333213517438475118135613472288141121226164342133943868874544316333116121626132133223343623111423631611445243536423238384725357785215123644494111434121554611476326414673873725555514223251232531161133262164524254142115352211537541474413212376174622313421425666242439152364386387713554747592418371824311266721441371214136232374116453831123376743745265314313425367282347414523414516523612221941151215222322321435351456227318432138611353455392522621351625186411462361263541521113941633621475113666536533523738454314716232161231121463171482332123174112436332513174173135217133342224331522613321331621252823213421243931132346545391511891334813231446321233519317645265112559233315858513542725362434517731417141345481422613541221751313217446111621654214745233151347663511221354111212253127225416421116316195663442512224931126463191236137335541418151252546133122516224325262613584251622626857311711694618945556247771252348461285161122552235314114553334357111141875118837224376535842143441517835776542133235457821573413115331146529793142841255425334444561424314616351118528716756357694321544454776467443243162311566194412233199315668763816315171225733119318434338474813435523442311373313312565465131617341461293455175421732146124342133126835133122262227117223626745811451351982524185424144333631744757632346883715352526223135255112426511322528143667223731144314565212171413412534628923417564163346132133336451244815451633137731413554613563121433341388221314113321442413412183621267322112112364131458111485331838235233217355345331426453155323217613271311898327223722464134121125115332333221732123335417831541333481142451315134512537324842358316512344531323212278135124466361731585414165524374622128219623242123545435241816462222525551815173145312113642411312412424864322255165755155514211727124212322714624541943321222344312821311113543436183322512461535515517145331462551616121426341216547155385726222142344211334391348713341242634555493143544321276131324135222149724222521282171142229246125272217313214736377442232425151431341172165662646948118265342621363514138336516214217714211361452441443415163143127422664655132413771216145514318324552331323248437246124749641261365561434741113237146332411621616832562312371691622152132129323227856227114244371237543635333615256252264825513553392136682315541346122421181512551133312333256252213531152258652363118874122431146176243596112723764162415132318333744137782112566311212172514346265452311423454957145173336624412361371531161431153492358235352213515351152932374418643335195833384369535285432342355134613482423362157312464612111612122647426612311124312246634782768752273623514124513234532134277219525114532233165553147432186123912554412331435247533515332322515316216626167247231453245721454556662122565317431163922361334262952531236121374227584241738121821265336344667241922644856342222348352125127325441552327648636931283225342874172321712342166214185672714628823456322517444565365765617522667723127555941415113326251312613473241812425133541773349112268411123585245121335254122638221173236126221413828213143433513271222722444411532131457153332314268538182224724822121451231764135265344231131352181365233262161485272417433631112519761423492355124115643114336178313241161337771734133223296332113154982514322324223214117272747255728163512427127164112141528162644129422436351258221145231443456374562421326512225731931411171132156235461212323242273359242311365643662457826122334356261274223244114121572874324173645633132341138211254367144952257158329211161658817123413251111482416324321242313159343826337231424751114591224191652221161223523622251229466536222716122359113442253312212211511422316255925219516522151176551759711322446314632316622276222214362862154361612613244141146376614326643332121266143646444112116723256741475446511345413325421628215845116323386424622421441252654561236278364951825556216142264622234436124374323654227494524772634842131955212271746314724256824373169113112611312241925182233265623431716132653827181312134131141342513312671122119516346253554142165174383963348122134884262545813142176432171162282331231236231721353475112147128246217217162812733611126118156576251653757544121324246791715175433118422552856256727562211884529453173522455283916136213322726722785143313224824134522155121141521446231921117161129116178237641561422335332523355373346421247122124446424431152338625213382683511343872223841319313514171134744411344244157822231715264324133125213338721529415133956447521227461171546553681356241343281771826371573334832336276231116567144312838534214113661119444722189458341234831114546133223165341227238613752455551324241334666624141512413664719211232271316152152442111831121124742124933521448158717118132263222422761411721216121169391722233122125482212215125434233422511214231144538953248533625535661233642231551835141885447532233817151342356262224593137913652895527623172132332411133144537511346544425255139743222613332412724161117355212255157789234481436731235276448723532581294141411737235225117232224824315375316318629133445121436222351143124117214716217123415124323471251245251477263271116522215361272416654166731443416562317253242642738643141267161661273325515381585136922544512341433313451572452339344131333517252117392142643217412354314415312233799717476748761663142615133222643154365138222443343251562736115678531273743295352363572325822968243861314613117421331135745491712421312369131373341838351172225212374734135413728261149372772221531375261313532775635236741128264334521822142534122137663429875642351533332842782421515323254397216647238175261152512321793533131316162126114722231541221647252423331423578423587973441151173313451344361754732157536553364534233116522285126572215277486661213434812261521459243632196283325142551252312427643652587712315591531112331531361766476354521125215314525434485215232614512612242363263256691277152836612922743114215552112226978131224333358664125776766412511131152152273364421442322312131342853684213513114813131955811926241223136161521498274341242333325497315384716223372663551125511162737443822142312616342354731387543341352326112456441277445311361344132775111341715252516513733448135413735218646762841534145626146624523316217113422215418513411254121118553242542312412114133316237133711238222762153535635551254122132423637549617217464548552341224713423239345128142196627433358584223214262247223114715353157313113962113571254281341323727734232448213113332834683314444411286153365534454321918115212431134123821123519422414253535663554175192123321441273183312815831213551626729736443272214154324626159313341176331212882165115492456113686143651481521442214424243256382336743739132246453318714771721514333228561126322214252132282466115129355274143312516312713344411245822712343117517841424344245514533647523556267162362224613141135366242142343281353662466193224432953242252776376452844414649556112243142442512635912433355421144377526425511343215561131735575823134514333214282732188571376137745522844791472314111334225458964568111232531745745314135671918142721252163645722432778541461368382622223435731521634127945829412122517314176834541252541413661441121281752232244242225713661315567142547114511433385111642427231685242312221332569523713551432382329255454181444513211745815242272674533211232142411612474274832513315313342152446494768144612224346744342147114445411215279325595444353216754261372725857312763932145128414335141662168112214215416214337242215577274951464728413671251133515363457554116322187241233425141132342811335211111135311274829118614141562351223513123256661433313632535225462223133672295224352142185124333113113142763763741113674632912552462134632251421523353133435432112714344476528171281315411412356411125644514616126622525456132143526244729613377982353771264421815234652151221935317114116257173761764123315755412151195134215441482411362621635669211713232374426128555635643272262554542429642233553428111431431251732612953113213228131316964236641324242235432179485754151153573488513312824572163537227969314212131882154937251345121223392663414347442515248313447174154561242213372567633315745135874531114335345434359372185314244665392321255563119544441418633234523187663331233162636342374441421286785532221356548317262122979483331763451148679336466567535165131636222739543417329351523473111111331342236241565115743143781951152552536114314132151331525731122123341152534115132267341324361214142846322727781362162474344673454317254227166461217151422212215254136376161525128754132714511384164281146473339132536254271211753492315643217422315853822511183421124318472522952311661142414665518171561353111152165363834462211622421615531214328375173368167513227124241311234333394514472187344341545731386111761331243531266253518412431262373661129231413365716531464513221152121251512342391117272165843521316141412334729244341122613481325612615322764158146461532621232311356446142514113993323453244353341241421721242231446331643223861322745644125124668433676337317224432556118393413372853841156456421841323516483174548621478461117718822122452141648116271525274233433655337152125732372133441847473114722652234435718131131222347227525352152566331111248126443336122225412471642693152212252332454171548187716267451177816627419415325162553236923171145114152466638157552142211328342473731352449624214172453111387425735135823434472416242132112231461432275313534713345822547415732636118745621113312385171426445811675793448146131465416411124521726912159617312743543111447112432793452623158281424111116341171532227632125631422811115661663456114235314426173523156555415644234612134334223435313175636313534335443433392263412758253123931224533155932434241236233525112481445112652161222238245473285331274654773424415186347633322814423834331391622167142622666253874292319662321116313272132963633469761129324343654653245242417616281813533438145266552545621215466259512318112441287461136113615235618765112221313236421463664113879422112227433215921524242153468723712177728225151816117362572985199622586376774623271429116515141223383842732611821285242121336165238954464563263352133125331223728641451232175182811355552324142136528375213628312618221661252466843636411142221325137328252246549134311138693122181428513252513435812311559269257676541611661723527414246415457621541814745235112315531432233171153515229132112622617337355472482413413625253211234116615614472322134255515147261186651224651545531165661923134364412926336325214924153156323286121318174221261382251364647623345216221421471616124151144422656723422146723584251354661477374432232159256741537231152432714311351154544313766211514961224145221134247362521229351211914973714556434331129765351486215121741412611432251714125211513141811845844522651123443121462431553313512943227526349272277157162531621915343322223538873226141214321273289523315166175256315156251624314363822223651423955562831425152361683241123116214271437314143184943416321355411666461265266511613145452164731493585611642665325327348932183621415428197241734313611523661342532121371759851821516135121421365311784443181378175285712465113612537624644861132551752232313383131234217462122141465714159183733213954792726161637611521131173156661241447371124254444151442572422616217635613833323461361531275425554233474525312314646371435622165214917483136223632311235272661711255346367572793212619462138771117175133453141453111254164123586781587593212611424333443518536831324756451641341143212779433913515111756311115222325324742376123912247377862537339311541361435371137283542324915511271273114242122215264681542834345166711512261393366142271516213822213838476542862292253727232231374442424175343264165277151376435166227535193382132222345453526631767652413416436472197184353241127563421443543322333317342564746675436525485536446252415655441794215442541446224324333714554321527112121666415111331141651316121444131933438161425112144257111421436221172243242816637524464383252564211425931673267155523352141946231531112186625221467612141362313126722231116255226121362135177114312242247131522137317311313216183545381434487157252593231264376441463236122652416112342416224424537644186548441561464253532424444655264448415533573225871131651512255361476132121121731158171129255555253136678347122914622863573433661343721533213552312176755119644833511124331612564421224351114521445585426622423874717587626482188137132131313554443873725314361144234322422256576627241352664127525414313111417226555114554122251571622261243644122265562154114226223172139223323228722227115346374265172138413934665144313155759272325734236739231112123526247269335548531295121251536432221111634332481524251453718121296142772677755866244153161712833273236625212161116441456252241414323122115251314266361538454231635712261641422254134253153613117321131521232616213646653413523359784288223721163411731723695366311717354251613721557631522337226622516712143231243521664333611741275441136814551461355216362263723513273241123419261923411451213147915117264278722377436653314123342291665564642661382335522131334154565679315462145317515551942521332483585264578155748556346314131765936135113616515122265571125461121345612148545465749723535416267121622316414253521426725321255892111811191414654321191422511541121653667347157521478141296211225327429367125368153235126372311137243675215522615523621372351561135418217361316321123137274211166136515625341355861266224232142112124148412147531271722864767447612555151518847446221213134641227471125417117332222633115245424273515176558433167473382421166431421782273722655122418743634257229413511151362353332751162164229233843133376416577992848332817342458612136792752524421654711435812124241112337645316231653561749314124724161218222123475371113426126163616371162756611732644112442753232621124671251155732261533462821211232368143512245614239657122544639213661131171411131455931323135421243271211931196771341415126132422442121685412282311625231654217842121423241648423391625942434142323513143552854453663255576556821115622926343622794664514135445261611482123721273578638323531224912743613852658736423712321342338634651738433111652444241125342266685134246483436672535345413283211499726633617431411577371412292633213654136311256232634713233287313141311141232118343866722244395125145331332344835415773328622818613285116631124273382395945165243214292454678631161551124344711575622651411812276745211517154244821251423352493171845117111116131251214112958414643823374125163334646136245654426843656826214142227756153494141466622626271131611462717351198456233214218251274523622123232145152111346262412311214142264335271511186831616231136114731335263278232633637325614121379217312321551363288332733211443162883131211434875666541354241158391648913117152217776253953192257486526343242177432331112321414611551242724121125223138223423444121771333313815932253283213456172322735514613266154212635654631624133462684318122867865224731248345235713632441114463753674721334256327822473756262944162917417856562256322612335283456164816531657516965528234813165524524145735534127516645115737432284356623841522223215655851411413555552272571643317333535313422364445712441823127644144174364116543343235371172418527231343134714118113281837738737587132113576721344536422554733697356342111583372137165763221714212516127918213412617225153314436642455216314683341166555363311251223159652626614371124221361484675544531431124234625731416636416742313254715423271515332116435632523743732323625545428638141374938813714199111361182123662131513763221434451153535927737615133945151352115392355141716523144524551818345841552417113419552432279596157333314133389518226323612318323414144656342255212232536368135266121223364314542151322343657214354637484216739135116425514713641613232124481421658256723729244172612756511631818568384323923635544555417326112418116123411415163237423221118159124362381221485419121311155316412124842272211876416447154352455613386151441721849454331616325784836378257443654487114412311311134128336332336231234328632132271443126122633171451556111654316529276517313241622121855812212864351152554663356316621711662411812811514721523461212634562176126462835153112312741223331611755346636499283141142231426736586541111187314342423348146456125433216246115236237262234345812123432361116476528672531161111425521237355763235123527362116242951618415261631524334443653253182142222292521131374163215665383615612462154136325366514871638446361479174226331216918332136573438338143674222212125273931339838441143124127213438192216712451661952134311896561963122414322246143449426624158277124226342411184645643621653122111557855342347364373252773623768295127281113676215671711313163132873622242244722789761721263213374424143346841364344658442912414438422415332146314143234212253256955492252154313888432342611334156523463438426727521232621444169623195338561125454561164173456412315534216532542744144233152535335133472461631123548185165446154111937682465553142434243351775334213139572545243168143322443362453143182232332151117531377154397417744443823152313673565883423431531235166113832262151143345361695622718115171233628132532465243171325538114251293151492652326244595141247541211125222444627452524972443721486136322262826411323416115312114684892473137513313132624127235354589164348932183872814532322788587331344625277745317751171781112126424482335771261431162327318958592354563331241356616252474533151364774535663223121334746145312231621752142115211652817774158422351723759213221535212611554181213373423122557698566212221677351816266316341731411325122374323327534237218473122632475215411413642331151124546176253493132631311715715617723245342631157265672357423118421213468422954212133215545534192585333321774668361415513746194151625235176323167272132613712121154432213291635151252131771244262731186561491852794424125534231564152583452811122426432256147564361133254312454221575151892121112314215452131184267653226574144616544298315637654312424332625324131245382263222624426351336122551571651554327841422552532827434636125311323516331112222142218454667735349474131252245715197142212225326552389315693155432482827111231431824631252264141521615582123441154344272422213265185342126236328449454241953112169256265911775737744451351212513618343123134422265827388312723157513641212135556635435266169381453397127239123544464431343131393687418131744652345313524354321515298233171416113684221148434812531631445459225663223163883312536611126442118284646336226325824173523152113781182224875222534523432553381583822221415119244381522476664158219245136132192537334223521416112395422438151135141156911435632326513164334414123531252126121412445214175353212519722539212682139423647364965164234415161557228114324255153755122464364632112131134131454161221175246835365246121114693554763261465239215151136112192851244123351515311443242373413667223221544216113643814354679542472636225227532131235411643556443312738451221624346144273564161241543636261336281324121643123252748114621145214131148523441311624567256321946457124734516466253525612332111522162738374343935371422472513749355183237323336131223221328281121516332841722232263652743555564227162221711861153172161193638573452612659544345725431511462312224112113835215711895126341252355222949155723244112253172155571687323676223
