35369604369646658944796229754717999686876889449587628255673879269727426682938994268485789279688759959859251476668863798297986789878624995779172837475589838369336687578219779947687599268964959854562636588894749979953487979789886439699872271472726988999788935481303175723495699343943538476877985277745875437566246767355867624545428783532468798598775717885674796258565598554774788779484698566936879978964443946899356088549388884868993337449338672798547732598759136795736728655623435866478457936937935749726995778823859776954564945435576829786641879647673276844886769684449524483578719479941875938775946976586991966992948468338918787598984486988854577886549688789192544444873478966927497969897528968594857979999994379726917959523837955934825724339841684853677596434873967497859429702878289636893999768875439685483723734724999449796883975179769955695761776438528956583893936604692912735735467981677811493357959962565384465368998697975885679992686789877657988476945694846848987142358977778961974676067589853995676625217869795289664638496649446347554994647656693905599650579619769664983571973989589842983589937629877263849949779875351440688788598878469786737675454538695338386595991752865547689847382527574889747997978648449672547768477779749985268557169857394744854738475559471486578488549956397798495783867298787565988878983737899876474888989362788795687337696677376368389499957683299749386538549987995886781467928738095978824397475667893785867499584939687634978458748888285795664176864595447692674785634996554672713919522786596736159464656799756977484612963939318527865576586267789964675893896658588288947975968977957863352538362703595597683681752884856229472857788894285489879862348954977659356385897968957775752573676694684999957938796768327989248551248059993865959086699373881465335829921879797799683417877857765593438857288767766767698566543754166556586846876698996695578994483356571996378879655897695695696562986591847439887992196799496996072395947438683956459477577268837894864655782467994697983434596889369415650683473819597793658966479537886378837799878758939465688217757238566853538649526481752959012666748765657847678988367589848848443853826577999879498489396889676692546886555984976844654663199532027991796388279791688887599654419957998993332949782513818992949872235174644858797848345907646395773589857667959837668572464978797987289727477443988848598985855748971764676819398465946898689775776574362978409787644395896856533911859884787335646467796533514818789746619894999894787161665999946454857718886793699644195658378698373899889677379973518774713448285974956866999099833019728878943696719842583884914685291665633948885823972649868644877996955498939742986295797899741785187814759838584696596357890733397983935678938373447586178158429842447855608659966737959269999489546774779879798596972574246637585798685795288589584989887588378246371699499953676885367993631858822893736493557672389838666679558769997753794895886897339659788749527147355359862866855766876686655667797595779368890982843799659769699215879799469775716976896099948595345793927125789587777198889959499297579359683786118369286465649769789898628999558083457396369995568569862392997882385771678748806505695834567894879378817979669958255848995879796977087943799602983957469567497984484765678626679545638587986467797298737969756569669453688285992667899264776977589746846877687767424463860589968887696888945735148478902948453657833263283786739549849890567973698566977979624552946844744569987954993749377696175898739758596796969868975867683357245551998409324884679577879477357968694689499808282469577895986735287846695157667557297679537851277879974537743979924976789936610360854567624776953887747959778488598973796449866476877868787725498757697977579926947997969968874462767879987373899732467952418467689863559997665783679872672358957993975672977781569299873276578699945449967477793578550528986969444754838992765638813996945738137259788467866897749769589984475565473665589399498662866763749589866755497783492104694777844886989348955782994585617994484397759574327467696737171896486838454678273468689936988219908646778561679799837546680581646272963993927498970958875472332478428293396232928757984369358294669898488989763128967789874847694799778825768866899898794472449868628879417863881770762399866695807567748661882988565494989733687896663575768999977839293891794894894364818898667659781612875749934367579895854929659687795759899863696788475757838995863356596675535977838899553562576511888497987959798978675847939469744788888657927775793978774390733839887367769655216395697999448399358794927979573445239693069350649898870895488835269626325575867795509843989666949231733395672958986638698576946637679677456867584877846773997367775293879966484288495435989557788593569968928696586996462387687837593583921779558458153884748679868977659999652794387458498886669205689966485088539698657875959297759466979584967997585843377798353769639424677383945859775589549465296756822357754534897695857898884417385479424899262938536875565982986379868847499883857154453748936496824870586848588995486386898793139444739788593795617948671977934476439783473294958993447896969677825588799989748778766794552947869548897445664886897694859857679679984786634898788544723686811468549999776983447249524753488623399893564873778972974560988769388884394991969948477898565477466289869885763870626789187367666847595874988399876174407968949274719386271879876855649826787557337783928897525948512989979385767795576439629588899595267488876649974797170849458855818229643227219937784237149399357898487672535277548689986865852766129076757085992552288878680989274838198578727882873997555768898378538629258788788889189334158479999859966988997775967926297578499885239289496211894665864656947477573948146995488613278966258774274744997692279774842492492776728563967986241788978767591895529588997493299997678859689668493448911633949382888869265779483196884599937674672589587284797895883897894374497387789781789249488549648898467771947878769925446008794866668984496648978881876777674649689775698489616348494999995938466456566485346915894153768978564667768233199873527988899326989888532899439631699293788625787977663871876599488258559784186323879528633852565598863789878944778889797854785597467788878986678864949958277948986978869939774843872897796751578955526298689744829552369535785922598798994895937446536778784473698697537639757449849899866296874653586989392687846978997799876687478668895866169787638531849398837194997327588957893886677956297877464576799357985969638998777618941675697397989982987384859865979674445399922791966536899529287695838796835539952848846767967797839575599695166694964495569994287697449984553556965382584884686788883983383787978377299668949779895736969719294496696979793873949467558995934689478884693858468289267785917739927571469869394585749868797586877778898876347478855583874799450955734754336338798775286495492957998885865795995885844689886638537339668498958389148864172765769674952865977944766766275995835916148998895579783928697477409575986672387869339297355699857743545788882779929778699155538872828697368779943843633971978999486668466888612843983446498257668625673974834663379968654494337885689789823547868685895458868944177478396253766857487137683368639977669387699649855738595323559765854945989748936588874899097297887896689956792559864979669516777188688546398584582876907685964746778479587879575382249699657487774376682979495547472689893735383662781531705566299499649789793982954345862948717559781283659477852326997869987679323695938197765946485375436178479354616997196515649999827857584481495559629565998696967578828685948677689978997795181945997262998978552958188998669898857896668368975869935974748427778649426776779881698247847666989667863583797978578354779667598574916288989992865498989662685604796277777496587247586979449983975665778863580491585824853868487375874777485833749599592859557798484388814997899776987964389787995368849289896446783834929874895487848218635598832365866484995975189653875694785497747454978865821963878678578435849765996678992939995989878987169738679984725785967856587846339848787429779971827957059427999997799865536599617913768765969831844894583867667775566984757298679568742695789877938663766877650553324085836686547811935585978794947214655447586849945467967279378984588676946869338857565586387546971366969757869885579976679951451977346776416840385698782979487774951478929868985858588827898681967993892288769696788487636396888688885569765379667994897917999815799798623175189976698389888328979837377924197876949238869485298858749278879791347938368988979985609486611468438244678246829972189768478879572483894581654896676396277847977507886488869991648834774342996878827666299686846878479783889523663695976386944455697773977858348987638397488577924686493877477292836756656795839599393679974447668869459794568596519959279864798819678466855557916702878979939659746963189726809588976879584277195949670789446558884783977551965983979128679745840498358768698951978837896997488456758993924956598594717795566855938956375824472649793571947765888395989679999629596392988958595247967484869387873559946776947419294396494924338885337659469698749196699986269444948956959123545779980889873778346685776499269793771987786723959229328568984466937286867142898016937955558839584727433977638979919743539758588289925379898878589568398669878752154874987998595496876497726659086732387293899952679945826525262977776686975726598868746236895958845997399637928819798178776964295987543169482549689980689836469695294634867158993576399448466967988766269434939787958386797462292878754798586173785488891478529356784771976433393135496197974384359943409838949794947848729946184974989359849798866958786997476779627775950788999897851961327975487666828974589786698847874865469666677297937679687568446584861973449987437998833738783859577888279838396979169976997437993479979756957554977848479874942942898898674474787574737726439297563732789997989530633887754459738688385987554879298686169949667538379298198398387259247847539318667679856337684726960995782676239799432785976629269743981777945929677916939376986555895419459778887889793925361859958878986466875468554857829991721965843572983597179073978994362976518746876676865697928925482278694297995897393787868325557842566248958742179583729486569854989887964999589797889374779818886937446698898534719837683849179524869665467699487995388339595489893378199764886848738688995697516204898787888596475586654979995448666899458693997474494245745475662876853499892677588558987799784488999685685999915965385649799647798449279765368824887477835294799419795688515187679639986429788889645945594889995998931546486889675674917486474291469956988776887562299375786467619783566737775956997986447436915889901489635688958955916778469548885304737435379999841775459795715382698095868969856970267889959949789493696756712962946999878845356496239365748796648337647947395986965776195496624624988227957396894297957980959953484472474269493787959949389987885589664586829886896247146261887537486206255678997868867954787635194737973297947789748936289656659928399469878324753885457764937633589916653956614975991634958853599548967977487899276383899789418488947478596448947675889779898646999896258658578288948391668396693268694642978638259697985889976292546796566839744349929899646769197676834438877656669953663695799397688144394846695738622379991938378458473256529958532568968879475605456821368753897193786531363746787479956757697789469577275888489598464498776858763638475457584997345969784897345645778956752847458405172189426939238369738877887604977785969592588697365795868878678695934549296917782432778967219357539598544799782795717745795976376976476788949776897786986738557734435482947753488499275894899486594338539988378637986944398188498396852979537738694854496909790527646916975177798316584646949826999479587666796973773934697339469785848461954547228678380574792876566649574887679149975259755485767749627332347326963659609775499494935932568695599465787769757848739968678795286748987984957778359787738478307974958999597669485876388978599978896658396967466988540593813833946863899589476987745998868873598657896176158714874597899758989884849589666467426435688858878684769393657794967964978575262676767548654967967949786874291758998977599876496761975995282396668956426877473919999435459997884693990366998669773975459999583862249487187996822678799759798834597579654685545197639448385573876385567663779986978648843855557918993885898535859757496575399999659289846973799978997877996637969886335788984768098947777489496036753884745842888874945923578869766836889297986958438691867717497376779672461767562387762898143863875659743879736677755428067795648997955889645768985676985236667232489988643589974966672567928821869316795956888596679137556988249607764628646856172974995576975588399836966947884725688133745788647196457688473989452897987319627864871068468899648669955368688987998556767547692386879456977780886639069794649461998359989857868947963094336958869339452729786795787333283549815596662965426699687925975641881979794499795522842394946597747557767421977478988799881856984883618958698535784869698239924757692759779838283965498689995599959749911988128956974858857656051888978989889396969927577578136836582859798357558894868799395777547754749897959359848845594888690849666456894886660862597756435952892448424764499839585881595680833857468737298932668970686779875714926749878792385699796594385442666274274897281521673539428989249685787935968865999252156923666875398597945948747858667265564789967358737367899889297886847839437748836247868768299586476989549648640926857889742942264967769698865358987847766785638837981526967594837567587524785974278784471863964488934697967846484625923862886668596728856483768797653479945797628795894854969987519588969964263485395899857549976166848353383997987478769767667680976527995642989126643467888946156524568789999323998959774698485742878394949212999265739468969823199569426363848583644989894589138465999368649973094347797763388196654788978336694694899795968759562999759378832847749388819482899286969996831791945966275696776954565243798647113858546599679759462390894297721357768788496953853998776788825712858797042893976999498998468996647858579633895369297752099664797555681695368553578347062873379576478384338988737980667728964416958323666793673381839883246675549635041385955169478778873573645948947992575792595689576873406856718768748687778477479847794976897775773344991955887898767267795146398246595649659455897971888969789329646454989999795799887389482747863149588368616977431569974899897995798316676889746926756555645157886478492673867482999964914688976872589898723745767958418937302178677597357875689947981545876865473764475867469557436959695593838559688847586675437485448899882746478787657554741692625864192788783338668752689783787378787889046968153997977648787775797599835859175661903869576979685295969455129947968835664679937664786992828789697457796466544447256788782854659678758976666572326565666895629674758688892889168869476849679473889699456999919219879643293893786919932597756934462577979695639795755559582396989816836568997421869847695583904037189295998849878588958842898749738536455352375273694688837394796605643248362765286885479848862866174978776889516989479447772479667961859562375684999693993732976688966372682786837774652382458996764653698977785947357758738877649397869978368195617719975899536429949921657678946065897863728629878926697844626552554994409667573658164471887997979556956978899963944649472746583773928832557666594774688954918462953949639885800990484290595257787895875827432988988917833968575958944872739799674385599942498969246964368789657468987699646186738733993067662875285839995939765998643764966269875664856673547358769836387298883475689749875649282953593665627489665938197936796856438393595489764897587497696627997487885735576638588382527326249856898975578948669459996823959477878648764898945979874371989779537979899386159344745788658661896238879916577989777882696939976559674884895686466898486558786664839959659591188789169588858468616486478874377477595586858757955839688763944738584727233987859267887388678978767686557578787879625084985767445997895287276475359691675273487079895527698362888644713767882667586977736542839730189667772489368854584424380869662897973626647822388424332788867934477595875838748871797367417976786633223588396776785778757594759188289939535697689496934887665449890868649763869798575792768973989748589297318443896586698389461677969361753339684556389330926885596539099975986377978893289595789669488956895978827697949571974754423828735077743698441744348868885677595397888955458396728857577397869879933464398537925778999766628747811618858997754498957643664685981484754897599882692967614374968770762844996296876655767983778429273685999397987579549949839316899943444322938778456435588377367959677664697825299397598782492855491385999881988835887560898277864479735645678997967895743195849688836674638429777142526289875583624849959572577978759449389595796846568839585775399969957776352468877299959877876648387886979932328557799634585456311876994595235493342399959756794973199599988696732627977896779967684669475789899859858725767872688689950794862683687821447199693579278194999578367968997579784859636975387894938299989973699889754889219649747584956658977443359989582627547539945738978699796583889672285878422146858688614953382975315365459799898884143769696663863594245874757697639966894165509893834815449587886193669977764735358664486949794696948597559785768254277289761315591673478954864629269938798988949646358456297894838583566842982828662088699986999995735847589569988079599726853848998483796778376595379349949798579885249898279779788887473899898031569566359248235695599481938248695874839868776794226697284925583799887666587887986699594966677874762974483893739378959854879966968292467162849869826975927447146974598993959887859468888849674184888553969985827295988659683256777648859267618476246877877389368798615559954386969823795996885938985477880828672949596652979956582591764597874739877699675489795766877945874294953878587987972287888894983897622444967355845859143271883993814966986486758996566757556554897637978792296323857845927786388749821536669892389753477054615377989287898986589889349769957659745999896387769789437829973723498599781541668867959683978826475887597575659882759385377978941786875989794989595994172292962969847857439555433746957649577913948957565279855397447569929994964926894587896794799727954871667796838837252869889435844598993988971488639896861879651941935864897789867996549796629534469122858858947579844573779969896466786378593854496965671620742948768959692989872526578865467219536988730916978767637843395259796873988879836542977276355505695677777294744885757896311957856776678576792648726299999676558489967876939799517267685498756648986885645828639726983458969674393799384377796826883949646193249947789773574587868795947876749828976974898381813877742599177458789178799729864769878884189385634663475411477986784286186783616557798977635397969537774774544794578769683797324878994679834587585677967528889388352357376826384967744756523859487866779678887482996945856473297385973588975394698688468166497384696556318976757369845397973898889575836583997924668588477879832448378835578678965968697636796556936824366998469035144485629487483632478585787397675977968277681744788884848648667696498794597595976675647783967989878347781537692771452638561767695686619037256407979529999937477849646875966695393496732992633689720779677949877842496934689993957048985689939237814959777878487867997656679797677649937892157375986597268974758975947546799749625658775882750666766169857789985936755454485288686869658308703764661866955369548845935536775098675598899491896789827739579778956959867966768942956199529879794931969988677784287633934778447993698596814692324999537882983885567967286297632286789792976926268576975440558578879834399356789848955884877817764367685342775593296867096897886745953393992487768452594782952977855688389692478219978686374897658935867639558278619382198954550843891653475259964539617957937899195179775748764689439315264576958974961792468359908718156894867168763937586183911687833976476888279798985873549754960711776487589449706889964929875279798956488888599783886879747941629565497798965236878459206378469941588995797836894773830471661269595795399683237391865357788877636854498191293288544759829878957572249476438953998816775333979882595575492938768247642651765687859696386926957884795585969564438993563879756487572334997587799696397786984778956678487744592471651895965847794479269983965464778887569829069847268547752254682876695796962398459889616984487935929848886668166147813693637288942826269819758699527457339861684888488347982948654788737145618558677413865155248699858368436864181489954358892874587957485586393739638334582458638278989397683992249994878639566889358187969397998657471669977686399885659747865961758997772493298597999660787582054698549364729647735842433942655884438963489786459666378395766874981785981461561058893777293682369985786795979853272999244878779488769359875685694476474966569467659246757962688815556678942978957884655697594974199187458879522538516665276156847387745726968847594443462688859954536899997853858407656995849845959445788779650879989649185154466797999689755696995858609189645676093787599956479794939973952695682537667658587758187781874499246767979489866795864657878928873838599869856996699878759109889698744327643378435986946695149756087891234757384669776965684577626443876757539949898999715373625873357075689952667657899775998846889889528868846515585676923592931742834752697599698346478635783918285983782988928858947887787445637707369579842547458277839796388939318819834986586470579655284918699659495193586875858467728899879784767456419965665257786487996758279996915557698869989946377568292376855757988948355695955976879788895895987636967785647898548249736515498782834779278855745586128632928228836398568969539548854769942468968285774973379824385670816866579494189979427475235686137824467996559977373686297767647299939336796597933875659934998566586991948888879170648618642368693469354678459695666784367788987989939974696976982673785469888713983658886996998697539986749789786862718895358789775996379941981608987423969987868557541749997776659622977598753575932786359989777975991788867768437575617488673957676469532667858887596589166889569895794756679644768798688688882997999976086378399429565996749287979696396587797487557383079373388878978955947684978999589846699829585687798403967898278846967544496694838436267937668877459477998566274986978996963858494847468724656585989764347697195547659537765896584867675949448964368577439844527985832578728890993775088754799887596636989828883849263565568399655987987496568225775596589979475489777879984815998646878168557596794216997768685186844477759867637546373722767884598564765777859799748987644969322579692913528968192615953786596949805749964543787483990874496985739743787656293959826996756963697886483585714879978399574969822442789368993664658934366899767464727996857475579497838965921995629789569850793396598980689197586831615119182921769618546648367729169579547899976124297625855735655299977847797567567956396866989977788939778933655997685966987317927538869978829858799467743697568689594873615483699638398454983595978591566872656327878997671872772944149576546179952397172984398287465844848898979789998974895939756662598751557593395288638274678689559286396594972777595948856477255912899998937536873983765348687515942190467967732565788777835917999876675986749937897693667497769869999569595742883942738599769787588299844664693934138887796739976488279785599387991787689249779681199987644775537781969957566887477378098339871687856784107849518597789674686947992671222377777189596777794666586785159579088103693891396996993684331484859796799738388846598768638999476738898499785829784879897837997935479882984697529199596551595919857245786989334889298528878579594795967476757818533767666339689997995865958518799589637957285734857848967357658187088513898295688885875977734534899744157568878793959697988448924755265796849948489856848571473096784598489549553499968396479496336569872596949867935177743378897888248398816772246288573977849935196896448874128858727294784995978332568797535864727887356669673984796725576584368239784654296328497988497587459982976274369286995454569978497675315791387818773151327767259777829879548698947995994549788763674776878947660497437924779959436847489908967736866439736556327938563449857862735499969837367964455876478827688715999937385966183657143889986394950798648985823979668889255596936975825785687473455427478885196626498374478885382696739789658597756699626936388597819895868878841998954496597629546429648289688324998597843633866759639688899597957988966318589536867829177874288888669937785688939952179423688476884788598889439525749865865857839555581747478779947562286988489932574855894657989885899615965637916599093654958775498793916698687979946977436689992935894788857225559863888538973889383962885898869529858476375927956877237556897953769546405835941885537894966793989474391778157867491266854146369198889774683857787818483377399795948558697898658649737856848689847884557289749449755784649369578739912969342685868283769698888979847897898677797759166462997649828538796962768469787986579539929544687419569992558688444876238888879188916379648383734765787829456778846878027273554753346548439546655937888337795396894358887467649967797717592489145884799795697658977852699239674798328659864258434979841867779798375328582879349476359778846999637898767885289736850683194389269798364958686477558883519466758441885629869968994965158678962879433959276988963496685267848698289668979397993543435867647883878792678679656174796435892876984296393974247786857245854328637796863955976866741888679838398667877132553694696194738599547548826447445785968536793996548994709756893356997969798777469834298641688897365979859958849881957696575869986825989477735748634546435554787916966927698732879563558673722637925153774689665675987936786756773986286436868863639788414979524299626796175826593759861319578699538844577296977473587899657897963917529275497979846549853967987408996865867899869887938717328602358697799879917467796699169995657164999647777167285088799799499975279093483697577952591434549962299656334999557875857596843376659685797899989948293967677794985885795388974825879689737688869965477367857489785597932653937479695369295376774585896968689285967658677898794717726628544745893887686489792683486766618435789995695895725365968652393995457515839759985913743786676834345784764748999993998417746879939985776354486837996475928935254256816369086684555688848559944788496595786977465562547697449614787588366999669727949660949496763455069582855977785795928984594761569494967899869659786645898418959687998246777759774856998866795333388988269987482535999746947295989872764785634653965043318459175983959774764722608479782899575692993594675845859339312859387718896809999865788798717855985799857357897862675627675273848859995833855593897886478699564657582915838871916878984955699389978782277785963954875799892997359676299749868759147256333497893263396846811157891889462372999476127431428668464894464689024452646607645359591267795855874593367888666693987183870272327777677748665787663616298984849925487969903799393827653969887852747866848746289676657848993985900667948781995222798691476888972816879648581264348886596966634386947606938452879769272548888793714889877297966967917997637975953388385259527837899999895995868788779968499196482674564778896989832757987495878887870768566378682826275991795698653515478745942853865669573459897367858889844556858487497296289795472876929483695999312959859539586157571699594446328734856694584797835147364177889439649669495795538338469882995167778095649618562445678866937856939625489795884466895964989436541512496812759499787947476762575575556743761996885546334849654695548439356896637745589677368499164482889361581972934944586788998998799547467747724679799364954893758965437958666865967498768497962667265286983966991392578686142474767767978649567829467995899391377889687610976848415963729906749937989943970956967546758869938559886811935734899674995984427876398965777669951254798767954259577255756879096631479764284898693472491589879332527968589997633999937475569693799908947988495947889994454979658967856243849794764593664749758799321790157884798968999136683647279788297816646596483324559848676653765765162778986636888867868608996946977686579178688457899369919464885258738537759723643786488846469334599886564791951897889756669996602479334594141462887666698457288457969395655949358629886776375998955686934469989699847999991449777766665792977558943557985377863695892288467938799691639779989554984685937698966895457663267987886646786969668398895831768956572862968218989477618968588324389999497378974985476617695767977499475561537441656868742877987688558742278064676798938969992799698859694767675899588878919792266941397478576748578985766369949798799676849858399539757468672858689798599438665986991465906827549978879796474385445645688698317774839774899989866444939494876326499904777879775877739588983368978995688987356933769996993243756757587899472999428964339193979795777886269489885254881456387451477477596097697804653499772986955808867867959154686993982437846414987694499278894577588986759384795975787418989771457696784977938788874628653965733769639384812867965689884996294525988831708981686837584657961786999869665796996766939887966259483849759248632988565575824835477835387989823636886995966463479967854558519956672236688888479777298725658471749867796496343557944499726878778975991996790118838798663569974764984577268398962299858293446419587888827739017989886534758918828935564493497898588968665776699478996298738345589889965675756827997687595289393849877580858976581648995935773398786990878568886686864569857482879249463778791877168675599939847253783789678827664777894380859798569572587354574898857978568447177998776173471973758768842254870836497878777686678386657981645143866698774867469589198544772687465784933981464944748772766688489983766154681685875217477797155929889879788996918858399949691697087344876794983895676448898567582849384792388868379866995767784466696866789909587789586377328889696797979554664953974797593367958378679678517421545669997892778797298674887723096666394996984367275497784645346989268844724837854757687849289646975378238332897979546879578746869922699678667773968719745766887564635898689763889576887989298884287929853177285956847858959746438048995557256888873872195963557791792779395782569097648389887699686958549656964700911428885578452737740477646764354818915668879956751995994527758601779695982699656779367337639577429863763885797687776239664223388158668386768949429956989839985347397473697489987873998981496767512928967666564214937679135527497898517399768934639246975879353484395894688586997688864869388937937749767949088982742584877775997785787339466766978886573889663599889518488377757527735883482878887591787587779958385632675868835965497794916677586779397479479972389673997929678539391677915569989889878765595424786799734893787780275873752759822882775195876869932659443889988697886768969667888629688575489773886495794875688186886983957948713781687689745634289697896977844484744231455276396598758455566252948341465995839296699748969994457685697841668585759888398899884743856815551589791848449945687354737592522486634735983969499669896756865371697589534678182648454997777735784927949839987896532759977959879989657644674718498959857879737666166698783439786563876767872397736679957584488276695998765664776957325867694997899712535676349758481159663696383845998499999698627386585539789847837483579884686867534775540483689657999785779893638833583486746479638746896646588743927995656591234717578797749349844388284719528397435728984868477659959828736786588783803169883116782889927247199387871695898813688484731657845586624775526867969528884512866658964457985895624978578419657779887289797564874644757559238446866797799471688927877896912951868867874864691695918898479655374988678171919827864994948652999668686883969919178899978494214947988875876827687774647327582956779769971895607685959398369758966919084598721999643592979898938097775996834969779986726853966465627837253457587546569885730822599686757685399592788383847183976646978964892599675075868977979191666479951997679969918866993434798243786776961916285996887396790978795795956858876538458786998965856768768785391109472186419799671775914625989442667194838785293576298594623772696999589849139659855589349529358369997989679197435799552918564834473978958393782878856888015796387144664898869344973197838939939955884399998228696686133989482977945873479634942776286625718899648859995993594766536265596558921999960581397888438594387559778891958492936788476996999495969795293135597898498688755888275862785787954856558474769667168869765678583275738883926893668537229787875568828147665777745637566750678509685498788999673339968466967976573376939366591144764988799699768552438786253987725849881469456846882869379648575779566228925878957867747948169957475957823577378237377557557557553796067055343747756699759475849679311989986428783888787497987951659589688767395688688779592397677883873952597757498997165798838227478848298346634349672563645389969186984547355798995196775934458078998739878957886997439979173499263045897779774258878644607598895152717958778964798645796648585748486758695453981466728989977559469764149818948248255997656653476795689975297889557784264775558368797877484899347707793879744689968545555698998355754595299323908669086596568994688728874674999673627658766397898964795477769578736467662735948964579687448495998898896976399654798794496696824699494378855957861623863567566752537694498595977665925957956693989276468739264206499693008928869855497896148689345457997462818843159964379466576968856795847744188346759675546399874393898923695965164684896545413242969972727883327946137815922795878325458994535293668562685375886377738722645788856957698766593315853504692685773755362749953782273984826876877995114824662769988558141789751471597789929978735721778969578979766458744648473549717899718990982797746755799296989865854588787389539996423469687457883664788268849960157323778867836337281956328477899474959868985879879282667998997465799628388281446872963778903383926694689501988998689647847498769838999879712919783848861972765894957654438658753474846795588746984979589474569836348976474728316732325439479898649984566694592586845866688818948649868836785678424198866677456935948869785486927487287883664979519657121527756175999595675659439495797641959757265945677677975888479258895986689412459978967569438662878875598968599737784488838365899979796813742996896935884785797396492965975764633531968639762639884197965397889932538596793663666817926364597659733999985951641134766976087529658889474975554995841867399797858789399599437776732298570935338725987579967756698792995589748847699239043279496279795884669789654756862859769255478479628589755877284887484394747993816465886839978245783919585449768826347468886676945636686476872283593888946866099861658487296879344694429459697649496579693668185538886956855944656547868797989861385774945862783069468679899266466955673657948499757631889758577905677874299553415785793811968587449639878767877783828747998384984779873948756856964749454958967267897185837245982667724154363819699978487688854636485895749490595523676436885785789699499648484168948989791685396938239518858268645788874537987869154644575297599639948894665589995844383818966838892154856666874857978906425576314545895499999445829448982668097735889898595969796145697849638975676678857594058680628898343834176677996936954763123784549639698999687659628379588177467558082677697528665706444579866732658557953783293997793888536973969959866419996499876359974959556142839513828749996885823936292784893985764888649946217666696688393997995577384926693534699989886289984786759575939736596474798379778989444562677873569538729368745787599377972957989582914787889997669717245584356599989793755189596822947985977618693967694797748964748827663889998879758883275989796558123378886869698923562748957873905899668978985867148299888796785788981476439675825863464828693877822439626463385378585959995989358397221797830664155955816538877786827668542994799796937983295778689338947987868837457797955149297379241935981734596397399796768997496179629526895838567887369999937363964869766592999447884769982584776999794945768781144234678975892715495336938846994792532388262862677365514929988893779579398589794445986178878783794545867364356995757459199383885482535938885668798989673957619789693897564869296184395044794916495844592627893873879868853968973989489986248978769476959286889856679228687813399366798474639756486238675389357939339736884987249473928183359899582586487775259796955636532698699762388674584747766894566889896758669788398686674528967065969956332847888798199415368573553699839884984984094835692297687998658899717567877486548187588939694737495268682979999792969778419798172778851986989759995998474398574678676981936887784758698717166867549589648854184944963739974478539548936768956671783876647479998389655895438597486872399384866959247996724293937466774886944585584459349638878386859668979783889358556575739871679487969867799376096697323695477739446397194817798949445832966965585722744661171769479877773984355286276529689726895876568894856515687946696957995938858597779947696987284759835369924387467189794076952888896196358568225934992873559885989942358888457995568849887189776693584532956777898969368419678973127671394745563247092989778695999389967688356559794599867275998383966885612588585498747375847789977768957956745459994299756779774844963743166394715751468253849527996796688768584898699827776515183997705949595494592726794852785879657696874624798663167478868966838396828579547958874396664789458979634463539588843784989999654738211989389952044443651558869879943896967367999373199446666958849589299297798950644154755637434293348887879385293189509595924399371586879913955468519324548768477392834758973487687388891446936977269889283758603356798847877889795776742729779899749784968798488984777339318467881479886449989199666997836599498495464859847479769879998398673724797968935498959366625599962716599875053639356779637492477947448373694966322386793898747859468996882247563795987958974396678849902999898969833399528739678451657949835755149649649879686489994769519956777257869198545994787295657872693661994684763459395845839585679137785956856633985466498748729776794854267866869948916107919128843767546287784696896773866879665697699852393264988988487643734378824793897455619516867999763836871749871388464487954897878732957537938677984879861636938829696647564598825177469489494666378867497969439478387863545762964695896986979455951696765261878299298836567498444861887298562370666759799477987674853914975598786989668968367662676695449676678997584997273551679567158899866995949741943269815346839826633767959264744987974752269679679893288809387483394348639878641746885089719384949957373679517658569986275557846387144743787557993527773993857942899847926597648833568377875492888697786591874965841497986258786888635855839584549324188188983947795594538975779986561989379977857769664977263268938795977566886833484876569975593937757298984669938384299973937489969678964284667699849947839496565388138378836257899786685477785796787876686984463949949982998888875386946789885752997881229738679155677868395487785988635845927989971999739677978894666757833459981874779952538967977583887651629882043969985447715597996363294847693295869365897842999788766494397688795869916995658975688499683395186402684887792845589468968429965864159313858961794295649957895574964883599686947747897344788756336627386638689397935894687679388643656651584674889373754777449366494524978984938998475753390864969677759991859592888596895569579739988729955125826867559791428248831666366249166283988693558789645798896783694895895517397769977988675885996999668944359822577395986989865267694722769695959375453799469899969897916899297698792824974283847886154947547838517695326487538888777496255876368498718658478573763585972789979383454984979949175399763719974598475973629569865207499893997895894919997777488814467496997538647384789348139746398989896290937411595795567952299889576739871648933695856859967698465489458874559782379956887926716698653699579367167994227844897937035973796928895738387347648936764864965766426886562799699238597677188835349958687757948775699968796878593779977682619988698798884979388974916788479417892936874536669748566594094387568874847377899788893857760778516459948582169172575655688984667885975775469989869994546828748789877876686676979792379578493772465862795561854964752679345958398535781872688105988799999429952997787896549784885898939958559399478388560492454952077732176939898956144766714999342953677927384842886887868736828922871658175769677958649594729629895949496966897865676594339575842956886895669816176281945834857989949477857852867683997444384976808529695365676835648979766662683317912692942486985874868341637588647588755779842998755432759898876397876887864898598986949922697688965245253996973688814896954878792337535757448376469847671674787679465779197645755888928974957414995583693617649679737766985962179798381548946355184620718799714579254995998655893347983546921689996597898765969767856255576997899735782591766877989899872385496878776557497769779671895982462692488868766634438993833647663879593299389771139748792857878799686786676879854284581337577757453162946635786580917936747988998797641758594863958396477845057661672562687475839998638583959849779699996988465394884551848683596578894588877764589776977997896925889892797678476263949488515555572375697781957498918698185967534798944585879878774758599452766888689659378544571758856365468916549477488718857779198869445857497249869899841679516992946249788994669665579248659887989856457819886275263943565785798839994562993932865387783944178998688667928566836788852277279728729886935828649999505273985644793948689293914976694685877474478469956866994948274848532658659262981677543279778739795659965976739839556769793599997399768876339865798545563766245775963677785883577758923576992692664985789489588559186948266688838898299784978855848367457661426893283958946740656189971154386667399599499227798469675867171660996828689375888986798499339698743995387875555141759944678637376378739704784231443899999978474545297638684818665577599756773198367852655897968147898787974983266524881477958965697793929707881238974669684740342897636956869779431584848484088594777368576687998145444964469767934929589787889777989475676554898433347598686197397664999889878738657647629968937337782689987948637884887859573741086889669888979627257995754438857437297937868769574779548296197927477936977896539725218934761333992994997586889998158675278988864557963596968858948488727797977674395883912539999566867346339996998746849485598998656599882989299954799896789346971725817958879527256483752935467685347857597989777987777766977996639961956195837994574949188748276587756766939939796527867514377980325995987967528729798686995495819735371788268471733586818686739746269888446399579782589613899573795691586490318356289456985499838645639974597892498543276486966966879966792868776996578894269288552678556498926776945999986743985965634986868497725797233888665239478188844425955716397378474986883443996598386878671788675197546595398275977868878686424597979679955619998932848878497503895939898798196866936679796486794185736868884985848787778958188589995788891599772988938667867162998876668774479694466499396671546486738774779278962289998386669784698438297686596699887885294467977675857657998783468869665664759978957941734689767519448979186495787998977396787985554859668477627197899684696997546299969687890756299278766989588679887638487773888339514181916888349982689582545965884775587754763984265595874826716545766598718491887337559766742795159884978256495989844446329773985368694293475787693866673699455867199948984845646986899265939465888814868482577670156711869755793949888939595966995081975541636448375588778765926558825448988493896434664997752669878965479955527287767839936238867757894494365388833568698889886686778772907766585646957668666029278188908686363798866928918837716481431993899851687152459596763647755925133868789248854267988545667888449084839987868793281578749689868577469494937379698986789789898485525944551526648396454969918483954557349328893871634138318976289719928998167352951489797798585599096639968798988956962333959365738669922969495989989589544898873835766345399957497557994893876998728659382843866795295962345477059698876493780367875779397678668129887385679774784486698864896092987567745194619880587185528166284792726399958777894749898599968955538976898768949829842994837746538998967997977656737979966564496686822147873842067299885297449174548687846589954755168454689886958764755446687932298793864699947780498798817188659756629659907775883594767865868733182491528386996329589497809789856982875849964861635887798493751956577459969883398478574953866917475983359919753559745947689549336798784996744688785573989888874188555284499959795676999952958929567563898898565853499675577679772894488568255681648197754829832799559694809478596267995788259979228985719158725698528644856867669795681896889774994698299389458394898364998731947359198748495427967554888674399467958453336568988439698589259989867782086375763998661883975986476827568888942755461387819417779769654459876318563249588726544499437978699938685878898769281618324636993922597664639978797478946576296838799676766934557559284559952679589199876779895295972442865384925836996952893288997697935482422647946686977899518966981784258386858976785308769995799788179297992887989884784997412878244474798250717638956475389727966658379983595469853823886998291784877786879868538639675245586962795589976596688557639555184755966898998823885844386174674586964779697338938589887497658789746575897958752533629578462957497195963698393886818531795587665579319594817248217285667939487273625569687385557871317498388299835598267584486356958759798939978791866949966896854434089989536669887385698459789788995799396855886983549697897666597965598698478571881796996878575873061661985798259668875773757588677393958688556423872394813845785132427888267096859888269977499599773955472645988636697358694378539691665574477954879976755631579966749671997686868939737685788649757859375868576775282852277836486985645767598518179779997993759787855714596261977898875479959877899844172333448576852872239578488565889949877699779578752482997758895818478644885265987786463664892989869783825499889516599354366667853894687835758496483554781668670947691068449106589972658989986287695673999867744643469987034784754973795797926345726539968349878984443681448886977142213575845996682928461407886588903786856368675827888999843676737498753695777479872949855993803769796893843479453075637828362099685647566195989614945869563987919257639759937479644982759567988485956599489764499317796259369878833819889996609656927988443696794996745594668376756294456469787438883897277665492967998697999598896486519493477569969766774836377930743877547634766397639727876158679676264883170579898678788749974839366937358658456688277576284958539689836758158930798844798486873745385868839726583636277946739788896465914837156776869888999677461738747787881867394482967789953989887392992974826468163886889539869455179588747739395789466285755869897931362894436776814629593946548726739869945634997998458365784799866964867796545739998254577026767358299566569295279869919696969938281773643988559798696855987598868249497892697899656897993761678223762779297115448797557999785579693492386282493872274927727857787877597465429145449623767656469767898665427646527361931559986493477260758858395884796878498678487856654949736986609694738566536888998944972176653564194889999838997459897726797995997627599875727276844483298887899729793773875251349597445585669337738798789833954327489895288899988999792392357927886988993899699477751989596585583983858686190897975588817675649549398687488238752957858899729787875697957666728686796225985785867783978934946997819648116924894147229899838833467794965809587173864469588178949775566899697847934945885544691451788757694374956178473175238599869763747909484985659205968395697925877868748389654689641595616899874489473499155646645772828608608914639569586874597797899731394782185797834794214855696416447683932987985538429892568895386779999686778976949995873798587805643497979778877968758974371988689755288776781682336816753465696438839769569733185875497597524756691966959385675164498548879976647859695756767345651947808655862993668517397996335996455997937863298726569894563576357283491755855469571856780672438898843472885739828776889687362874589897566357793443479646889399473984976455387964568486985935789683494769769867765783777597377189677438129794897757851679264748884368738265393586863542655863966985946345698650618564584949873879959234974399999229775699533795788774354791968572948759950865647799398869797855514298979379195696958795979678943583994962565999906634585856293899988949751777588733328687056178995897753851688257844276767974745478158459755891969594986674687739347598843897599918489646985835589717699429923768989783899975260446749974579785723795787279458659899465745787647866679977874877796783168996892895497965857067834465839744862769679474693976327995369877969353597347964655744685598599529989739493987834636747751947353964395867989876468466856566564742698888688764119969866765977484768895955986938847837258358798779793684597267768954999939938795569628607999599435898678655848963498695816188478569867733668369374499289996758969384894889379889999125539914438964896976497878492880275386863984332878893693855197982867758573757556958854783827836496290578989843744749393838653439698647986943744826433979896826824259036775543988022679878865397687381557334369374591684615795855386796352493579676644989757939959769772799591575484983488774699798557655497795243466652769575991578898656772598347929678994637856862974786246958642459366166471943274415444855648999499984397299636729254778799577673885691252196566936384807847969966899841971649996863899835751897988996694489508486576955999629315856806869766847795636386694888258789475367367788768159658588645639867794596653576652972966737568286368566255876786324351696949673496719748050972297689455650927797678997789893375717357395485868143477873896977434798848637478688462897754568947198668496796959716269988597865954864659741315958793967375806966937914899398966997564529836284267596569433198479085285671883399569887437784886795493498586869596828839470621676595898764892859585274368856997687937477526784935297727787478180991935599668535469759829929799359763388394997528825942789973268656865786864479772464956975969799389891859965468889982976996873389859856858252989799969774469873941149285538636328740653943636267382798959625945873867997676556441571855708458318898873577579759656767854967995811852799748198587498497657473598679578625787368987998662755195657298759594786596648853789375688927863397954965473596272797762754285289495719779347864635975393953868156979585457589975458575589387664898885668891558361994777784795547679859647585897777986764643736584695728846964689986981277375663766897999986896856466957036945788694969989818758538397689739458698659785587578569966558781537789689652396299243999878365478992918967829464483735948473842188967546696434989837698963699979785687633165931518446728979539929895675889997894899694176988466830473963945582585586889962679998988758889229666288277599968622826176666891698899683927856596887743486596687677726797862773409831559438824859798286497158177986691769644951978688982688987678773877578959064787756989443997968376683888483984465785554695339869655858999829884737788327578364883358984844954893777789979668938977992966687997419694997932882989916691768498382071669784809369771457180365618945992505953877886699796720484488957742628678485947918789479683979899932255589868776687598856568858789766955559614731275998592689985635974388829549199559479887468635699926526373977986777269851893844833762693524943676987551292966761547839656486399908398717575858173977569873644549798369697665794358827796453977748879883359823299899919443982857499527599266689863745789997496969886368995626778963498678883888778497666438788746786739978946297417499191849737888678389878957329356985969835898325093295986529874667467698989892681468988428857498374879254626219149251998569753694588839991468789928380987769151698841419929468678482837875937835894896598225816949698475889193989657454816579895565538829894998729238246878479469875816987765781799874928947329966413778542578795566488799538225534867966977967289662896575537655818876666183379734556586498886549174967511779878587999666889527678467848864464797659689838351799838523478495499788338818365867709889652754358693489467524789843699987687786167595697354768562987357587648955568667338529386881995599667538998575752176334671835856638859739669497957564977634857978976877975489868548478119295871734983979483747487998749675639689791645476476679948198799969938588553692999657488548754364358687626837656779979879948464293394197934977569978976678772767879486769557423733494898896477488696318949794966369177800658747476476978197999967688845697469689477725875998691989733899227384447359964854598886847787686835414873833589969867892974857579644958276167794779849388499492989895774986354492985686899573018489579999856425537485197675468699762338678796997799766757799485898686076293629689258565616765675497515794969946646770629149899396986937689596486819535447577587255484550747278939996944456687561984495479846688349587828887705049479636355507885686293996557947978770246699169774876997944984857916877878185338910782762258873554934726988887668133697578195294895956399384978997748797559489781468978694429482977924998491904984885855672369897657482852879965595879375790567919489274585883786779769857489687755562846775707967870879638686476448788779899577875874256787689596873975882446898878498414487279587733559289567928422666437468593418797783697694878477666677993759673565397875678732469429578474698855575767957786859676588969677876934762966898449799429873967959639854187386459970385647776597987286668986478659848966846679586967949587498858853887876815877955788968246296594868669786768874946851648783478439999752868766991488946845752218594286899475876685379748998583295186777768545285265631956996864778531776568984998995147969499763188246759587746335499438897578969436947868653886786298393737754355859894699964482149147632689587556469979683787686176828468497845096669729868997868598568637626257662997978455432375899979569639672966368989897588997455655758777885689584957859272752699739965728377987566699867869968565677699385169499789839934324857558396245643885483887997683461831489685485998893599337799951779416974869985908598987538786939753388789399295884387177285992823728894224247772856742495967468261195485274968978739559427964779343982255868353549986453492963574895582599268729759936999342625478642987779097877678897218692914899986499787685475994776658762896697689724965996447796946548989889557353518937989876571757771858635988749438647985876099775769997968828778978668368995737896248896896528694468382887258889561688664941866899697296871737960854643781873265934873438679956794478569859535944899989869366059553552866664806789622945665984684833843625867255633297164939678559798599888742669591881969999868577278849439459089787564849914780287454465889317847578749882585498953672898878764858757495485487775948276687895854396769693497137959787888989573676976646859526587862899138598377946845803418586699369475789877773825567684437887897795781978997595777826954536282257669869558828889736497376622863184481386478605939975375995961547997917929467798658688597636366382569678382566896555895686879993074647857377648253926977238979974548658258372830468773579582959185476857584851773259942983548049899696367956958407887564397768984828985189244794931695988417752888496888546877288987186898578355578949527267488585755548488946188479658558285558593829842329938255597697779136769193947785664677848974567696397789897748996939778871487776938888456597697539692795768947982884724799988689529988889789798675797581087945261977641854969696288324927899958759888373826897598999656349989833376698579783994486826986749185319493429486669575677767674372689883758469644699839798792898975384427718378464879978988753533599689143887786936741534877228297375863866389488826779652978593798847859480226966593965537589555784374487844967473880059534789787929695467992946889987788897596265545768581555412199263882677924815357748848871676358668979359697894443587196982565869986692768895889689226974816795644999355698457797957587978726952669598949567074874549275747212689785777899289724964687567579315793999958778325946986819789398998551543974456399457869946827489943597691688214339248136494966465408579945438678468915365625483889415496589448309879457656648199047727485791893953169368671845847847587839926967848966637494448966227883997689727948828798549659499986748905946755545632919499595638058739449939985948795697925797238843679574368998379345776693979795545939888478547992859991912843587692371738866766586883497599874926648878876364187696878776791714457388899767447697998588856669356484527854516227383589627877782727677248694867669662796883769587343494285347887898579887777387951986959929678038837234692717865498754983676625867583680796974945694516958147889865569236876609966737898448268556318842697869847386388794547354578434494399374889566849756946652906086741596497897698879748859859855845871788374385489877788855892892949798297986877274854692985796978747399988845197479989747579838639753847995257184189287689269198767935647339289976939899886876498327595199949833489696747896594875695398969795946553896951657937899344988545941937886945977598488865927896339140697598054658999699573476974467955377847674896297699879664584794695276555867936975579833894745559592869795039169947413239191828938444788456378593687279649297958694584516166304585919988946565699766694146959679339626138978995378835969679386953599768685795838248478848882978719593978826598466736656654868687888496995599736729388177386683994485632694746845944791289838987469496986167468994535944589738828592497858367735763569984217680759883399578574798785396758699997843584848587648386922748579459476862088449635378497638031879999088469458647961788725669976861871993523361973266859479753848657664750987576387766879729853926597816876181695355976545977987464574867806796987276635299546893845666787531567439965527879922986748888757598979898638777619794876833846797459497758932696709868654658954461135876893842686955948724949688793964876277779953197693488566838974964968887999697798718947684818768488777459737756998207256992496956034644657695537634742895886676749699599864299860488628695749236896557765599248187271691986874917742873369446883949177766437499324093818968694949961554719359165968351686878569749999662749454643960787547687149869765493699666982697668543766597569635588868993182729569687746937998578656729949464951244947977987561559678688794566669898769779665938973873966897769684597679499684873828289458772479988757397468389848609448125629879898769826768148787237878453430840766386767989997989235872920829273962988595587868619679369265797982975585998261995876295269359699638986978564974255547965314289558899939694383999862775908177696785898887929653796358547868979875644418877548879959436555889967695462897866899698574558688295109376892758864769768427956839924886087555356550946605883843786164368714787361891598589695347976762776658299957775961896875838862829547893446989668839637775799857667898778745384886554628538958753769968899885754638548784296898787846995296328849586796799576788976884857865687775898894699987939985577698695699558872676697623978485868299969655467456758849995726545979256737629566682386837679897778895655883398869788384984990863749746595838888819844927278816896782299979496389369696519389776349857552776775897926679528896348974648477865696454979597864856722888849978599797488668599858496784584387886652528569963554576295944659765628559679464644669997586915299499753979165295696996728588847466647389988899687847689759996991796478957899969782736746789787419099834978892989659452369448336073885869763333924614966286993279178899548598765647775959878678879688577453429858691775854469683985849188839863457097958733994479359721474288779788743697899994762799779938896365858869544949849447997876589954638598988562359978715896973459597892855834945823594787776279868437999766542945836377853594949697797695847388998789999657494787889299435669988257941996689876793858199516428488997788797287989967776365695675977736439679989946266738449467379729798849877643943736248998657484298392986677268499938799887782690999294652399152895488384669669326983843888297967269883943449965974636666976897283794349976679628769378699499745862553834872596857988799689387950454394794999984926379772694393488798938788739878534469573596738779257429556491496776559659642559375743971916558767846444156899949224467948287075199989989698793238622958869985197693497853689878595889652297225965586637234958986998548447367129759586693399584848693678795597862998358823978843479466868174850485429798947854747691786517799915996249975985748973897768890948833281658276628666965899464584786139988881927854976936985937756846696919568367899466353866758758728285947298966599655593387677749673639596377794529872778819949569736818289789777789997898777867683383995289936465814816488996485874977877388689569665836577988969886659699646557538699997333753939756785688534577549486529953979783867968975749568896977897649497319884973794779597227779267666194499899778868872768798847889588978679569957155998979798776511598334899532577188453895973386135599785476628288847833874578999955577473768795383898858694525774292745864849968404175819887361758935999299785878784933835449592989637342396997884892628976786549154759939787539897549698788778575557269330917459739486846558934398875841925834676898479989764893839954832639594439954680674855944885544543373386972785472736377046796392697612787964772563757667374687369898778867629897765543427764233877795879462947878977711986965466592875707727573779736656378996665598655279742526893534583536375165656993895757836638697768895869657725876557853666463355379794878399489997746814786978882973594992582952748837824938446548949463999449437997829747649676849656568876787746820596892445774479148666889486219847099566784988665477381697673898496726885368678789969936679988817716926799869136688793656777795466293396986872983378858459475486769899776688535854747259897716296382174655778468696819556676888989598239374699776998149556988968485572595495584653665918409899926276909979466958888993996875846665964562664924977887835579724927934928399658986124969772799375595821658275777536775615966298794929736827548698599874561831440558554988847243705237479549878467873293484846645068372679698142786786558482887979794358407594168874989526885999432938449646958599968799574765779897762388753944794919488957487887857697985924658392933976815537387923916889746135989997868302975194919555495358768988378776236659637678888628632898747796958928649667675597795698959977393996644488379977726995896599337467487282993279863637658347896117466998946997751548419476376675958535784174696774773424449149968673747756428286999985757487787796657946787839869925815889735729919984528377663799957858848673897377487854697365794663745910346799678525485953295886193574759969647997744237384563528957279579358637669968869738267947998468188775892599299995892578568869572584698658815665677723888064041088647937519979775768786315758239594629687983489455577437754752798755822888483563948746893775849576952943754879999967764677967236826328797657464486958935728884706878329777841847838984339978979644479824882874256789685995372696799757799196875474457956926636366972958717596679777384891333698693741979273986842849727838444935679697747975684647988577279885784898793619539643439968776985949868892997472269978428593751449236438828391567366337374599799374595736953758675798797699957287692099988643755886163898679459687489684547592565686567788969888983766967546859829889385889192478857996876978918975957838795946293679896883599777395788977829793576956558877735355177768797766799239557557674983579728867798368987595939879699951876899368454475912814895679391355783486984814849479662687886526894754836764986194081787855369849576984233673760445385437932798393898416548936295498574875699498945857574437789454295994414456869165612574894849596888867942657967678605951289255986798799887875798898324578328293925966824235382632737746883885875842892576665554398687739935949887859895768538997977489974896629137582999538755982697383759987298698579571595576864954885499789268568566896169226488651798442878549587753298843779777949973988769768873677469475759745868615575639586756948954805347445868979377677668655287796598376454779064758709139789789157667126945776495696948947844991847756254797864685496387786466795997746554312545833486978578894955699664464786879642875916747526764992367586579799998436616725157678969787498535833374991789477962435437749286627271557862655947053877927677138889489865648937986699919367668448298424557369929796446294758589369973947779848881687679884657890839245743769489889746978698196206768539445969068939337744195923675599573666875930377443487777158748837496543933899938295188438662886899395578799695869829725986884779636638994187599648272328524746899879188598999888158484873798261698987897975856549796969456872981273495988474218687994579397857178299552977468847541866932735978596889738983555668495779992986595968918819492899943656997247392793837462497998967454354778769748788093482227974899769764578192689066954774727389198454895897493651684967993966363699518769762824438586898489179388858287549433389637459559547838795886677837969559583897416965624895574992979687879897317389885975997478698733734799346848029974978931867649978613917615495188936777276747948887243789179556985657578867938849858296972589973726666898238697635799697975569585655988742784696554165689285187558988757568558703467946595748257458483786777899578979459939735387558673841998968787499495499886127898558795352755825582898989359875788892775368558851696333356729755677199357389496971297958865599261689789768694893891544379754496979847634937744887857965782398552946418997616986366589738955846893384796986714388599696837458431943899984689593469967229545859225235859585288599496874864827579637595564897586579931996463468792688764248991973996484972289957657958678459987597389751797692725454539665868458379976882681475995796795558999695239845289899626335766995499672399961757935968411918489887598890798278459797459595479669237666994814571477486812855874984734495556649259647637319478698996871964198887989519778399696998997574597197962979555154989198997858975688577677999787967697386799856985267659844349859593657987757537966325678565193842873869942749898477999469879237792675842857896848889536111276699935893102647494603679794664159955998784613684967995786797579774635199593223158172674785848895758489607485694793976748765947969587869275697969582827758478585753845733699357386278793317595444764179679972852758959792136595967606595558369926965536854438898946779786459996772857445968617862167799956284457888364487867588189865526688249782982799743690417178533746899888948973688794746678763369979476699779396836456586893691525557295094649897954946873968378736256987882995344794969727599398670378679149513947978675636896953845547688985493626987387274959563692129258879968113669712889966458725848996392988848489599865599712637939665372675094578346389372861475178888934798976758938679458888794448794838964635769559988791377577489886954899698437798987749275979845856687743685435961788662369652838882299739197222156648955724348994436687346843684986664946824288475283659689858996468675887659367994983969974386332878284952853889578870957869678477858375088475998997587743591955577988492882329499699986753272985798835740859931764852261329432779686694792491359697947613779174799799765788327457898458999735688786971787747929588389897842969965739196155327388796328966453924468359368463919855958876739257487945784682867988554494684398786549898448858286476823978668884862766874857921978861664278874953546778737815567422980448178553342837864861672675279872736255880699935187384777888416589689929529887354597343864959353868763994838827749698679763788158249656478935476795996798674497969384656497826386857664575943465972412764993389731658751278486637722184983896599565583747098681576588636443968565959167815945872535587786699784876779389618979917969598868564876599677947823749819893363059789444776677776556598316788999629758185899587749176776789419827845872257646889895965947766399946179916475928898869186897873725384696679689976375149882698664649655958865989676849496777956987777496972572556242367734713461379471774679956957958695499667478885758056095683863958597655873939666562261929969877926999922799577578772876583967889877927629269462611929737951967749683625656487674932767944559949889523898848275632977743329465997995862396995935656487572484858774968738566279783759528296796855398267746883863859517127529789853848777571916695834755843772789034795649942385864436994413957493737368388717558946454977699573882749882932647854689992583577599875479919167827669543665387862974769742696629758537577188522959638977694669979484853981536636698951549875488957623628896779658589457769298649319847572659738797898879894735805474637578858481668489977893727836876789658847634487767479979142686688866537767548974777694583798917584889875793946489858683689477768851598679888936945639979987782748842239736528782681478569910737863489655684363268888849788577572399858695668152879466987885173868697777757386449877476880788969639554636574779963668567068259785469308475868779736254796876534496265248587982785285278389795678899988983879880975137836824896097889568357747748647655979906761925873815938286958359573643965883976307468898694999319799873896838678588448878038899193376979879578155997999639992884818889986999876437895246584938254755914783339188349621174769798349297847372247595179379135389921739476749789627395788549887957458577775677465196766855577864788597597888975988825758546786267929336464514786847929399993534896716978996412657876678825448258458278599697267578757765873355997725357862724917281768766999897988387997889866168885838554669968895898797838678989862865994731979672653886569627558996989669987889717732527879837589535853257647498958957979964977735283623696349584876594887829566383536696849818859453688777993633987585929979228883763498587976271457179881378789978859374765497223842635599877758286888829786568795384392757859558496237797446977553693944779856197834860985987836472953595788297199787696957437994384449993426977445586354999794647779877947499439974581798744396358228469971195843783996325493614549668858488347998894967695798958871693738863697663769875428894934429838885778985313228583048759575036736868278995914796494764556946557978998834199828775156759465775465295430662667456496742379989526958474383791197773395998548894146896996879957557877694589581748557997696717348357749442858276987322897935993748996689988295573188953766888966769685578659935315794287977876796369862493753838637693968349475347974597967678642755335481993685696786887725256773969928989996157887569499976967497764633355964999338997779823896979997295039234129597098943956945852875949515278869069477942994863497988989735699849858613449795455788958988444828888388887946827757836758595641699999558142787937779447982294597639787952988764498779949859879573397505799303892774966688866864688697836999538125247949794855916669566959769189956945335888749968998784788667698395299295643895770485185899993326897538348446963825397284995698837597598766755593878946563378865934797967979535468765378735397864976399599794466771798343875664578675785429624759566592876483126786629808493948596299892395477492495733459559758585697996995979461567778995638622766377479901945980546158878828984986474933867652668557386491838866125979849361538799498763893879389987838147898228469868166364798818979446765548859917169446921753345933792737818997695264864617994516623764949889897964595556859354359649637195499353729247894197869289551999767889678668873593897541487854673998688684949929884898924974595669793663543497475544948774778599958729725898822778921597577479482198512616877328866929758278523496949767797789887751443977749275459962659456575876995482882552696782285194436359709499657839889878248818456565469839263478739296367964954939648687945978477668866677468795787799969959732786819746898763488318336923664955166389596889186689878868799943384959984689979568938696536876552368657848878171879776796958975735658439248683929668882878736351889365316718847752999967785368169996338988883738768392669759646659798676749879867428324484860818129968769858998698936546444574968989874477438587626722876789834571576874398996694637910387768672669558523579882559832869981959624165409779599836356487669688468446759959759075558528395695348989918989878969979589707678866278747037789389877787364992598877273658672798578479669846535887327899388487589996656237740853986499795538465547562159494272667559378294960984591989437566651388654769783971778556949395983949874944543862588919695598888302998958799989975226886147699789844427568556476373965458585489365764765496848955976764758756659826288256579176985645359927875529675956314586889968397369979793332868538563778294957774663878808394826079514665685917765627259559869745428926757956944674585599548534896982969839698281978781854355453697779875448685975968763098593643849294484866759886717928596499579867989296958661760277968745661744579731758472659835857975688226537285488474989731275842466465474373812358778594580799598671862297563666769257689596779735848374237874586548498387589663459665286937755931259796977767679844784875685984763877139469199789683795335269580378979993996569428926864753698867384796765426499989564127978734627504659941898156647878857579954998976575392137374889348766966227928835778427756689697783644399858593867835627789358747943758988899988377988281677992374652924869595788567385946429449495121496469817783649487858856939999677745257288799646875853669233893745985486686888977542546979693989457958679594578994889846096699555539855386279686759578877787878486771091898678699869556684517564897658767778944194998244798784987869966076837836988598964777677489823194775946299779695797587337933057639878896953438652998448616499254975587761277959597850798698684868996324326796978348441678966695345899467966377436798678477783658777347369754579443686286968195667878883748993874645756169889867789579985577782998861891968848734912686636594842985738759798374887643936739899448699688954957999927889594843357468582979529639199081574669239399486767341889582767689966497624796682376946397751763955589832868598866566733647646872889794373185173459577458788928351657938195733979379699699366887827696597551699263496958868297757698785839996278729949682916666965776973656386248268884196845959268995796976763246798998415587175693377864832873775734497946275552899583738857336385057776297595759988787994939367585555944639342417915788694778969876684669748555752697352587655774970089795576787435465275998948762349185974888856680661899229658399259966779916497059899999985765487887388648979949937595598695647258787813882238838636551677872987698989485882695768296575767928538886549695896499385944778485969848796698465689797387257865668628553299779267944848395135493694418988498759589785824746359739501775579788533839858457739569217787899975167987938768678155836626947472675697787879988839599697797673939994456763178987545928866757507675688484957523436859378264497567358356679975499989595868894199807896587594366789731374958810688769789969595839414662972366379298959073723795476678597948997559759957987687048687182277313663889967868919747547868534729879469834639879288489868556989435563775575793759466858915474978424788938784898886764574978884894666216299979791565396389856929956232366883745980842659759954397659659576977898757266419798659460875137498986347177656895381777495677664897679679988999689681149377769708616814289765841235476636997638387953876746997966129988788839742933778764837558391663287744375999956926998599837488899949545927754427688268189877563979069238186359788836697653818756797747784569667485945561459747898926249567847768669698599979676888739627809841628672359287838597675986721876999168878971897777896395157193738476962247950754587957778989868949296996762769693553878978829358895898476847639887984785689587695972659593779383567564296773537785478695618999783674976433733976377818336867658499533988984676986427696785773636841979296866548949293754929747886887156689799746677388696589365957935166942795568636898621348773497599967688696477996658969994723451958869958165458928959458935698596788263888375479857499767976947574996682595696379994728475249980595363354936597526856995877583577456677874599845879878742098653957588255478991168389281557341989423004778694856819893959626885467774898258787385626678878957466799793694659374796999779561772577497043788360595667995995954549787884969784868897576995892589278899247666725968699749487858667866957582934623768468186218658787978559376982977473445618948676596877446977949499787995938397772626664919843256343928637257269698579978999419893579498972587796874853692688577835598891795993468885367493455798668882684597588449683568898587714565268252569289773796356778814598097776773191685568699258747757826487996708678859789078512699953878344850981284798492646952445839416956778893397242928577378285759623795747296348566244364974352779385898437378685778822479989557297586788277988958689291979885963718678440336597798929667749868757528673368535599595753428663594857788889786731495664879888615568766889888604859939799878985972734949769564939298686366667368999397690741453788799888957859694574188679078777933026437968593385858975905859853979857767725973858749978589756436770997567477967188842279849673368593386248936391982587686869578471943676034079259276959772756552195094958749657779854882997834959789678299878995681999666342594766996855525366537867478699778987836758986787968469599627871653764688384253635997527878559944878987745369756568645956272747985081974726884491927427653695709861979876969799554957286499744993637534948667677489432768228885629543695716575557885962996486965854868258978978886876468759149147946756967559876978297860583635643898835924396598546533888969676255334997765520897798647897673873989998463796266799487792597979577669584452683286758554588296272797689899767398951987594888995436994689713479552388847749459987898659448455248399852564787376726999377945999848551977377566979622688985997883979797556224698487979998267158317659591678888293457376786947658974596956978397387694575787633973639241483628749553729699636974786899878895269735789898879597628362938365868498965959975768467978849557176578099499959764258766987745754978899438834773245126528748655587586875976569787983725754787984487668974995727734491764965999078563275357986279485495462083995396819779606898585986956237886540799279857839693889852689699179428885979664494168629566813627294576861866489534814766339555759239818381887689288229927566355999897647779686522697615798349619498652332951965739668894418273657967763879566649719967419997784879998347383878425385898166969187835458485845931798469878977474650899865877899848798815684674083468659884509275438495339647194228438627654791997187777639285972177647515483758999993444779114403688893875664756759969394389398755999775749576939476864677442896323387945727856278237968913098091489998367542895899479539885353186369386995867449846569724139497868977465593479966187397559765459378785998855566365788437494393846988754959883514998757999299870398981637355275747372555774419659322896648198823378465969675244239375969643787275947758572448954364699789988849439399967899177773495265637698486797583745948836796199897276884986456774175754996576739439816875747773783898396237877835843893389069742867798493848835449973756459499964914788899734794779594797689995899998382636934386899867538963799993488568868145819678629286592649892536279976888171869997616687773694796919895488793553891849679886796891486189985694787939479279989699666665348949899687737759794575106597893599736979837774598984768934554885869956824857563248394667378879728430832498199686819697238664186896987778667436261856578797895837889991388283962597897457985626268695353284426795585217646782998924906687496999416167982995419988969884858985699976187897568893573478697147985686583332988599694869898928678925556868777399989955896798647743794757938776644993286985968448963595358389884837377899969875875865370466845469297487814974989693677929959876431694978749879868337799718978813498279782887989577986489975678925554689367898678867557726948588882838625155885327667535858998859779739643779676584592597497327737396696667592966896643385789684324716769287489958727779485369678577647998398849955489485668487591958416985337745594767695658925476765769854882749574888891776864857598728935957864986437356928289679979727049884349989854288862669989987962885426489993148673398873778944678903758874593876619367898373456989789858948879875943773766936788556446805746634534775355937137328487327779839808987901476679354936459686486777088393528734976887946296749289856827587999568989586184689996127762682816487668459699867898785689469865777542776697364395778895918784583998998598486998795686879888769691719993769649845497849235699999598424555576627882779765056877385457788897894708876686599639815695968866995567938758499919638877997883354594586656674676391642966409583979495765887499687791985595999599972788884999578655627697887926499854668139935994844637283918949749596981669987547284244477989858881798918266978467373775986476586747419699745529269593999471896954344348395829959349454486956980997544979598844981975258767899666733128977267814845799536298699945796875986547144858448233572598898989794977557581567466883474428786829576456505703857686798378737976444654856883599467692239734499576996936495108973989874779159637974886184567586956347359969569295888379850778950804306375889867784593828875892879487749778287576527899821956559624566598549836987526446672665372697869861885949993867894574896829994372488496789959356446742789984987415588987795522798666717954255689766791489658398796998583047592989863464525838818918896978877344879965268538582749564385769874027474795998896595972755099482599999488899468988528979997476172879579785958940876287271278618895888977896825945878999994626949084677259694685685994967475632876993956724987445665669999684686949936198965798988995292746469665558559671598503846989719470874981529976993767975767549699836473929592561779767565599857965636489462437849679368988830852890781485931958688985798393988759599486754776193999556318648681899623369783959649876976486857888488985184585753483868576254368665398679657668559854888794359969587668759831257863992827523779847699996973269567565996668975691859364789839962769893945387896973686343796289549996867933958278274981716963955594499568989191884278599986475959616359579436778925934963889748818639575599173885658548984678517446988752748567939509698987951597399348574561634789238853985489738317962598879913817848868679973795848993459778768918674759578832272897277957541747494768767499799624274788767973559941625156257775277449156474284767655926897689694923837688897925325785746685572524785828645094884286766913672627597885997367943936654657878929779477857653791467547869175478867385674713996927888769866275927793398968336996466728936329798279667568698673650723799261486995959844668849938354359896185448655691636974874786248229466552861964774378646540928986288898468888889564893966389867397177925775963696991725968267973674758685563938898897965459338058273757698548285777639434677795391468977198548996885898527987849893355427736776833328732378571922868457277978999598999986846877755696563997766913154879485629767676655765499278663143862787299944895876685461968678478949953966598769492339648949968295686257622975649728945975859763246779847957459737858479788848762766273486765587896997897962984599898458436897868147994497877679791536859963939396459828769439629998668978454953866649778777872945837244116376899661676563694898573364698165774875595689496256999798284485298964879922663686433898962873754911586968796991727739731996549889636737753997922966499788476687466917673565577694990189797889836797909487989855586667894871944524907995867598355768753817986799779562928998997989699597436677799765999897224965665427929654897888768893874888397396888888788763989336868364566798362366993644275682718998797648596793478779415596517407387983998936669365397279839928365458994304775959494479923992195258799357393058989927995538375698777726925047615966973546188893947588776984875928385694694785854529563677799999582481647698865878982599586678787586289965455846678999668784988388988982927757879659185674819368881867688862866696913457297557127874689483593653344177759694874428979699954379583995779639866887955823376333889469529974296775274746886815586928069784488776365868987345578897468691245259881575539578659373889996999648657649968581326659896562537967996788833988698855457192774842999792920794866669289536759778866961748985768456489726678359449899896693189999188897659954559648423965417966969878979835798585786378921397578829469887376655892944873849348782609579459854598178792987753879949533597927997896213355359967879758748597988416814449638637945598924976219121758759689777749979595278579764898535947656779483755126742675788797666948846859273542777889579698538989265777454451554436371899768585969899694745543552697897659782997639736696923998589942422487586249692899789668883798682546466669689541218872879969862398278694967374626539737838797838876893780559742629845562789659843358817990361964674698459985934868685999739636853483063978939825615879941182883977599958793677274779797599759966793919666834496507437974688359868638664979950949186652637968866586987736346958459468232297866256842784868634176988526445484996266997057857389877487758256433939754488419977786829548785795796667759389386788454198568974386464726758787787239875387899897542659979758356454893865785559859076835289794989965919796773986153959966756495967276786681344966747270536578184837756741957718959852998448948696879469236792976884478385995572468579365295928898966633994486678488868890440283971999367864892892872789757972658747860937948437974473858731765746699478398799857574897269728899588835884396576168964848988758583027747469429266759863796776959898345980876753676565559356798487649969857128988876289473556577586584896579858955869669727578834971458993354489663398958739564809883648274872698877594899887877854628996457669847844699089958977346546345993395998084988834835792999227789867964966939996645559485935229993451882892999744844697768894497379368744954384768378397889974456757589777459455726975457735834778375445947873531269437835727397379398796799358971879969999645978677994687648396889679927859776317828745695587765874464836844778499879765166495749540673898896688649689689179772634782974867546178987719755887566776669776599726475398592922459626879888379968797893249853976957668788386865999197957893924995597357825756525735997598717556659882952378776651969692978897558577697479858887485855564893699867993929843444399857246675914954245771672565677735982947984876655468569784282488455698796873778616696166797468999923986494889838999977429444766433476865294728799798479913764716915688556742959944574852898479957542572546499987793757887787499958541961148267336456372751958161795786648681899128878357686875693526738758947397979295287997997898793877879676679687599508645785886457979347853946277428176968913959942989265374838677498977846784989959274327989374679682688091389741772734327619997666638579869549591897644461954887899365677758898788466818431579719971858638944958628658735286498965966294893369796529834515195565563715761770876895464975778566579939697696336562435678986797785959345976667870145369989991687876599969688969494688799966776378989890885905538445489589782566898668272398345754697685165755777788865252959974972798829888986798718284475794977675589979466548563459774899737487619879173492978682645576949466360869399863686672653775998664677993968999753347857988033864998848886434787996772672947885896894238545398624961455589506339983639971833787939779796798791678647963685956253793745287797557596928720570422589874696788668729880896931385893825594988729799983686991378883975936883985459377749797846896785586365985982586869865685647698968057786568619675874672898792754971686869677556675155922849558678987872998987986999949748489997939573388449398378438693188649098977776293367898546995579395224187899789456468778875586299694938998769484943547591738868724138697869146659591894621539722378885479696146837564984636477863999829587796864528356347687656792458756428683739589555698587344944999772934346959687575362688564588675752578877875896883578678929578679678796798792578491881998595945748899769475774885454379675898858884787759979557918458666893648869340495481599975687976654645982589996958746785668866859252688323579457179939846725888763799859746675886789559737978473684579793947977381893499978884058344929879936554979755889648339645987945668559466238375657467384499678789387558646274999594798058787229966786597469688759347799678296572168697675435898651669695639934647456869458623282437696262888858772759289396568648984979798967697704795998868888996778934799878938809596229664494795936499795459238861799633534696959971934985596145738658899536948769968847736986993749956697846976647998793778999868436691641599269757967877281253789289755579587567788667765039349869493580776869738585982488989297259768898926786689813768627987795757988292769767979897593858822386888995585694887372798157588628667673953974856935667995697979362755736265298695899747787827669642265666726797559499948878589776668473826393588745772996779989858835518998758427817289678855449458898936627267479779394479856983718878997533458465379888869356467977497985549563386771365153936744787326538738556895776468917128879266625878872618578636997694718942974468869741484438769651993975859699941869997465586898979888836990287965687893475699388555938948783789599968852786993869287375849898359488397887639997939518587696897448925717773629499779884095733988989776997975945265499236999885838457959877265686355669599777799186869782997688362789586627264499873756936441599966928948488658837677839168977697688966978868757548969087897365487088537488839758314577799878837277934643993889644993666717546989768762689788889655997448337989746257737999279738354969829738637776856856588549945923449888729687792968568787944189927749492617853497958693915598946966877641033440886489274782657852798986838769888169798375977598409514776469336598795897957794642592759379852778988767754974599955474873577677892449617878788779383487789949764849698877478327786999932806298777988158965245799987737434945964889673639858788867697584549798698966522755692339379976689857785951862336768699959985771977799999667721108277779329392967859758359451486787966767264684219643984739938318199675488967647799873755766278755699876497694775841351785846970559699364989995878277678386878458684984668599459979695987993388641857659758826356449866948565997857658363655594596218807957664979457288565734492598875369749649979999952698862997586889887888306869889838832597568747165701386704794676696593931639898993395485667785396997677698847599499589698893487245766766456357879724488375271869729888987873876082678518541266765297844604138384972282987996446448467485799424824966388999528225677483943973503117899448578792831897441357979285657684755773457959492995866976995136522866936187646582926556943698699774854917579598565659749275671988778788966792837794278975636769876786545958156446774649777922482558786779561965387268698722485970679479979159895774671996898596345999485856847643694998865345891227887769569685768579556397694494959868666754686898849577733729548353665998473687445328888492893664136339679896789157955408978472786788485941699583756068868759518647628945952976994569750825958346838546542469874668387411563866485939558573779746647429827648456897986794666693398933739666865399899457986679598596614598663958574669264648398477879228882699579791774996697859471846582539152699789819495986874509183849559937458675945876438887671485149679698333777469999978567369467794884597398319544542861963453749932596878798183919569988719388835886688977559993975267792298986587669356157868548769793651379499354265578927829778286774898566446984439899999561969799798719867467958933999268667878241993966236684992791564168699968494542468389788983251856693987875759739495229892287659799335853596584597582656775821768762947578119753288887667498862949997938888797647689686763198994651697716775375366877759737694730697287446996941983966922835379797674736279997673461868978175658820575927369987772796776836751717588704876239786995098988988964886776985887662638665262977976781376356689556918535979834898576489897292285895945268756898858568699737937363546112869577587384549698484293996785776178295399387689459877587948833968974796633963989445885777579074768653887736951296779457768791389657946395367786559776927852888775568649984568526947279985878534579446797647276789399468669884645788672956646396578615585346896736986982979596477785856349416496579766889692566358955993905687595964423443637935635991995882892859954845734399854983297987998154667064756826554867267637497838968934229957948987848568169382835778957640894289838192988372495069765964569889774569979794996917946495448679747357759922775734952209857599527368443978158639719657294648595886334362899888863939781719949787377691395735783146648906745579825623274228976775338845937189257837476398939936765997647899453776339658946377677544668726576824954679483748628419889185386368678995677268678349599463759995273914369628798992999650352979935898858598579745957637622886623546599898997614913753329655649328565463493948596644799828699952795329706746578677962949156469586975649782858627057592789526179496678827695684595364868762585777895489966582755668954389697959798895889438332681683493734399862692983063565589776878748979976995877589258978989759962567764887647668668368384697828286955235795988296869946664956146573339834484767972494756985688857974810588969464356459685743965764269178788975869759999984938956484853946584957653799929936869988388769718826994787789078879937549997258467360989897748428944799886788418497869886311476384666894368249959184929340278247357852689787499767898429648839898287997638274435655958788637799000889859895759678879680989657677777868653794919184568689966277488647588889878643768988797444637667766831859916849379737638747763689544787747462875799558356299568927194971614877554691742717569698896879856679459563876877989747692649933937579417996328649476988569959866969365873579688106387965889765273796769854662987999864278329669718874965528799826596378786768498891848835785966498683774293876279664993487637799567897574979577764998727998836999848841343669439915627888239368873697298795484849694485947478319889047964688488893938999858886429324495793884686818583476998899798788858825775843782853864159936668748677218529593985596652497928447469672658680899795859952485645899858979770597892681394218862914856693373396898333734547645829999987983823796289425775887483756571673064885995768359494516627796444939988365414858444834977941787675226456968966962717758258879883354426783985763368745991239635799849198918748749837889687791982558657949970964777195397649899459383768875779637972778342998791649773743793170531787386693973365789447179965753646576673576677436756358897396898262999983692689347494557696666984666376536685483857846747977957755193999869985554447462575126719579727447397479879948454778358655578779323844992377696998885772686976475239657665768797568638198867438998547283734288535747165888595779525584679885886899676878918897489994935952279696849623957968534258985767978681889571498464468668986468543978382379777766959892579939664977779395949538697685653928783984493659749325182594397739936699614713589969328636498979658674984574999778597699482527759538446865286895267729574879866628759968935879855794276889847364346863714997778948695698958661179578994797888886937499808587965588985496339899685897888976725953966581749698996579297695893634499886379059968979894795691278456465279734349746653767596695868989988242798933838967912116714511448027448968969153698656944859333987939897767576436997939533897546776683895719388307867437989743387456898493765792297996977848564776284764767643898985554659589888159489856578483588688746295568396886657298987989461650959788599699904377456954588639579398495746459782197954583958347352549896979288967559475990265963868558768748842853899366735983956685399958039899386584398698986994263794798798898952736669883894799745685898847786845667983868682897161666492889214989985873744682799963494699794992679237785712864876556186684778629677418846778703819738478678755785768827594294546999966994928726376936869587316474945725366657924377849958847565985998899925800975758856538957589351919479659576685947359695833527552562987844196957777754688698599585145997698787436597972169909986844569693279478987884796879134428288777992599417973376938496987988986577593898837847279677268882284997968428965395113987687179857484642889486799959479394987789257776115498127759738921594856578728559999788668669648636199817767663969888586894836766684286488996946988380931776799779965693869569868842898758982967851294766879968887686787182729223927561639654829839773999547976539869693577716758888883988576507978669384639549465982778784639678937751665677985876809386291647839279982273733967677354872957862842786567499688918964346282488828564489868974395578498386831699677058585978698957859789141938597656348823265595738697868812973875585698555527837954686398879743498998986779667728597996987746788678438839883867939869928689136985956967984514863444736557799785998788865288946735879856499689761785852278569674679995719677939698976693339586974384948992498588269446977596858847369956763858257956668695898746858697786967179213864363773996934798629839687879778916594753727683967689557482965618894497758869887897628466495497967496996989456655794668860998976396868344759283938995796887818589215972389939666994764724468658755976956569674998917775579886778749763985686924765739828469983648679876879187747735557676596364796986964619697399576384598628507969595941958837495897999623809873753879894376984955307482366529879659313644792899699494383779765984967575936776774466753896586541539977597996267364999976669879846618935865344576687539717978985969558884959894391572353556767997283636299486088699895757588773978756883388584095988787098367265443577494829927835426848748846652607789738349388572494978692226168671389619972998969796586726473429864847673889595464328586286557498978868597487348258885795997789975607732898773779795597981774876289967797049469788597958688884766366988651786851758984619899594936937949654778172338778466538785581353999277825684357999797982834673965758585358228225749965868889487789465769638879772666625863688967965897837837784285994579736257984597985687687345489663634549777791469866359487826269397459776594547856577545761997794286399145966963798673788894194857885938999243395959429859556994316983583277798389894869793259286378782485599145995866984993573349889862627465296589889656078737035653768879482354568439643755669797494895856577492479699719680648476968766859698847477669965891468818558687283659769688812794639865782723195839838987574955966761875786998968679754220279419784975979489951317966663949519698755776597859453656476987547687767859856891895782979677677698617728779434954221986488327279569155777997785960597345561878789883797696827996548379659757469396989998878753754799779849599885495847574884269578589931937861762527799833185389675989068169380428677898773794388476688183568989297768488769429789217257999527773889792899997997915995363996797777618554699897569778899689778659489797458168967984669789798789386575999787488336846688799699235286966576792776538357678536684181869697653764968508488683828280738887398982948965566978843989878736736322766378699864768274879686890878826766889869879378567329779269579688369991576675654636299996977999687496797946694152997888742797988749688739868466771948841839788917480577982475191623879378333318769999264199188689889489592886994886787982983421889937287755846575796875296654975964649787554779373576965887833999564498982979978576794346677789597333879882857589924873738895777018855939951365686578789977663599958443379942967689467666845441875858379887969752771897852542799795897995899993965987826508458782686799386487768465499779668868226936775997886854756939146748787846778683866778989639364472122893793598459859494495484196882486984758975762881214557784443985799375577959838766994466869964478188948433766388999764798299668524998659849437998449836298758548874556957887896497699373657488939958969979867776239978798426742898471676679799867996353879765467666779999798704585668982397557879322779556795689567358476782762696994896627596717937677295786484758682799695788895274594658358599185999463379648697757675937624487118246964694864867688957178716073753838587716969894614755993949968549788885895765867998989844957679419846958687544863987364865159868639836987895636169777969865895865788182778387788759438996878968588585853892486577485299727148086739639976976615845889596497777836977398889832998689253799796949728328987985729799498924887682598599759897787539365789954582999658954054597947308878898398769814749886594287796349477457999575554974868857226967791576857988719938845623695859746949599888447886984643956971993576617981478896739864538687599775649372868384358642962945887946998992958917628773983360796871979939276957285545565678779646759894846883396997559928444371916436337838895929930658949683187997033697824924839835275695784256595626776996884336684849287386566663964437883124264957583898999578867357887968205619697297373985672775582542375099899935523398919757261674667488873477536745968958775664398522578799759756959992383886865683279179765874475899561577386377549988771566768684685943991765935847846861698738926654349234577723869734134989678645872683539449679577887658375953589813868769987979997716815899477973592977886498877574791679978698848757786882978946778995989651979959339397856776376877868479979979461598549892149966999175975731550818371446541685412996972492448786697359879847269866959916579276998661873584998695683995382467449828578429487468575929579855967914746535364879628984980367383738683494747666568987889795999875687967884628692697928665849468477416289987249644898651646763788447893861494989472874795866846425529234596779795670985545658427994398586898862834498735993853788975986997958464873794986778795659485479975984958985732989575598576669899593957793976759137886297696915031941757464267536867878918997787589956955987434521746666565985365699995797726663662769925476976796897583380998673494628988737644997987972847398736925979998775865998824799659843921553854758684896717547799767667772482698589973589885475338817988955599657997988588438967279669856186952657932883477582937697795879267859790657968893856876853475961144985436944918678989877768885525648299475985970882399299987485876954695844127799938485897478888769449925387579899536779489784478889579375789587849878382569688569352894843294987533795955648973954386297278503539515496624189769536962994527666669945577599542846337568576149965449767575749636947435346357394986658746348392217768386799571929798359871881349635883859470868588968919498826995388378987589394567366696768634956899744296367639865719639768985439673875655878471827499448792676567851646862695669695921510185694593967735467781842593676638699997588286418883937392171785388972676937689673941529381285879314997689691991689978364986142730748978857663743427842939779858796599862393929777213744762688995998356986365376366376958678765992859967978769798456472949569646988961562472313438695892989497529364785799998967559698987569747576453983386977849497347555456936797883752796486964256374731191999766739894657369785899968297989024585769866978593885589589894786927825584776997713888896746858898765562414483779564966724866273553949493166859978835838989788698628649363668699747287774877836572797796988357979796899964833858294967793696859864589368969869696799956999876443823293399987557852635958719579954223569749996298381926819629399986969536760685584466689528692876798476158697267963877888784846684835458249893551868485836537798847668735689363869253693878792988485784753795889939297596588678947889878956888669279899565498277628135828628487568318987796169688772409826693597257939878349969239771354846439976986879357388976976345753884478548786797799668199497597936763764769376426171767576436496948833878769585629246568347816876648845779465966499567117056988951763713977653577739326749639652946383585595588772590633731798938668188678928757226996736988296979351957755476619379883291598166934879964671894688669829966765595126777557809485998596882776850915629644748103070499399376284277797273756794863356595367828583297292982963862989597756975246423265698657382696489689595759994884797369256869692467948367176537511967384861861835464989875989769586786366744669976977619719589944696397935866368993266184355443909878979749548789792447387544283396243732045855975929681737837524983436996368396495683999946827438675796464865088869985769972883674465743479988989899787872395396988878736798990938533497866995466995676597168477775788849952548955754345493968986398742352898963834767856099427837959875276954688978933479299387779945935359444586088963388674779699795516758474417952772399722635972263854567762955418693554686885398877376598686848784695829597994686211898298891966427889651456934363945857786379769098736676787959898769590477776167672834526744640289639778889686479337768475799347759254656969832483962626318345696719859789679823984468984472039459674572391986992825878558966794365858599879874249588764962625248353886254388994458957574394787577584969195497809936235876699662687398935856486839133589597781768764419594798938798947967685695798775949991997583884662334565485788778846785771257987273596681829996787439966769934999856988987977785784897729376973998494766764898897848188839966212679945993966489879529769987885954962577187893445597869699867323383769898895871932986777936375889199784972373814929985848395876649977617977399638966952979976676895583147888559498695666498848499839684856275670984567366876676269884523361238960827496782835866978756598876599948764246483686375267127968667892877978946526649295239695968824969766488417927843948664961719637767994379647985778478469188749268948775298378787551977955789880847873985681394558682777468749679937587616577326855998495755476857468474899866872983919311896234333978129478964963577368576849343476837799752667991939966397765849672298479894977768869158545529599946992867764128659818774987499839669708236979744897698866994796559688644599668858599659369660996674786874677777494961788752675568377989197938737539598837177853874794979687975764537962938589556586237888385729598522868277397487857878868589957884886773799879666948598671707148390958667749284968935386999615454381488557868595528293845834998278859776499987197583695633879469566793597848586777369818996996778697195777467595774420459924107494291299917696865988396389766962373639615877387366486569668347886616998979366938864946468373855667645528276829778847783323529671966661489688636877669769869679325697494984979885833484651868771682565225984737896986666368839256365848323899983968758978968639546539888714196779636938765646727497392394377547987158959938566697629978844667187975133943695547848634970563999499474561385654889427747998838945534699879577846969699448977364692942486360399168759747997892467968683488392878888486427556937469727662698889926966547479632757799894946553987867135665826444195855286093976799519595179569638869833833948939975737979977927697749898426786199954663499576839772509634657894798979544984858693064783865898199969779965780389799769646276769458768699287835454429957756869956738386962576961266957289399348698595698399966966978649858973676994899168657632796819454176279335987758816588948097685898799989675279169786796573472689277299599484478669972266586988978933765456459765565965396197682788694572579848579487766533447889162939587939486362505984759663399669789869957957453988272396667175579918971186498784369847599166289973986755873666496996449989646972685438395667878725296964579967979998865578562838593665214493587097588855598359233795498855985778935397465678889879582996338983751568795396948588537882916698793951667749652738944447586879018926525257468987959269646587649479489668395597459571958679656538959766357949689968927796365488864885789878865897989962818783685947615384787457939888828488539677687776767525637986428286717526994999389636998678866346099958569512757493458823946436969994355799937372334755855096986496978589678248464958998988588195598274379404367998695574697649998491996899515942977896276406018997868868469787899526785068659374312929248990986975560964689986953879895926996285649897787795582957991494927845788997499630298549888655969399939567933948477866747358867897597852949736890969562782506376946723999688989449894595799578585849757495938975849954948879639879998655999619967986595829249578661646971397986479940596062553145999939388786965687463275768698828946878695668587962968775743999373862889958786779979587984264646769989797839678555759498939542483386667453895937889997881588764876955589997336987928498884979688223248935776787457695572677999697195450956469772128068328992188177733898496797855894779199797919825927795693489969868925879998672528960892686763154732888785248849647997671288387691878986795987446368898648875986336476969757969976976786659937767989879897859479869877515899849587559374568696782854859158979824978599978285248418752899348955355441503789435749598847766689756549794807988884839368294836668989813336181689836572326855598776752957859356886215732279998358604719448978599758969846997988329382686525749998662897766619353886964968968887795949354495976995998369958959965999853611124772579957863923998542498962898933984779967687989267651664398951797769787899564778889879554948957488406864228287994896365198879155792995952976796687886769966574825697974639799769894337742333598395739853179875572989193996688871875679686299646864487887868794429797878544695256555897962442619376879525518967942966316599427668684818633336329779755673915675192797597607362566395597964747899462542856867266646592398825885758394595587884446366884665896547994444997846677988381289883756988797648947837983776782799445175997991096838894973129698288269775372990593885995854889874325984407845429769199746664987464582996945478795846365871697952535954408758598827665977973542674349764795937955991679644519615889886679933689964537929162864786494268093974759782489867693765975297697983589728778495485934958634885667472346667686947979762351485563799799136729748676926866496861897254847586807738991196253988789687863576996938295479739922825665492943386951989835987897663292899287848874889933739595897843274965869997128729424357993994595488616984765788886548831784355458697998124640935589889923687594935309472569258698588576387637898834777252859717378336873716559996523787659864943376989467995495883969698755297183782827925719862688878363056937897868681996893679976799692279388679856760584296938887559725894544966679699418994993668897794698468382369899573778923367353868963659949593995683496746356828999756938858486956678536696957390787793878188578478277788892769192656749639861598795872998495925853298698785145669464364476682974976394467969898189699289965898526789514758858872487529235939446697497878986879774585885539984165668469785792538616863565682699977987863936438393833925346799299793632669355499645789961798595966274846967957457269571717426917638992897486958294569845957588685436789249696989182657904768680562266685248975766987837627655286194976589989896959489798694086767399949775779732483156958899543375254664789819598396319756871389749667787854787754993568657979956285785639748554340769664963652339248924693939966697984437449599790199136658742753989678474940992467859319878987866197997705755298559399654994479667987799875959889747728989675495180757392958798558029379449476387935969934549853488889957599783684858790614998729778703767858689956990958332965656847796464488257866172644649668749841353696789878589634653879649337558585143968731875199597439858993394587232498569359866996784697398868448742777753995997671578986895987567975169565955646064388269719889775266887858661257998887616969658875857674253255752798898499896346958499745228896896668439965895785364398633298582584188889779869878945133334595639436786564967365719268736815988879758364598997595542363556577337764957996758637999696786457847998272676785174846655386669716498678588785257679538474467973723759958666553850447488478667684497625592867588965387757536986699278346723335652569528777736595996286792383645975764298559655178788777545697986464977458836191851464865345598293949638219379868967899617924886888778887026349497496994096939893488279373759998744897956835888677139768995274546823685870699477694299388225448391788979897329789476785639989967698893216738655576188675888924837525499684957565367476759274739758285676794254757857696664189472386698948394875685758754528127886957393809997379859788659787394526699983548996559749595695963149576883666488635668978996589961967546988846589422924964889899586849988484688436998184671865242777847962464686849786787569638784345872838367675774505855291875486869539887623688878898556799579629667736759747775663486498672016139797758473964925999857553999965379378816858943654278939983863974755678588989994829977588575439999526158896394585926659551658446695878897794798750635886995473786359583906352583949648659816419876883254652667978868859689676893325568819835635338942688568834698666879843958856398543692887692989738968568546876356788449695443886896965577989627689656216967967578885846982579654284949426598874877751678985854999736874968941153397588789996354678978738971398302695669887998699978745929939599955789525656489258986687398559645192376926809879437849727898729854947863845263946897999899687688971356867658766928986349999799738695796568359548983399720344699697659566859436999799425467544977598224931487792556829759386429126477339888596666968629671669794289336889982766682616763899759596633576664319888755799467473258145724954545768788722889886243798656868492147487766564599387447783297359874988859998771559573427773348266699658977893887388598865898182588874855729467714288361475552893429239976764497427897669953995778269867959657779878568788447694464847470658367277387368695963852628364369495584597666478959784281645635869737518695963489688997645964557297685829872442966247364647816162598485424666544682473492952978877378943558999674778244523590498567443839755858585488888799686395894772573199287948424835337999817578398979523688435869613677887872572661876969994867677993482749686725936836889576578859986899761975856289899467186987188798888477799987999249787350997999467881963888753673468353794562796367037988186967998799792794957595799608897589347618553855785779869476615988555995168998899864998244199874885545677928989387689585166979865966978975577659287507588981448558886195829249957735683934463199754894339567875666891434945785885649241278597238999368399965337598527689690337858937532384751528946772587585397676986236896954799805879996976746874599381756676469365196869479827693946628777858697955788668995858939910418387996649784595763356497758624518824798793217357408635149754988949325479695476693269968986558884649144495446743508665378678589453395487381599745586866777347872762914776854988675677441952364997896578503977895772218739094829792674938875689869697237697856465989838959153964368931487985488377579496759387249770556934588952849565999488878347368585854576898566966656298688888797555698865779685569776599866984437978796888789341836789557424443729119391163613317198836967963549839258773915854894966554647385674771698987798958993999827868994699648257273748888764769549953854383776966549386367599878797758418859767796698525958816385343336997476918757598759844719979158883693547478944861344976789976237664267688955889973099979379998922872868888649814791343577689352775966463973968920392156855467473947749485594675639882749999979463646893263997347239554265576396396456698496933586887856889499749887796944738427743199719487884218199649662569444672733882435977827928679217381549791176697565943612439399799938967595796977537644683595693568887914877732937298882872983998749535537267655976562831464539358652579968394843920739881787540387898961745353988865387878554785787971980978859688939537297946493853887029567875999679868497292938651989599797876494788669799856988349647651352889595666974778894498495791353727586999769787778975829010699751447664176829526318647923987449687860928537989469189399949856673879188889376264884695676254998463294905379679799696996878663978659897499988888389969799275886894833736969689457864953486949784755787996395668764359769467892688995579899987946757539996969845899565858379478353887681888778357266989455619983554694978247755943868787186863892277598878676568285691578157477982146777958633849597419699697628989928784955798679975873706737774999993598849089487057833754752349998685689462197599807969938848687797479468989889892677754397553679374361789665593611785888914469268483979865449283693885617856689957768135959767595369988976517571249837982477918953399996792351991462868992444397619564186969492747748797899829888788997823544268484469287843696397654918548999586498819939787789844947518884746894277968189685491768599191897784789389741179607418285659934384979687351664249852894676644885892889688399936842593486379647879458849985785668979965796574959534679849887389677834346491985518971863356977629789729279589879289345897925868457556968645777834277886299999458884959873887365847627784789971767965259638377576596188835949594438376997876357436776495838485788395396990484938977717908286948234694871976561678566693646724769995959996578988780889277768865334897369977563574826773564985661477833855559925825729496848597987482999099099579445621796888923898987876487796776875948249985338365284655985888849496327514771872569424936959979662398694691937699858862895495480458129764848683959767168799274984894639817792556733887578928874873778703937872362689574797869588485659834431459896398369777866769693992935859653797497496774635652882379378899973867693578879238323817879577962685539888285389498939767769221599658396889685989648776778885965316799752783396836307866654836967365653486935673937965878939668785992149527588547929892699216657195474846315698875568518243868677894984737465785598786845449888297489525439672648594867388886938988805808974748838467696347358768759653960458485949475866566555559478543974554263696554735599899688583892824698459464778746979277649656374972999971809668888657274585389778949587888834839958596989592785977549678874979597375162949177976284524372599679867987725958699839478987899577678497474968969663885765986639363599737965679829499184339669767729129845928378578699226647988677994296985438371599443856597238188955955989746848976575622684979599199987469239969565945656423895568678829699737997459869466658195918538358835893998752908597997366523696536777886417766949665286686929567499986989855784482959499894815997882281747678385869755955358399379834649495648919294773374597619557373139635985834584495077923647507559979968918967278236638689878932996967388879582875627891996956848959699718197854599591574856886562488796778897739689959675496863598744634944977452296441999699694455873972975958729852269885976769759756338658766899797382645571945857962929876797898164394687265856853726686356363532637881964788829719392868989968877856999578689699363865596889334324598617295348997293578749773386568725746881296065779888345874267869593849956486697699573587789864899477186376462475994776443719667617691647766789478853575517836894576654887936385845963297759355164877966299516927595567855989992577466789778495598879581956849592764684366976487674782999814764526349749688878965458493865044279749334784774708684650452716593774443759944657864337958861899953666878879889827479437947516346483889237692988592569778937284774787685874728711958849698975459460327897670997438894935897139499798989935796798668487412128197908992797868878902694646836038555299494239414369875772436969566193785267549348839726958934393777574544868699987731688439596988747987396535887639479988868539547197641785957818593741899576549576984896918888589809417336584276645476449743948247537778999496492481796922635395981786758738755930288258669998697685687969747379423596554835563686598794766849586869382997977375679589627375886568769578999561947577564578946886185684967895855299795883972778957479745656897798895338567882867779861574897556766868358484851741888555419748625857698987938856385592949887832688698994749667697573736936496624456839527969042376898899933843467792365948986457647917874968286688046557794769369083173748164755979849883891293705834798549824767586996426675994836928914966878667698872885994413785958995768576691256779599368689688978953676763777886857425982565676628655688995767697875146885559526766992968749222763438559177689927487169545914886789778773945889788496684367595863853179389999854994236959728573998676719998858694685576325581898767495589823786466236558984987855847549987727568998754692953682486695394373989477992993540763469777538972675888766872059603469696979998996369899592546865959681744589959989565354644875997877978546656673852795967895589564958648579759738672867975277318944795482644649975283636428747878199367688385422858755793678771658671869849743375558294149357684843979390593947746688879979953498275837459668727292977497318699677989463746965885979333495965858778776845759995966859549625989587642368762379392288387466873764746377897825969965453697721794497592318663862893658376266884589496178577227784368987989976784829268969654879784459777446552458688776783576671558796669385581893745291273575837439889758988765891599508669578526837461768998197549878783786949693998676469677756895834947963759183958435195876886666378459772973437979479249888568679757833759356999448686933578622549779969657754686747558747848379978598167699647958874379578419565938784494484361959485565959879556990783786649442888848582614868685589206874548783577755728867867777359780279384598977986367491899757898581686674984593668894984697593416692688959879978593269469505994245578789755289929379997604437628993254975195578179637773359677798879597435975659246823584779754931578387897973944386943788796998499882839864698749777988686785587877965199749133997682693455654519969799638768646297258983357196869498847875967845798764598895875960396376377194868629456484764998335808517238666585269869778972897679391254487685861884799956828655899965872975364375298468758245853661884969647734542998886278845787864958877593993455999759827367795966499166656449874885960954937591898855979495775789564754466757826752277888186932699758798297869487884436928955983898789869605685984487969888756856069777744489652859988678297975564748964953786474948953298435571875477889687858936733960768855585377699538586758423797797228467978949874796233785362384864757646898928958576871576986641498989845849385778999522886786475416849957656985689994338648754573385229699588333885963870274697693763994189326730313729669684765866799837498746999888564957292576877893998399688626594777425897758483772262038678445364996868268498867686798868919952458392973947687676867559849698832844869438995661769876862937833982886835699895746941679484875163626546895937889865879769559915589885899891464898994628689884896725757179538879559468635731612978545597995582256339938687163828889698688258996656626967297882589696495184194978738619855833728997867388538997979489973383868399179956847655569835429168778389989665386727993162559351599563439526903366565768781832378745765692936368999988073569674787577965559939894768792989724865866999839493138578799848447338394744925877574376786587897668667968665597674756981668177461617463969387345567554995669187554590667640649684866978977251689947986788257325396855668939785588386969675839540976799878869318994488229568766649625651518974859439795729658986836658328794977549148385486267464168997471698259488854388699957898967835759759649686776695877698974679289539977676736687895626525757686829796875997455788989695986985674529487695795141448968638715907689514945894989356398999995897985692953379519678659938257269469384926335656677288826726287787572351898565639357528804844611894939785798969683797397787633943618655073469987757728778886996693127774848796777457789599893957693865729493726727766877857847979597937555415259735786516555994533799479887652662477770913393662578369424303369179589699634783647856989984598189447737688899696789264678739749416967939492847678758888343855699575669684954646868727448838975936289589967892159979986868863447274779456983673591552995794857868584963962676965637767994630576598734589884873555926867933859777637658776604763766598754849779888538379693798583996876985578857249481828572875756855478978687866068858868688849936868998946369472980992492496649631897572549664683596884567898435772426686519199697262779878797687987775996983726899389999764647866786588589585146874867799919195685466252946687967658984697767746658689937949397488799995749462558962789934599915799694948959596788638796896758683949788784399864729869975332424987499929753648982988995669667856948376622947587479589887788649747585943688987215599526493766574949493589147978698373975879595768664879393897877769578756931589898871452799997872895776977457873726949287717499995577457779198899756595284893169853753655688944888179686878596617947534992246527468773534879672947789975893477384377884898818867667419372966583419987588487593275977395797623696785988629269585856761644726549943388965569898773788239675739687668747354646958377878896689818678386377527481849189689792184679759787787253365847097857967713885126982446897544787625889784878685673797775822999727579633627957464654496759877636486597566759483822274894845797966799992747558864956751591576442939357684760879996677954599468877648398999898584965599859884924777837125483777742868874444234353967135582634228759545482357588594896649979393838458568497997496794523864964739619978338825796997993363561948889534293854876853544993938795599389275878599688859791079925482977599446399663898691479769629768146672792980679038978669792989796595767997872276599899862758464654887173176684638456838579898377166774849798778988924655874349698998489261204885799957652682531488787686996978688958986499973742734335825878956756985698797741259588889387929277682937338667948844892534469585299977655759769384988671838287576698686983789958989992824966328909493996746695995748942612571692498457853968754589796984756869945894465875957274648558596715489738452269396337344517924373979462659658875755767796476856966853717932559864619990145435829279686348595584599949376779386698773938864185496622879787985832944793675786886957691979683693881932557863849683389753086996967949676466846776635683789291367727919999987673179968479786663592374679795486958871535288494794692968646368653054167094679536998842677977676668859968775377864945593784543868854856594663799534495943777355958599376317818983571299956596895865489199957613789979794784799789127332558985966967796185796999868977818734534658855474775698799687776898774955497477655888986639488578897624767563335549989075277937895569645946215898968826358258574374374597777458493259472691519618279736595799669779999884788822378987898867865267835974698366917725745989767868854959787242615217937496857891659398137667236329456462959557297238899684629379779948572754627758976995389689573746348188524668176875867483489858579899245676247794888872977683948699685974577599879898298647835565798485894566457388724757945741866249958374898756892629685756992885569879999895833963838957799899448897977516391657857437686586639638717688689395499976996979968527888698887793947187389576267349689196258826987839599931678866779726204875492097968758625376978395599912567926397724859769761698598735984176656788337698384169676568667235888688698965779789949785692893413639329399794497775856167878362487195932887965699799889982399865062772588465675469895399956896977885786827664699578979629699674289718357954678666454798579898495449763324677963296777832647556859891413997746577863594798985343967667799275977449195865276487993835734499639767882853431787969036994843868968936879879799198979619776732897699349986549979556655767995589996887489696823867669486869586796784877754667275968927989279768998684989944684641777498262188149273755718979851717971771999243898179899366813888277993646938949977609726619292594768739948998856936869855959924564489867983929819282937682765979837737591246469875898647845564489697527526997929988897668968987969465993595667478627365696589519559462368486775237165846824572344845238786462753881634288672288747872768687818898579756339948727876576886828645828931695494345949478948877886787479260293438762978344499886846696466837675897466796939669873758694726796446877249488981979747369759693688556866929398535988604458498989457998617973937559994664844587994739429883996535871482365782567569955589687767859866479976946952995885485856639779757146364821917981668127367797756483378646379877478836178215999779465867985748887253988863586289349799546884299798599785976741196993986639598964697601655969733790989244477168595978419226479557346555647495398693977448996786691969797487999789993257588587548238838686580679567659298799534569850659288496994928788935966743291373958543899825119998727672928473973776186998326847637876997498373998725957556934758667267426536349743182883948759484694376469586909458982388773697877698945696679664799974897666992796487203895639255879969394728337882145694958997518399699776758566749897966999476836796865315467957894269374737363374657684993939856983347638358673777464688399827927448944855566878196882897699657868494459525993995964634626856635544576642636064656883978758759999752874392468776987966199229345588252157459793489956330976583836656976856965688931686944258895841581774498985743843499788669493641885187328556485695579678987549676475887766288794599178286267568659278962778449396295472096932973794648788957032977649789957499897159358262743895384984675589363689377873859797676623481285567154933268788744999248147664964938886911795588877841864269787966868748369955949578878485996578559559583855945639947574898677975537785656437926373785494775589379973469198615904594832795918692149287763696211634477745349549557946699747679877965476986696759868957746757245466673581867534648733882732643659966827819358557784767887664452956271708779674974699969686873143434774147736877184798278898489986665346767877787763787857672856492299998829787576990353419369986568814765967362779763948379986478676588297626886362876976767829399324375954833666827869726643989349163899813694774934837845580595902957838387659967789465979324982987993883585997997277369897883360598626859978798969964370123797647383788995498652848585039847598289776442384564941659567565899999988469959765638889175986927828438667468476998755881778185864706539577756438794596083967139986616871717873921667988699728994685894587778165588533564325797881933559349795539853577257379797576579957655839362522949948455496924688025688886944969139727996186977678834449737799995382396147934874576094608866294768495599679766587699888288887753598567866758949943644599968875754859598675552728122999748886789559999545318929752956974598987767785264579727985926949965585783869938785696895556768647989267664274947593275858929695744998549568367875251666977478674934465988644069716973957648759994973588676968877837685688965676743547996887494647782633708492817615766757983987558626899984289689752148251984488579789659667975639652268969183299888944989879987785494760469893455145537879734697866843964181739822685589427685888728686889744886877599266755782987787767797291359766595796885763887357929185499783988533954947548928857582795766597778848398649811796985563889658787669893872899128623178592558397596705869491799647894883955727996763824794984475869889686578665816387579934368985979782284917282765388877642898921774587327664968898678979587559789577858263658867887697689846965843675338716572373979148982986369683866699099987968465592475987837738298735268717867697849572788531195881476564368775777573566855639854998898689618446549289872378986875848849768688867969861369567827789768816428974696449465789389852845625995934989388366768752289959646836858852725577673727812463275976266655648719962989997395894858279657078726674289249895776439469775858289363984574881173857988989858977884587558649559876656097669667717786563798739666599296957351851937272992856914449874511828265653658889589844964573886999288826726784598435270639587799499429353905756838672868164886592572407978577779796977729859477583758656723964789896935932996764385797934776898684875546788763853549878976777466574359285328664848389362894881589928658897484395578937793496689877925699585534795586785961878431979498682928799884982849688495892518669527449584982545727245945956568399398680883836762776362269585889984957976677749046299486842426479697969888919163434283759159998934852069687236998996569685984888812835455436819637676086559458899656867579669997419875854982725977683433687437725797186777365766457974687658865877837994677457477236586745788968847669723838878539948894169636788473396768914987882936959415788888689868775516494796968993978456819573287268668447366179488916768772974556964548397698636953479899897750672768936958499896697176877539569534699999691853488686888499912798857966867908397465538495799808984959694856677857989921459396655844574723942696599887377738954854157586649978992969686453756679447666835676939898744655989755347657266576888261399868717952776677858496673848875786659797998246757774636692253169798818386834804288841793675446426799395945653939266949198459846498915961478875627986536189299896879669979746331846635957554188876569765972742697676958798592268332558565698568945397568854944495889687918978699755934912695871305299296884973966786282931354676569949839279924999475776612498889873959389876935989490736746098686375895598975955978206989791793769454753179948855796244745858838062667749581888987325677675948736825924479764793847767239653184197879779866937781898978185559955954387186599213981584756938848756491974855519967594597989685785878476499459376736794158425688598045798537263632794875073952844576994913689892387997418679585591668422894985854735574892984986232876296517235479537998987586546628365723835429704995496845488547897884395235594779383857983696485798657977467948998987678818596341977959967836584494892988437889955996286979399793887369871854847738179365976799529265938991599962978365890849495187937784791439985578889668778329695466874758489688758376444797496727566948362895487469479934899358588899795878785394985776987956965867832787777676685566595447873688359154769179698319390837677830977953379755788549966972988784669883697987987485995969666878896749715237879879578995478427699669356654457576999776595154522583817242944857367714777752534798838498672719956297844767897377998265639964979628366891599626984878755784577969769486956783765938955627477798676884967528477499796799898993889899729714987328929889923782896827972857887936366759997597783694898598988665182897676874679948479777484589730879688676827332704798482933994297996086499678964389679899769699384254788488976894169989888372673639895987157848596370953866998475958399959981679112874877859929484897899694589884544781595476719598927893247613616613988773418566896937782569969711763693748369449778289469279766679398959466698199645589958738885586496964335336895619999813578445668916987639587745668494896559955879783769568574997465968668265698762656775881889949556775798749834239993747784429384816963955979375952976966848758682668621489419999236987887774994964245965975267896587572494944879379433788635726855782589854982679974958592598730798988696995889867349696597699133938986958869635244889989641699699768365958884618619984273859674742597853979898861593699827476886436995997966264578916765786842657556698578888988682699737742564838296868254796994674555464706876694789475389698389312358673566666799579991686998593477395349747643923998966836993465557983498486642935802649793166988989918485589763626762229583847359989758354826465815736574837895884554866539888581558179958934979852265946625266498794986796725468551927689737382989898672737186858193484455385877648398278687548527377832798783199961952188379789665857687566927276274555422687881849643848794714764966987994945579703986798691888846865656649879442669779679946667578989979398694681640971783762889297385639448298699783679698598883693626773867136697855863469679767298611668785998839739515586974789867895899583683678582735344736852578868265357838856375991393388648793534443908857877694787752795368987941689819882765798475472978488467487849989977877819435683169721194887565795967557829969647666751975685259777614479196216685439949958689264533758999287418898198866363372837784676271448692846668869754877558650605888279182798969545978705446124949587668758957096867567555847087785887996378473698779767866886376669653261829768818299886589989529756398668099587779758686528258935767663997787847965847848998649674897775904375558598499459971738883976529521426887974482996269179964666486972393991666828189678556996333257487876792833689323926791994789943996478219346798158358585893738354964539695476788796997359638296990754755870988527886889983898225756649479941985938484548806529918596187159279589988827519368478365854114688936384636875492989795617628183995645967297835993786676667397998999591697699867577278984738877986692765225749586645675964623323992190333926946759181977991479978867768294579507949499457994997477799837676776684774587769865924463835156732155354899656577985959699887279894475597694138698842128743627772353995540363855367399697693856586643661988475949875653681392433948679768375986803499297359928855597887028795594989387469451535296179876593768999857999599496995879757666596519688785855866897588968864534988899489748558047775977685967654728879671469636989595772881993579692877759847319556863948375368859457636693181386878528956952859497834596677847984677744908962774859668978994716709959826149862898893922972777137680239756477924455986489698844649760348585796947985876476646989697969876337659737294757999778481375997865296859335963755783589495904729997591680535348694458596797384667989888445859988669853954978578828484388999248187835624569979926878367876396247629959673866628683859439587796886685559595943787693949796889895467556822729997599697976968919736746883479484759438875976497905488777858995923699676572991776978597988858576983895868684768576838984597998777688242448317179899589699557592699583847771376526458695857467871899658648937377979886993499786979922667974798697698988747668839984056476628757997979845983829957885653349592997096793942435495995859598587979787173276785647459235557794597277879437879938697658578786486579579787249777649587685354796467877544998679797827886737388583979679989696048239757889376777798945778485796589889959898596867796638127855874967739654368913728866979173996983528788696978986884998599568356677683956776826369746985097538488584975949896685891751779275479142326324447269294875358475997748798837999493789486784697998865385684697998147898578496485968868741868949449937848982986988688733617962874687294765469247575598769837543778597838997905372749069275139889886795738858179957485237849828645826594869585879339688275888677989879899698789423739584958589898798745255879539998884798572939507149586989394888986948689552976772779855677289884941698963985395979889966348566256692367689694982945538549888799887776999899986766659853825867955925658788486834628928682785916796987849995899868302799569588968658565958868679685760928559958328757898589575766847262579898948465628388497599849992757975558696898593166586969558686947779561836595871997883252717995652333367781678549963747898689768978471808584689587777196929587829492999458797997549975787636845743269169774869486234078648335888848523853769976538978866589557568718299776688564994327379885724896896659950679391349846895419927697587635997697796986427894884569988298535759576389848697799466993564895488352249915398768235936154848859859627762539799258447753985732388866169799793945484474749942914866827073359572935356277393877999960958558766967623588787768598879858933639699729486259318566131936888598866797878825279778869944646798359976878794696783756756639594668895657459782969449835785399498589778336486864293639115369598877920679466799751662857790991866787769695887948889961368086854445966997753559777479653437866684746393969969928687386635148718849387999849877749578664583168597348776963866158951888998919952255998828888994879761392175898783796979966798586729877175931947699876938687951144397539998966994252984588598193525898638158857989498257982698947821933495329641958894982963823936951695596783798366789769787886399978347598987882116757689265167335557964994969755656578142957299779689443528839783895948764987834987759783486239674998996786887676973973294847669286896268569295935884858958559478944932477541859725518887553996425955886906781965346853632888984676869485859945877564786562888966709774685959622847796694572746897197699988985988335694659996289789499958597978786687575783960379982628638938935867988564679243948578934559749894663989442369208564569236385684779276288674833299387688763498848499868849748487366798942896928960378697588475643992779195962777827748398944478458779897628744968785536745899946955374458753925836464482567985885565711859516756386678758705672766879766683999674953668384778895379985998993712846606862996783982937756844938562655556929368764878589512497867289858499768979390689416898635848579964943895298784469782979379798985699679648284849669477569655905915964468289834884489675759684597984933896719930678753658969975984356997441486599959695479907650388878996565779579856719218377497647576892797365756721675849855888399966597367863987587884699652999869795858595824648296745875789899697924645858369679366667896567697893757538377898758976856978549998374795398376987672799989879679895988588217965458965944275612977329996625965785869578689677199316359759884834839963795999980185777797765977772497831287954691661749485979506889897159844758946677082948488345997244775779772895556799946857407729548687237458785539786886878400773963875775234466852544324663689373878649478856877965274979819568997875557994885878449756866818919998218792842994898621534198785564893669859766998962389377584588878589632466867597957758799624894377895467943410697536825756899839387693991988962839499987176757576758735663938788948376996975784396966979927722577518386361467567627866967935949484795984898819597988699478839529789791626567499982973273838365574386349947824895979994987977879925999338829646742978963239487584949886966733829995654533979154778747849658377969835967956876861777645784889898979827455498946879292176887995439169195751679788877346929897887724974846645835892659746179696851578886447789897558374874735986383586588621771474468958589982786134358292454444865929868557838742353787375422896874237527889773537796969877898272837949546916757378696796968946447122398989995648927997657797538545368843597699577367644959724689784716968568976666697798267899186986787659716759916923789759299243775795468557844785697792264299898979378584494978979893734559657487637877969785183854885839561866586285867493185485458925498996679989963995371489869869923875318954388687899788598897954689499810692886556539888564397779566888493499956699837689955738776257794058493757764337697987686742743999919475648657793289523593585765659129782967579364859849894597158989845883637285479935693868483799496057866573795787677324478968558475694798974993523565867796979276986958939951999592969368449936856919999778538994909657535369547576634878967322796687497855899396799873983778588853595652934687369452376967487775466447215924899928187999283596419378799467439683643749697698886773599645278370889458786497879562926919647898453992377573285673745645626754243938987756943669457537467648655375665847668948455571223799925658426983786895888957659778991478188878169557496964277989248915373999989825499596894695595998558349564694549948775707848497948762837994978755749788316488098182995592189325564479834572357877868869787566788918736673692688877397588463137988849869981968633847876577789435692924698248892646478879496863488575764566272944938697837753756577439794974785978686647495966753598557946884427569987493678257999979846797868675261947766838898617398675773866626796997465453593698778326777738478969893593567325967895764374685795378958783966938872175698389494678658773626777391668664659748977635093986556876487545269444831549677897795785195257887972369537873469288728549553989566596775478267683827977785869776864255558858958869997575957784679884986795987559529673881933895786993877856867571979453813586468676599359891389139969895674877587179697747834879766486396787576789584619438323048631544796248789759465876867699599485598183891827658224789598237769396734759597576865675579783874591632947995597791888979469792359788774067998839356967162722447385888489587495393979584847383364877991478755585985661636923999274369869377699577528858482543349883784957687859922875485846987877527996868698959595689985126536879519743959299959858942867767667738979361869895824849512595896864727757867983759198473687669223497175862989659958898715552898656684886789595796676594524847979889194663983558277388238687562996899999298985369252798514599977683918836891757888627749925684566583899159845654254866714159853988964819027682272796489967388622458738447592799965668978671692683718733245755897768895769427554936576579441877845766487666496959998813895769937837966696855989582992663669479777393893384298786688756764926249256656886878994976878768868994692836772669871989548793486755984838654667775887978865612890571144889975948476477879994596765399899634754143394598749509483666399828869259687878678984996561683988799292999038766736328996938899867409998288559631476673968876534852693495595974276368796483488647665697631847556799684738971986757256864265077778688157864895519856348595737323496561889948648349899367587971794835283938239186969855348684574779465328878880968631253456377976646953548988939177737360034768346379296896988836253887891881883687269898188168662675989359919595979699463967848582764897798299892587538792999799678935689358795826787767189357478381396983686689955492183877604849395965689982673833467909436560883598756289493995659587389632292363417961684246794247925366724998861859487889836375959337577288789385546978484837996847481394888978387318687999564928545295995789798877349548367936226982864487197895516538486934483947688348874891284798477362429768897795538894729447981948667623794495296314565885794869976849809966887498966652577695214784778669998987694984279967778571787995598596589985498138996583568699852856885677547765235687976478765949891458383865575577658519153485946987995674737849886791678739868987286898858395427647364888639377398867132719899935869317779984847988536884967677849798847849856396368635848945936934429973493271577567726294378875265893998775957658286598717868697479546677548455926339849877483288493858796843056926389565790679723863976697899839363178877658225591697955239653767888787936377578837136848599995383548998068782275875395567476194579857979589172582476518379874597598978394488627696985766975695895584286773768647947768967565955175894896995733469704899274835733687749354614779348896193949756779949675768595884629977389124771977784648894987984348388598387368406599654875987328588598686829899379947955859379557773599751769786588929035612739126499874267969338996737268394626833887496742598893644289567683699656474693395954689948798313918868995897567968964677252771774374669599957296257818975991348972547998887926167949666288980558489764594594774762533856963923423619739485339796253676741935859459985395552788529678887879824899738778638595294869886987196863508918993979345789573789895666836966285459539515543699988635842479983994871358456382998988695777685589637124769468377224799237707975256996858348448897193478967496897786998905652537647585335988874773943769775972366659325967593434275882819992976738457769719361967341183999929799737739486591877289132578594799866863886792763521783675993679398876858596557583868159846664767496592984639746989894981566848462725554588997892096915785823856138274749298963645377438377669974853888842588863899536959192444999648789261928549729722648986764797726747899796956986777468555975354598585936823452695668959897477555467986365258575261222468494899269795628547839479591788469157972864996793599557647994951384866546954926226749865854558568818737696339995467288793829508934478849397498446916626344899475779815687397418387493889987758557137579884960278796786639732952826741739757598836739488925932697452829578944978438876999557584837951999637964957888349852477448856878619765978844758444652848397369848798656565878789842992967978656085655393677586279755995845426960894959385864596265195826599358856295490371546962799998874542389697833889897589654745529691713994994892935881955555726876681668922379649543869688446459669969148878283976642977449878449168973598975388938458765269923867958727597367994798266168996785938885777526755158908555689349771954786838492699425453799799654999496592996838983757868401877895988862752449982637678753797445969995869885468795764497883783766198997357294684984119523628894052895847678698757995686786286346655988338848544779892613749798976295227476661761881286463275552673496063757443464916988999886555779526939407475782668199960938654862583459593877949966869834458998387454289668789377439349592955709586496579689829786894724968769888990866637426852657984829975676577619768365682397979867496782894955677685979887388683769238768842559893897888891193929944567589359666918884763658639584983790684729679477831589483597478767829068802329975928748596789939997647898985294886712880806527569765998789859635948425596493471246849598499229836759139973769758799748823557873987758944378574885577278952843368693784988859753518489967359350588668895931859473286696699886495795793966397267791858724879877588934762854508795697764956385558678949764957578847804679829954997787859894268794673547278667388628565731883372743660883589488288849357676469698069943860736468567985463531666826357998594936887258477948837961495348779437457245947357188868486707614928268449989897697089665689874875672965948286524298887884929274783761866384897925795675477497854444757490978888352679995865982517747867994196726956758468988249033498882758577369568557558874876875987465388215754548567289282698728664852871888667768771167449936378992357616797543749634198852646992978332648564888869966667795999589495587497979778977668395474592959324667947834993536587617425986446964569497592945869849867647897588684244489597856856726749584977887986262856478897452946449779735996499664517986663539166659753497746395498584659959149185997349398778386975613967974559894557768397724639563899289857965548579968999743635667593588568397289734769976988863483476846863638887397859466598589582977292946535255717991697787793978443698358764836398978795994868819948898199974290379988943497633115955579696488885773950694959397798679949757519126367685427917685829629749988498641835967698731523345945474861967897758665493896896145867561666993489897998131231626937778198226992618827496972847299768998299865939892729726537489379466839588946988780187797938556856492887718999477855586887448956647769566787976851957595939767978789878321582947493898369939558988575998755337599840688699872698787735978752287685246570849594766897836882669888419579595559997986749466696836587848437858678404697783706622684529629596567479787895893979876228588859746476896334997859398673989753369445968928981578185675769547346758949977605446586195856895793537648767749889899849495335764646857996454249994398467999497833941379883986794582937996877988659999967933773426795796546940986386895849893775948454942788983839777775623566582997997482758954554935218916985797959659688879897178896957868877471626445988569496879787397777869994848847687866629558574416998969965722194862359669255757794489586985979745881967866581898845538925989359443775699659489447589964387699994452792777418337669882409987782454805656774187932885697979826681495948898766659296998576686947776888926885829573867976839589646773752799298999265998359868897894388160769996975949814385554679943988694498883583575388986974682792368976828999959975536989779953597253497257898728669585257875760297369579597673678594784542978877695869383981498945696753378968593779944599649165865798828641865858437545798989896855587928958159497797566766974779672886617488773993778560397258589875297756694924499279984178617669725665585929587967976948658568895563812599499657659488989759953978987493859938968888550883968859804586964089937728865595597979639576333725976395878773705168131758853796994656888679965584872698892788888889981871766938469899888765896856817987972569688747956557764997719272828558849773993457777394427787945198473169964869378837783759972575869658533415996925396986765761977996795799431489909423527791793969675894195994158768990369996197664598634987695998777384791855469752446956784883274986696636286892857850629867969897972688496398999859488377663789487763958590959757152727788492385856485375374286874677669512987996689417867559788948397994489879659898378675883569998378689867745599579983768691986768128953593159746689892839795898795969760869169666387189976489522430227836736468376817856548619776572488579745827734876847553798296066668465686578689358865939892892899566265777792347789959295591746878587869897546999636643897685875694686783329982862758555676989559599608198998958578939737597896996245825986679455654454349677964448743547979268879684489382886766848999577744937455660749658687967764953936715161694759846696553975671553989789956774281182699499278697629853646536476858958579957685282549860807916839575757777316762923585675359652708178695197465956479966636477767796720878917283362885475897575936755977974799666984417521095986367994971788544051663948479535794493868458694778473767376856169666788343184599889589979775299657879984198544888992877799846299927989855876589899859897096879939898643978479458632139471844666755794792469669693498265855827589298859873196995799678695869879386694979365763858876763717649979812933593418639666977635446918999679768628798854471877379449739574181555756869789864585781868759834494993445688758230399748949485995994358389981794378632259363159991738999795368627686687241827472405297918563449549682497790329375257678879574428855498993498376675145857495747599987899796959599572983824883277446086758796637876986975239849693377683086757927987988885869696988548899684965488531657856659685438757636489205535948792825475799959299718047498978571839664599977766876786967726979897496353344868467773977985946052936878577466596647994937494465998976963347998797596341952974798874389594419675663669718981301558166868957724944424744886625634935330677802135588586887970796635169844695676967533767567952738488591888793783365264796667369957827545967139287895892888599971535448437759875578839558699643698791983659656858466958472739966697863936698963858439591784931034581745983346974475469353777884269596936858975914799898859269347166438795816857394199767649544935929848579997948847918736499394533539572941053837595784844968558538585729397952496454654259688934284585367998160467785472545672258337849362185958762643466599911765246279784748669735643298688658699244576288597966284548899327599564947997788167948488947645287985946358945735895588477699155749473652381145484538938772659568538886944696689348796758885795939659367466878588193778385647358309987498477498545896735348970790884785706969956744498878771997796599244869597699879949296667965156598933779893761647447558786376858999979815748827839799479358777416299989699778989857889588666847887946754961398699976795365642779278266281764393996727879661849798677731186788789944446598848835947686889696829557766897838799897474479226859597926988884487799584434798694684285478168269888653294378875187761669246585796988966974934628239793842068556528343488397726425249649644947694872868788463846871398999946978795667858584569399898796323368897889986596785778877395942669196625953213992657977796679925588834287975178975989985999648869397593887875835966628326739896732794378783699856797929455583439825649162795858974889458488837572878457787968359996995785688879439679599599986449862379478867787649854988831474942655785688599671471746895166957223674884794795678886677965973225697979155929787289744987579193983775797787858442129688884821678824599787997847735719695999834546889498297999861769947189287936789759189388553757558857978546597896568456967839699117268347677894755879284467883899494992319775988888978599998976767477889584459494858579588739338764179689598717866873274865658798884576575789495876743794967292875969998467351477755524628589794499876598648384897299678678599637696985487725936844315878689759858678319984984872279585778875868767298765993455959442648842978458738359969239296363676592977716327993236629577656929728796572887134929079993768178257784497659434976999958695788852549466468888483389749282884999683989725609666999775694273958349444588695948988615874557999179879298982543253478689866684834697925556539890959813595575985789177348688158858595948878877538686529764893797873538958739536459874895741884458798978317997686627397124954667788556288596348978743448538847268257945785999949719774556938379565987458467706489785845778864789656933226587549916579598989676988258669936986177626255695577698897879978878338789854496486846783675965568679937439817878869773944984849898765224279978887562449229776998748885689694791369532924889697675726794788445535593779837667968784844589874337285588797818579499387891964739928636991839395769881896384798577778788398586748564699236998889465875983447559887796849698898616779886994899688683876312279468159698495566879847629747336687851484893793597585868790556899491253876786299557289689449633868352989386835890747690698635878484786695585786806571668338464976476255277425324895663239866787888576779928591478659925138758299798676989898966348735789465988686867899958479767785877979524156894879972957928283786275319468916974392844369989562697965992862547843878661240779297165477949141869856667686189649496925858888968894777448699793799556985582958469789862779685748827176997969619266977669442937739662344897749795712938995965449898997647699478631965686445694898622885339977978635991449581898692343434429099991419547706946725685973997589938798556976876962995998089889666348761869241422888994945794588997795165389863859447948888469696945886488833731538778892323856894445599263985738789367193526088699999334874624258576665668469785139599258989639789939283988498359773737669534845559938677879618955347367690483116531489488999523964636551384738832825885873849986823895956775845887499297755443779418153466099759899558783169948858524998057361987493880469264995677878848348979363896603757793796725559898477187672939468678986928994896788297499996498986787696923567758751664643784684848493689648385751777286548776489943992379686322438977665625597489352396567642793978467962753989863865792798436685675366667566845958598589997996536875889947517996661869679147539878521737764758336799967957453454261165725876593636789846657796767269989693549849683668833705409561476495588768758226837798837592955955467304738897876799968694879989744443575854776775886863488848693798987716938854932746915667864651557269697775659974688376699238676899592498756976655255668245842459776599389685874668807947705607967593793874873485999199668889772977799838399368615086828688756289881996766274966463499895369798774794267889572488336898975669586593952923989468975636894265884918366844868568791896839186545879998889199888873238298948368788971828965598587796946997734282373981554896523787634772989598995938464407296856886183959797516988847767855581591665979095595274939695828442479825689878849287566943935856277695756211497774641929631989729286923675798233916733488324185745767994818498898994488991797539995649669186793657689943878983861938767523139807866938978358858875542884988785835864872978968632789947727838968924586599689597843746896745923768224896857764344891995557928416636985973174118777868797989965697943841849959954482789929192682858638882859621326876853789991985399543881874923749756459978998809848882415384557847669883759784557777886983898385777197966257894696495957245779932356484786632588637627756694947396964958689874989997886396852488956664956423245345773555665921586268358919898847199724448584857848939476616726598550747395373199827187877955996839326633897589689748759979388635838787634647979798645578586978541354682988544436599497717999156346768834188448227953589676955366062855982672355787778756278496993888695989798189667794572673928857299782369476747699482652692758898678958958645699977536675387445837475859785995535599836856899177936784867775778573476384569484999818643788793898868779356299941358399989696269852522376138797845594858658159994357422476395578948755568688386949867199794859336778799843868598975732995266876099379572973796772365843955709943566597983689642758376898748148288796998869595354476967262985197218891979988984591536932886789781749698797967836368365865845056958979319743847878636539688768679776644189888687998574494484459644887987634995475867808398762689999579554856994925657923967474593883768849649394787468592541964894358997897948884303891569798988663556774789542699167464881369955586956178609908993695798673645849458452677769799596685572763396672539994246578645895598508345495593725924697829389379566687647774808893576368383885929965829685359966577477584934666997562484769589679787977965178964823643959635888577337744679998694984587495998257658775590692175779627564824889838890884718974745967721498673856557293975986289771740695282856469559658447689585976396669129821398788986556299797987478471357246756435889292495889678599569569889372248846652572796941887887578297954816648669182637981731585399529963786349498477483567798886467664748593752879648999768239887766592778580237756673947689889961589196457598336872922656117267676859543775387737658512826590553822984665386763895767477397484142565987626899097655687947914793779689193677684639982679588988765863588880896375496442374428143673889987698583661692247687696692934999666684599176455463834998856733956764855887784666996891179199769677838968291489027942797999469616268768906749998248955793268789473884986853337965197186877788494998785648787365683878996987859359699744784753595699590988665357347976685663453461962585397533828466599398576965955714378794574149426694895697794324687847873699389666826596432997688269382594499975978286776655374197995189878676897887686669569542554655343944455962688798779569587652976852874612488868649828875776854958755461892657390869586864672468554966549366359976926387818946438863888639929999644129766248968958759986686901186599567189279980552901984446975868386747928842799775583897979631947515851298254859897895766166696743476287196595768898558795839956579586578880969983358889579566597886768757638514797440487087444651649258693949885725732778747799766886875296296167677688781679885646327487358119386949589797287963346763897528341585373278737688788194856475895579783936591733556699878593226596981844747795486958578779999795553174394484995749923959534998728966434974978987837478887859794977066776246476798486987886496158988694768894166869845845747965733283785124276959787458646728840867865832678933273286567855953357676519655974974947505574985042785331475538449997889917691478544582698729984978664455892337334996549689399987838485837568989655265255973646884214737682486938979769839950887774475878447795553563988879668038985698236358135658964858349787424499584994557659267881553996356699898699633692668978719467779796759938864799572969337783924877498678528145423836417693875985089437579899964747318937636672989874489895663819989497772557287837797932883926613518646483888599655978862182538682995696819466698978753479583439887654698574178814997553178117584982682184687479669598443380571889943699997868958898965345336557499925648749579697671899877179976698937226866866359675888295386673986539383778747858795583797893867335824935419752999971872799978948435935699933947165849896449507489396745658278479959717786448598968389661777759777305813578858192593979667957988558488598793968717729967571740794986293677498939726599162979725895179972769784949529838682993775673664669527555279670951689959968657880846374662568784587961463968988964958459798948626749887874534297582868965969296877985087546689686799789394733157599786688145685428498791779338762125862577685355389668497994965645899227752754996409699193568966637934736987786349588659929619793969689643448978959857989964234878483589988668481659462957869591274498894848354559767826795886666887797693737767941994783388683863817407877468842577567949139795284889575557748493857936735967866554738437895826658559598778994889393981829968454366798963862486965668835323619974739396599876458593487297875196856381807596918645986687834633479639555926943387895725775938956697899964477834289883798863773643567639213886455987286979248978999664428982569848796958758889116696238648826549358924897559665957475865959476684879465189869856573857836376358481678675498758549867948687879388520471776757999649986383549696329935413486972367479829889577998866757687846369484799397969670689638458486755998555079896999967889638943565598585767397736279974178368274212869737574398858957142966848559659579549555438519537788897868489699998698649878956547899199993898746966846836863859289594867897438949473689545963899260471278325588648749399876639867696946679974928999599158166389986384996685884369586674991745848882247939859642872598886683985552626369555977974989887388827888936778699787699979277567648839686594016595879868939658586982571488499765786552899569987341739148350849869799998738887475888457485964859632175352979974818297539986467729938277749998978343999659669788899989284779931497944477493436847681974296189386994588999769895846699198395986646974974522163274849675905987498776593549934999897666986562877989295998567477688894859257692685755849962597798592756941527386852730696645774497834849738688389986377877694866993959994954479249894999558498698648556379467627768867255373878899735798891586716778986689996454599887462579265706828268639896978897759889587118785761974675429864795888788996687789886577996464895672396698349853228918868847992799845936916644994695996777476935465999484992773376869277523786629553367056898874956884668064587328586627699467787646398876417925965939525689872689886499723434748469875644057486959353969997868396699203555649734643684074749198651657689798833745682765419585693183838757899157645589797556059813886497258486987383564735738498728456433886479758868169928906838967896467738645455498788782267467957515533879787998995865595778996997972684643765655574364588389989798889989693629583989957978637728845618768628566785995864579295765561914869676549058298049148773775468942957477799336581296988580775779698618928855735677895799691163486398997569584568644767598795643986828897943869383682199988676819888696879984859914984618658588775544729497665775145829890636987869587428484529059885591557884469583733549992759765526895620996692483276987569379597998749878707861927798488686769958979777539899768978447866296180686749596689789766825898714794863889384286465798795567897338931679267974822874252678997879599346954745394636953988369848655739698793998875475696268359658358428987617389888390999588868154887354375693263582992575688448888779579785699628688956399666838395934754814733879958265789947473859836799497855954852592959638917949629829878488688806867688396759317992558968259568719477568719539569372259679395717592934687955979855938780649789168854592909387779332996576766299563957184885943422884784953987795846987644399779288295564557778549938332698394696724299188696478879462897929736336499987999289852729917539988676646718232806571349833883359331892779468978578788589789769956999829484365323667459977979439486155437993887849885779597595783579385168995689999315668569832988671265497651929284977197789398817883588766646989605496477342647882997545754473789977393498698479549635151747196979786599992926218697578549681677902815357428515198746639860493923337294357228938652279395739879399976998775833844966758770645784777786676753581856643868084364777098788685166883249554388966593551656938833237849861153897174854486898665156757671778472672536132919668588464878523782849786576158985967808974827567698729639344953865838306856889968739969768286974387919888322972333229555813566450453969629389675826785275899873634865944779329464258565496892673552839976327346722554899797088987751488499679432495359779547996935554475798949589694847009963874887256791585789419317579492824768632435759998987386741958581585966249269885481296589734589182888986980997397987252876698983787699687888877985722961327197667388984774958699896537685956817769647968448735552436385489579976894232898668667585997957657899193854598827833823981965426776477627879768596869499921548485728515899728844984848946877906171142332889578996785996734539421689996993486679377469767487987859457869277562478779883989588667667898548988836956325669554775553327666645469884289976596044493933625778443779269568869776687569868374875372769745697983549788849334865564876378889929945873859331354575392799843848994995156855883796795680765978397850778275447443647372896374988782546298526887799388941864393888649839984366578997349468978972895978976893995495206958297977699637698378876273868568266798538690897959962617498884812798526892648585574869658888894891649945435565698799876497449892967765696242989852585591389569679444946567946756593826998870869798416995876369343642883285759969888937698768815594555669856846355855779999545596774649534757331799675854989355694872767986787782848699573867394798359378899957896943886498188679537987582399264879988139578865994653817588429672668896996989994334981079379718588986544788617556094965579849798498269639273669364959955926434984685986889968131799358398694668989892186867569869714666984784873858757995798216770763844619777867545554957757379955489833638847587292806849687779477869737499629668449815579749651615986959649892784779951856358886379443097529544798956658561957779545478864968602679695579477999867755889496351298696683628497145778189078886979224487778938449722788825759972885955999627763964286752665633891885757928428383789984959925984991577976476487157387779327572789836876456554717695255897598472775859488937627678559991465519556977355699964497791934614781378869688347676644569779896988796469697687584377574559889915766688984638876974986170878832781485467999593674441747999187658562738677456327829787788793878735696797887737666936952647535969999819471567896667768798787994356965941628769859494849943788644475514848666652685495059458658794755949961955894766957596673583854488427897675813868768552934497885968399966928545848754418577934178798683989273468393692756761795324974953346935793998338254292472495649997813457338689259998959489819178585677448975159935769299747669343727696643836879417453344319438986881598686674567678369293288878343553798768942551437065464178867458958475861652544583677327837793997771789968747488668999724395678849558647432157525949777685886787569786985768696971839759477358856859858837478989946888328998967686827999318798857794756673126897975944897996152867692769778749699442614786968168199176755295962066594978287978995699684378291676477884858978568877575534759865789954997869138965953389333688467394699633047839386547772355775629288887582666981848443580584888987979987947477549779666228876619848247234636137786775656985843778993598848546878986489827668487876662429719568697396756888682673945868848510487584666649849937198769266977997589987548348873696423497722268892559769844619679799869689699833995988898882849799216759946488827898748677849935667688443497659557635824475369919677848440286886468577289975678145865485647669994075658428336147688598943556485698928845816479328973757977943699795788799768668858480972668557684989399899566463384721948193974377748685881687495379667578925984987199486466679468964919242188753364737596868686787986692545987339478775566595868442793864398248697866479687583893774679634645484798873952859464478939866597887988286661753679587499724689659855987166674348867374749757394682276996374995921518567867859566555616476677654394455887754617797729546788633338585996548587957693466479967698785897167889754968198469886247678788499484618767578374528579920897587997798992437694654968960757789837797862904546585042469515262749515746499457746686788979449886174378583536589488764592399468475667473675838481951288699689615963279688488658978879685878846664268474385898475760978449942499564651921884968969277994786863688967287789668729608635639795848778487983889773765856898886885857659898882981976866754855378949219239777997968990868764738446673659357779908256695724370439699361950968992593895886395653998859416973457369505944895478525879868393666439632878985848378655627978783761929866263686275686656996569924647136495886988957999315255275999786849558238472841187399739034474527088919776692192479785776354388538976854394878695935824434996655589428988265438944480798869999494676899784937928273879948188499979879977847376888289776447865338558998994317459976789559597889987952537683839636456779436794969493376699763879646989384537899832964886669893987757795865827598715296879954953774626395389449971879769997299954775971967487597597961299429466862698337757297849852466958585993088467473848387993052658152529681445984629427338787588599788786496863418455669807935385859494384265967789936793949534787289173656837928458871295617574599271736232783998958997569787136248969628859669427595651944883715847974699593457485947798827368372578648799697773576547739947296789466947787316083564778678685687775499278796981208611665675559783594484579477698626756752815496685458796664893366537486997842767857198984893755886848374075172485685248569474255287968679699486687497989759688797655769945988667892976791972976346735768979955993656984968188514646877645799677752722718673279746354794595776683713978546194979746042863458455867234399994662949568954369538667564737662385690169466337491874579736439953796558685999399873953071956385768987377287573386973279859671793429683664634447923487385592364099756432869457666988998727768948766685769894553636549957346976580868596456533877686388843936359488719899898396336376858276465375179859997541355798459698925163762497982527528977887742848429276784139848668636965769792865876835781938573589917350989665139956499467845678856756378894594970133945987498598274384769764265888367996945249278948686879368786879958778398886764849458438677648789336942625836479995689645966184499993388475926649378695673669954958719694446964696868871446895749986965493759979993295654652973359498387658978737689935887775495367698799557889886794498461913891898418436571478565898729696727929965195635845191929885352886385623566933588696195759548959557746874496153826964956966974579959978716676856965959668858969273746583648685664557999666284887679535578857659176829655698655987203579572641944246698947667988749757994697679858699547999594586525526592954758990715967589658525688979497786487549888466137741578399897965526265473833438598998714764768889579163897748284569443658773793496698552119475259378535681785639722286997687535799989269867896757575338868877897369579674746883579785882563985898857936975858358956558956369589748848398669238385899735791624626294182775071943737456996235688363979682467654698776877194869366799355878687779549414786639127276576894349798164665789878538633965698676579588825397798937688693640947167975395581976477585919729432512458678769998391938699189975696547637868692868795778494074893576674938484379998467896565582593552868659354543760648379767975999862478184989729987698499475576699133649599487219867898367886935949573769746867173376834638018247388792561665579975573769897867178995789475869966377796786537869091974487129397891683997997687770859996397437679184685788917998978667778799758797996649695446766694956495998846845983986765839775852898999968391741924438639564869589596658989928692792152259988851978388933458888859795597787858517854644581977955199478689274764899797077677882676993138658372378835444694725749725831158845992996759857762658856987347773897547355459164678908736562917257945679899826889849966366492879894677494899620951957829979749944394474947871759582782869999659773716727668796646877555548778447765789676494492865184897752396430608935768985887876958928959431839978989985197189258947284975799837969996749167757798779784938598880985849487828279257985982983698884889186995966688856849898659598859929888288626929773865847758649186259287779997954335694833368987974677729968973775531238575356992797687868826897817558559729788761948449863454586559878849575959498953792569726696959477857877983768969366937425496754988537499757196758526886696589983951897766699947388886965389664545775983128965989678989999996458377665888829728376993478955977869646977597676996422285959926446899293358444965897793928078758898936936280299363183455696457259885867929671569848599457858493256865093967827278324996583768477944696865888875278858619626899645992272474469879486778366991975684655876369782777546673571153614497876499294935987463628673752898454785766998876937983979747991888768695315776487579984888676316389523969583258379858869938699947559762589216478985958958457866486368868926979889866594768548984939591893989865199857852998597773772881594449245816223787974998896281887336345962468238913978666999795684766773285384958998997476958958843328663488868368595288684266488349299658572865858857655288473793957997882780994984676766868948918669383646986764696372884892684794392679258685698889756655747987857864678693245947295714386866883675567296924749862485797942610683947997767795645561547894999467882768677588489588869696721486639869359568797672967984833684368866847366588795548567645986987668369876573063489842195754577795538997794763476064649968876978564371189461828768567688745599953649878792493759638371779732832675786975697821985887496683992683925966984995757684989299083457848676794196758731674998892991446856107358673665817547263483589636768987746688758972451947677999957597761864748967896689595999657511438998985884656673988878647562689988579487874356298896969985595983962385076688568972146835966219546647935829809991469688650667889269969326883484978896399556987549515368394985979937689935288986844622999977869937634668887846594875686793886677786977576675986939587792965597536846184985649614860959654684196964855966968797443798898555826991898687946963575639687949499184539765446857429267862794899808927991999659451995724762857537981147795475896721487336893428369459558764279873698682275849639569999774256258369672692376676959783968463357967886644268808985459947538562878199799425849735878495677626691695583966387766685257856974248555569875685268628727388899986633694789509625948878348751496730869816886698858388368649766071767495977231693965998676689376697997554789462385487443548478849477998518987656788938937463485994841754966554588536839995181987525687779857889997556969196287286577659639725889561399823657128799969959357686774690427893918458595489666253485284869648999868874853886886787498926375693958244579894443828689893449965592793368987799478899579853386725941577527247996988858541788772737896457569754891986884892881984878188469945889974705438769445996973852786272635682987994478448895654647624996478317578998795967892528948995968767677475856346493353417478438699928638899898364796993875587638966946458831746779948869968495688559697584882849487897937645527664526266597486258933697389688950946648569576639836897749588539585699488943982684737769258398267786874463369296983774853366649967748658577039045782792739578450985488679988758738798736676682998354376849698859497928546788498899431892942888869806655591344885626982979775939947799777996776678589589671737342729739119489577379683995782576992567466598779999517287736596787868959739263455925965954477776318763677989781387359663697892948679637973272989759398527896056751556891795569575997495256959994435798885814748278799989395464773719899846996884499849775664757787489836245755587859368915592948880689688047977989778977676474164886988665836745568979539645901738418634795678428285985439272685888973637466563884375777669782467944565968789580649735797378827695864688963999596798358776664426889486774291935529488854118464748456965832395374874634848419077773479978944319857548659375545399194686897949585578299776676872174763779781849959899619497746893759213336569392338469848998793777568594686729676674988978595539694577784984435977267714785699487596275462479534886774998680856646398788774988584599492979584459698625357578598988329853735978946116339899686449948676885686354959799494943896760982526946886897697485683288864125087478699986766773875653372796894665307399576477338558842907894854697528692547995587269641471638968947577771753464696598618887794833758178819379886768993669328488176898389755284946979139785243748997126342548547864344999843926857467686246858864884859897394489688966236598839696861999846969984488259745799619656485069965788346854998877947537763376863798834138769285827595956698830478962388476997935758887759868558958176911488989279890749799567747538945686798762479368722897787962924663736863627352245389779456364868865943769772895859193385837688949898964967948589268856784169925198339229714619847979883939977315258749925623668326392497485853664399699196827479805895973798748278494977988987255984886779848457675295988558876889356281769430538998598698741966555726268849962689467987687245787859297835429868799684517968996045279979688977763436987296849979686869965328857986583645999819855886691575908289865838488395388995724498998739599791429867985591979932959962628479263985638874669458867996999358679849749597696528828919861679979669675564641566738392838674979886836382744873795332189689497678933848662858998777994433898776965779018696846279875586945756364948769993195448696386442947359568349775967837987256977769997251375559889468648694566674484863634880865345986275653666727597499854565869567953479956793083886418483065195907887578923632895875485766899638472969471025733669625829871973868986445724198948489754835634857678828815986996892822854189573588629378886985148399988895609788776869957598546889949998787852990888626175957773978883763371263789458679326929575397686915847899887357351371665965556665784089846659685477876079654993952885992441684146998585588976554864937677695571679649794977784957488788784496836964998589551775949793884258627898575875935915618935495836455559466314986888896789869787874259468875706825888198536844867989092978347979478965814849566038449712928096646949018967947399388845427984334653287677995465768922587698964641867699613392493439876829756435838588758998255891657947476685844599873847938777692968916843294683697558698577664745469259888495889956888787919745749577974924657928398228828969787792776789946386277708691576617798985705936979389537495546978895429956899264974544999455744649974996575872862738577192368985979587555585428789944758863365696897560998792996966390994586506626187762979963699893978598296971999977522923284335518839796657582967559476428958237877678514597066969436724998545862688297344766981175634767299657548846593816985989984377493968578522446568499729578788595569924315938838674459858896551749970893871986974655925879544866973767667166854896384487498968989699189998978648656838377185876479345428954367589284799747767784669964957876762388596197993587789829697691562986489477687905989747652957286068939691872947910967759877471389889381289378789678598496572668879684980769795337379455549558868839753596989777964598472661887783526789759946786888668581847989874983785885696697399288397661242956941915887889657493995688657998885946575278569189638875094839983674876868796799382687949367779654565032478872954091253958894465485829949475975919858891512451654587879998217295849007527799178754675895656482889816848783872774398969397989479869637743599789457398944474887789597495509858487478997048668981949679992989977994567797299314525980954754823578415814554993776889768864326197771788885680592584894849778586895487777783889576740768546987864794399789933246744643979499866165452459998652282593852279266777999647957498438768296878528775884566998946256789885435579685667635478755753947628888784655579649568368496884588558764638976272659552535985559679339876924498398989478793527778950236995177589693450995734779318659455033999965775858694979631774996634996859292476383867089479599973666985429869485086444472688856454825773668599579537544884938968978777389437839879966669869796867558673248689566968158657953177569249999836829958256393448533786754659999544996455983882887792846275848987869854687964879889452796992595993992942987568873251941965688229787618418234345985979886968998669668948697854876569651335498790485887773778966689792279874873975743929673649868996679691649732826938849626238965377658995774986994874944758649587869536952789929697568956758246747488736985874185959958833798916447398229996336665728369478479889768699897839818529854239173836886559639677165697098926597792849676328444886957835789145568781785496856693755469669068867229218475968998989855868865769192373738497399875992977818067734888579662967956862769992127882197396932322657359878769558477526693987986874617966448647826327699737554235875386848966596283699548968896995327655988825188791837899715586480419764799743255569628568875786479399868294994494399568148945829794293939998178876790563942966986636967754987889285174864975763838598873995854560388737658279976527376988957849788924957962695453889878781779797953764274790642979845979377962976732899567876379773969797871746596986596998328287739664898585883947877392727378649789565688277679951185574624338856888995599659883937860835984485769944446566648949658944669473577787952448566598914468818742498884594678983762984829859519498998687817993759458555669859978297985586393609999769576959873346723779864794832985798194783584577999649591355354699986665435779775915553559886346468999919975843275693273322499772495533281593872769777956449673945564837785918228954643289653287348874337926988868338589678598678765519670753995169599661949645696469637692957938365924696887696795144693161258568668734796675567987958888869937575993984186649959463968468355591535683969991965959585883876165788778276852499797926779398772255527566995179684359168578964687506791966355791379907188585859375278662586938298745842689245216895947959944784257989938783482897859878695946898499667597865983814765934879935678634873553999862396665887997277997398169458766888784967974978659637538792454627989777676389956878865591483585246697486676425999468237785956948899665777849745753818659969769836626390439668467768688846747929455884195856839689440432483877769234299754710496931949983897735977125935795577455386543467259796899177864485986745698496465999882679049699771769147697793584467924818369896675788891168937987695898795989668533186577488768346263399788453869995479973396998487753957793377496734962479437741687925266355795994878759493699479276928997186879583425945620677956847838769526697545179051594968573887476484278497933145649277998774467769714856775377199787459446998339898859757417254963755732275543793795419986585979897887635689974994193748882889583472561972959477985694753366858995967655795374676998798984830546379356458987459964895299951382754996418983656966995898494928699346827896479648948961696856467879949977892998515740312225453855997663838775678857178599676228983784885897676325986965669963688955483487482968983277976833189837599825656876691927949276186959792599989899943684488976954419975946235474851947822927995589166666586597726494763717935297466481967785719498355483593968962965896973566746897944959798991328668874369349828182968674753944196897459856578348256587388476627628997560575773692889528895439949797999528522736963896582495794653892734575669834961675334178678678772294739838879799798878463697996567796445677589967236660558976679887375747898985853870354919392875884584458448984787597796839897697567886797569544385564698596697698526844557838879982907666547785267659935878738787754917938514489473298992926737684879257994982812888587399665565366874857348989366757897996773434604647398399816885798894275991644789749839979969759253722874636378048779398878688864986679657887033774457974847439797444856795837795799988666779973729769658831945575125376954182889465495275891795681766459689678974683876966768769745877944745799458594799519867897982486738878849579353988758484979859737698897479797684959796997872984956388784667496696394763779375643949715457555948559794984794832476879225874967073963668992687768889959883782692287865486858977795958964697958774994975780722358937629555966996926639879696674579782799597296881778388459564786367787915868856669798777869594985527948955983806974838959749839469665658233757786428464599974926943598759975664996990869999389447215557169587363985464659242888669999666884771170247837591199193473898973348747879627689585777459958745935944679362974437744976882946664775566090969764486469975809848754925266868726597759677339886557779698939475574244466556734897788728867799598578695795063859747569964589958888873874829459854548388758692578887458789997588290968267978359995398652748347669694487569999888958755125493858774496765999839977777861769742336697782699976535999429647978885687489888968938869883685465233874332699279899959691416925486688988548887557879457878869788655496389479678587858784554399663356569737583397688249763943795369618523495687399634938287366668863986534984541966896994387989788944488679498596795716749675798958888569299438738558673803781887714978968186691985866785873687995427796892674957398411533877985799987690895266597836989169893795342497869991848638932799554825688989936486582896975787977671755619340697999796996149689793682169655977676429777998399818997629044348798869445295879644664977387749989398686799566551875787879554716997369755788279958254897679994426947056375344922922987923592964484863279947896267589829869586549735364795898388519599889367787575769794999587889558674768949399586986299769889466983478719627665329769738858157297680474994392798996457364798473289845776375685887883984618943928478546689497846898627677898492895547626881888243929845494926341659036765859828971442494319788586744859559798879667662289422706769889674517379978676867699649997885566968969486847308539967969365434899997596953855588829358517449596999436852149339788959894435746748364787370983997745377743468695898733293679824744335397277475748758987489959759563959878265793355978797959997631939669568964865455266576585678979844817968867868699958159774905996577797976678804882989974757694765874935284394754916589773764926395946849997829878799678886646968652887527997956386845091536435448766895898539996925754625966247879964643738239998744278896695847857399649816589609449694656854748595996689738744876464267479933967686529379781289972489598979756786789864478698815889968362662751994628636627928888292996268203255386446244468879559849634589899978694864669759954579659888685948489299289479969775927858989786920989627992960487384178847574697969748251759938266983689659660748959582969599557769865887948394768983988876593524888449776996549678894292488327992169779689747416290283793387836936335884897466929297569137697598663821794442976789844377699363741275485812689544890969785756598316856582785937939748797764339256396863980558244788628469265616656693495164426655527534668962586474142547359838671795663887889599674776987571831987799698997649997488888685968384985653578654577899754884859828754232478886448484648929182749735993567496827780169649772839998797487742560785849346368433786979806478768777646898688583797988949796546445782625937729288968356688685879937576769376750307857485566453416698747191759744758967875887647629968454966656893692587592376773366674598496847173756196644727975599799665733965748577947564367709759622749772778913938636962596499964973735577498596994658867889659889299859696629962937859596918359630994951925644969666476399997708482639862575177728759555799767768999728567137559957935724514877457942938246859117682698349668996857872926762896688948696358472447548869498834767985385988598647688896967979413583699486879396559489945465758597695098959584719836861598997989473889598497767727995376588497118855669508898561664716407538978859969796586979945665975939961589359848798859792899377174444848572789482330676689884898984958378527366997996499569828949686639736659673979641873483897935958587573938772215596688683881267678248364997594587355705781876203976559298886878974955689988932698678758688778274987657499865999978784466826815897956668862945526239496416897564168787599687758746589776424588538566584787667187455994794848878363776773545972924695748875797889869637489997296636438484439756987564388866996287872888924598468477467983796765963893395773886799896699949559849665659562772385776965831832892644896783892829854474588887769484679575966485925674632760378423432468258596777897943882829841765495698785879597645464875593696864999235495262953898863827916635364868565498095947969768089278977834979479827547984798569548898659893198675556555988933998769177285358862635742834687389698689674963493755296979868595778478260397196979923675565599629872278975968689354938984894959891378557789268899579938429585377794825986245489449588774895995973861555592867929799659958569567965696358768937736536969578704923089482978416147732795289793287884969349958723835888623287539237854787985366299715911844677384352738638545828698777287929665855678823778788742173827855596921904889569980487429257998855835169768347868524486687571599744197798854783897927937898453698968985238766266477999748988513894364879992463972348787887588065790805559958921444622776591766238899307874834957963533459799661893019599434960958297633453787225689661989795588498387588724648777682775973968877185618483599263998796699755762571942652832585856188962974875758638689477965247689684233796746136513915846588489889539969962598656649177155989899688839897869699969994449582778547799464873889472187497662989578375978855278956424696499657958477879387875455799395952192979868499278497644868277643788082776658846864566894874747795664937686815638896491847635168848971878766758959964176596388672669368228775865839739665965288881269266287998436838895897654387793439894496058611761983798795945778944942584716858995589687964937478977999913487848639995996349666895764792734944262926277676607966355838595888336529693999837569987889678869473376894999793138897871595686946983777586158598632864874446563097996745876689587688797691768963999777877996668838287667944886683898917693959689387998035462587774418455535623855839478552576729306892989862884679783798777842850653945634247621847755789835955679384347946687288305762979443922267796893548988153697337497650646654692673747936787787453458963988967684848685777959888378385899879298478866878965371798873395529781745997296478984977993570901988494776779960567546497867488252533849288978862558759782945367639449369744473998476887758474419597579453956578869994738767748287134672889688857492398592956659467645116936734978291781699767644795882895692393857258805822752482668143976986250997926395933718998498856457867179381689587799598337795884976975759893569465696974655908477797868596569569023737488860595998165484444769447874985584599968689673931844583955458754878668956788757959874397898298676777749889892999887767855667745886172179445782774689999753489967478976977948787336498784839958719429864699545668788907865739965826536824698139447247758637927504619495756999646796674855847936979219388806877985459881547176874877869773559588698947579689887334866596893991979877986557761485799587849965918485997816682878997748887966894889978675167649066479652999388954873974855892618965689956975459294985958942772438948774682377948768962966898245749097885877997956846685656585296994361995844747886995787726965177484884856983985289997159882978997859599343968739439269642879944184265392968495736753823759997942897635194979797338331977798779353889156804677599477788878944975777465368896987777997756998859806927143852867379788476775935734393964759128839495997227838778487247993597571364947923929356986663799698748299559945749963794274976473968682787839973685857889247663037779759894861497796987636965575693266984358688447548977776861498946986677886853885738899525572149878893695877758848969955664477142567867674994188443999879644832468764453590151977776887846496875994345747868439887985878396488989557831907876467547649226898859286397779893559879288797572499663999947373399635748769726829437776377345347229288366568645267669968828464496589125987689347394576216739459984476997289998259689787865867879759449389496333914566999884735188488376986917828978968657889927789689538456867432783917998423768995754759972468931599763897979728832535244242948881388988359598585543941976885683989884789569786965499527709876577849138696965394797893398675825695733965599558927874780662577973482866469477945919798345794357754839828536586761853479756366899993774157895363988849786798279834188589449791477665619968577395987786529683988145657978798564927486694793445692779555973252499929761949568954838988546658279687231176713438799939756975466235727629965785979789694888093498599738598475034465991889975252884956993947987856809858999758943699673874976486449941385968776967889492887189957198968788895875883629689853849378754356584857173735447566394299843396795883896985776781681894899985338578984858686387929598685679643388877685947587826334521998731371776478967562938795575993398998354997677877582598246698049374384167775470648751738975137779886688659389699987385999811558387788469379156259795993775586986577394699824166867754936879672295484364975932968926598786594890873729897699514969997924899659965343763968176858317758786249667546219668267759799793973858674744429685594686192878938546978969644306478472768989585293525173774779565556471785328756885799997714629785227947933679893989796595989356889763334973593698777997939182837794471986959868398477867864925586695724880748365764766483989447759691994793777379534769799625649739979669457757897878994682798443797975854836307664938961998688486828769437587688288938988777809639596989942568819579786837588245876795699687179749539847639996796769749719848963855539678799395563632878953633864949834577873883868663985425649175188355617299865872434879388458977858752257737875926789341796798799996229657865545143545378899576879875976897382976837939948660759998387747989279928225793971608656769798366684528756796484959594927874576928472991737744572581272989768863498752567393246275779683457768877838749574997581859367783177978078677719598819637152779945497467958997872890586964193473997459897879788458746796789251957677985696968495679737698268799571894869558796347744974779948979789637838446784998578345758677796877887725565589964771774714852997526696577557759909398249879458845679664775645867769787183826934489593689287966954667674981893394939125269474678379699646539565683969255858438573777569495566775998498395692889694785777686544834626997789219979995895366553936799888935454337675389757471815769598946485684933436696929932949837786494969988825303977889788534492489746299748782718654888776726967652952456487854384922770873417596685567869357206568636472272365998886559927495864666739683894667964974624639427286434877976761876483755696043248758396425394969888284488554494272486487774949597823476936746799858267988389575979377934676825298797398566697658949847328890776679938219934589589868778564784718956996798959650921695963982176658754987935397263969978774896780684388878970216906329765486488878843042782995699682869354696951599699994343699678647787396288896449598669766878739844897947869788114839559336077177994558672566359249948880928548677727738285349239261675493885729957965886898488972472985779998477629577468438469939457696886547935944885688479384655367333586986854887961736386846753797779997537778982958133629574896986269473688288698285936574293567426897776965701765965864489687742977954284973936678284877795466338378448959771286897557979588779779975748786974549667683817484609917585668539974179978829899975716666587868576959197394617988996
89854698796885896466666891866787717494378648675975894877326178977896784849577168887934598831872873976683889544437158482965365349459987895539948476965626895799964826442899634677987900949149579379688477945827979826859878739362293996898289949577577865069794476739798985398987871767378676657827868868768559794436897576676934798997982648878796714943498394497329536969567535557966881433877356886573369193399559854821985989687889759499248778687985998513467468961663983567286487777989696567973976777577468794495829972288862389787767767689897784894979448873999867297278664477763696927849394770389437579268694687627869168979598774789298345945937945856879459749966422386979869689456789699883609194814598669715954730917478882489793762888973374678477499982868435587475595696957349644288988698844736595938652395769695679727377686978572661917358597825889847978239489773699768548427195499919699485798583649974289779876389288959836745749257943566819963529533841287466559849496498477484795989793779558278369594986683467129468887887368787815989677748680874898655628699459309696418879751682473457838799739748836679919572986981477979779695874397679799964642771857559684994967869786635893696646649698758856994564728888696169667697167596867839599882675996359877889558992986967699877789746886729864572748693178943532547549967967893857342798689898417259659374673769536856582875975795654847633971574519838891889876686983439286459658599693976393799924794368427587374699719874574485478698682665897247968856248659763749866595778314656378889893799874856979964896994857978887919897668574999693869936978999663246467489446688997968567195755466757898858772998298614719979919969495785976859387914889975679493458787568394881967926445397883538469758494547746439686398454291783796898668982962189897164958728858619834879584689468737432327899626989795679783195841346457495865757987379978763439499246743705667565128627899998963665693877557775726638959545979773781388259927474614955969937366898399969681758959955688466295574657667678387457889406943775697799459849482454716593944880989627743966747984475275649967985599884574797993687974619967366998597967637997688874356895795668597667698878582483277761666994220954467794939796997874985596566998697993549679982963689979483733466682056312778999974428899192549483848974965999479636953885499688718949414599694699977745857677582818113753997977799685984752725955585169748899680858988586483847995864748748244996538568688439864986199741799925667687647546869998787676868799819963549468879979454969547744294974519689796888897679547658656599593651359694486898774845978394857077996677992787338757698585469718228596488999759879865678797698994132966267709158992081499836765437327399615994886965892446749829997369489726749877777391757698849957943783678654855799644554698657881703945663968845771884519979866986962659219696846842570829282456886737789969596931099589435654167889249197897796869753558756692679795676361378579629758288695888946373488694988797681678855875376559978954985747576957995279278868460582489473795662879554377984797399993363859886728684889537877364927972285839816551867889537989893747768990695376875985694979997986799944425577831569879485748916749375484396899878998793406274874198638858166797256826178993193936288386799888493789697717056977469874488924988487856258857424742299361996965762758822735229359938769649263826595194455687797889679399470164698446478698866983957297673859956879868968354874596351369568559993989326162796859296495288956883178669659849523898759573966717655157582396842427749769878752996788946591826357876957655847976676294978871749657196875955997938954947895843590894499936543996596597526285586779388499779155758487635969657976554471846926557685855756556393796464398508978963539687285479295140837656738693398683799815997839158694787952858883827975259935829859798388427495339584439689840169838749481386861976894638868899694568662785389469159385984588128577773993872694955397377799441846546976486828656982971696789335667964838579376826376959996639355179956426774864589906895699525937893855567787763469598859559848283778378847887625996723889899358542948773528888578899789755987476717474769299587456889999994998919607978174894296759996746997877848992386894235385849162538893454988578874399316985687689789595641893698699889649962556589694749489649279099966979238878945169768797877779884369869179686259676897387552663883439698237366387736659855798497978959888368494497465993797456672585648684595447988637966977856767865799648553386773775387797269597875867796262748776355617848677989387298915975769486984899856949799759779928193369878769981638944859776328789706776695995699796848568946694998235568767999479966679952649895582593667484759973555589787748684937328999737797693587929863958879375555723929678052975444828293967639867878559927489843875742957488361434768477685918659217847966513545452897362577636968794557948475172768985898455759778656565979944686797486571987878917489244639423769988897755888978698779763449463717656697766578987349857866896388876997985794574264842469556958877488774874388469987297566935629754955317977786479368567628688382828058197749767946797916599099685747166575198883743260598661738359899788241476949787456643197488450958872969977823896519769688789915189684781293674237685875796998893776918366456389598149268989572459667377896059132671792374839966964884946357238439589624826675747282996977926718479987894298577929499884939576354396478289315675998356398415988475489733386744695915874773494762537949998626978984446984949558653269293985589786981785359863988712853168629587987897698488974676598288989958953945298657972278499749879589945583399869259309557965242835674987857843858426855887875587852943539254395576064097729572651427969797819999397746297989379784957878999607785897729373883839769769267538926758679757608744988648882897969792539586889516881882874669974452945487886459966957699568776978344757895885988897929638277677529671954799272794547654736886825728922688873865848573363676695269954994642699779992496867785556837874232928645588687664723667864961397669947486258288656986999919879394606967465583968478988979814397596497718988970847699527579898436938964787428348968349269633865966876566915798157589799377797884867668329079783382736367459958665876956055894686191493946598398342652092988567859976848678748664997785972976285998678788858887432774378839698694583473536967972894574581685767273608843925738748634455749739984654215944967656857867159658887975995688267818594975968797514662909838558797816392889949488667717594782655943693659878948994154219986747795796991498697741279249496775862577989968782395386499379473754976767989984937739807946687369948881158957868692377867596478967487558894575199156756499132749786465764655657293494699878585969572219346364534662358989432984397777354982881896418995997279778695785947936561498436926988562531156684828878489537815589988696799684884397557948636748472049378269895606726975424467482776967955946185898864666987774283359269445179857976958854127495083982968898732487686948897690488258659825656873996655493895679885965278567872683596984671538772573856261576879768869942743578667658582889679838679838745437799689487367786935649985767976166792586677895354748867647855187996992947896364585915888679949876642491894482761286897878899669956579764661582177656235911914734335563591384987662357121772788386892548595824868948466998536875889442895859989697748974944355988559774597855636967558513889596818587299679595558898624772886877839879767559251799973349787585878689884328372834978989434787965878879985658587963621787498315998598584689184678748928635493891784415956888935497439195467765839673798999655835759832453588342954775556576793515699991454691077838853682464691975647952518493883858939466746787738548738636959327559975678197853423129654934322578846698257855543846826856668449661939236976735968939939494679958593977657679737546199874964519253443495649754396685480853658198643337134779895772668696938779592528366928491986899817878779498757277178922467656689557983884658082568199687782445749565378987395956608292658735987986963699887369387395033475594659784993894980276598997465995799125397427549568912992599334657253499597499627284357884437845259964964552968748633543469788498948579987897966876686766988495454561427662887478593743864866998755879948468669859166467982695769964862474149856135559548477462866421599779542884646695179968819519855538758469759188764986569744886617919445547699934379846726674499885569774464583775765945319228592610799486754798977922193794726563682259293668487838653775899745855994286589948798929969782743135152125498947998787894997976797287669994662644851957818847728765457586686885286384498927782666899878577886989833948398943871727886476834378883799978969657999088968759978493789789379776972793679688677739634986878388474699587881621859789559798686269742878892579693283931249914580686593288569687599353753381564679689926394799935025554769865919275349732584653957789235669989778935992652576359667993385676949953376819675886665289699477699564629989538463356598265775598698754908799795899662945974436996688777848424392594888562749872955499894968734558886716854797996973837786987945454972993638947854789288454344998876879619973877449993695884893887719429725956897075997698675887778697879864989269994898158995699778976868162496842994687762397877882489776324497886695976598476369979799165335816685325648494368974689737839386249576675688979857195397585538885675669797789635868877425685889785392355876354556814827769945958684594969757663933458917678774876247547863994547497586679757889782613775714999748919446869555626939395945899689789859519968265588867896786953178836884287997592378515987799781677969495199889682799865151588096646635395895859764324795568598988737734465582245527914746966258477733854672709887894666847795775698838783375973198478993719657427646781298916147948836543894077840738567267898968999899529458897532452777976933698479795895828949777495323532879976638895654377486744594955637942545985965483574963874995733988967857475993994797486979974688887899829649433892749999659067789990599699839575187935889568875476758605691844556248645297495789378462748964784536651559462389348289499868448137575983938932017899897792656727464438917182778747987778988296137949539154885662988856988668868858997899575845465977678966488913335344987343498254473993953965588483766917297968785141644567772679028791779446742997789985759164253294649875753984795956519726764947629679841848767795201775679123876986885254589768159788947588838856671537793866772920758777812497767788470355564486774957895741698977786574976746995585558496857872886598787658223489258677392477775499796875242528769795955567769785969465966867498854836899699984546595789356574827266798978197191298744786832866979599635775867577699764997779732658678553245395919727947372957283749988290762567333527744864798499767134293888878638986776569599985894778988654268566689969765478885395798195756877839395039859267777558836957968386955172679478854786967524680949777873964878617974829999986763529463186078344486968779969978878386999879928894957587896754696977469847754757695898867694976067389068559588989358745884449832736482725897745238899732665752879893485437841566888686529455897769936974471779364664976897879777768983877579955343335968555954754876259867083748596382958845366596248549844569759678335734825985959484535783697663659188869758736868681687578992747732669695656299773379162947476569896967673673046954428411757773958498637769949617893294256577989779827174885351478854967888599885978492685997988978699174976867864288545497237965268997493495735628989883962344888693938495738679443836894966662531769945488689698879717599759974859995279469365326565372773377676579785769859915987628188987989975771856954584735795764996847887699394987982878956928298469788994584237974346884828576389796921577556459519537688499618774759567589788379859774749789949868235688994557517341999198995649645593851987989898885597988390986685836185398656468828837756841655287580184343478944768669288555493750854797869693799273774937763854989983531782284364986753188649323889947587698263859733731879794499237957849822466693866958796886595701677671429469895499566684985478497377358392899995677574878449555948969685575867668587384853658909467524993497458783679338338968897846584997787728195107788987596637579059797698885327388963170777368994663995885999944747564337489835841366497676814998879896848645755887847776224466986767747658694506666317486890549659647913532955994783797974572304842927978690385979525389754969995549823699989357797569277719866178679783264736278382907499642893619296382978958361468669487498738588228969878267457668369587755858694982979651973689623997357258493587997746968548861486929879787729656994989285794865147541585337995958439971995467489686354969827438579656817784766554665769878572989966634455865877874827037799752055994484295939954697825563868847863884479475977873966818748979596348889823593949625564688758775572393835078546959775376176996669797879775764668828980989884659239997994737487736778978151566618429598899787563694478963946679337654975677289965398256798669961979659796978890477566828467487776918479687969765444364771199683998887869249584778979736099569145785643194666742999674968574564683589189551445949527763767858973391976683585497986729588446558388657849738926984965798687789887748638884576588775939787993996698825268841959496423926499899493476318856651417508839579577856868957958898688585882436890536593587294577919869977778766248919745996379864485472879977917839954865755253824939269588775672954784792751883761595986133460656469999979754699379939588865757657695325784446378788687389695234657263497976988729359846879749377467741098694559277799699599869588699604883293926674719788971269747685705736765687633599789162875947999904439353485786938891678867589128786889967844659957974149398768988689764443978898796555498553987184982489513879569641818064988582778387641150387912641995789686549997325686963988697438862353877907884695847789855497456567997835817380728542671599710783743979965295842493718798844598836278649897943747885875365597977756783897498886569426993748819839944399964986784887089386327988512577888664667989939495475878195847206793698862779355841888399980649913668458526784597595779969899732656683946985264768759953299687883455698864438458869779638978639868966999866986977985864569787769372183138495668989556766439795285695573869418374845962366517083799335438958769599745638754858447995995957847881548887766749493378718970589856114603468935665767829678397974532968599149888599258279368444953696979775393386975779789965227878639577668689596188687577965467634812586879678976686786897873555965893457529769639967943888796469686892884563899564474699872898855966585497884747593265128659668726979696878968685286989776656879569868386698785975463661988749999967988365953985906791776852975479899587855947955816583776872164741388738443777987338867582875694956609796585858965831958698661339448286565877898974795519999887577546939882866265854972558866345625558661793890272857929277234388569734959287778844850486982486354551668947242485794535766989989667786468397976928756817555645794757698512885479973687987679799425733783919569897698984887999926545767656159484878299645583984583986887867776948458771967794827577619959577487635237899569339897839989628792285455488592237959389977772992378565816462455677958898698779923887580884378957357174987663997697793735786577176778788758377796848937852846789486397159655465536712588458599669778758858789677688495867497999557787999877168663667399239716859585998888987889883697932036486196296696573669799694926537916408187726477994788983999969942984667964993299986177965979587736293755171868615588456948838937779656638992893399696728962799859698667278868999477976638477748848899975587843387887718968779646662596978673776758636359688664568842978496797764177738697648282592996398689075886897966497973188894779889462676678443917776954798997849656798637889448096888384387977578679246851859228257523899698736695837857570163767969967720966932487844693928532659934663556767783568965497857596285684688876967547669856378643957552689969876946849666597949115346774373918729776996889518555746796965868689573968789988899985188554814978568958874779829596647635675487616886789996789533257984766779925787978492684168946635385571462768966763596569539677796832716588356855496618988968831799998599747838495443948886839736591767697962967989575598668785869726889797834689665858958466470969499985958597749979587775699972922346193682852566718426580488647785277957799653494659659876997495696996777693599478872697795489987956758558555814595657559988785449486696672594289756687644594594289698573929998913894578698844599667356595637789748657588795596749377379275717359647487926584983768655813868655868555271281694424597857777674482993676812648653184733966528194993952987429859568958828678829719565864599877993887672379666599114546197769974172989393598973571278868884922135589478890357797686558271667948989359388655584528837774087376665879799725844346768779773935668779868888648585399739553989197867599998946967888298767929879890964944429899994573995964443648791989745803261465988767647927836149779389497826479697983956499857977175572746243613747878951994246838727472941852797980521687944997991489557954666339698962321958797678586499465188559474877667679828377589987588855996799969955997976676527898439859346728987269718786558965553383849116969996906789499677876558996569447936776873378758975679668275659883479765847964825558797549878882779759881797496358457583795885563836207298648845898089497997982535858391337276263448861225938850496898985246838358866697596898771297867539767864318834443949358758488229969692775750882897499656849987969856177897752833867987597966697847967956645574547286531957498558746548488767746770656958269495489475948688867686679973838386876967268878349672543673897586267797988516897192479576849632869977774658969266952895875994944994797948337395658996777176578805917886671648668559385969297415598972073799519439967398777245593974921547567446586456999577898869747779938828277067799799699579875496663976888338488896293184899996754549599545876599387595897885979374389284455878596289885998229867386684999897978952957462666440883772767258953784154919936841411785484288998733611429459994759564436445579525677657935941688356745945066669544475498338975685679988988839641865555567889697677595387773199365362578979168689674593292855288586458585418827346788996289462678485597979245789697688774216692088673681809339376469658287439728567642208584745780679979878493342377874556847783476867785283699588765754559689389869999248966997372878797853258985982978972379989654395777967745854968956696251397869726954765898375765463929698177379666689257287856448643937777587913966997461611197666684892593877865933567563855486387894898978528744155599747914958995969187478571677838993475980997768519469444972854678684037297486999699243798792987644887883832673236935286358967835799759796689748337496978878557598466789837999979278483245596788306872835667688896236008466577974567363567792733892789958886275856395599356789373825496359539683719575485247976889879986857037888489626993956518886837744994186468896879814746113663637389727789499442944766285768897745594647865298559614697334957888886799864978984877998487854927899635634455995638743947738369588528918185883464577749738802646346459867227274942864969688585689669697493669755726555994984966994491981214978783198688365079958746625678598878964489791438795653678666186540268897981238574695784388567846563993365594744389665628689382548978889666737766795385234494756660783795487646639799565988994278752876668666796846873839258546994698658569437277899696756966963895908554896509828636974789881966345989688945444573859359867688489286798587966546746878888876977965757855527698498987558997338166446974839954945798814587418468989745765948589675443458669713877629267794818853794748933779899559626836544979337828999759798159895874697707379588369396872859829647999488323688586692367684593557868890947978847569976349686845851448871894463167151838882935995997798974899879458859147159378978794497389986425284985638789635916698862269935888275991744184649976466969598639855985657497429247184688893873854518693880749257357564759394865647896886874265751794788970988785637468584457789399839358953737418842548874879734785448948875959945988917783788641780268999429982756765999476998978968265618505556747687595977689889888544961903974975787838528845431696888897997966459997598869462677953344997369738755479546767599478929969476775564738748983698296859244938867885975494894782299998478639927685758953542436887197966297589562734451879885499738796796977486991791974696894654986778317748848963038978766352575867592776844999466898962795852983999585949929569998339885916586688598886974996879899886676986576799529959775627284593456384687924841795408498689446248825646945585775777498975615378578739784037959943938967593677785680599789298876657999659672256679847657876667877659867669496529879799973348484738647859275427669381578838532969353464725640858376968958546798679987747869898595988713798698745079153342626587762476148924889881349977779783985767846696798388787263395796679697583653899898972848287484696897158582388868966533997999694475851929956664758439651289625089569695946667954999455619458767978372747678487928986759583559696956629559635977645354511869928478859327387846371752698455738868178472999392484368973779666675068474916996996913469977982829689369639747967975968499374592986345536689959687439953995613459348558742368522565945956792795254885777338988858599468768588984582523994754486837784888589637159898978495518724798697296773855989989994725694435931981897998367779945559456759837997495366829967979434797786991791677729947664593474448944995873689565849159099883712765057994767792839745677759949298745427148474168568316189568788457438588285985961678586616988199443781679797518996687596882997949859476977969367740867849232725727499866797899649298175694577985059697978876519985387935498471689797545889753968837889888535715189745750297866695436359469487767959957595499757547846996646871725576688647222225940788199694376299947525666256599999798675914318502968686881552347599698988976572256596774199458899988997997258468554689577882579779589867734387648178644996348923637868846955748686747693932627559597776987586767982587531944659892756537789978776357537888464118255296933948939832783569373969898645813898748765648688767940759856438648099374736092118750568543974635568885696396668995374382788725578676966888676358473787937593599958989742954166457639685654597878856174986778416975986391892586637937678875289769899944429967899894735278631286499999257938385491397935367225586238252857485589750558015639796878887285644627736749648445254948888828374384968688796947996976946668817466858352344765988828779633397482996889352863317687636966488898681859397698538988497969734719273498862976888753787269359813347563397283448908780685456794168729459857565398265532815438348489779754986199635371297998783546545397757196835783516388877588549699548975679837997773949718933757799485992849898977888575977933875962547969286089889749799895288464939053499507853458454963199894637561797868188959624994368554796785988592796982973275789379402565656515338695689556679882856728737437898975369968993394627539787469999873956688952869776968096931796778679876687557924108439478297399899928778897887898963388826671577984845904627198766428683899645896099264928779699248969276786926695687909577356988875593438987687006639825765595482705589775996869355625644838469366769688849946924788758497648709479988193338667434947856368757739619817741768753758957269969695585929276578847984895883935785689825644449997362592618928597496274369569887894344944674669486996925465862758948997898578886136579946799629847627859688725773618895685155633687772939838884379659255393354978954949819743993995827689476196778989259688967829886581977728687829957799793686797855985786920427637295677895866635584755845997598386758743492964972888532938433347368885576987829668872475339969459888148781496455998594867573886967293699679918677866898858788547193725859695794695999533355395576928278898136968989753498739767721528255184897924817976655883452998928667256863778989484795698973433988899439798575986939829987987549986894781968858997772764889785785931985405677951975855884696639783588777959794863973969878220895893665125695558577679536627577965689926574377431853686376992592747666566894396785684791998996749759889610994994765947594448888995963384745798847585847998979189137948369392876226789277436215976694599546996888829976968699722584918488869636755476899936278838993716745817375779758478185336466673878554889877764592767974978891683689474438669686288965685984826952673155279795981573885774938958787528463599937815781279998779664596278443978429873976352678758656394975829275688245466898917896794789996175106498227648983498485777193624939588475899974587386455474873897379898941537397996835685877679697285573889648859158979278655881354598778772488845979499919198867995796879559455578719048219759739729368945484749964775895995986699636337786495892827758878299168585795378588487993943652392784939659845883668488758474743647796189853977837466828953403662058596662624876319754847788215372287596679858498698843734462872395796845783965099763692699757766927485844985885965967977589543886897778396564998968798466667871885788765593446993415938666765298664886037455682859867968528616684932546287669887864789902895954258996676954679667732695639996667464787623968274756666789641365686947983679497837864979538988865824878967689686964565678746988175841378655883835748679687648949979287686557765168401793858653742468858674676598368723467581771543936968999818666697919819758773765294997947784895739258355686577369881979485727576445999769778664968597684988484999873766429785979616186788625396457667984314794605983587477928669428873895298858888679629385435636388088979762636667285899977965656935285953782524667251548862797799985986886977866989748849688697374329324993685199336995443788241696859993845899687829881698687495731873956553956159637927266858966866794985786845757897775189399253697935947788640359499763488799499987944939536494958815349846569992957275977582859949954341423569356966929937656996758879995665099843663997473593995943725579627497495874979842566998896397899596625464997258686368421564377441957567742699779949837378768079747716940856854749847824343847728695965762617436494379686599485598694549985967447995796492686982816656666384968385787827597579597974542476986896985959999975929478692830147416999667739687426343968897996834528982979987943997771958456765468159953096288785777845594685549696758579596758765874682694489251889064678366966958669559137798207487527699368846666775667759992984786612697376879421865394843856956662558575898984037944432959868442383876746613649977227779879969999797993985526477639998588699769699483586759689628626978367865899591964492785394246349823235799898029451382949189779639489347949383873359379165967748789952851977656459398998689698353035167427748647628887336439167778395568028880593832571964599966846968513276739764888989878279685647999621645899669997763687998786759998747564397965651748973328984559986739282874457858976649888986965477679854736599787937186684399664393097887927194587371593689766565691367972968978296427746599639594459764899966738876914178495969687949978768143829987899765999598796867257473967589236217999753835827446437283835783887356813876992597167340425229139579683955279889967978448447937785573679886446715754337949839768756477395846859768536957795856396589288667773629868794695753952386876574744596717964846768858189669399302998398785496448976739515885997798269676717947667777985788963881666784755505818573868854788856854529955963798949696582947763648687399722828168664516076488686898797915998871717964569876448665996583968589144596964977968596448574791855128863489760484979783959969823989619698197977935513542124426852659369996377696978176967679376796971974975969807479799478796875987428759148617892426989747396538187852774978958515278858966659388799886164687579398496387598347878189984286593576893486971536399998677670656106347986534884559458986979977234247857947779999578839948579858786975828766659618863739788589272659287968400475698869457534198585853706769639239688544469837264888377667536596898794478396878779985686203283389979538998879876953897787869757785657683545688396675949499479965217475853591494379182499853937993789819752496939267968789773380888998797787299837886754234887649469957246359858367799797796576968569433557445785983753544757356388996779564587996252678456288537685902773289759783734578785577859975267653836824859875699775999493767849493578176558127435778866959395642657895187663376584734645728819879432464679867387886983856495493753796877895527878798296825394836694935773965578694799669147869625768695678857959978945492492171389690664467916698449942927389994699767279964646476673749667445795698632322458190389789866964845939489965389517974557334399987593398488425977844859958896589628928996567783566663542685976399746638789625295389953637838996558237785759697833154886586973857847966476655898451878627692779993909592538834768836647328968688956827899886739434999818995659997397427496295558396964899927538879797978998498788924965349773579648255959404849828694331579945767679487986214589487898496887744785995389444864837466245727699655878691599568783749876638523562961485989655697477754268989877579974784779515785679497378579977775984799584889575445648959939277747591659887787653892648967898595875529489744574549768877995978786279656235419575499993877596577775178979325932797727877819481899987893756498375766996374685677475795392479966787837831599139649989991679847895565884585728275968486572263886874929956364346629745994959866578977579958684989357959847879968499655889387771689426589795865898534273273859648993973388886824586799677628763839568657557373659595994569868183457898999949677795188848329487733774949396733779796978695897674982346787858554973868368627785897767998798477354397557854737847845987449499666897763756977281334333691228698498871477559634987867577506877129987799397645648185926748828872927955169443646863677443653398986929747944798487469704878597449258156542948957687832883522896689595685254948639935783577798989985644929599649847725685429799667933885257377375889775884765968554877969883799223339797989587486967799933443852536977683966657429575779884817688958799399457963769988497546827959986564845561475688996748468773256867359919277974868658666707499855933873771793951426557598657889599999691267587997485359744854339867797288492792387599355086894796898455675298562866386963886971657790199676649917676289772497898631979455644336982771446742582558782844926534735988777754939975677999474294496596785778889994597849251797882568579783886094573778876914579627546089472275345822389488369237760978068389939973979205419257964695677997447657796897941833785914854894672899458969756938429422644737545794788838839495448985657894877446446856886737658985986936183343569749845397995139498997766678885765899885839335759955959688367478728787929385441498975799194479857523553272566633672623728729499545947656867773913647077756365297728454840288678866413895459787658578988865739919662584969765948675988556588779837849363189978656599586178342929863897842372977477355589759858279861682097996888578579677877599668677262944688747988278658818713699476957583769338844985387695765992143989888764855764932231673597475798723374689980485783888324868695633589295675539867474734155637845929547613457579465882895583789097496389888548783862878964448937767884222781212835695629534676397394777838492788555984975345769939753776267837653257583898776679468736587579404958759959283185968828796995942548492787298953879896899806978998765693877795495982376634573269497857469896637566886767985618459565823899431639698893568598879495987973567577598599966857259774569797597245729994575944528833399748759577288862975894666647955669676187968469399459753448976596839705295599653549689562648998798487385587361689684779846437348488922572668936996496288287434989444769597795597759943469839419595979382854861964247788979578889063977998635507971959558795178661996739975968588654985389958855442774447647889289882349584377729898646687297959397587451196378742998997496886589949868587859457728743592999426767475787398756258996969996392934559132456358986674285977678227978667259663339926838990999916998599968328297899131699839985776688849934816598597447854129957297977782988891771592862770955191899972875957967494776599877786884697949135573495989437845986899284556865777976592399677149279934737796559476897119569359594446587967187623886595695411676741594117645464565996977674699544979478848353561926675583586298566518998322624735852627953946729989769325855439759436997978928783667857857647785648991153766498789835993787495917646992792595997597683978779879997492675389325996638553636169646786391783174488479985698755669979576433387807792789662324776465896765748684989493859542753362787654696997377738983849893958852343976959787738891877975898846744658625958997799362593614246796987664789733376585857494389845662889567694846983769634898559819874973847687798752385787853945412599873933582872766576767639998696628348883655996778915136949757477946923837384474647443652875279946741988967695396596982963669794865987999597479768258459765937763655972729974556887879644888831658647850697987495372966898887999899654216484267805782997495956365697796625963678529668896318954395620762966979528469666345877756997993981964784535448781795358887553538976686656616928189648787551797887857689495696397732764968827497688908848882587837708834738986866826952699155259897499887557568876456899834399685286275284837834936679265967797540727992472483998828966858675975763428767592888878585881859758458898896777696936787874665573633259996709286948544977759825588798758836049487839973556875697898395965797544548886968363789884769938766765398965838864863802888688786858695698654737958978563388738768885694394463699999988969542858855879619459838445787089132388888565543962557667578576567769556296261785829497697583668266955911365296553676739792638997748756647578475815954888949945677965865778792889364894877872877443579555592958868463748757967384584974768799337499337296758484556629998574614518568585928776291480532887192329769389668768327446969775688888686458396743867098932786857554877975375849793988778786795892488966626566559479577978245428795787977768398329638899876978374686067298163698735486999854867447554987595989986779865544958869675762717985569863446848775655993636147866866526188987889971293384788885789535627629159592594716966976945593484366787788817749779878599354844588949358768779889585692658592477963275929553868879704446698698286384798638893467616927389969899956574927785995346789185857349479595902813758448726839569649698747989499885598889855543358487919945997894258763896976976625749748448846881748595299468956959662647687467799655769495659906678859798947786962641769587982899571967685893943255844366669537794189977827398486954905398399654745690768656798970944684904947416843968862617499777299654974867977377559956457768778549982774676479877553176569899574984862669364376834395845389820999695625598699154754566696386548235236798456187958686792539284776495466868646377974795799945784964758678877897889386834263563496866874996238363939729999797887879896853893896564788969587453849597768479975997954889567993467599633479967768986769516579566658597937805898949395736576439878474854567272635198887564696584355934922777591981047487983577556943808294366978498267771366786342484999957959985794868399986866696284479569887686798994361085765541993672938834565741989775325976796296876974687388652985789878987135519286976268181587447891066631475886956856769879981498583981473174697475849847227899668878480684799637849483629663679889899299488777790638585988066436576666380779585846625793958228699688697789465983898988358528792899689285159699697618372925841799999985784847278489585973809888556567437492738364649563868177382489869588168734888188927978444564987727693880778489978588856958595545782632367997971810584219339529798795893666476579869683978323288883699848966958628883716545762832988823589876977978497881764935783345779289752513474697758436967876474026454388679552366989839773869895949376949945789564332477638991990997876867786695654287876859387873684519663895556454597729666285838799883938878865848737727988936874196268627758968744948739423867996281989897446875927528475567147957732216799585477798897178896971911787468988998694558771677270937563997588897578849352986916775989969395937676419599647369253632277772989757625449988066887733779829277975644789943888743979383855462798665994489963655899863495788288862559074848991837968937799585985795387597898449627899762538766568343668854469679792797376733558837492378968749064768696168553835998636477989365293857969947956897488969752665363343697676483737565923934381639576868773618538970388845861695624949967259088749374867524765678788389689899568359725359444595939943950935682756896266897685276655666756386988578879919938474838292892565925782698566859934849749353786257597888295595497578675695878752763478963746745643424459587864587828484469966943251182728724968999898385688974756882925584385964665988897059995587796848869757878959629628688949885897876283556465575158795487386877596676137075988519528576755959917880398775698879843966966969958637699988855889999989727477571786448487992329685479467461778990698777699689443968714451996894565697999649727968996888919177354318271832464497685757987738965939333817867488499587586923877789854883896845158595367693879881664763857656588268964896798588894958673584125365429849527297466982897695857847598299624785779899528858656443374738239578769596986767165168483937296878695162287724598820546230988947873445276648147642575299899435848669976578648756549254898314457943433867928768448353773711981855611679566849259585979758798759372949966924897897095711848828777197945874693997999547958749398392556925563928638965986277987149878358899796397464425985326844377995731808391768036214693816889992894785719772244696199912958539769529653919878276695856446684361743577988615393487763571779897595199789729347968979954938395717986667996956329278799697828799965681945198918994849719649695596926969573697436928385578964699598733758878557499995887464862941425552915842883648546889864813788678785996669258957489579899359654679777995496924979386087257989838748783877377238756987978284863665899894782886759366687937796665936729496364687427461579736878925687867497996837486897947954891793374425577994479865979942676643158165558468592996299837167682599896292399747968679597585987952981888574957763777434969527969349864377777627859825991847799865349898688831836684964852986748276892569859649485895898766598859197399993843095743343995569579525859597786576825869839649940798957613194668489399458980496998787677687745393948386227676957966469780797748897726889666693984529789986469991694838278484937556586958592276886884898823966578453893556574967308499489657982687788674798745738655957769845717939399056398732766955697449887375773798696697876936868875326628762865484578698363896836453444337236889769973737395579578689666637936239619883976881348862167896816439195937231533178848773712489174982954957823967834295768310774996542288609269939668737899673787238338773236725057489459758594729777585399949583649928966544788797286494869869651997585755586385379389587988158984498997665553596646868885439999269376999685823885647915482498915452765853188124926993536855445945251587247398699916618939635885998486878568856935983371898374277958798957058498879880686656748166769729835496793746798367957783779728377831806985249667934738559356489796779248967468928773967826696773837896308935249819945385896542719160558585527237764549598832583197997289495944619683878688769875870945799988889982294876802488688827445117988674946872545585239857202988575973679984867586486659879798489956766557868877537972265483163297688854977458676179847798926975785787298799528787867967592872798988274966745993774663636448574469223891788778566563990995968498886379685669678484769939892777349224275428397324595856697947667626898564777279784971885957498723789788599999987986459947295538398839577278818694483765427967678658449683429986695753985394699478446631943854047899277698989964638598484647489864988488274988779199867786357868854415962544792977976776046746783487354928232996865628685893539489083548451387765853149596564891894419693328798643378798996989825999886577925476985777254659995988997476867996978845956977398883395789398978394290629789488361736696743676945395899969734968599567889857598588746458772655342887699229528983999124358596894978254466449958697936437591189951986873833959608789557975398899298469657879569696215779586922287988468337439692579388188698958885563735957499986397599497562829059523897355556897736588469979477781894875948185589799947762989798889685828914797866267599889618768457996997678467769848993098867488686448889195979375678683879496444278719575978766289838723543837257215535875475699818669166776887123278459198858679853949999696482777984671473559799539323564349829878384524992745184795758778788783975863595637339879976237789965878977859389996526698455877196121569789758497995199437459866922779494365178865664979632689459659679766122234379756549776576586847678929639738649639517568597987467675477799965998699588906831479994676469348985438444674729377147837869798589494969999964478995559193888583459699773759497566559475815777789979899469989777926571656586937551986241785317482777826236949488979547943189999957579697448896765377785786387376521786989497696999868949778682989286838792804927688466619997717984762399468942549747694684852996886679664858869789699671973672788185845949841666965857772949656889977594538488791677138775569966795694373067269762798534857997576585955724696628648717989469843478586996541677565281886488722198837792972583464784174591723797757245966536682947847388668886775234996693831758353086777958482688874897978439565969826364776937494056676773684956777778904123870863347773865818768588756777485279856985498588384987568027979646756853714855853964788844552464653761768361465584879997689985918817955177569786943098977775463836886857975879775689244949389824697771994943945506882981919976584678345469979952466933996887765594995426899757774788855739996848596626985535648646879356983876568658789243999799233549787995886459733076136516807886498628874448541796889769383673775362270599696292797933938877988679787605976996648742265379679826485683999660545556958167989887897468879966978881488279465965889991383287994888948028686696368825683427568945726659123784895856715957899879672995499396335657569559855918389839785469699771696895779349797147018354846744622967978976449975644989793761353368658387594749757906929599695710646398875687357248597269715792574686467938773933265551177381774158299595464135779996928688198799865975175688921897667599836847797872488389946983569688996976466846797675786366280268886349996947789798135695866694671976959225606192589759487994799588664381796481374832952956966955559593997689887679419939669698869916655548943697399395329707218524769895743657934927548929166399214657868971939588751547698996977567549795989619246768684475738388258769652688996573875869598889798842747569134268678343488955259399548749868897787919736424466472637697526226378258494279699469487937697867891238613865746166979483977938988985889458527555969675256916941548544888507698967494448776937795228796976671667964865775749999989992539731962549894452973460899795693932829447321495988928636639964569654927878957764667986563337574199688830264687693785863648797791169745793468888560578927678987551599457444764890491553539357894952695663572448238973617659454766696959695281795659794658986585588665613968957268744514897786384979986686397939632795653367379588996949355853657180476798771337489989885968879534728468937767978775972689225796475555461979376936713597479549543979976998135999519184465466849367768989189579985784969828995846687974187875626857214878776026769866628645594879685957946962478788787769267957998686996957833429623896369879794773999778877989688988858815899964757797864985392473398638589948586459928968977623668582968994976947451972375748129969488941661999379422277968899683465462557727954717766645552127661365393865986576899479469885758535693659579769867783287279567977984397826694597888975958769627844244566734996889538255415745249789991746278835899871877036659823489732587575639999719299657497718466168159784961979469535836895248968774999598586987699997335381652794536880889916488797738845545267105979669677679988989489595828781956937567697996393998437761878565583556866258342395578978899545484798698295294526947795587136595687784524488999359289935976286938883997998623666470195996973668338946097935598566719398802867379553198479829896194873571477986394397367449548554567443799877518974737099779735959994843786178336382688349779996755759358255789955496287704675538988569994885838686395679790597476789767987654427334378964435739745997987947479866831477539986241447653392844676919659779367625498978843928787793589996349574958788873577338991799392671817875654563844232895585796986775577786876386588798839499869465856848784830672954778838796907579163876933977984986886746285736860944095769978797884993808586998374863359943796467035969349295586656794665338567499889642897594978395558656367693698975634683788893683194884684969327563766929497989665838799885836978465439661454938756683553925944178954898995992358759787928595835454866878898259727886275954559519894986786996799999979498668464176498897049397897824966069756895935976716457972859357379553768618096899834968769918879885589477676723299975863874266735573768887283553829626937534625896673998955899788578369923323674491597967567995769968875893279735695764928578934289668918975483993812784486982566988477467948677892773797274862927168817996258796668724793955942691879692779993828977398867798485578446769746959782948732871885454895727845968664954404194848678654361197403366996967942589478896876553765623625659718899274969668785432217685974045844776977729188966178758887179988469959593965678285639978443633879554426598699198766586476735998993752834986346413759747588569777277787685044686653963839866591598579586847548349989469479857186889779483757367196692658279985895683889393765595948398999775696718488564669998894533623969956417295695977738133568297697291598485386958978873639359548884838635767393196298539441546658857242652794799823579138777724527968776198872667867898919894599668897647667187278843989996999848567359465599665978963867898489048495477876929548486491296686998849957986445687369516477986995687764258697561197979349597434935997888894666535657773669892459478299585588663657989248365767735694565899837748562588374355426998799294819557866857979984386848946629559747858242597285845958726799893694676988939879477391849789665495969784655794789804949754663388483484614390888797332789796717153678738486794989975567540547992337874946888619396874767777753378935696927985996771693379496694789478449657789779926482996566977462859979658949658674484692576479399959187898865647561893493777997796542594475975889952875949696279788739935862496658498936975481339624954599287999485685928564658939578887663189287896719583976549196447858958549984563849456645594788698940747985679916531679845949838932798999257798777399592988675578397865631555995648602554668748241244689969274595765732885684984379969904894786977972338283518844883959558579368543739498565556558668981734968788927774253917688938898879390843897873767684776994499449938883739907668728388894689615299617747893884869887645596748694658855885969485878188795144877839889248565835569677995622865678745579583694038592425573564998948666977997949689598927865283585969595876698453049544885759869893878259697974663175396928939886779962664668679345983582732352267659885848576952447523598699899799486438186759539766847888584943517829778356855969389176496387658377868783476747796758273385424982554765425854346899429868985874499998597499279364419698994986386689993999511887977985867995997466829597863699999161778967185357484589878566975479899338893405727847953777857998658392368357390799396887895498914489387427283591744487538978785799337739974629935955988568748476595594296397742649456954675565999606368825398999747999475739996977367167456658694696718973618754484725934399466467189467358498397999908196774665468959928978087661574772558839818886797597778797875793788783879936925973786779758759884766859985998912686831274576563987364573664658183397999679517495597896416786087866113587239879885936987878564779847659848275770729987349958987521579668667370796346934739798369522307888987547757540789942792769336137974899657785787735476886969848990382999588668937613839846753769875777978543948643788393798795975895609585357779669357667864288777875669898747449060477748357785868927429871348764797696863845798639361677195453789676888629643452365459698762464865948684861668691857176737815448844562698899647457987452418783599782881488689647975944996647387278925942798944754467669645854762696349898749666388629293898553887248898886684766634585851783694699687699267987590896769786757586761654899948879755896490401898594936797864498175237925958227852239128756964666695955299998892689189969883569887783989925738255573889543993357879376434692938876765892718578295696775659198878377934683397745664836265646649399833246659366999276478377845998994459959599589385798777953694926217856778996367467178563198819958995396397914585254547854499936689617486959754779494286374951997847842106785695999818460631990159887780698679989136828825856939769887989668539677322548469566834248235682566483978483766467387578596819799515279496896878889466799971877177567666998977438544784187955999965867481999732264868996848899587677854879928626497829676629674989789474888866915747699897842997793539878986738746868464614553559755666959946477862985149975996388277897865299871546694696998299735777957389667966854979167859694567585492803841229896996466397898754450756839176409859985646987899695895281766524269129461415579222496799455089454657795593799783645890885789296498197393366918985936498935768832865895987414483981589728489466685437585669848458249567285592886945758858456846989868627599748849484963959428948793859599789784565869534549884994856937885164999644669516128867466596595843862968983689676766983559937485493983971998728337786647499558888369988883757195544776498742869587574859898464819978586447999937683929926669747719749859874847967677967624636564668799274769499988545867688418353596899854394584832467595694747968914674823794969919775566785989596886997474916786667729745539981277898880467965678787718686646479865778895698401889919782667663892418674639589956985447351958531832390396674438479994816885666883569789877687984628767183699395767288434784576968639397497577781673678677831289778496797946057689277838687925924594879765799848621699989875961388711879478957989723366649365513481868368896579985286839268846896618829825768296919874615795292765776877448899878874977155476669942765795659746895796932587459599855899706444436749784684976698828966698575385376585927585497495999522729888984989899588585361187949979549978978698584987245156486757592937757667869776474467828551760157954539975948762487966918986754765785797899099776788769977579556879868949549997473787287466484846582138965347768869389591776797847486589115489681428778622667975194755879648476966428445956595767682958794864846884497954829664939989496973596759843987348194489663536558783758786534875494548699595479689673486443922864679984955338789796696588485825849413087833627995945066948872757993678326693977987276657515745257486744895754886953559580496795632984657946999984868768699807857788121793199276519499736774995729953998269974399648455719817989563678893896848956989959795287967699769936643718725689787644396888792672736979286481980749594274489976460568838349868858668768543559259697789679978995977777499777049769498566894563656934689778496696877829874249749775699617378289488576899667635055669808176938467587999634777097935886689289989463754488986559433968657948957955284594949597885325287766879731478090698468199801473537979889987785795183798856998753786575939289711467428385835868637888557665379871551257825993663949365374477383836635696696887438648595484998928915687995579384844957552757639748084888875534969773946494892976989488548866377557373759895641978869926598989585268790183765998869779537377386319614407897297595669938786869562985988798895366869684396256573889895797369724872375598685697979797785292367799137798831688562776894619675589985669387846469973834468967875863579391986876918866779569833565744466978554599744666973138539791895435836371868646734476677378869924588999656855633575864489978358296954979497994946686989676636657642338677874949708624766569557196973889773667798455977690978489426912484796159978977837887769479148763856486481857696655935989368156199327128888862971557889969898579029754897584816596785825982558579774873735865193863595771974869748428732556647879366769752734988473554647295947796655918877806986374769293834966387553755985555562687599898714715538683849798876887296757978899784384877794567927697977583594513875845893386658699859154686536877956893859786488407367899564546776786678888815944463448638155575697173855946368943768734513609157455659629779779569869714667994726975279587586973987998986889926557785864328472341265674496994635457946897981419784544498464886703595515180289654829875977795957184774498689955888596598984855986616949888982499144797967496669386784672899687858953598677598969962985979699896959816099843566827629879653941778558815179688959795443879999985389678388873368765089299244888998999656696837825567379762898142163863758655856349777553697682987657677144949095748397777427935446665749868959797888521835749874286737987594667963991362659972422395988176697899794939945893949756975393666927726826269848297998864867226559999466895959599957968528789967858697996698666799775837891779578943939578899946753188774559869609538767587568581673995637299897369965989679447764848893528199547345718685608888386844451578459955918894589866595556948469764575167584866795598876759766943674728719655777938879394285757594635994736956684971529385449583999591389688983778488145398158941898199889985539839369766736774843688634848819958976949587768798579156318946834778366559266944585968793945938937774664486884966760579349592751868064581689653247823738483395997295438448587849869877977966994654646434496453416985395762678399946848688597388238835569983873977377397639859999956775122899578478594775542216645829885686783967389537558849694828598561766358876839188488862439242294875727484827945629798781588798275694776767559748666659749767768389922517838939957527765784899893599339861046196869458662497266667824912909926447776987918388579295768795989897284999735289689969978584746254334786874685437671689628895854978765719979748589987595839798798881798273494957695642677899727975246593615991858698475958838666665999499538747538824798851596655778897898495884134839986998992587721639948469589973685885878596674337264900366386358948773939534834963677683794898554476476719647779677942893948864638479474474499864488467339965678299199988497928963996688777798868559976266457173943945992876589758598399651589955566897396288886685539968879949987371494578433939952889350829218291571333932963477968962945766757355389769834867886772893168636898378988523188728789996767579764538528615299385734359418549946463916916884969934223592767733444489966993597689934972751663589994399787894975792625367667868298545626874828978979219184877628543784277999888887980277676689361775576774787667958678778731898788897996356248968229683492892802674546596494935897742795998786558846296968977848958999773878578888597979961591986993758895977889684329549849767955854379897489586744258338794986433738865378266894843886747767318679435949965369179637042785959274569356595956762953996879923756535958594745985859486976849453983733559656996656589994479793082955826583574996466878272384957645275369543469887847533973177468641198977387297425874979476584557986687197538189799728329693671456953586473467348829978767779593899476269446921987782894371842498757385698556691564791838279875925980988277839388066685839890918991927666687735973358969837477951959867753677596539388036926999396845996666944546398967734751868994473495379866276872918856378639948945988444977833538356993276899975479798669984990558995888736866543547329964799489686982508836818664470157924787988966877679829668698856988497395689296666964999579676759556938781839598668584824217479397433949453349255635989239695488666161849469695642579422553776199552493481878978965568999464889924276337606997787467413568752699939801197537899283626795780706882749868189996988657799878796894659418669522897899987976666487559899744587885536672395699786768527898953515666890784997898978951969475954488767297945733958869296685878992287795373438585567788549793338768729884683995297976794966467583997976395669789698646555787988394871198796968374626288464982957463847698685637765595869157478769296195622553558679909998867984948879863778374827129958531348687978549425859953485843484898795742886809388889596728657457876963835779577494972936874385872478389794779597783388348594969291695689925849758989337527454455934199686491987665998585877738283387675868198437386468639839548126298487499749959898687584888949697845874347989749577792679868871478796983668699778939897858855778656448587686754788999936569566583246919741493362553268259299858857798765758543675628427463921866317698949776578736668977764867193958978867866488491568882579967596988855935957895993991489397469887979779163205174333958875657881384978958575769239636775376837444369757968489368956584603699149884869393766765035588985464397249895969784629977862364421898675576759897744397655849937524677859468545895946578464378395974397775398791519685696976841255897993929388969766736686822539578945965977954985729589883799575792466997566386649816986696957971593993963517962478073456764457586953945635688889772267578776497579886687839586666897658835916863886835917875385924893764897759978578759559575967449984962375858674434959652808597796572763686658868583872776798679166993619886347917734825799626888887386014787927888799973894488687864686869448972588476793616472989968572927942553987589967799868326389789498878758738948562663767473463857669778955754987392391786188996789199928499978257767935658966668646994646545956977734994777397368418779844785996696181898299888353356575464868676982796518857579756976983714385277536696285766888367688898339467378698765575789195425316247388799962269976467736759597126687663989927344838688774857393385816473741677296373894977548965786978975698835878787377446846539391718869258927389733478736585895437647538879866995899899374496187368889798685877482938677666681796989299679768061979656897765838972859497769970281397679675896579669933889934977570546588389839578763985859998548743385585242498968275486659976383277688674792979996059867784474796689562572829759589644745394756988861137338454964595428427552548975259882779958777750822972754783859786592882988597447282495993788998232973742868679999388985588546856780987829789578936659436666736634591972752948295899136846613859947383819853946434474968169686598969454888798889697602788979868848999575796856854588698924585569866878784686148895966699884862927656868695255589628999646486957618568899628889998725917892979688695798199866689145997757949569875898868399469848998897358649239817844827867439479634664864655737389674255494849198882688988695755287797979993488557592345279637955755875885265678698448569299749969562367844327429299719744799284519679988467815739896687467456247996856464894186268585355477811949268385599788828938994728299887765599697163624984964145779396388598788968594331927662279695237994894999995257509249565488559372334991986194762494116978943728815742745726892931735859776667483676277784963782137964328477878997567758884995377663498982383149531693981891596979987316927626727799495647767668467725679748655398578771887486567665737686714688398055977797438886793537669774376777856352744276993775439519973956754878286528779398324534981946278629579716599979989569984988197232548887185485657754806937975691894887976457365671447434654982577767884492689759869862547525881827698359898964247479489777767399646872290578669716866727849677237572847994585676887268895664193953958189987677148878685453287299898981818968558877979777806336799966694772895456669668579863689847268449334915485745727494174353938786196848787494831994269413476533659762829688783882103936846954956965794797926576295585797793271594874499684839967374397499185366887577787786695869873988595666978539187902858798639891907899699969669694968995579787857377525855385875829798673056367684664053697748748783855956993868739854633887687698276339928576092462640657679988915635657346697885737716619768343062799493828689876888939367535953991668778899385662964487965846978759189564585997698976577186899762862817979973018586776218993488288431636818489939549881998928531578927986485656588969964994243869863748995875573476786466653717597995689548794874979348299665876442999779716899927563358579338739985442586916992697729884669225485469184298889457847998796286472679767627974033438688298728975596369765386423087671656829748857398876999887727978877388699756879955536864937973488694429480849298396983783984299824828769619324485664573926738165748387966699797783457677656986587966962455657875589539259259379645798779684472664677999195849996936878945963975593276385929964798235479854536343742775718990696279569971844979564933574828870665754471138773556794877882784657464976865835022869777789683698454698883819998155237738878866798824788755566496745738454185765667396628936886892726587287957689349689554896939996743698561489495807575385567878787874869954476967807376738828894599454996996453873393988567678975627369777679897799492581876669684464887765854479399379543577734665699637776989298699977677599559799766675865899897779748878775768376837994288927897499923278638879389493859495995303997373491489478576688587989588526529778573344959399458598774539888493797479894684968891623556956588730888888978697978479996955769796907976477779643658505679859498677884298397897877864677239844648913397388327335828857946928789589772799696591778997664889466794889577496597865486574573856959235786989704468876576852994599784729883769928646836668945834929664896448819286829754769986982766492446496798599414962885476347354598284563997946888988179674579671569687476944698635869888895956959997996978956468567746717280963449671792513982969365893835867466394952945778815785567658768099994493487887998698996257394896437847173799249598387195926479587644689787698293611671883988099628644778667479784869865594497997599894998382884597886856852696879878869956888217893889798888580758764646849939627878465962798576843879596876889878862542309766999598949989195699786063679294762668266939698421646349662854478675797577769289772267983244487655164199859679776699989894835289785654385895833215843898069907283868837794554787969378895991568667894993779279584724656181997794646845308461669538949629779887631264584498637519684947668869468847647583687966284999556562874814899578689767856896197599356929834865447999877974674687483597993723579945967877919965754984596874947188797859976285784389876858897936593284969957813938942847835638398998579699786863725999759699886243917989670594775255678987728789698284884664965598683063381499964396235854948766879444839056999543857262859857457585687697674879392936979942658996691765958959648999582887767881579097877995673797247899859775598417849649996664539585777559059868548386971768759568656879298792328447646926643278495799695555798338789257384997884593842876581587468668996311886655789428885269947934446558656269295587969458384298756842989927339777713939879529757867389475986681699577925917396478885664347847980617367595697493772579987653865346677558569339638978267687668399760785979878739657939773998978214899679397299575837973549885695975958934668498769795968392922997558871939568747977415872853989443479574268596399794679997674949789567578274069992947169288569178988924205977727769757346193674529874266685628379896866565973864537881957664949357723692567746982426438989547996658934534862798865698688518490999689847769846285984763978316593578917467695489976986949596289747593955747799838869594688685279244818363995685197956607699996497528759874839783545956729115897664588968898946989497458966166867869563477895969955885976996379794688487738996757998899989866587898677468799578946574449688758428795475739387696789488598297808389882323645912586633496865999324997869959515698849665884978781779599734398495276751683879963894775971895827468725667938786999568783167790539161389424865643639536763677494599345986749674873366687967494875954469775775967649496857448602689867493967947499988255496983474997385365917827577192778279765467857907278865709749874855388746778459889888989873388426757857921786589797534669554986762595465737847883974759753766886997982599453626755796279999519434732649679772686915778869557878467964979785296899995285636487886195747718392834795664779597487945998299887848883956972457173466392879415781437899559593969468282847256274486957803994664595854895975770795876975899338546649454955799744598857625952674692564987799389696796987994857468352777445428699846883896897849344498685319948588687737998589969714647995435145736954976479869969692163163849664676777684978689829999535662547893629747835839497998876957234685773979135089867051758284498577898996847593638969865148293493947826999958489997979499495779994483855889988298966675386907899889865274278696771957683938066535287946898896237246868898326154096086776425696541848688663889703593973874754985786696957494774946598785588379738393947974928186798296599447556538084868970457893888399186383756984999667381985374982799536278954888325796584986838829683759768889173366759986960554648894588698372962288814847728737694759535963689497368699849545836356459689388833857885876967974996193467846963297693555586697999754947247546858753769979195268913783867888525677795711696979247983227697927957975287429512541979575522319637862964669369787954583985484956778732558398994163599961779338659431408617949797843878689364397679573366372383575329914898294695933998176865951987269186689799964835687773584698575678879967363426944778846595996877362985895376869887941766779375595777787654637698595953998679748699258529458954069658759617488910558647163954880814945836889983599699855791995296553866756598879536635999928953511959877786848685477996734216961679779979966496779999193842972752939653887572853674749654443785864576699959659989587265395057488818594676769673998897863813949179267955954846797456742855685734588718992148729578986476896904373268435743865067629684427826591894595948974386892476536878048584485379989571756987978198651679668568627168667252995998698469299624983132895999996578978467999493568697445416897941358973967397369083397684496889787788811668898971899495525499607994716792637678779387352376569398864843874663557648495352844597979695399437854879839766997518696346987543948478476846618976857167896979465853683958975368767965488343666696408269553687172698967888836348919976254848854378627814596989819998828149748379669697952898984647228698698354759985932968865567783991395618774756554548349799565796967379318295856888254967478965346788727757757691482716772439849874957999777032569589834156285787992676727484277834886977666639986884766146997593387996564655879688347879488993588646895469689994872976888977969948979825649938697986712769282885396395633692722998682858984187788444771497519938954649584685946339885546838659759332799856548756469876489734568849668995629877784997987977986566786883848678619756677959116849968785849838857657796355994767697758577769449869363336784679638748949576452577769444665837698959896954567705184788259749659983986699988797884660949479938287526597999666869796668769994878793574876918918865517876998651978458665945746685586835579122978373566158923788979815984863478173676961845975787727858793996979886856655761868980797183676892879689668699958938436567827487822454679118598351754534899799676549458794559485479993799579838956167698434885497744979339983954766789283688679688926955758477945659434277939629739813895935968296786683958683857857378849374358308393983874643847789796968951865928288837444645758469928684648974853984736296958936079667149698966297919379764569977713476588895367917987947637368914829876734669999847547565834284158549786437358671586467578721897441997995929975846993864889578789953588886848964451797585794963766619783837616692564955886565381935499992992199485398859665380399186064646675588861283676699306992976773378599968438882947634865869278321847971899754387162887192916878845278849585968959854889884599397969885898869927693645966599943353839245593989926497969595724585388898777598888181162235296068797263579793839679577495238977295971791857999279996358946566467688699837365378799676764595160598892658939879632297881789473036449724766289894764589849878478337784567899356592681987497685817836654467277951792988884390289774275649795747477669678988338977655596268678849998179698063889775843839496976555776459849598968576457069683355520148928564505378565689943396632988554725898299365788718687985569835986998299664655989557597666987619765578653998575736767783886686327879667962998861713691697679747486767579939367749677599886477774257579693742979558489498338381587287597924486893049968919885864564496599467252517969385297995362479669475896283396530975592699587552341877358562234997777567187966987489678869855596389494777659678627698797289678264997599734753586543898987857579445858871327797587837799567785939417177564686384837426189693555994944357951998975159955368898413627866944749867687569635838973762337575411422256955539795985479786237973982786775379667669695675195899396238389986929175647598576176936967994995805488785894961946234561987565968565976314949879571738756955615219664367917398968288792267969227984836474876967796266988927986379859385551976979376848874539898974989816099588659357266774784694798329294758497425592846959557887657399834856529964786899494393876296896771863799699686799292916847797697898447624699673278539988693768846742632515964596686959877955296799853389786095798684546292738277993775789734988675474768595879569615614975569529348245989469567949558575871692779165762452547646296779586629765728787168983964612584189193748173777877497408872625754575993387456859788744489399668667658955817597786426698089996757468545542899749884955279796515269460756648669898878786752368953943282899357883509927679487281557545967784584669766428878658679826397389487218587769159525759772844596844394984658995975677988936765737946965809673333964973730981959629618977798783792545189876169566966999908787865487764568979333817878785835262789569672867625847998639973595279976695885766486689894798978347829969987547967876986287536838699898593288496677909476586893547598529645967579557576595988887921519986583849817819993697976329997337899265367497483559853738582889362964869669496979779662779566859768989386579468493094565965959639978278758529638475945841848778898366959497169214833688926377493576707179873524769778727176894999367869799777398646718635494974389159884746949888673991549378448706767888966579906999219280699168552764888991898993919952988855675557268863684962675953889798145178944515847568441693357698883525897873664455659789979855748695796799976897859489359831556888943886555795248887579879726668963357983353589581338738822595417698269769895916697666873818676467461995974357617769697652766969257975384459975373575163192779526987498979914736987297649966996102249994397997967686289775977837377576474848912755576517585793558782879689485972931996754869734475736746195945491876664969986969477757849559437882396567545609248717994228773996639879734918949648987557867496688869788939964786828536589868749719587988946863655598878239969856347884356567969697549977964963946999283974999635450689696316684448726775835924184964234884592641956849299786174765995886685596988787599277986289718573789465765757948494818993498569195660784447686468195757663967983938898677586897529966970889699446546422995535768766219679638299998347436867558080397514079248969864589878777738857988968568886751461796787696299727289964954793858859488498486683785781895861999856568977737461887599987475492845582188563583776996349667899868844639947969776888794699853894976659956892945539656472979946675957777587368899469759575234754838875848685716457328258271898946797596218837758892894188646747946866824272956755534494366577848655249321458659975559895527579938757669769939772434253265336588354893762649583586788528879899594866897896198778912378348949982579683269946772864839947386974582765459581976568696986957989995889597943498443499084777977476368529246642782935897899754333477828778478986679938984799937643349564976789975479496488184969068597965697839593885994942445397674965791899253999663883669869792743697326776758638625397434269792467987637634668357889439687286937763838354777765536595994454794433676962789218867976289888125572585693645567838852929839979564945856059797698668996863669733767686429128437746764738579561789665589547595194734639914899277656312022179986594953573373387997464848776997957892449869745649488957556796858956297465993596889958822856755597892893798876748685898426938445916890534538799548789788878878465787577438596849794945699968539594997999995792541785974486877263476628688596792895214538551277426848692288796878699759672237772978385157399969618496676929969496645376793595528983953274639763959568649938845994799759990679498648579796375158554978687948893988531479987278649977797886498873377579889727823749189847799553845948846969997976869968976688838699664888631797986757844294695079982727133558354897988377859728367747861883941323718315899879569786192358706854994595945297941558656549947888637328878994398575879996754389788898665426667735286218463957949964987458983678874887588785565899993949444579889883942449394895597522969369497984983488777845287949753008856579788467536565889834577998890717989666746499568953727178467184876423575952754338765589579540897819489269673526645859579797948829589768781679935436885671794964453785683886845889793866854379929796719368949728489549339897458794855363966366265498999185876699849178358744959296384983924685482865894996986866385997962997417977778978949972854998367686699939767794857977839714699734958437669997819568272445698884364955793878832369839998843884577697784916866777649488465895988487878577515999876879386999678369697697889395979955757829747836899849463679699281595899188425883959767187493493372638534899885477726966677373976657995896247846979786846949184982786975929566952769926729957999575658999542659843499645488978465766489598697745898477589485866377954796939487456739836948667534789776397849748575875399748925923656795945897898457979784956736792678836857528766585166955593471518694794285464877855734989996296956889841843955946436387866323857797699837638738299499738996789656775879878959929984969673758954755919795651628863976587777654956469887999884295819728834472365537581287744668453988916954988749969988777376777757899237577588975826199522895579588949993465984861539838294739992218055495594628218891964231358899886532877853876968697569986375789979459669499469692954938959665929579893586686677566759323690779386654925356974476962658394387944855455482796668882798862198572934979839696694197919576835859689976891677798865780296779575966872390544995489435379856447989577538857778688454858594846573326345786514574975698383916765696985536668193247587695784742846287677776483734879556685797976658944997561988555688921699246988927979558689989669799853577374192517284688878679847864822578976598758853747677378584599389987545877987856929944697888366373476390584966946689585246674477494935947891669884446795949587897589887986246588887232777358692326323154657777746846848566995984358329559965869566786647989965829998379398588569866836690454596879268454888790417382889934963999479886883664245679893908977877813960476464792572689970938674292887786756896899867894978133684748678657587427796981768699964898469443866467564668746876956749171678094882538573984398664997184975675589959960367589980952995958857669995394587898687642859778875647766974759771394776977856973962691344902453393659767397873298589683589991794899756396376989476409955773549342536937877995867584944449776849398897868562566365562938309499744927577128869792751788143934884971944986338649878637148662798344966683778934478986729863759594033928849157686989467783695896642489767777424048978496699347789499473368986999999863670879258495853476942856928958788748869626559976259796979678628675597689499996297708631467522996937858498597876596879669369747958595499441949596506955886779154895739669671357466675969677428676724771927794884991219938887676973989678767539233827968544636868853567229682489983458286558869576669954797829654779977797998285989565695279673595669794358924982879887585983934695775476867877385778444443833978878639965999328739789973298886078878936546797999364495565624128473838668964685497879815481673848667857784959168987772684977982377336933783744899843969965894279933617542993763190625628296196793348596747481288986688587789893876547822597114889278933715767622774968468678623668879656709654337784658989847749944774599728884662952839698919812497868892949981852848345884668295733902479969878827998523996593466296683747692484574214998999877389842897199669858744689566698587596989858921968913879575878667925885678678756878866998869786547849454676587894992526762999896058766965926527927587887395948691598158684582969889769452481948752854793899986698799514695368589497518757377445743798698836867563494997776774734395898484575489918937688680582976685806849854958973185647509699967657348974883281688769983830986293796995793962798896259648199588267682785677986297876991899885387675799155578743688899379893766348747529794857277808899742774579772679497828985966883967069989557478887918246792654842968839667375986441861925849947529471957899946899993496987688997649569773693245289876646422397941562897869387368867687867397145886464783986793726478745285683688773798574397988687998919768687799968478994448188367852654959183835937768387876485187882884579868556896948493467725396668453978197389839749857785878687042737638697952964958778655158892339862847949468597677896766998768506796596838867469865996823859989749296666218447887050662697939867424632279496391867496526997718929584895887899778485932360979942558934537888246896788482887772598867298470660339776893852764895844898579978985476666689477323599558557984879372698721226414458625719988886477654839467889878993359628485728929788724324982464676768379152819986968748938877179581799689997359969393694363746835725542518766267454384831443895949169837282841497757248387779327874585985656956579052279965948335589359655374976779839876896597866856685949298078599376987788777867948767961899175697496918748794198958757738864397957785936869959539757997553896925754874298893419489679796998492978946699686635960677397873999567963688887697696877865749266924776285459794655277964999939597368784991799867965716589487575877587536685537792799979987899858969797893335898837465953247786788783498392596657327791748654689892788799646997155884878965556779188862878894957988679823446354851366412886677977988757762686798899878916869588978874874992598368645955684683798169967388785836755903937855928999698853299746886395357337888731746469276385671997977938486556579166797833085489279984897376799995919874678869497366218939962547858955757767278648755883845396878507275757637628763355988736866585975977226578497755979566896529787477278477953949696528984157974459603168775785787774748667365897486898784864996387862968257656766997926652598275838755587579675177869888739738770689617966968944577814785564887686685946476269498476916499969156045758576966298238637985772784546689928286313674784588188567887896986689688687759684469991129845699934958088987709899716839758423824889342743829577497967248349875147653177694572252969994836391896588556528696934834848929369933888978976438984993578893446568948791428989608469678937675727979497887995463966757476776794993327395881588956896635778811575490764859758055596869575274792255585762789975819584982835492879299829806387784385971966984334474674699984969294845662608987314498956719947824953789286489883399978969797678516996954489898379595476738212994854968827799787678228981579929898875534873889637956483968676598686898959973546748981497935984673364886782121579687798495599656787696396788429986646296695147595997780987287794301877797485339659898869643938736886398352468894796969175578586167470169264797338689186897715766558693337583129612499968475956965734695968673985788999535728474788989494787755675274587387746485469473676627829867956989979725854694938277256957985752846997995295849982578479478669760885963683664849484498898895777866559797899156685495536756494693289954958344667429568797324789744766248413383999257548844967998592965487687589967618964291648933698597185994899766977651287881889978768739569678499962689946975387776471699999486394269778168399889677566496533989783796686969677644966775979786895888844669597588899637838948495992993825575977709587796138513456738485933753286815722763854475856795055973359469195674787994369436739585614954457568679285669957647655537587777868648387887995888825488988715641979599747653981294698789895343981633886667976588547945868966257876656599414215496299559522991889615654469177885372954769999962197957639999957946577897495779869495899669666985659453797528799526554749644378451838144485689884517662994937988442976799968299896897994452687729469754965585879868727291371858363296967376763849955624895857864898979578884741526046758334146869967939499848766999548579149188677471854296598577987783503789579886889944898565431786994479279904955227967869261972786798582977282517934752519754975758667683736875775584596897575327326722996739598979888288782983378892499744944249679828995367715678686945575656873828948556597893898539937827452838959854579499999865556494418759395875307655645666431825628782464589098992488867988962579388586768879788768793246389847189797153419897487292779689647765751999896963768537356869694593658377689677457797786777685975239536978922318533688968957237889568586285594893657578755768741454886682528289766945791687992856437144525725899995975838663056924974939599898677343599848856623536277689135973939764694135894934878175967536865917898062989368876838724597627394738499527109486487346658779978226877799367665863865994139837989754648338468986759728798265889895559679499973268477858998664499475876999485848599492688596732774675379671559592576633936174789478219219615879493986519671928793768517699967399917334485992491839852787741838575983636724914989369673549979868869599732649869764465716650876967673757658517758282844755453699766659988783579970787854128987878875784358465989439159788613283359695299767835945399639898717849697815749867774863958649395549158779659983842929858831678148646474896878756673352299277256476464784396649535947615763892258762699985797358855563989693897547569735838678778578699871877289615986862796958662352899497474676377639825998296997459596385597999743489957916754277489759788677747663892698896935457657860188387976995889943684866669877768869499265979936477899912323987797928896674438996785494958966755988646499439889677315944775199774646698569886536587468498299565892754957852398928645698725887379245697867474637637785988246746894468977643761797535675979699387531779926406688366847178293897744856997872369439595999358586992976678879169876459796989599781879818958894656382545539546637692696977677927797929419485593939397846873677998492138944876983875962977575614787747464774699657728699987789821562825678505589239165337988985987484887882679953749599388767854873726514177675258573876415599704676699869698967895484765465937785744469899377263844899758354358779549897536168466146729398938783998883933887677754888127687684869295776789887853569453871876253973326771487338969855858764257292618657227877968576777434743983266597596439349687365497794988786993387876994795369864659447956883333483459565888888994736236668537848876399626868595994428349758435614966987371889638867448859488667449787325969998896199699097753839599972479226674378769979898698799999694824995924655493659765885618249936228614177584399744971488598674548869498596397329755789896469469694155874862538583564317433588706696689553797016983895267764995989877343292949868586937779918354676466597096689667995838451699769357998969749788468866884536338636835594795583797875656885368842878746849375881965686289895554775647632799019956953394796707967772696449969787523955477998996687199459773877219766885284897248582765697889349468688699375443623587899383544296944848637726676555798874477956484487813462346873947583748876457666865939589487955469694927938549407289756895579977466597659938857987944783828866897741558566798638634956998447894387399928896355549994495947686886566858388498891951358544448857962466876486399758978878874419635767563845796565865986599443468563829694343736569763378198935378936952775598919998378572979689945196832863896793367355649992484656568768777992679771891413448962416816837757658689466687649696958295263889377465775925799189813555596962489958887177466679775851858997858685766787949229889758353489688959177289745998959787642497289281835414894496778572499598775286957997989858395698939451141948825836868263676577594479698566993968568789918676563974996748788389564935827873289847573868859877864949852973525172359347559887868578842477988485470998588997443964178999773639777659332962898828798369494979587797789983938596875699773945888773677989898585476356574737778869676297897678638773992669696693559759496778575767097796666867423982379748789997194274695699342188979768696895594509949865463883854377385459382658498517594773659894996898483945587659574933799489957296956765274796988867998868783455779997776464696986086897788766299947783993796994798924898956968881455516689543797995558828477319683556913838445859902543968725548988953836648975357657814148799697353642674666747169818899662959987998587835699698559496926958947959656958599964686549989949483879698857948876969998394497996189318787487849771842985688277997645989864629593524839957897315585566648636854756576269869978069539646999219197398432453169895963849297088786367878266879589979563639646904374679236945571871849697666747774974558282726366938999775859879834382578309485657642996429237457748876965897455738375878284881316158866898764547488555658855572485265653795858778389742949987948378636176462947496619599989487449933835946796344665782665797859994668946932179959768954779839659539999653696475798463897938389475969775546979852989386871737858328489441588295854548815928975869767878976767797816828447575458719495679877394368693796476388998897864837978945887187273737871652899981955749945259429495182946586524399939268329588777455985683386855945896886745583858972686694349979876876779779777937595456830644849569488598788446573954259493688577576786553793493593899774497878969984537767736658379689977549039588664251796475947992478327579897918963878674697279135657387668757497178853588898566548658967964794788967296885688276675469633984499082267967765383978467087948784439488557462999259284658887578945752348757725549489818957553886693889815683335679826696538383353643689787383787857477969578416568956898898993697729949657772378897358308848456878839465966063918865455978676696589369985798894867898959193989537954695928651885275798629347378898698856287637994974943246236882648537857965679625687896688868626658848976449284847785858354499846489222856877278848847294788988237871847797849758691728772979881569348795873394455696382641367668829316777889387213334899749746222422775886779773399299275585569277586486999725963989984749426789323796897586918646959986678229577756879179785633798296418928889558968625575779688459794084448279868681345668367239776275993232899661474859459954436819778696967664898540819644938861958747776798518665879986653589559879156786069925675838464772596867568776524565683192794592458795969197678687696635988829086639387945184558749157747599434489589796159975943466488896386667689789977987452955754878374683387557497547786567995865738688939756737797972627776239469864466297788964399444676387648665949407766954346486685982679969588788425904965894989899715679894488199939132394391426798499879579686175999019696942493865394814836687848835977757443646876767937786969257447581846257769518528487649757863595785855957998558999885337938952383686261471466641734989878838890864932983458947772945853374977968778596498878857877965685363674754845696874810758087053388938799696798691632989973537964865741879259589699787731487695415989694648888665742849131898538399797598899964485748319759345991596589749985847646756567982449579764473943549969537968647536268965536897766587755377185946727572666918568861979778915525596966307994967646119777750959734562337779562151898785982647156986837879935629629688663664967867788424633559877327495686593868443799929856935995459678369898346861767444337863856986761639518491427976184949347981596797963967693874489795397258682377981358249488842552697983737864965839539952211796654998736933946617994632889963774725849431483958342577988549998785735984784389991669988288985893389776898819673584899222755998485825815797958289532577677837998848688668434365377699272486689898646982987957667777533235864995479414879779594378589076325798986992866433787087777964568997764227887748758768763663303848579921475877629599639960387136256899986699842686935554865923389568971762155969519555384367716049742045975857434358675454981596894489533876353172839991297687782578395888776191726655878763967469988582971454586666565864966457566906472637645597786788429726383688296438498846576498933795713372944553893932856387858936977589574467133678698692269575877694953453797860552717285392995637474857628895528788742776876773869794281564895884955847866685879789478889998495676977986586681589235678952994985330984986364959584722973134599483569736668647489537771559589157949280372469977595788539275657448387199838557413116986534754647381777228672412174999854149287898637671244860822787255996587595595546817789676999595487977896392276946587791781539517846468998822994621259697852452899869744776633958468733826347628669939859742534882938827468888685879971144689883983568882983579856928446749655965875882589875998744997694912473882378467897535677772293852385788127571676898639795784963558838896738981597487568984645776899682621883875785372797794884996458279879959184487796717882965539276568696477934483594649897868892674318489836386677273768997699424799958369853778673576667557539888634725257806693996994552894622614558464415878679562680269652556345595167437664887457956854957565997959786733928575638560946977862939867788728420579698968438479899274985431964767875486667976497385697975678857647594485674797998387838784786788924198489689248765871434468627258553543175458399898896939791858055866766797979625784388493957719886898866497975995891626787559467653427987589859749968735778396356469658878799999475988986911948979897636838558856959827662639966183939926199991769356693667289979660274866889434895578877444548554794996155989428689744647668698982649857675374187916058653747817427992343542798663954967789514848283957699914499947574525828189892203648847669799785817318973965178616899882849899686764938373849949733786893867729988785655487138557979688687899885275883996397966799879818352188994654846879590576988067942494791989775678577288599984884587822897299922898656128828945569394646658552767864154385695976589585376967798458484977797662441397279386435854888457672987469121794426689799297798948488886967893473766876943969839968485479668973458447699769927889881488746159694940139978639878839184628666784327889576366799468158664789719984685972755399778934967985956647982861554788694167698767779497758689465523598342659892593618237476994971684875349974276694686889944518866498907466655966968581494787399957179468866468569997964777573569768889697866833699678487926797683438981876556776596575575883914468886899699289774859335953947676874852665425896684868281646549989687734746944884958858922349546293665476669766797674888314387296946646999591949498599285659578757585987653539944971857693799254645508988454975952629438886824980679869559369859275488813556988877189896952798716489569593444586868935967818893888728965959858562977568857389954785789978849297699756925846641563864019964649581969864480797588585873559879229892567751868117749797329678468558858775135976687775750667937849666937139458863474728898639953951632966479936596855548754539698851658769797991699725544666853948864493393435329969478784877965636348838898426866975479877978729679778996583316399496088889484876593568684898017986949958789999662579665884943388379429987178778599568999484872276665947096562997269884377966969492945969486463729837898645896695577771396193448877869939948816885863958842593564856476162986879998340733878738970634849929126469434997958775777654972595745667399143886363979277592987575994985979832396315876889873769797399859875958096977994437783658598749845337961883587872676383748798391889898894368667858545609795485568499647869996968948741784648867689567496148945815648464596996999757561289832618584872858888798439878479879669687585778598238918778599477767565968496779799345737998559959557986857295984485949297763187875185778337663672959989789435479559406837891957172977987973394759556447938858063865694387277519999469893894962388687486578895575412572954888487998998883888835885779177888949321857656879739889298367982578774378289976659595965579188686848987046578993467272969898377957737261373788216999497899537894572198675464896456994557799486532769391498799623938769753794078583839899864917886544146937895793684925908539369858474299337778659593584274975698476998888990388419596797787973457559892968577927662436486334289422969485987396779536445968369989675728859763329376985957788983496857838734593864566778777894368666695566728443599785692578731416593629196435772878439667687666884597568798947594941595434881844867744152583869268343574357839569225553863445748668875487888277774418847865869799989198999968864996958348699826864837554572797799576962968688983696678135589868927782055553791166348373393689558454447566979326488685574531872689882498629877755962796494878068853854999329367572782056568749529797835878429988874896584258858895378957985769937999669997944496859743413986585971978918243885846798596962374798683999683661455353529330769791965596596744968978496965973716184797673766836483991897575948779769683432887889194199357838985797887469783785847963958357976678989976842192969668896387557419659594663555578884794547856499446746446554549667978764762998846688850846569746681198987865697962754999953258597967766365284576468385217135882899785385699834789261174873782677345868758979978464394848528436938169866998588963586741765733538228554966265487107865771179258968591897999497929989633387628917874768272809777679863995985983896516885279282614694425593985837797948637793649694449955393756992699536276428286886846989542562452891683579395646489564673874950979474439836335657689996697609296387449582228969777994289299587876689878689986478859499997630567677297948898887554943769875539698967896827373860876598494914698076965798697479688687367479484759897865736486398695596878577836686798459278898863979179899697767569968897576776493187747399969695792374649159585974976486949669798456576238774579863759857549483286788458979679768999438158649372783996147579677559647755435685998879238997912989218427448747852788968945958185457825586414916983577758839869398906135853678568583789975873392464486962713567967592779981672684643852789478297857569392678868983559538885466676782589977377842637798121663768478944787795967673587556599548869965929251964632394863652948889558956977887699763967579966196793374659447968745666582478995888768532948746387294464237784879685348481636283683457685599476526587798478569897979679888882497728999498427791894586894387493878396976414323817585857673581976776798946689935392895241635794372795399822667865975920277789886298588285621296789602365388941636905496738499495778497924649568796878793216737506274067389287466749962637124782708746416876697176624976992635768209819882668675996697896894477748849887386322656789816586397565497996588599697997766663991967863455096493687096382395565875788065585987465583894456879584986995849999456569779768324738359847969274975377877679865457664688292844579562751972893742593429649883579899745579847319795854754286948949353378788419196689889786838481825734844685765798857197577479985977993195350827157469625839868577492974788986368779917659675437584524905268997781725459743438236298888509823579413149297686259136756594899232868469566436988282599925988476969438997396656129795578421948786865577308441888985499176699985979876645790933792364559599986669855686489877683883979889693267748155892587964389647672896868195387988598896736973457474576458527898695799658968686979773528799585995553879965174953336789997599657855698858399865389649663678659878769835736995857959844291339657653919822728336476949498998888944978418425894436983978776554394545469928694379285957427949899987447484682686939997299624969795886987995864612192626776534789969868994866984693693799666898977381745246886883878868473924883584848895225997476493777949913532479999536949079358575499545676479892955899692797737954549919378778354698789425938998897796589679998575386347131675546668784707829299795519998148664494869944788499961998678351618664986176879548992168848399678919798976947397978699733456966369047669667359646671657382978796929569395798999546278636586999855379738992948595296708292879373889493609447883876968587896896151599679927856446859986594388679804797999609386985589488897927878574779354398774674366237386542573772893257473474458798997969963869881348322395364962985384780585996827568268589738832866876324395567394503184888796629498929756739714862884597269724253887865983458795888266692777907797364816589976964798459857376768678448794488969452684697917779383637395353468539798987659769593636985223382869779715475524978192988878766542999972374955348968751938785796274547583766898599761264367766588797898987377154386871878799697469857618555682856826878886768993993883939587651946941938993779776544587769499195378797912776483955587385698775836989169698895427406396894959798894936774256466895927989998929497896979387443352999767742696687998549877993537759598967616859584245529888774766541436572292486399685369767997427870583647945741776869851337719488696674698738869374985885925656236287788499255998876778878944737838959833869889454736692272398986595472469489893444589997865858687722409996977969877691949769545854683886638793375553966614899978885556958555855432953906796798762927855874781196596498972238576999839459348347849794884962595835535359682428974846063999554168467756489371666573175051489279867874567997685798769798068833585576797750466649988999595394825843775995497156342331958488757869864879889565994699959056435849466797525739296940687897558897757843584775861776698875238899987938999767279976814772728976897489782567649472318844683896377369947546366169919785279661231996696982682356698568997849778879667981617258627977833875419626581985247864755938966888424779593645985456745855972689986757376499927867643996877476647696628656697865927688542694639375648997264694837379979884889999947294956545957950971886799966875369439787958895486657766988984449876286991389783447989930897287688194574869888995397368587832597978792798998964968335589793379679485939764578166396945668698782657588186999397843699754846847458448485999926797869232628398363875983285984632777654667863283255883759356575483982685678909998945869833973887879882349389679325399929635775559959895939985758196778417684857922948643235947766832797694714993967610885488399478621916158796218958919854762491756471889695484745986673584985555945954736567691681932521949595112762798898977336338453798983586976288328865775989879437859757519759848544591949869789729567688893077477457789647787791682489567898678792864868277936889638909832578463656669595767692896380836799672848299948697969986724094389544669824628084438988094992698353537898935783197977488777479576353996729636327629959988979759887899943316887963955610648876837948727435787768448799349187935779597559857935788877795997799438689542978596369164969945875785199974582667556689676682798986558239196560896946685444389991299493459994476582624593788517754987843279993919856456586769134984977142483759789436258578399365825055859148646285287895695599746895778869686689964749574998996999999516958856364777889352394589394937989366156480878859979689237745882642517964899968969598537754878687988896873626677164496795568197972859335564493199635863861587586853453495365794552597564857977789305892886858387655969877669679986725653679886868981852543869773745988366546984988114999429865869343894957744374865885366011362498746683248739949192777333868538731835779639718789644389188895697297975747825797739583699658796484486938747744976935965749679779697733767688983679598992974456917266747424569986786967268382766398558228596359537477376866766398424769363249035276972897892788758744997947062985269989293373396552849699855398978486766395561848971743672283792306364899691656277498579834995972296862986877860356463595878876985944434477689919373889797662887216954187688898993685793345944896538528578566895705373571998578359749771783298958913067993564718929582889870457789989545696743648867534856498855366899666708895756294881878574796546974654881737259756985759669685438839933397629986419585856784814613777867868383997952878148687853774155968499492991697678959298649429191947483945899796423888395456135899287944674454184666899996997689569627595489479062859898815979453276797673478876527436978926589478427348697736275857724944758358877438987867357677745360854743962378449997497528905798279357887638569678918616199598922686369999988558782956579988669878969287558838689976637956766651728969128475827972874547298587598898953736794976435868787854856444299969345177589787979923575175559784898932897668996996078939988879338973858858856884789758678684588271376366398363499696521777157658758855715994539449646857608197997534629172076883288922559383183798983569744794838541871852163859933863349893984866868469499959292699795468924697669898729891665934959425562848886558889464897087888227776329925429135697886795692983882985547898089756166284298587994699639579615399959856883668967386564481877782978222356898868766576688947396877460962762586957156983868988789579777495675119738976077678848696678454698687876776370318879186667773789627906736742858598693899938458695835088532754747658716145739768571736793196397869647978217648476747599429937795847496574977227747675286999569756859973597755184392646389666488354729598789764937448495965693549813688757868870887985383667936666699713329688396358786999444566659695939698286827688349645255986219953589879868786874869436995784472399676927959492592597586488686682492126947524748175299455883985743586555995199755788666945939576676427888974294969667584719747534349587958976239789388694762010866583678785473872544127459667875784673896285975369996977634297838317527844884775377638477378876894758737634565653847798428475633678960597836788835359999873969654356982899446674893949697598799516588871881696257819996575481879546772888858884664836861636691339778378686565994786987828587862999892959793662725866489174538957759579867965827598739959568263992954785398675896316966786735669453597897097463376969895686248595876878835783478875878221659497850684399837789149388748426641644298499954557627599595537489378767547992866058624799896319384649939869797069954695655457469670739769682987924351858929515147749887988579864544744678879886779276798592867954777879686355799987589584028212964175895934686946386483654559658673945447752696578592866878865959569647887683887448139896697859437585489848492843154799494435959377995477966756894597798689925988858265745747998726699958277758983738494993685722366977545996576760249455729558642787777239988495437758742396398257869284327499957988818979899539988359867997868836854260948274797281476623596962699684577696726479828594998483357134867563476684656597886869374658339978769851869676981644555755216386867897947983534658659377373986532766987756961237794989888387481914265377595589987895743742696759297879864842744873577858994887389935277759760857589486899769583932767379978429888185857526383319563875866658614681478773569988539665233362499228869754695494518763794985281693883777898763897964856497692798538419893476534878462796389976883978546845354997828599535789898318874558429476952698995805658574888486388758987888566849687727275877652735636993855974993695683583384847989985899494992974878158559598282987669575798764490777354728527916612678799776898873192787926978983965983725376564928491799767766894789633958759572855686833156788658936595589749866769994656979294794673615667257199989592468677897949791814894758884735988678559369988737786598788833958947779469591714466535959987766616444659848579791956372826389428893985666558777294974966678889082777649549785847265259745735949614785776492635237593794770957997866296895849559878977965866090548271393859229379689734999829947777499985269958796379298683795299886186942809699959618964486695468707677536976363296559639539456986667958453773743447589966756849934389526839262577594946744898536524928875857876813355569574159359897596982427938559977712349766346658986675984872448888477948361389995856725563796889981577963915078836875745663715898465687985799467745888387738849749797768998591388699355249859577967888519856949685771969978873799349812449846976630979568297748187292545939796945577745514993318343509995655867448376876896689831866485597658581998243799778963558969467772578929237695998898863486185547856488818638957847987591477898729047798876335578768586998788904223856788963786468496774768848879976968882253866697379585856635946614292497978887981488784855587478988488978467712379348947694517937074998567275779679816966765919618837359459786878839392557785837739884956777526748699478684881146642199115678768477598876679587573755348686759668499327615584959678168989542896878477869296788246734848489559647924426979596944817582999927847618428849298887936798839888834997657638196395568683799765881856986667645883896378591437964839589969524685968955498639689787286458983788829269894877377656856568586788965859693886779566654266976653358987172798974817874866877999993946599878867374596965955987976979386886983937896794289769945168598773655308741368556378833897878655789568784738975458598258285946949853767027689687766929995655684477676946786449975569542778679779998748986894683349138590899478879699695985537549289879753838186998795685562997667469167944899275573468974829569673486753969986597815559937734759992588788379016823197399897978769596828694696217326672998556588886288512941899899495857599749989648577949662978334564983831813274668674925897994588297517159968555389799398884567699838896288998592852977552835984946295194894682483546186959391795549578451999497867959799646582855155485826313489658738632886744859685989997287048883784387662888843838875598382664599547857868929472856896158316466519989335749937349789845286994697888764696567254563826784887798868962596673916967694988543788318893308748695788568697858747667556468579884983595298989799888958268889882358697738960267764531979576739559885269679937559357338568784785357695499244945784488966749776978228936842282524867984499891254597984679773682867576496924747996997983529864497485898682880649778557956567978368977678567577769458645681628588785687598699789512987775496581743955298277991776068786457598769699964932867496765888658047837764908273929874887853279983792689509798289298692657488699662906284888129354966898699677855385878977855438483568935543875976877497556486529676556668683725981946597774927449748810598693638990667456916742170587946499856986628677535932435961275989966754371969974558755356398896879866897387297952645872848449535668968756791628766477718966788155944254983574999943805771973859479806880598933945974247746695656553936577426641842495851997939365698647684952773661937724448629776698882182299867648641575996575859996758787347978578664955958575978767562899679926984998879598798782646716988925284894677686258888657995979465698069924694857842396708989988377499845979674939497684545875998526797757856486988825885876277794221395749688874549568887818843926872454773779786487628249247755486883865625636643929737779339768982615867493826984448194611476499467596548492686677727775993984986863797566647953797558572882817567676597775928151486393468480645846873833192485365798984746659372836798886552247988449486963489757655685761381496778477659577544657685582136994716296986687212865777196955357976926497855889363718976699769683843747779374279967799574566928475896869941572787546965584236631994598938831795768249778977945750437718975423694798157686824599996336346338862457814679789942650939788284889529654946769259333694396284274189334867592256753449648278359756994489644949699399758890594685364748673458978985886336373963959419882999963888899165947719699869268789763777553863557968355844848269653755192167570987596438469242995768141699972517888771896582479964579969193659599848978948968047363981743456736789968872844487567423969445585758289975386396637878990187396644752976098965598597263893489495876664834584477818877474978979874941394689471666148659941685977749586794798264572897997584865615674539779689319869826969457673559882975891579838838969117683462664349575864692492376388527517540353244975378609399577679937756539959589967375889279453297769969726508554388807989899798575986668946894789156598246439394985897892393975747927387935388454999839868687892896896809858677765996241298078715385974997689777781999956984988798983975471892596857494695774488297489348878979789588879662997875829585474857786258871528857893751889745888288979544775698798697754714661998467623486782638789799752133979567385493779578269364664566608189888714627535048758742268599453988999985748823164477997715878894967621276887832293417427763499855797859443446536230787493539387499297559926898649991954887944945921972965628475469329696998734658783827897515966488659944249776978789519769471968874554899785859379588439337677877786899935794386474556671843567467476963986895568899688956339595888265479767898617694764889894479795983849377899998547987628467998999978744569869473508777878364785876464597885798356888987936769656667869747748949666725777827297784717839893648753133539773665199848935849742968978958518964677427849894556884942995859909518469078559712366987468793388783398996367496885958598285866741718469895239997498878855998951652793637757728579779866277576167259478493469580598474248478889427658677483969785526637984988558881599932978637869449793314877793984889989658268282488839848948968732737069629838868877768520850896496599834197756974348869966973633396287979989999922752729757869185796859729587278974649779656919459286464138334556818819893173869555689999936387899768775636314996376885843666156696973899528586933699783588469878755666027978479796598369279727858586799799747866386835544949987988489727988769798821979877885886558988674490286557628294599977786248934649559925867989989989788648785765998995098778597639449529925628504938837734732279789779747394423999596377798596644814996139599485475806343662988674922979891698845898943457592658519237576979478748696840356487642677173862596466297759898449571925689677934627398395959356393979198612349738284964194389876924474875493858997789798759437898787860551911759734799466786375896686958877716772884573799446766688154698477838496685926968642646336299769787556966429627688914347674889617886387859916892979999987855612578496558919985643778266559187655876959797593886695597282679253825682287075856385889499963546637948598597355579769945578782286434335765475888727916277889634408385839502899975953914092379624597667965055125477764867936718887572964797365839647483793775999437288749842466188779926986977579849869495879966878995876897758594589477956993675811849931886672797968187985668859989945392795649247279817243995565743975719957458722959879993445243464997495318546546899683849957563859989855585687995474552477988358524477775783797957989329889307399893898586857693998179897798697494796568959712984387949567876846399299957785759544884686899697775868866847899999678274980873797852946956594889713778853457657967637967651684567547377147607748438657948574665497841948279689957835791594550638938346762468985053724989267682969443839996756597568225886418786052772385877344728779976699247265769972499882918755828835843596854789998679417897974729666896795399798394594176342855787669858598858757867659699288565318454868369973374578273972947679955867855454827578396545798794787856987794958984759786541763657889999763848985563769832898948254563289948779565275725965874599876498692996726495887037979759957467568786919742556964392452586437625658489998364868479979499785588957397874781858356473350999796889385432896979991747609099959793318647731877370559367274778299958998961345436979584689877739649783477886955899692848775839549785917545688871671596926926794573558686935577435788688599754936754975942827484849789468837468718859479689558967858659756417351877257536465366798987579758767298213821256789470489856588517826983419878786787888747973745858697852487752481389573559457989594495794899398249681653514777662957677978265997938844979967298647676619561848387855896389775869374898695746597697779287985545971928998934445947857304833583549889348984585559596752588996970257787737036389421486697853378992769988886168459939479777347228954562496327418674978527867678311887963908848699688756968983785518292262216999759988835388859753861558498759569398999486394899469489888499737963458186584664637789984899966796876779653554198867447365267892374799868909343388768368993597676254893592676737697784924987943881376523755883484689838876366369757996978672686654525638879587538986825665479197468957848797427687989749122871268717998747790829628671227395396892582489530575478864876729363903974795938839989295554989299693857593988464746466948879376940662854554969976856749665294249753674714795909354979795675328815399697796899353947787967371898895757667187567995188735599547494691858794975656894979686794794687969787645946868535979849558495778398988704767634667994979779461667989976985387087864965992498430339967648655672789877947957687459744663217736862796846446919889973788787669663864711385693597284987577258677978575447348386943487823859577999638990979395349976986622773966709763868876866769668868588867677466768688539357973877665957999339458597968891839627692959869389676859674897539589899697768995628095394368668959366781399797445895849693387899638979786964886649967959787947837859877944790599323769787789673853868389895352979789358961445957828448637961992189696688869196994856727747879857995942497649466639539549265241797879682168758777465898674378533799763275487334779337378924781547888379892457525638386236241861957869858413955688779337669757686856766958545973996752855975965413827766978649949797738537762595999245629791361786796978545217972567841899249966969428837989879999785636497476878342967137659869699357879494576379584862488988895760342789778197859974757866796677459577769578385688364859958848419899616894692558797911689896489795587383679957489483254329927515666639469988419566891296542945986879968616928477449973686949962648492547077888827476439856525734636686585589895998366784398586747644833477899999998837596887665894477984558122886897649486836819969333648965579984859654774378793688947582725556674657869661487429275944764668789386466379045886597968759738676187576997683928259992881927475959397975938466758378976835875878235975577876667998089794589846853453735396652992589999797945369763946913855491963879669957747249583459847919471573799857619656873396678975722554799673971637534746889568657575996867372988859859897894938574153989869997962859298766236874649874759747398949657342387438724699589528988657995848682996469379577459978789758745583867869829444633782793252456467412799355386748867889892795898359592571888985264887857797587775497378756458579178862968998922666255459999948690215279179538767685297969998897721989545197636699942199779975564743976862985787828446389879685715552559797529877665996993959956765943666599776717888998595698323669296993459469799893499964896679566988962474737692889479569489888136184797445897779694249983573879966989596967995289779948805246979595328686639799613196798397583714399249869392765598884857865167739768747772999748443148949787689492259624799678817669566759723856758476976974369649639742376459795876999777668799619981684954263432377785939499948723928808283927985674994777041871676498887671928395367925338637895899699895835699849327685177272989868978673788995283784985779596243678383759989976392979996830578985659247926326796886298739876746465799869598787865638917148436556577489543785174242735541698749873986797273376848778678969794486598749496338988953996796680887639416246884595512458856990743141287944944482791639668483968488584754997350996481877778677198778779787294427948949988776901746969596889959734988775399978663285599684898898412927688648593649956985742285458696899548471229449394927866984667696458882578889590898939945293689397871533965942697872246719697387976647574788899379955899899615226897641777859642286598826639418999368377563882977390294986873285668894738976294429848495188879096897899589889964489797713491888887248848693785712341993296859625489789974626672966898739717556499585498689519298399748827488176982725869856969898957529808379905889763979475764679996698996845479596899454714869448883477559348897669347227454678488287919896774869453641364548498752954485688458874876742564493682899579986729468897788898788947676692485932771557847669978187799765574257678893477983198981395997968495799784734263585478635889762269764787645998699818178173995991793736743867884747516581519521737793339727997368996993898469877737449753988543785659984499794935761198548773939282864857555995367840149877556498239789095589679787958884086784584944497774575979469974998536889489888346588197638648659519764537185982989773845735784719262465648979589739339574887795684954347945655898394668756579809948659956871999486499797889945469868748719789687239687496838543377658577698999589559999911586928797637558599496998671356914893383896632518117884669459627689877446666459369993846785757168779979953996797684873895088569961278785721719284346595889639458687655459697494735576596358899569569488698789793866967889988856959735075677173367872694565655369876487886666986529737989664816727584786581798592787967342778366568287864336607858978664529928549897794748757545663788288692839594799446481494773886964973454948869699782665377839539657998549833888199869887967587388619412945687927587782853757763897651967998855878369073839494765732485945825774996988947786988181386737275798629332583647959336795648889367893237896685779610776967575397854650378889324244755582945985074265478286396944780876968795776655976833957676734444684993374997888684764889875745449626889228676829803667759584894944784778865797786446957679757879657929659788887785469575487899184753549782475374854882856885966989987764779997989394478596919167987697669977773227785986275736996775574588717534084689595928445915439894123729999668562937845695767983776635976782896875894995788857884885964838970597728389518818983788786693692964566298985763894395965132399184067792564869799882328009657472482710387866656686659756586235678875627473169762956795986934596836677797865153889984878758475556699687437196253697368895676368646487996895788389695653758689838574279367185838946982966988924957347387899648858647568696149789539487497988785121873755754853476976428979734788259978785526787717771005897838455537885652976273429916996478876768777792296839476988694318448626833294857426964929899688796719775776796847794399494797579998697999596899816554748934483927756059843863998888944247805588896584953366281137875683718633926705768668289273598399359977763943539629321897857689898678763836369965918884987975972887747697892447489869793848657989768879896588977766479490158694996434983983562875296999988916781764448336949986759372967898813427956684399168772896258855779889757539717898556388682883999825376369666781677749587992949999749797392289499877974998998669892789981988955446989894492756999615993961789870399082388918339588668268690836789999784823443399946784897749982933837589594453936579236982698889459451769660796989648181528757491682778579756997844681489289997975665798664939979624979599757358879667786999179864956655438586669643095762860989966796869438827552577384562947767788468378869681976988836189855583484861769397546769666766853957729646364276862878658879964066865599749674825678791863738975542768679419597595883957656489798998755998667697577816453978487826739084859877837733647782943959947864475936586876195885247967765888749779369975328899256818553478987555141833969975889677864872978888999938279538692749359939596598535970799339625937785657817885478599985721956467768484957788949893027867797819845651636734926888294568577697927478864686068866584772398889898659714988878354997496676837973677887789874673855652497929989478898833958389878876327825974325837786948587939864487597058894777693958684994392717499755586895795869247673655419697867983968559846317699965586458985872962459568998688936898745938330676968699569397994369898169945269967378940997794964539485564876376618889634285788777543284475746856887824432666282567766439657627257624988566173572954958497949747788987683166828839677990565787985699674265866734754786599477446998891489983778848464497844669996970769885267924929467455885931720746978973988479696863682987586953897353692225748379395879367988905157889268699779568336344663871396935835587762758821778833744656587739677799484384884284959542889477868439987548749806956763968856987778873977976857795844227889376395975444987747987994459765688889947339628868779861476481948539657685969757585798879281756066949819555997641688679994679974445969553743286736478607678455971357454415697356749758899359575898679767556739664269787573397853882533568371694188476846711677817677894688861946682987888916886869984687732744597989746676284558733672998836386758859699968357927546373454867399677678784879546977828798544577783897797989999786848687892299968775399946876714052597748799287588122959637789675629389666257418699795579829789993695948792844696085794968347575992583939217798698474429858199829587978775968970829895158579975937955797179729437497179788735419997677747497767386998836838894285771981233965626325962768096897973979163549628778889999689327386575668844979499753956773877896798684264535439495665496899835624634988663791767898396595885594988974399957848367879339439928839956719696569888914283782657897948558128786965721783584976358479888096876976767469949966797378668165995666568589637290273869974574665949475999969356899567463639603685690656369275449669736568878448863979848888546742993858277887227878785186867392992889795647665887955748879479945674868876778852983553909068689674179188824738983577845997739456688378839689295578079452264654947522678574587789308617883759661782278285969739939979387696696111193244675569774276778632828376371865372711797348554666994673976765187428309672869796847767982443934779938438869779705369887569938688299787594489558555368262863679466491734746074848644234276035759665498788534887747787928528858976932795689826564966995693977917375899658895899349366853978677453792809468468854972604769883845768068686357165789444776367578478928889939898883587567759747864796999599425586590369776885656484942469804478569896472956854957888688789788576636155459946889393858839676663441486863417888986288822738951446694818917865866996767386988185738854783154674761058817987961981176687487695479692875463639262465997393937958757869595659877687797889867658239298871768339769977969561489999767969674745269794595728795428728899485576574999627891524793289795668826675988288949876314537819773573867447589996399728378973878384638472689869564469549486813749529592889981466975463934899685062923882996799743795976691445794859196558668669478778546291893768678989933774862985579796697284961306497564084689787877555848791855948699969879942439938585895924797795786688348796695777762862426946559288555945582899974553325566679518478696687537471417977864964238157716356955449986949855229978862562693297793623985375329916977827380599898126527499972696746853188973866938875196778365696985386489939973888989987898596858797998587599438485819902942717398733925978297792568978772749473888831725594459878286865838465656987890428159806656683957886789458455289693689973479946695751786933594976667777484674753768689676649796907489865797998799631997475739667558966283993058516880963789749639913758865473599496998979485888295797973359999987888989494978968776358399962663528197972681566169968498567764149968897474667646947779477396546785592798089288965159686785818989865529699496557547887684485669457595483558554696649766948787771832981873983786679937003688758838789767869788568354768946962876353939998688597546482096276386489878939349119578958660579165589893379588995467587616778378684684599954564967266878716425489995479758386386821568487994967349538888627864696589593993987628648967098715459695397697584978767563497787783992518169385898997787372877744399684528765382934434479948917359816872595977738346270485449789796544910171949676549277354493965476883757988587675961895695742892989526289978483889628593578989697162687549884698935858129553596882478777906449473762677595879941394459858885783249308357346889578688285956495611614826959575902837864568978469994848899767933986593937738779945495586478589975689957957789468839655396774658976976752649873685465379682979597488780358532656658964567655967496927657984984945486295669458484582899634579797319348298879475795495473999889899495958934428837497668697662885519289912785788946778550332729869849768918979957398668974549665848769885687948946567759786456565598324288779979789258786769793964486393935866889352779689838575288364297531439967771978485458618576577378948558439839319893659523993733498926488256796354894558768487842964998959567498684299767899897496995458597898754669889648813717329465246829482747592643663868258688668537364595879787788738643669999688984758767747499435768769088597496643999775458739896479379961495848154707657723497723839642584592574886749729479677986085981258362618856853884829827585384878493656685678948937696363789798436727939955787477325385767899997697963982187841788898434794953998748979782458699196144462462894977539487769787386199668769668928334878841576749629196886939689876593674768788678678586932533385588263889186999979852944806824469366486967349288787977791899428754997317967789487629748711685457541378741839729687455758618975457079736579558918698887479668842726786965994677978443899988552339676847945795389387357896989677986489989966575495964766797927666547175987562854793566779366967797478368355327177057969974469933055449163729359189178963599996346913859946867269458533835987679788649653968787388680373473678964295592659877799945495339629594659767853777487888849988892689977977926556596865599629128827995665772658633366089698666979974686596559467926787706589394884271645638799693276988861654626265886831947958789286172448898973269998798674627659682456946517613443545485799979376268647967725481813796456389569785754969574835685736826637788568669767880795959875474379857896983897895743288975992887738837517753653778959698989592996838797698203759248196677313587859634902269666854597878582958495796865396849979556899347887898995777629892439857877875685986897799997298579722895635326599956528755548976896571758045973717799553957974987585844347167968930457563795887699865917386287364578478896875689656964739542803579888884939987698976785882696879467789867977578758176866938693384799218198741953984426477879789458376268795375256488789388652677638517789596397324656968948998227454154986995443646988995863739549953892853835862596777274443699967775259887896139598977849594497626086974490999877595815889369369699445501678426925649968664842889998566973489976625683573958562431057897517379698984999793557926478898937959879523838778537596329761744938983447968689789848936961579941257947939158687797775694595177687301858875784749597876794657875680268597784367786389839966453588597696492848796559979884878728536034778798678982836936974958379848788068979878837590679177549889359662975635269391693375476288641979357690799387457338889834861828988898975775684119289958527687568797725682567527967385758857896964988786832987272919873696745659697578889936978837465487782888696529249471879263956725973388866979678589588858783698399381858518645586172107868864788387171289946715275977179584959083719579487697274739878762187438695169545652948993889624781867346883593789448787246665399677887878534655686675798977943958893986899888749967477988433869898138579858579887884638349375593757431763662573578227737995288479793879497816798469949274587629438566959838676488849758981456783876698495856257747886669463857845629485567998663977755639271697898867816572645239195736599061899866628387657274592159763660457979676877849689788567394578939858695469877784359824427264963674736244199199628878737968682231942955956999589149465897897417378669859996797636879284937896089575749696725377267967736969625939868268786467964698467955764499947717894496547399894599474844396429430866895996915864798796932664884475478959893737669676656896889045695766904334229957539853666982983369789776846963851482986742699788837637908573439696658589998739493968140398985938584578476749427967965117797885467627487642627762387656767376763933983796664960978867577361994928917755977959597894147639376605344469769935766869513045985739128419644897827687795833451786597766258985329897074794832982847392966598336966607574577667899986655999576852749686956855378547099474456377878773886948755677642936695689859677958594779997869977785967575799963975439414576967386648787967957489774966999886936787581454547868778755893145873886994899878949968666999773294989924466695774288476268429189555658993616878549588545066786499655635943628689476975999596585775438561598563797686389468772335681999848945795882896558385867835956649938488888658472597376988477764689772679602946743978598269729856746559797630953996694688555898588728535966287956959998738798869559546176556188926531599898386773979267485864753557484775426554929644464896889289579888499637779573468768436459669786968557639579496790278881964796599649289576593949882824878425888679782468684586586167545678944234948948836983386469656384547868757657499473668777686829779797373649494491978758729793597838868154878398280697338822251524287969886678977877644978353842916983218649994855534349679634574469483909849507884649969379856899737665568499688495867874847286653778934436696929796855738485164374385927896758758289566679457496669548869997961598966877579486598549798197774796956562442783879592999778127327879948364726992777937678789574588192492815399169859997534683639449375933899681538977876985967255889667969688761787689583327917883593495984255967935486799879543555686908859659337948195594674967466794577589967292866589996968984239799746229865375117839817978983949982686879887696838968656872517796359743889735314979576197485391999588193458757735887863986864585975648977697295974748855469596876419557898977997367765666949995537928375519857943863934498182999473997849644547585781768476950973645386357828578469493999278673695752744622578987997377869429884536594264879975498237784967774566927963972647324707655242767872935766745997887736772675449569577583565954498969868835785336979987417578933697187572674777228946727676797837786494559378976876874295883999799748886793637583499567567967359656897698799767934599962899459932688878596795548381549978846989861933667666579445946806449949678965976795835698438685879896878672998848717796529238981865836898293167538788899859285623699256798867994905529834977814995287956759387346579876386877198294837838568796541578917478999884927897938372668856558279980882697987799599919816695759869712964938549579683779298797476189736668696695948788798899788867894299775929839892828999939828657758998397558986687845977392883538694997875774858563274817392845789188978478772783769797227988359795848969374751973429797846829588085394563765387954499975487853598446779976359788549791867832749465199790397519369898892987771848949936929448762264678712447296549877543985728396899881789876887857895747359499888257599228918975862998847258987478754268899555647699597789947859964389676898267451535635476346883669939394457933878458395681589379554921799357448728959859369848355179576783688584645258599936896949793438947933593647857839455959359282979947393186592338499884735587497673754887649649783920997389384375586887849961743664822994787395696967998992979458847698997421934635499868498494955779379874399199658154378999965486956617577476433415496698372757557897498995977977688759955881857577926788359629735384487728576827994172516647461886178961697768587865927478695678246872588876794289688665983677438896594787968935297966287888275287643616952899837664577669898986547988839557857987761989871757668597766915786284196879786957981982849578997947668964479708983935778165497497758578996693448944969592665756773991464904691145268259987884587768459794697578995752898355694269638967865874178716856666856884868375625741473433787899352893861526987877744667838768186274178776591987824721676589455899929528766229439558894788924837743679789979869388998299379556195954819445595866874818646959948986868276877274424968666774771869695486919588995458247692198398548198393492827699894858688996466579645779646674843999999786858296938489899398711686854786149797964525463445759643798678486881693566676867483172597585885977799753949625142849980948893168923945287654967383976967446973996988367838976667859866564295748897895942379958968797995495729187787192965765868671365796395078983195486138874993953818481448737587999184478755985935593844965539579987877961448629974899558669539743155874566958467639231639395857716979177399569338795827948236536464574857479658936850387465899586777677256598849323687291875357499294989789589912523944457472376179254999720428929443885886946194375337878396942692977333796569725474685436569059677589398974999389354936965879879996151862776696639787174835643356579815856879897589548876898459884918549589994488449624015569879555896558860997674998976986385919984419977949399686446928348378675885498825718747929693945679798834797778354797798738299477656987548925592775685669835125913484899748496399792996575985285655598614486836788786541677966999927779828494167578764233836482392583779872353298687849548478575786433466826923761951448556849738196687899835657458468599937577839689479244854489281778929698427869780677771392643964898935686266475713763368797976755805296999377738535963792566886424762596877767591896729729588896565047363398563759997888898826658259467951996572875655796939774398999887977767467482989556348268386933477928796867867626582357683674685396997288260746735663596611564855776995564237987745958789467296889377944747696277578798493377878667395168708289434874975048936968279437794875859841895427437999778645188931744575388688982896596867348887427266596757981974651958327786922681896443798491538889229515992688879887893999889478689717446932748274749988377779228896459958625955612569534555544788778996937838799316802037944941754196898973517943656767868932822175726891334552927977874497678946461934939669568466735682826887978375998357277852387676698948519977276767859518688287633789959882998586899421678996467325395658846353498688997967962675295766899887779554877680955637829558974659793598867546268885685676981837188693986744293382692777764588856784562645563496646483476776844945331965646949998896339296368656877814862679897447993647792947788489969465986559479865979559489894488765892656975457893957496058969387369985269863767896076261625879227675393756458789779899675777854948551299347233529116379278678306764921877491527193551397985263411579538566896876568428987992396976851686358755988359124279738939585835888673519173749847755788335714878386668687696342234868535792699585888863873848848188669895646797886489389766671998657999858449699977409458538489379968935938986469467287953347879357986566918943696869186298564977869643787395747967948876658883849386967727571766685754995575966784726778566657695824549652955363697349458847066579774839836244905989674888574771589837550763538479837259866939857648774896827872972469988893399593638925049579926971524886996746553982964988595888795629991966753608498497477765929468658696524772659365999569844496333997952858446996933596588545781355579879488748567281859968579689952725349949456463849879674929463866946997649677985494776699994436754378592995925787341273474627848436986789886798896998963636758886788668969688767778666639599999492599247989522698235773036399733890568858684775979143648659888482459864745597987659874399988435966318599685297233667586788327735976966599635953995678788587989931968587779423848583235812989747969965917584758888948798765295569697958849997355844938322395779433795976985877895597984758917268968644365926857649199634639597985485547895955387559868792864486851766933457882397633962941839434567833986898169897559452686678786388762685884646784644398878945802826669959893638035597589696369176828254788996176644736899707118954589978989558229879896734424728879356899784588758779497438748785768683953855598478599978547862936663485674012875995797859698887739328596959275549992997379967937269518688655895899986887784918867937786065298993645547946285998428595799798476529653768684975858717986063925985459929785374787434898689638982452598979485874738975779899978361564887949596778789729929787688458866978745699883483969973879559897791637853736637888509877965794437648757857495587998595955399884776253584969325682740875874657965447459986622577895987583448856235979777578777755533547596853896578657667997574778528948599764689468965684799983813663474398968369973708865536848674989994796963179497945476853875453944188781298549444999449446497694774674473287777243868972286843976867746828159398981960639997497532986869958279971838635759585986885647957937752565665974978949897339877969147441563898668687374568683889998189637582942177757795691588687989277636187189098835976649784785974577978345659708896878269975746814687475538766787762634455547973559993976569999898758788323548915265769639368939832748496775503658649777969327779956452897466785889655554137675778748854962885916776741889915377397552153284475658976835896690278539997579957561897767735846627767996588489888780889141525779567887593462945492976378093975895779678636767785475976727896636243353295186842375549679898228853557679766396407553899864564478529526093963478769582999960853869618969688454967994778785489854687275778739263843564787973869379678717489861877738385332554339846878746661919948658489769458195196167277879819567979959736937276688664858855467475744767459827787877586775978686418456797334898798587973859472969746464558848971586972735758769317883673888993692396283369898866548574534752886989979954477845849615469366689625635385574988863996863767985566367875294747642498592346497977343578595443734252924947838442959967767559584668884846686354903479866979344794306628439769449889989878987687954846868958985754055998849994051936734887927744332644987837864284997358646976978787699578377273666185377349989299768889593378269744958476994993687863564585987939867692565295849888968847876552254568485653965994925999572887699493558553829881769688865835599342698181404498689262638979769807872686866685974098597466859098798981747475755447723265483569176268681859568924875379354969155849352913758673554995828859851639348178792973275561827264367795925789952979696294496398957647676377372888698595986578444685784791479698542969539591899569677163343698359883665172986745319748755358794887985482787549897957552672381799375939954946378956857964762599624272726759789839979965646758385085889878854439899765999367513599656668859898997492954985968572683882619027587746523664258335484994556745986558568948978924978995449769787167447537679465439632984863792872653863986496886832735588329539699869565798796489768898575694694779978516318514672199536543986893585557986883285338447876487958399766669895896985395896976896789755895887659572575962597967435589747346882886946097589676762589599464284948989798575793982868587661479786773435855497814657862633576396167687814796746887995594978397559559998234434997835666771559864529880698463485993679279484487619586876573672449072788285786726619898488964517555946678999859883293699667697796758558477759989637863458779577788435789884926966867549184957855439859757869173598968969773648177736625695862495772696859568798665962567827955966857329467886861158961154182178946922491649475396579747966758666228770354773985586589985968854645776682824699978877767113547949879837767551847988899962954269773569853717423863489898675876768464337848138997584459464443216762873250741989565629256986647799328996544543848885787883369578472448469468987989841944589787583862386426777546538979683257459679873496736718635758883938837958576767946647847851896989716154786757988396279877479555795586967899763795646973894798379974979879528868755692898557966855547478658336156991725399176688387945828958985439939575787446784896567493689967532624196725936756789847559179980449589768473199375672666887867355823195542563546779732868952892736795968686797644857943898789796744928469859875891994381464876754534159715989279948653449798468568976958448988193967916269757872386606897459178688965368321765045836573566689888877639756878676784799365498898864871883899678555369936727321666289958828594275984388308869989974894657115379229277595357364899867898193876589742769699705648845679865462176819576895411378172768398856114989936684429562773794567768430761797293558733768967796196877744829878228844344898976824768766379491199759599691794284948995216698897508591474782794579889182525787436789853599882835775885738568316946547999457892666841795149735746598175663836477487553895369348727378759915486286678675674379775548888490876848886854868839578766654429993744978184763629977886738745543668906426798950768119685997467757857196948698494681975488148746346934756996885788787979137966280486337484089996997943785984789994798937287429448892667896897188562991765943386565928476933788398888667553428827789896496859792495892737988684514983514938284999889676897459899948579988795788827849789391944999365178859970684594685759865757669346887555488993795444987637968548907499579993635636637836354866599559787887736948784535677544636464479266629487306985319799997999434797888766885879766397958652669492729873939989573862996587568847682973299278258916594567198287585782749698768879386364256675893998827316389893639968562859591793747699598544643327197997871985878748975285388346488787945765649589349792686598357359577989655767674916779498784294647579183987436367390667953445776554784756469434579897834242259594676819993329748974317764889985959468843664393979696235465388448887559876799975568980814489645787573645443975966437766528858876856879579755759789493468776886899938765966257573587459583699667849856788745549968586959638997673381448494787593592976596489667769364579959984989904699179694498657993219886578678999979859498744759882695851329499181668879687873383948297978257645653697682798579976373818997638406795954886637614719999776558575776529987197794296986470758865776466769735927567139495449765973829565679894924653299728734329330358735838713871794598976698369998886896747536986069870714899477949777961657556995353888773839722569538299678179582875897296972757566297694686465999397797647981598888356627766797587469966693891469666984996957484337716961387786666963795786396499794547488865968459898549919356889531992997558866813889997598847298644894897476656167799139668495747793973676999316378886079298945575958983679979162645988659947882798388664416938378593774987987467777946987557936285996879869666888075763686944460759875892785657674889837497953362343933947909685931829729784563872968679699192774345689808857638895579958359997367797579226696468665994873933482999937398688884095697879778916885957779357725289432494856449439857912726895796937196794386764884737217783497940859799665468714997785557957562399865892188763265259276555651774575924989956989987916858872877967733396839987539583765444753749995277499339936688853749976987167169346599071587879887969684575879577365987278959584328975467774627369974888378697749166887677755975375365348652756998726458579554683969886885797125949626856912146797473253537848784796181815583819956748494583445433687748516849469985379669674344767688758674143935399957965778997157546769975668976926736539866976468788459899942536969989247894996154864996845596893868489487893177514765974977834267759587859665922272784686521846906965767892876285144658677569688778465656562463516947754957973848353677949559687886679076479799647376883589849349788897544736447544654499953977841485478783646889627554697322876757849284937776489899893887984599778325777210881684498184750590858587967319287463897952847788982756667681899967646659778669797889977685984564929383931785729953782626933264979797246998889598647218651785649868857758683927799197598684897925249899686388494977799546736937828785589878987893829829754969373097396915276365776587996492648067858581585876893574896479658881154575399484273672584367889354587589398789878514249673396664297852864648516997898947985579529989782533999969201643958685575909559437759977964546322847458126886923828992968779858794589705478845858712598651287328496678329853587679484475628978879248999477745975268397997286233648697984879867657737485748788748674684799726556877938859469719397679897696136646944447775968889764697769949898859989954707962644786477972672685656664589641967869897461751862627276768836359394786679778875975369134639545244688354275448879978659673259112863627997465586397599893287269199994499719429998369678499677953930976609499855452596495978836826677495696767802283779863475365749188678449478596755878552971565686789826285611739997595928786889795769592169779969609917959446745795845847937885684984599393655573539874739013583978379987936387958998779199998458899719768798904739523285962875509752758479859699967192966995789176899557459891997796694949842679778788674568995657566367674874868769977366788722896974492396898634498289586832959229994995899836553892797588791692889752466527687216989937427742788638199976682189454676736775943648927787821828729458319974479719987274999976836838517649587988752695875869869804967748897029571535838687758759797578787865667878279788476627999992556872569677067977852822887846574578958898639292948715698563786989536049957576896996185954544157772987847184984887876626952586894672664276859367565774735849846889539948685964735898874828783689239497569598418518835899858449929464494761293558768849786489778616797588659857744772909188938155752589759808923856859946793882873836491787599365456526578758869953543859846966419668897386555695572898947957498322247636279569894459422893864267937816295975889756999754584778741563999685832986462788992266976274676728649827978886772697286734667496787467587478891288827749854446283736964154788747628499855495949643889946973764585733577868984992394864956874859668616489984585938565939954887657566564758984668989785478789859914499979658896673939797775475679999672438025768884674999437849987874944666968837383691966949898597886858766799996753868666582456335575299456689689867439762699984444746999067988779216226398867797976858494367569757799499271686747908877488855469557976765377898156920999569969628756188072885984886885769761797784756799289799793864314493885620565759669794766239657879478733637099966597575998699876849357983873894884957874979757768498492529997973648939726484978548926996350084243987583852346463874564637947889349438786783874667787877398527789698678855445454589957182988791839999933287837735579988989788759477797494468886976435979884689897894680685787469414685788836782775231981857899698988773888828978867894598267731788880456499606583796148854798672785699627347686157997298388569662755939516938616645797657762987661535822879880895696735848677149769762207897747235705927584492299999873575996798279739736797958847447768765877649977677879989982618765881884399793668852788958218471559783462674839676884979895788556198457854838697779789858326868846743582956587568488858285879468755787798493954741726559579576938299698784582718925699827496654998856599802877585938882845744539877872269636148959464289839695311583915748593689577979576758479615979785279725186054949662997158898691786284399778475556771746782657673624686857987888897692686222992346977866864885869793971957888996857578553849973735779756365477859686797466665969448541483694669768507889845749989897897947298997865989985989868946675661899589822995895688526485877644979784926759951955388671979489387589581655677586498868398898398799595957577121895539230689569497958666796695559245883547827986558473396579482289864589498495648751764418664597685864889458577854759964755707437695963868075496686249988259926347616975987386508775789815859839784577357884989897995957897552352617889775994779699136238397577849976797387599788453998961973967349993688885941298976457949074969895878678755959857543766647796786448985789868794898918874916512937945666648187626457674358969197965781859368556969785658750975898918734566210626749127464317793677999475278066679368668149493367597837958562394997124832626669717718619683817037656998635076985889888919999499764445923564828534686874754678283797895866584248899469746736718996946598779579828599866798986668949799768965184929618548985565585989599896228842843979876786459846892636629184854271687942111958876773466477766675895689657795477883568742383365939385888867854139848869799878475757286544939567594368689879916165795799458418858684838778447826499568784948177795217832462549979785256684783878994197667476666673965967979849595945663389859977432645739494967299697649295297779576190716873232667887165887579897896733444386544679875157675977788929769856533859889989777974156771977869689488696937423679288999738256785765859867795926969486399968698736347858659581982627369995988828975438689969354988464729883999584697381586723888839195994484846989477935678366797888896593753196561599167344926778266798728488893854977946592868679298889768499257969665985171767496678852982898359295667677564999569598296963988986675556757784677885679996778392596758978473966945975749397697177889874190944973969774591196656438879482744579937939549497969448579394687379086427546868916488797596619237646797973407579138883397976456986988596751796317975977756658667696969694696946486765445324556738984777594997766719519384546378458793788659899947578396729687867893263857657976974768768218733878563466776872586875355443633895515716658732972484736648829489685964476478816778588894895567895877645905967866746894989776208665738869898758766375586267426362535686999169765915889989890376868719699479795998357894983582466964884677565929352896993929975751973883964778999747346463846788557783788787787816943789559985785845602779398647896661534717980688638927637649788865653549473594749473543885724768144739974989745599129684357317247979902864647598731569864147852899896386896579949893685359636579896788944614699895777969456387859412431787673886884954949883189967484699876575761479978638792499887857087796199736818596849587247588986138869496209867989354889899694894694926996528492987624399466842495906897795693758789588998674935866892753394991789954427968886758968855488509545576884996697374395764558884466389159856672457393453557889928274718302755999557975966657679988747799432881449415923986297967793858773459863796656758569368756279695676958959967363563896615489938965973988765798708698793479389979483819783848556439778128736895873182366874735769358262687438958756956967754676239429929536888778865492275393494955648955879319388785878697367965376699774787999384966118789962366986757894623998269644219885359617883547335535592665496288598885786339978899455989427598436347688695988494879785748685487557749317367658488356679696894994495528469459736170832922449876347184669583885328992844494993987946764878564754492697491674765697089689655787986278959381776658486958629278290696278745249939353577585576675992679684574574759865967769773437249887768437797892599269898527459986599579687969278895437378587528767682625444975824449487436363497853297567898747255585376626458477467881919455899669873496779998988869995887245480989676989881869748737824798697797832789427479418854567288366364385998717380889664988747862643789443827993964689833979491554438555838915598751489998246619469541468535397665444478651766618490979566657284599456354987659856513236647849398586878924773775665679556848696794839628698757669978882718845883673508697767973339983582687895866989587875089765678994569765688999439889995471686162994998821783978258978965638959667186556399826446996663583246935424830896877996796825948524889998942998593897748277677384639966779687937998279516767318998463072953274979555689877998915558548544479386482478938693898992985676339567689365635682469778958568865136868935478967894948455983578889786176599895754546989885826724558699850493887987339487447799908919489984991739967218944837955698255939918959768338688538969866278897289859464793588887819547889496758432185377547768745778644736648567568698777597729474966989886382718768366988995977898887957584499987065361683689642746262709168834658892956997658997679588955588496579430860677977509466771994467667959869638217470388208465434289787994397933925863878798879898167397972748292969981593765599758897687387897335279677213815976984679437896982747255988518419781546965479618994496389796708488877725373418799223667487565486855546767639989298348972579789356783752593978282469591991998935755595994476738744958747897787786289786677898947945871799558969368636474569876688484886979777383394787788189686297839928459969813689535969599026954578957718979500895887472593876878698646973374652595526898584979197597786524974788983497588966869688858998887736975678559732257865974895955399634397927938678656576858365569243186455638256783898957817858299849229995999757179992789349968692793949434677497967959932956693887935565922581442499765862973529934666788139344879397963594854267256653759152315959497982477868638637697789887639787685476418769736898458874949878396438737754898997664573647835199541968658386997649278499757896872735199877698684895894035679757389575682893588587157769368665863875968998989396574624197636749295262869995409654661688889772581396729126257754969988985967498994839865729987161574997487674952999589897796824298538995791579776839880899893546838475785254965439932847655897296754878782958378886271848999749996868977775977678346598288667765995899949796876996395394347385227954388248582596448677677788458158781529783978888946897676586768298967977294867798987963592579289578417256735967896553597062234888696778391854449927946695979188463869677573698929367538746794279869899828996539798569236629238936919997966878460893569999949995498368488579997385636995377389989929999966556814185539836398878268877676468886548978477477826739125588677878878266958949493295594387986956539959495928249894964792795276776391895712799532579878992559597564573558278397623576774567488841798528966399999779955378977079679681869397217980775075783345896318587557735997934785886989166856845548668585677486963656612585567798599745676766886537279959392594576266254659789757997885648784576458969635979838748935584969896359668896798887673471897855468699869595935399885999837337692494769479895947873860768793924508699897573396896696948079548439976771876254558947787566864375578709815853992898679758677859858738577277437988576572565257798930874885867745688394858967595635578938925744486866898777732987894778414578664269639387579796382496366949995789517958839979980555843735971754797697867944289777939448955575887566887388784898797473187272934754895867799843743637596513778753778654286329967789859728412525546735589771989947829386898164987566869396373829389836793756576595589255297099527463655493773687235963526588966967874874828787193665793444965787659618545865857956746349488806741579866499845983976483454887586999482864759388995463986888538915298786999485689786437749985877897163858952758665131818797669726493917228434687955747383238927338338289978378983996785197896289969172445953385988579965898856389953635913888455644557235865286433887698797405799239871568819665757699778549666285353998866595268625564948397558472899294174794296138736861752771561748799894964968798774453879465299167999866198857836847549769759778767965459886338298599595899955566248087995719365855899323941558246681959047479642856392679987586636289787587634878836469789890676394979877781823954306789580879927819379651378985826849857648957758886495757965844948379914996869796688698975790929996358736865739797469739638595593729638679729413637865957977845987997978388848535914897669599886798595999888749899325936534378435699958845249663853689828484699885884726519968782764619739865675858761494458218723477895499997981714372173857687437959769839948973965437257728457937789285699868279373873686983274977867958595419437494878938897791575778872492395687736978782939827746968999569807784679469832286804728369956956594242837962665939579646689139699491985464475518847398965689435618687531397456553492928731976518498759994793288788285744294865793319158897459688376957948867991873887725875642896573759893269987334938995966468877777736919899936872745873896634735394799888278669513657756573864123569966597879741966667888438793394565784972991778456956697694617366986342869672756468986684577394468692529555138792453985825967687855397655426949947686747981471969893979486966924946875539884692286978835388388696994944689898892374935589662998527238392579629806879892878295992625799784817446885697628855497496445568488849449973758878573398594842769739186469193787898286638775969627949675999727886622727564456619899238829966358599984647778545878546366594947553989381741879399898782851856696639655184657794473875638559737917489637848757709778426899957765653903767822434986877959778445734589329663519759779649818945749559535795859564989996757636958877997679358967981294468359687359896429868693178876242961788478927595956672398896858867573984175774983889865146541587844417299248257676976849855780798394769897496835885938463097048449676696738899989990918876946166978846378453627996578847888386998184519993893862387391567198959982872546768524986265996989963248598855565348858987795698979863876964598084756984897245124589982899878369848757717936579725772186048565448962558656508977877985996849795693894284789447757723686795857644763687557856444965542469952349283999689485688999497512976694866875468681688372143996304297299768499569972552847877346337788623838897883647876969497959777533985839688782756975596941549973847891875376720491837879869741737989580468685763276886879797657792864529638998989987882652786077377779936373688879445167169194989978574977575983515827787778571792967894982395466993566987676275799934977858613729649864856596957446856964539947966797473499506797869376978814878995554484699999868447878975738244925183579689896853753689787998889747773528637794769458758985582983781597469736547998892186459978617515769937899599968697995789497933498556709224597896798857667446589087948753436116478736877397796859969296870995687588679898757275778526995477599886989995287365679565671976877929587867182769678563497564387398798858556968755484993897793461782768169146884899481236273944671989485727677587677868666588789459781777676255446894283657498968498865368959663753885487892186589654849872447806789942889346548867952966858967674944766657337388995468798499667598656387568755771971868978548556712182842975798927676615898996569434947959348859989246671907236656759773979547984989177691878557388878153953336978579966897998855276386556449107971956488598896451946353956998956899661387688377849522532375099059979879787439559639688864976779798939256687899593928296699827978738696576973466397879679478197995888937277605291988581598454391586857599568496444835928568998735839878780979439797948899487569789496667657789997669548667187695436736793288303784715870376985477883855476157516649979794777971199844793474996978659599349867875388585939163842588889695789979164388947922689517668698936865087561899656882989789689625887585997889598636927986835555648547957684276799962876778949735899949799373484418969778789184599428759488991499218667889677954985763657298996278794868759895996869379278775434448357467869323988493892449717788487775722588649798429677826973895867587272777869659412599961376554716557638293879899889879679379889975088877848783795454498927398983856884252981996789484816899685639749923392843263077293268678989475760459358969657733487477563889554963358787677653923479976999955776793856533588797969964774476877887979199535639078649987775649859885866778448854734697622584034952833534376629469382858952489788585498655879679768858666993467094979523453995736918769489556364616147986653886984311977288717376259981699737777954775071895457736376295562796866766899898742381875886688789864965533488518766852961858969898653857983399769778571728371598916886186895621677496933969238699569837125957639589758744569946276165796878785673168835997345764942264965879838932652667887678685989846936883899979757048489783489645378938487363652487477865649665567996563170790578885167777683745383842456676987588629403868696867558397428933798525866268496929639698693963686298927298958776595857568417883470568929384598589459197975856963144695579899989554815918458673637349689613996969538935195816799853593596656616387937769281951968787867254539688539567799459693499896766877626784697689967729799999414285933771735964697726992779597953877284996185899678986468587944957386554558738639372957789369864498996578487566571567222748995396487076377939559957478998564726639499957669694548587441671639876692866897355388552367456769938658236894699269415998455795583653965498686664659383884198738492828978857773688961849875896788799778799767233576713698764178899887394559677689488735413753872448397472969989679099769457808587187636766786925796754346576782769868957379332564255871881829988619551769976999888968774537378984969968964775777779657988963723261688238798987575987778439667499698799873758839554773934587998938197586554963886925179596447365590918773586885748924768155745677948899828748696779749877978539524969441867748457988989506908667877796425786927877878497494857798874359659873746563723519880882757456761245888888994198524605545895869579596888916785646487955965647948548766787238956968567629996406955999993738829186777647387759855557727877477414679965596843889534625966779968098756677777484899831696635498767799753328877885999665555337526696789687137484740784996599689546864959878889987156457827557666888818989876245783655614735493785797675485697179855858962345393461574558249488785488695852988288568589868958555799279995979878574597969987588587873865791974997877392767776246487875778992958984543779162953659593739198855885842958989399868599078898495358966666888899694887838398892699797584679978797448898268647933544978778949814995969853766715471076873885554639649417992365551695887496964766479585802659575934556769684773878692457699499685977769763148287999999962997696769771575869698693792997946251854514849948657369544983798775797842599536679866566837465795317499979399985471534487798509759797483765827595773799729818788899965845787780679253966378686987888358178146787845364358276074965355898839388645433967726974467586668358949551698498797449369948979987985973553588574286369747697278886797789756963376679874678599799935555984998498835968617678679584895186425299758596466518876895239283576767538767777265683430999278565569392899578765899969679565678999579749984282168399998189633639968735959525849758632750963986439629765957869864478365772589887916766469695348767669877827998709979725987638531172297793581513644379146821488942972978376489962533992998896993593337238948928675699220678683696874477549033579694668648599226599949968824583427889566296599887768767576811987495578858897728269385395755437892659971937782184767451866849999368468943889565167569979677985557566878919779261579706689663385378345997767465975776975965787976479889558996664977193796664835759955364968925539733682878992968663755697674147676997786889995658617858429889476266675388532187084975979246859595880748965963972934672695424762761769855468656583838697598984891859666775662143444943642596957767496792687589699658779978546936599393990977854894549984479464479372675677989637478666569832573947966449778380456976588629286649668951585533949887764285687997699781782488794528278989997838336649885847849798947598958693756889879589994551484394999424893649739657665359988349634729946933446897417666788724978568565633898783946874658895767785344739985891870196887637264430557769961988288961938767684889976768886689896677165694958988975778567945544565496487946988859955818984845989989668642827247298795295766588834893893971836976560956685862839782764999294448899985883466888856589789568966576869939386389776769768569847555356778595988992689583708754467954967625818648877547858292874692678226896297987846999596898489912344385445175848605379498764985878477526777797778989662899785655477868639873258447967676617841264838877546321999428893986487481885499769747798376696286885644517555656936245198968963485979867729732688729479852846553517885695579688797455591585624668995784981296799527198896799797214975625899884594374964756307624970799641896955639868248849955564369469130976266759992897642706483962448962874735897959878925765352795858995489655665527799688883997874948926146844589594836762248184774836827479451764197497898687682839766288284876673939381968948476899759874799729954963858196568289666879866837886736779879857955939897654565957955685959249378365338887377290987689693747938418657587892558744329510577793784373089887927638884669864798667890957717994597697653669362998338679892758949996867331779676788274955999998257787928683219665981677819347584969946998346686782895477423649982288774475928237887643742477267333324959754899778477776507965294739848855912753788577393577645284723874984687777869978887837999384946699685862239798670886241368579529887236042857716959839457525393896397726297464299949965759855868687984798279565456657758296899489745942996934634789957436551456459769893308233762824519879784939678683476446878988379105876916649855996541536627108656989997679984858796878789379294458637971953693893399998589765899677926359528546523923353742415595768938616647863798972394156578327474576493494699956559328425697676668688599447857756542769699453998969786955399226864728499948536974649899849867978979616999896787186791994497569785156872888777486689449586964663883886849044886649842797866872777967947979895928858886638643469968897559891525889926482294707964884933343959977889255717888979889947877378471775681685789354865699177859697197795473955556484566765949868699948788843795586545397554539698805786969733358458668586498467977932835926989747877727989638486196664674682974893563984669435825878836804569739286772636895966949967882256899595078188882730973789865499649679434966998986647377582957909519879738964359697769893686453876237956948493457297886896847971343626792692449853465793496229684757842947489699824855326856483769795147639683672995593969557458743285866749379775129864776889986789588428928997947832677747827791359699378299984937926582655931539481923934383673584845899786352554914362578399896698347448397677984549994275946914874688736774596989187968493907842894756886696809396887389758453797869358459838565889795893951866751987635885716422659728919893998484857784569789528839739899789833657699339505492658697838465391835679788398876257154765399893638969674667564545697469948884688195560782980326645815895362889977582794627879178970772699645759497598592689760682875988997986978676949767277969588672935796478296677496878605758594852878895979854369798599979488749815874537999681762927915866666999575297688942928805596835876556541885858958483694665860647925822468583986590249435968696978697959963576898962979888544648964773873874323389888300396799859977895787953799987744859678786536161527239939528598538865856879562519888874441389147759975929788186927574978397975793617792588776940698779784969683949285897497667416484789645642533998979879492999626673633679685783765989975569653897597869785488934384881839586398868816873977399599976727986355917636525648869278483881669588279575895436797888199799346935936363955454925958858993778827766757748667496266884977289979143897498684728379885585659764689928696988093778894675839787678861448655986859094399958382689614989899886197564473896283238056879195876946897655895833678539777991966898774669879067477726436593496878889469475859587539778679879576957647948888982187887796379977265946952857398594728989778656699490584855379678679822981686509959994899576215879338498741884695945988598748967987379789717677668074579639264883841789979815561875443968574244129818893139957395426319372321874696389167688369899955446712465967887932426693646174398689799649862479648685869731651065777897344787974667576195484738917389977175978687349777688899952698281985864988981599678767577687563497368936757684277296979998899971956153435409296877899783384179999387775755974979539574892679986798558967367525897788988596594662887957987752896346647696946685955685989664678957817688486468777787782874756775819968698787137849651995843459673783259797289947226837343271857259771789976545858702688396307055869985859669589499849193836359797967596797666887659939258788558783897459381747778786939835774481975635764154981997296868435337455127587916999649937298486897487859474937685646997954882489546077569495606886387545794878775426939497582235876559776496877999462944938964663839383899755897072368499808940839864788855749788956526975972469273898783259529884767499227887879063759295452844797838579582947664967885537432866814567478575677999661588497126657547849345956497327961963668375945979944793294958884578564798946843687768727707858632329995537938136967289579886699373248864625136987179987661783851963675517494876985537767388738728977786958794899756147197675179489167495496999971853755648494264648953259596283496474558875347283472935244986749479675599944469896787368268847679682366778883773787298883353394645556378727474884895496689289488697286374865478357860359279978985835787925882689686994745849775389698889945796899764558784778654499587599754658983647898681883998872957977337933877829987969982399494697564698226846389879369567865488685577338949896389989726459457264487778798885548864688985774647988688459796924775895989475868817451888837773793485894436799228875596784594846694666837859188898829874877486865956569658496647385699941339653538977689977662585276836817691984188688939656478729899835781728979978853343924796669282572949895389457942868433596719464627995777193869867678684651387938959559779739907715889673378379699597559986869169419977995598669674679315705964678457706666278949875586867153595797828986859788496489788653875459677998479687759583797565284578893559195956681748893827977749648495539589999696686797866367363966968999928824686445596788677420897971386925993846537656868425954899645986685851989493937479497942999898677984777759989629819768536434844877858993798586357894067969975966996966173986793895939758596868384996973819515459673566284646744198589767433785596493869879787565853598448889569436378297566368571751733992756644772276872076467857888524763856595281797816966445558976986853799489919897948358678773746982573978585557979888972989975867399933879343758668896836385957778899946936771295974387455697464449891489296846879598478642769955878828495888964285836573539956946678912878599899269686689929576236096338444078775590644939989969481668975987775887756797778869879984246843889497767095892473768677446777782986647765696768795648656696253157889656726459966378299998662769592283684948858986789745689956288845169755883896695786493232729576998937626568138873421896454355967972284278696291688748996957733862752779596947894094536462589929764736746956635772969447749588857977989576894789994491853758469967454375464598948897488668264899758907768661445682578699999993764599917745346549559679498594869068692396499349646717894695543989385936943818967447699459792758898269868476556674974427463318665689969734547867719998779466999725877666467663826668566496540587586687568556367282786734371389718374879985799258653849687387516495359549997729991345986768563739589748079897467899791575764570795547895566636678815956869357895437480569284497682656358879837477538539830442487967616882439277696858894526977587363663838983989799757989846889445986373245298796449387165159755479694373397899757664998853694757357897667774782685894745368798394987847438688943775966827938687886477887438999629979752559778898139994394982481943850828675467669939798657358835459059889069518547459699217973436957259486289576963853555784982491688896447772466974319672289697755425285594279491328527539588757849459899768990983336287832659864655384964768961896554695859769476659787968959679892197989676374846898373481587299685877699358756858888255273929744778598477647758796695996054739459890264848926826536754744896078882994767275583386817887878888853984894756979988589998795886996758993948898445619869896589984648866793297456628956528579886886655469863782532834981588889886437339846549209928198775989799196976864228938754884974789884625674945879749646799999874648357890648722572388578739983784595487784726868616785432858870995185957774417377776664459569679387437237685955785987547199748835488917634878289838948364871268885748243694828407298720783644738649988394937886788688745759308928838949776943558969999999683689586527598986995573974708473336758458988776937598275827974679779886973999975319077797636924847584763279753129746498978934839874878499456479276941423885878166987555860897838878795688995768567917669778978974933184784829542769726567379537462266073943934559177586897998767537429645559828679775297939793699568598987738879778643943793487256398498536429897627648759649966749616698756559998329298967624383756988849697856989765946869739754370746799977953845769671594786458987599995287385318349055785476793881184879874517035987796785379997618766488288498859758398947337918924679497665879876186384997479675698645885846829389183943057998965379859583489956549846739898659979660596882279214852588614938499757969754768485299856968639888689932275548998787488959686677387727716937888983646977562689959739837597677676667966464645788578571972974363839872874865488365474896867289964788399787838876789859269858535996865677754899969746963803678979779955388793992234747679598588849666980792458685368651457268556968249276947887797989462575997698644783667796898896978855607889879797325618708858826865557876942869904965957824466838676893976327983576755744769661861685487489724888668787375599598855795566968773499774954287685739428888844879686793765669167339455179859765458838847929254749828988886658867895906667896356887819196744734785965749736975585315498616989897249653799988789733779517584447489181858995988894888392927868958847889958479432684909986853677766859576549978997837468958136627963075498635779466895441986846948785686779789967689952949969376724587776366687928681786769559069999456878589869987577856488273275986338852836585348985635646979878696848366494859687473979492679779246683764964897459633978588849837562786483958628878789499727496855673790667899368788885987976596458918906384558993775867696779468349665978859487849976956879980973454973557788499674235752838878899379556965579848775372663865326386882368846286771761783175958649989854589798889788698759989566979399798659189996787968862647965986822565997938443796785854258434749770887364981978864539399787431946446857579985497096856499938659296886553783968567769473862865845569565784988992698689899676823665945849392573917787919576889554817844725667669937727655556376967792822643968757777487688896875977668369391996997639233679583957827886365489872997749464998975545642898542539878628164673739644567394979894687372995993749787769787748884999349228346856956686679298876664647783896477919558723897769718879847115733659560159734698833925955533895847667546444553572497334679859668685448659937783483765997587395771939489699786596809978187886596478769892595642861194999739999779374789232859977898894198229987897866897978778699056487930765563859986863675996439459897268972789878942194755627888584684979995198468126241578599785886283965638909687888695988899798295878983967694794231494993675654894858582476898878874389088143592172989158737696772698477659639791846663587598898781859593367645574623583288661488667988699849678969929579495769676646456786958484052778299948672225908997745397726928529499951459764865677399846495791676519767295637785921982648528618873928893987927637895375666276354727172497129942699484247947788986485837795833236963187965866469996152485437689782676368769893688868448949435895486399298596693693435698868970978999594989682654539894698296658882983536968943579667729752891854677797735566559675952647896459484568889547677298679594733256941315196991778897358656994896395746891478994684856996397485487743937774597599575667294436653526698749544789679196897666765976663848395929774644588583999898956976655893794891735243395729991478791854473969857745979496585883999884438939676486769987225876859673389498329778237958985571791864332794518946498989398882238348577737839857997943234814976878772949798738667322666728556771384586367757779319863282936897984626891566167998889857688598626898676578452998573396765988466983886239367176964794924847279196795236585938468799658292519919691899941247289014815689638499965892868199998512876042446928334779758248593765796969669487886436488537759789841878557725198375959892379676295893627725659978574996879598578476895245567976868438575962739799947677496744157855593474977988668966468638886629846588847535947565558457856598692547375689962747759565976487927889927836948956987981999756904197699717174183457517985479698909648984887349799796830734463855689679383793983647846758775376477528787259173775534835872589757646627788662977798987657659998567763449564739357479965977457478495323578939989559192862673484999866588482643657569374977668688687178957918257798479166687584638619436499055977947774439864916957986582944826895995679877416478799798267994657967656999787877969558584455344876993764467779869737938564816559657772249657640777216475899896644197437977949797676786448439888977926376856717494784887806437279896988728647359988695045886567772477976199569952927649675292854931798289969934344971885362953599972667387395085581377938166295578359483487687375541746996458927499357399362839383694638896278753348476815475257959976465596399173867588944157256734088859988312862984194129932414595786639977856683603899698884995567783942799547634294087549964869988537497438964877469988969779646689893865469993795551964357773176532349897789781853842375897952982488857799458654718546897777995945358799992378772585596649981920645585985966473908637599649756549748897836555848379895952558992547954999792775748870987699696869996887183994886459889679336997793357462896949694753978767634134989916357839875654644596763677994668829937659897788287769068593518697857077778639985535559669497876861474784917879815588785549886433257894544917823859988878393586369988949997558993783963769792984589599797967082648786679988757524857997594895343889847978767857988887896466197889663236898786652447766347959668967893838978436722789639587159853794959916296972989563869776717887799758958525279369839946235998878297421549497689473679794389179894987687648063365846887597779667499516758998455747959145129986056357856599399897276773897976695855687996483792384549898767778678924775648969969899598445568479382868861987638566247271696448773965797839888956939654971788574756616589576766981859774599619782695775448686784488858435674399887911884847298646989874837768647835661453377462943971999378528481673889895734434964354876324576699928222748677389958896995286663329839561978259398239456794348829896966498998436559398384767778476785636576746789979869786464996989673665467496478797459942855558951906987796687804349181588392869654388885478642985999277945567569997980999753629695757776649759897672647896418956359966779558572659416796856198526876399657797773978919919818788577991936979995468678389295777654477844388985578748661899496649984979685721972525661244048553899896366839946886865554859582878699397592468686688677775426792838436677486779649687796946945560958745486978949965849687574707899495765956935648065786426869839588787253613749839395787679675998989563769577169789729955787596991957569597361795995868695884849758947877798646153849643924736549587878937671789893455425696818868827887898797595758696647284836929334845698746699494566953333858865356484987877887944888385525489985497939779685898735738595579157566849527266399678895529888977968621678993656771151676899575553155894998927396988262863868955746141670876268895969499994976526375709926688968869987957875432697645836654578758567239439898650983937797898578798717776528994337758984729994498859784782478954779369836639485482536847276673992392884259777409636884916946624954456876785449991878987667834999968574679966958379569893999798548788988775128562357996742942898977457581766379625384844968862969796495999667956969297238877688329626975774449739967756486987647925493497554968889639878968597565779764258486294458957996599999237775279772889449987989477479973248854955897657414769696786664658677968978745834556886896298376994589348361949976796729289876695749262776877575875974287942993987899393569654787589577986959278999397378986989925595698938987871949774989899216967947389862867443558272995389248985975894327785959552375399754739478699473596649574789946858585962691857895879853453878584655874585774386379516994562559997944154954766489883893918489994675491675984265329679774678498566175599565497738169664978977949335896654235696501618789856557869487897675047374778889639976338931899453159318952436674585893546796198283498372330771925858779675397958287896555397967629368448949869986983572793587363768362957378376799985865996841985979883943659489285598737683996649989869334814678879982895993955236998363846665499564989655557930844672768994867989397969139586676679777559485685612634295535569852378973746568959954794817946826496557458279879357889637786212973749796839987678693985571489999547659856885833892939947764976393683599286316995258289557928997768892859649935979757467259596345569591486665474834495519348289669232899979287476489158769898898748974632795989825758737299354267823989779988859649666894789924365656556936585939796938957726208689616999398778985969999487978587817989734691396979377972666445799738685557474595778838074538677994883668976979484999697968597277955576657687296169315884288567235957868648796299334932694899397213928785962739784188896166576992862597395915455266995565479989753988789117979788956576654596733797579324445598456481396687576871368391459685493883992647795859683282655968959683749987195963829545199467936398357788928689778464992764544604647287522828495894897893236897773578927885498862386689874364269726896499879759798738398999698572873667607769488386993355782899498558546988567560386885454829249897633928642485448974684547983586796586367847946595969877678535247999589668994683997639122897558359386802803399167678599378889878696987399464998288794936993264787359479799828954379999697047975668492726966986929979466872999757573687558297677828676836588483681579864664884778997492576580287999487898457866559837659775139268749985187474578987876248079956499865497317638783741597173731826587283782687377646996976846759874267798967928544869245258534097987285548948494976757775283983534959789145898987788199438594658978948944796399299856899354867376759822722779859886719854817646869836561849949555779797821998982985593777457898138337296772659768557946996449765793397983769589798126286329499436863792881898706879987578699797346239488779877683766429526279425976775863886825959199268488668464495828729654992767323889754998797268286958877969698999979790778845145283198699687878867625674947985946352998886907946397867678487569877396399949959649855193836527677469693289571334659947579938953552995566997962719979214956478539877783268961258396995289715797585339867496796896695698559297938649759678786934498916856789519816698269346734495688263439634654499989876966286987843494597897467797988666955879799894549367888848998935739536719975894833763948859484988888266793161369748873778875845559453589636675746256498299848485547374538881858879689853588665553888647788588578454455980244796885742743977399889547349879794946498636849216798624897866885988623638698574459436989466316896948497989955818369931878665937483675692634729925858867862969559987967762718525978888997584389586593966667793892998435978323847793868799677558899966765448945444977888487678983966968977466827956985981468728647166837564367498936892396597377328669939955999999538917347278468144687957888578939742985493698984889997296258475462712999859997305289859872689764961749749559369531349691599957359949755789285966871199684733949566888475697755798988297758454568999164187948597692776593764985258371971558883677278999552853396724566919486866497544596797783873336974689687842848547783982647903981587795277888987683956942784995995754952784967859366458985986695592688346879873459438676973677658878562949466899894878654459991857357786875977877474732972878308552998963388893861757598355499769438898469958693269799663892444886792968787939779265797484779685497598683536697787899779949183135678917649879438988137886798952886924748593542285679869998289812467865994682878966675791861185757105997844943884769981556777473673845476919949899177437679482388898958938985578676389686626457584696499734676662877877596875953399383566196559368515557539336329354533689987967629799694969864787678678998256799597756477775815769388786193893278887875489368717956918187287768978625864436485487996446369948536687984289352329438991458088589777778665662766998973792357952958538997998566758583679417989842583797672657779538678358155783258696867297524398808286799466592996778867648654709590841630825267869684499281556249998789918868279517926267793899966957404688457697368335096757856524974987033389374868949976847799767938798699818737789443756265858427199468488946991882655479797577938963379875374243949774813954718795994587579857267963797469162976996851497947786981965585749579765677989996979766659858479358577468863786998435483559179489945497353798397531676979489466568259175178769136954885673321793598721524974783785547774775995875858959791844898448768799849393884998831797856435280997891458997374918765559451999997207583787567966987668488939558122475537624697374637583438695578899865896284884987378458497271989708558898248779168953897783584248439465086835551584873769869998085567864988378435657869977499876389666978588118892766844759092170535885388774887592878656536974396919799986555856428577469994775387946565587691879979999927271977973587399665669253268457699674879899327755976997888863993267861954466676799364915758658996248691961583399297996398406899997395593755296425365539969676354918298969562646878983763876371787849733494877695396831287719445734968354916654604896469897679569414588767988755469661355696976573848597894924550966589675689736666669487676983878489996989939987749666866758965847077896693937189888884858686586359773986387897875403994419658878984957187389978955887378586894169867933445289968630468508938389217976799588649997671656798518389768356749487989485759856592512088899588940658966614781647529811169749948614791198566158654178939697655789789629544895198759316795744161883569439731598689798989678177386767797465497942893534427795879358966999957896224346454447698087776788958787197733378769979393739685477664738782651896924249439511923291369596749397299793754574975869859292499488027638985544587443396729647783388894657528677528498703785648897443869769886757864674396565297374109778576689652763773978182876659257904486998848871978986567657944675388575899476668538448589388861698963283895599694969664528616629667799699876782479288935867847432944849748781373378608838835987898926969327977846661075869349665747328394869687349578246359856288889735696477698688786699735487390349458749249399975785984548817644579612777366959383970298897876584435964466278773763959596386276996961686984698377483697868998349189489859736716749995864677865996921657588607235347675698754994905386338917567837228768538469393652645884898497826997622989793743235697676549855766638987578772669478678665555245775499955598543556760389286551882879695835987774579997482879726788948527868994952781898566497967378791932477438598976635971896424484853722638827695477365698969962398687746990883603539821924687065855729398925969844479454604667825857339964489667699988597855459559388619778824550787858443969769761739697672769185779829998978265689976365577784388899391286918188639599959299796675665486586583488807849843339737838926749764924884986734775372297373284957965865257987527594297268287297155599594569891991486896977568856587669684777879798906771935869285179359262945682895898866834947227686663988849751499879337869979893265839935998938958286963587246496849745865859971985095587646889246673699187848077685936759969475296858967964899962677298799453784475855933865544992935901974796747988946488575535367584459332878675436535976574797487278575456663798978894974356997721757598679689873942978452879868994746992265947867658993967809829741357524443567897816885628818769829291897232578752878889425359646244886945992465481468455560849081992852188945789889687788620997244696329894594638956677874797876568759553597979797737891676767753787699586731647974964396738728642970498777896764892999948779787689177783839685348874596648969679309719785346636667961922984847946497567486535958719749759977881841447598548472498366089938349279449365836488576796305979567498828799787967569744432389229845748398781879698936858594639589766597798423588297675839298754737736956488143889795990959768380735285969533827429950757588697686468097981883004972998991289988987929580369386363947951725641628567966599868853655966883627684596889762159958989853486689972989797989799899547988548885676149782162653857629484796984474397789354136947593994421934825924435367125597673665566783986677789617855595523778928792999596667788581984566858713469846548847496794994986352689724477676674569539577667496289889656767356635677872987999528868555599485789631999890486979685899787967497961295559789815688484749357562769522472693699958999494837315465495741784557659956463024889795482764778396999876674176878865261976847477559632572794995976757949794879896672776175846694883365887824689939063758926398589564422679858598797296876897725728592957317929556952969453154999378768842675255894489566562864387997879955696555984382267584583348596363085994855596145754628288686299998143598379917244869799938757489384799747938985765856365778987252998568265796477658645779038373967366979785589979877286614588547996356885448889275489486574777868359876214566783399942493499557596978755684388683885536954478866385668983888668454314874870569946367669476035359613488698582705294757272968879569775486465793985372889593933998997894778775699551579371475756513234437599932381396530765793527361971913970860252387897956537846079387988918879523698966279585614665488989759694754156656988899768368519797641555236695832884616288867327968477886633667843864976496336817792887228955459421393884889888488763377489897237262585297788743865553755969789427797377734686744493658498785918399617695919480378367951799477889769164595287866747976866796599139877885558794978865697994386698999885688593687958289519739988583962988469919539925621987855444182829579179565524598691574746452676145829325549942859878509377777385799899998659589799998597394969595484238886906697499888976299866933728782997659799451766656768669748396966744363958803677637728756964688979896997688579796931689849487485529183878870995399794347728799959798498486908444686488863557383484899356558585585678629545657774878969796746835466837244887566486868867387858477756966934399868865699388387396398349398982486488628697779439394675616726826966693954665791930665746782869287445435384954979906999498565581977979619788393667892489638963981357687311599542423786693994964685797478496478878479198865556894828648854544166942937187748516694458424856839895586767504166577095965735603794836816483341696868591755244858574572368655563654647986568457895977399884657871729779583544568884077856628879896168451995856699437795993784595681188654625249685947735581859598763198544264329472979876769784958751669879765771986518217199952786798979259996855289574557991475474647534799287798437877662856769896829899656871989629989765964676244559594876795718585896656898776294839597466825551198922921872935873886238554568767141874737864787987373789845789359678971698986446898945639683418668664992855898472763756857855946863799448698167134749963357966278886537578895467427892998624489818487973577988766837679941244786749778757275884748863738749427989659248966478858747783468768485883765475578738827429635788369518889686769908294288688543732756876464547668736589876569979798978987676779727662837686248695488775849816427536722958896429918934756491969998968888976966392696686848388584694956987156362974992979277633998995888558967695787732759819927948694689786286529371968856844799577368897697877551473559698727377877376948898295777779745806138179574578948993559854768754892989766789436375139837963699998514741173582895856599285189988621795862437997855277599699539449874750674359998958765576771489895769689398781998979940549692883983988516861477977646286979856389487722999915583985899739754777790594198369853897658693968886196722356836281568165574987774841967999488356816688995836849499874583764835354966869731783588789839662869728899883252966447246185693477756694366476964684939526686592742798657665673949847688873526854757948929295598946488996488395598984974499795488889366847798894775869968999408799599876949987749436887675859175798939886833753497983745869496427579544894595927578838519467951486479969399548677898346979198176276585878742966885874431426876357779875697095175924861345571565798694458591957868548441457588694750835775769960839689493701888759290979962955749133886699069354833575896437620886667564532939498668755857258869466993875998698687777997997652959936587975168789666885883675486998968685575439529992577892263499348969345292749935684882558651876874839759487996534445778828846939744095865673776742668669309977838614961698939447912656469587597987648985872158639467149696733645041689737795796596929897496554986218477477898984847947996566766482789356987684936737993695176894888565748796456744537879319589468743793847857919975992779658729784969935067669975686486634938409456287850857239159787893912686797654558815499839697996663294996797573335689699666699497899549988995785999668769169359495429213755367249659187579795598583258413298774759829986358566875797667855689889894573519585769887426784697979967587978999294884895996949799669475078438187496747077915989667534395764652179681858859549638819693228284456965762569695617799199865597937748349678597897465677979487698869393248589356297597995862697882979976578558383756956997919799989487632475847885763879987999448855331185969746497358958674757994599699374838559599969957906348679717819583863594799358959655979886859969564179628188984662917245656252943759815613514598776884896278188499777671957484658458696776354687874859941997674845399775129944925979347983949535648571276496648279988676666896499856584595829973669936854923731778857791291557116613392394588659966997949967558765665987956793367894486524163313694558529666664398984488349755749955994897581845184594697823982977862389776588897383675354915478994599488665284699792986899335275684469763987656738642677954782516989978889628785593876126719859757328698499549572529685065584994297786688659637689777686279556848966955894956869867708649947739278555369493798573684295697919497349279639573057356727726575887178185264997757913925743234855974754849735828157968805796975637246659379264938939538989568915777518851799554836999785688953463692994468694998938959947368645374959978790624779738595946380717877998359556877868861967297748597967272547878885384998752239186754117789902494395098968698476953757559558596997776058687975393716904885592642837888347966549696187889981864967897762454392842597688463269376949148657462648484290696529975552797587967376285258799663594743979687655476785479762718665963884744449635998216599888396366875492696769861139316806837558974797579489559888567276568887879889784638977997965339667559899898863978987779475415898874858969128259844978873553554978199566936572574878666591966825964217552142958643879824787851263697780986484578984689666257985977873976798755963588968489279485949588826994385535985996759895988771357655414930384878719832788235457695885897634888998697666635586924734937244996882775743444391382590659863658567879337997967798683727388668239684189413366722776684567977957778756779676359788855634769459176559649970288548464446075667883290497668464968767678936949878972985977565687979681686983689799997466187759294676792696692506885597673378697495984543499368533965975313478597974799967597971628656851895994636653879788585491247792677443554997578546999389865972955793759979738697937650488278869568592299063541969691776688683826688869848699962642883295539848866974780957975792457828897968692530366669628979597339696137987975576278654654793693274767854089457359148147935865669789336695953341989888948365965137742726465396589788899783958549875917275979578689969796895788849468469429876695789519776876814798936958283799882376637989947597765324355173697996686899536689829937666386979376945854578798392889839433895729747754702994937789998799779993368365169995384625757545888546875674593398678967823754668956863835619299646444854755928799975235867368297648877589976439668275595869435556499746681704452885386763089712596689857247957968986896977826876465697981698966898966908658953428989893957586378969468172579554772686894666667395461546988798997556394944769889484884498984954576699490545995284299471318335749566388986566679779048889545799987181958976367649756547671868934244289586995418696399977765866356638915767460589516747694972576555339998499993273991977655746293328529616777798284797685896958887079761446644391892988833845935776499568393663514645897994596573749788697854799288723825927371592363789518598771686798878479985570636241929639577246689987786258288458439138862838115975761968879786994817489237877989751797255884777953977867196356999378393906835774786998897979796893761888994737468319918686978583559559857655763379669987588884568179894487479582745566886267768636245596595599589296659679986988549529868654652979673668532888977876976847978795595499366745484729990992388866976982927695407190385957351077836668595668347479653997946989183759345442668685788594798779459858778754153777627883886784774639367975692948986476437580377734374986975798566632687978979737968476568776746840378338499899577144788909789853773490685892766794186647877968597494346499867287495698679829982758877574759149459616573987991848643765726368584997788475976465776588334694907844679669716906418773769759756626898278688435924885462189898864977666852416989577879746932855639589555619977969599767766926687398577389615998192726589696844920967898718745368826784239999779371594393943659969678628759928387849547799916315657545859898696383638888647163448679484636848577683799226544859269788697776986877948666258235957497747966877479759884877344792966847566835748556718957177805689964899369917972876275897748867979298379299908492856858485359982664979889744485678792386665984387476748679692374678843761849489647579218826986569399876618977544257398414789486679356639798399691598777964942779979648239456659699875794999695641958986664539484355968773279861955883948453388869919883279655895883492997992872456673767596697877388989496981972495487739997772779849649414484293194397196867437868269440169824999978665988775274873797279966777698568992741977799644668519776258953559378898587399254364388977634869584897574538789338887889732937475854797629907466678967246955599859467289941938358643458847758387469929657746976876853784699749969514677975868733382134378497796978588589299799796286968737989447962982689244428584759516347548378957977398368817
25224303166532555411463121621505717181255538125563523133000058247624211532516163156420388111561633936543141021106022281263352139338612891319121314441216734169301514021119414625675500218114539234251114534722729806813366719152180436598162221050304854069583412221102161122483571111322215134705854146514435232003144344032802423543411432411265513542274112383004333228133134112741670213362055453510249172364003801721342078237278644368242116137324671312015201560423120363023216433613132434452434714515404544222825751112722166742332713125474614681621328521673144142165434162213221411428114250331313518044641664214861135972547243128217133544922432845734037636516111176172414134330268666811107164712127638310812710917473262216711722412811330613303224322710120441153192131831317142148418401723026232832652164645135365211101421703572111714242573005659803674001266212228725132321132104612612221534051631652101273234349251525221211118256641542705643522220631165124548326442193324333783132152757337240344271054273321125145513105238583105654316245330321246210623347116003602018530331302243122822371713738426522903162924611355243629645654273031240653431370736029471732643324325331232083242641451624404684412111416271059415695146245317512147651153776109863158116162844362444732528222446201351151237243135341331043333835266681423331677673636317136134263663132325652270213672473031216023471532203138641276415236971435173241126528432072372624322270036321373242199304814262120457157431554183043633033113255211442541381413311211051603813322661453716124361651657735865404510632514318221735513565267453211143383343347586257515171724444715762211311361002210317663601722380642206332245703784261169373321136523372541324312343366841314222332171242431439644337251060111786147220231022183763124045428232501300215414611348535232011317504847561273222053130114224263564324531134145320026346123442702363144123111256570960044573533455471422335522532571621221276252124274111952042333314337083926141236537224526361160230440135673085441324003833145113450143323302052510252911360527514122804547863234215115656203357123141651532337501101720326011264716403655536553345263385517446111552705160483157260156391110631160341826352982851830251230198230021541476371243481668371333121102014311772332924211413011542433721210140644338434802231407335114723004457362659815414430142561616101043725455243674833351711811334141513576500257454533382537771641323111223406326213084336721520111601684713003334115343403513606466615419714963444256041645454916002602013861313389441084556058246032556489271031333213261612223131953351724077096511012516217701395305312302113511174291425513814564621671644001611145706114491021242823061235227141401182701725731031446426355260223124733813456330131146436136102213521102711408304521436617151703435210743625651683116952441233600245018382642131160414272344475116036341296431053266321022161521108020791533363311231146531346475235131376333424654175593228606162238222136153041541722731143436665610653545172737364170261712260242259173011542679024153701774296093312455232522612015327465142126862245339114131227573324108263034234640465166774614694538081444196314421146401432272483631302521054233203405574833361301154253016618528125053105822058790171024232186402872451259265215041462235553115604534126444245325222041037331753535432212511021222027838034426241416342041333375565314143260060133586143367644602132436200622313614713132252141614146201260136533692556304142421412243340033526871133663409227220074658313725314452127451372710111107015430751406113831271404237354315624542666176103261341327553183611243844634112615453141270432351214423971134341506210563569325110140010326112412923545724514250335525531482305623033271665252124007736661517267212427293110806531201461278671173715730307111113255642722443825641043615702532157346421471012562221259140043115328181332311944372432447450223555632230144308152151623402125523512131132483423264275549211436531452052302322572371195452202431714428446132324160452101334133024843416123820372901481317520422291615142115231166336031456335122233057121356315933712109808005321510453328726125580371402260440711402268270546332362332473427213004211103652281129355041667776337982150023203175724010233693233814347741299215780160139658224521311562581660412362423285502317238311162088532474228612633066432373646779862209163071481154571262206451331543221311113116322104239751653427638647684128394361162782273214511581512041192123524615805877410330442311537051374733574366473117537345612585151406704131411827452380121138803343539142201295554949248159138723121349452215221332014210426227660602265531265326122424436742204842225235717231213362352911636534281170614122439651012457372626531711326367513091573554414152454315365113512523248021904141415290430027555716153511411623434201111373110114637455345918312012235425012432122103052544122057334256606351132066745365435344746654151823322485151256211412556301435104415013319454194512711336453314661145321616541115152058412249120805433264442980972174443112342353414113331237711371213340574146155931116141854111117231219157161424306331500036132226207730271211558093133644136253024472543250347440505154452736111025847233121530095183310816552649962610531418558233513602001153331293451221133125321752382400318260021263377122243550561229056262291051102620270273405444431174816243002310216414014043414130592852915118356162302267527204219271211456231252128116103233336140327313514424002723366130463711451213124351437545266115855634421782120408112125112215233014201723144101138112211067117260523175247178961542451055119035711031291210261157180739154428144162127752133307113734141214213617116632647316045222034067852803506243393352032024027151151313209087316211292412162646327262531827146603274511008340142614044514265231206533522250101521717212850884211581518354481412411471872163274450624347576128460406611202726361233627161665472094814238215352202261542084070690431552631261323116712470663115337123012575163041902873412625226001291734454541334523211810522366362314413443563451014018442486254227123443566405226310501121234562533146757213014271124486618315960736232427019530136232753413216326632221146233354225436351102122037118433230363483731458208024562272534222245556133665835042573551141452224547385321522032763411732874645430327620524084662721115551048324644810031573373735636141120252321441671592112221443217123508710222613402221445142427831633213744844344336536055525057763634220117217432170966125103620803725236754114270354526288025703564421654721312601554646392144202974132655662971173143141202041463312762107277664621192222039332322601744735787824513339503113382334444451153245566142362421153444350072443581364083140140287111127086134714435553030464419173082666552013220314002221354924122463282471213451171164204913737207350165655342522311367234513866341430033032307734073412615040944431554021223196333235132241430048264135691602612820114354121314307624445144288013531160540053034222311157802743725130123331000131967794312271615646375100064245332213526213294011193753423431754161347802462296140210411601271225041520723402841921743065336125471502523822126337003106425363462202450315618640262314052482376501443223434763106724132174471344150131443403026363318516620161282182411142636474223229722434710651331114245110811012032223460281341780222222101442305164081237142223453531343906222840636221375447869273131224644013476334151280835132515031203783332202250081211301125198124422676671822834113422200517533131071245356542211326242822658313130726163644826471034024142101142115313195114234689012536333410131053521350414653856514326125144145455818671594181601833022831432141301143774226475651412368360430561013813602110243341402424732400192131706606456414651322346717215314107227574253114142413122520433312241532303054133321343414104255429111923212642514832520431080504812462465033554515032033624564112113001294134143211683380630646163033125130148745062565143722614522403262416340205535416711145365242273154112121532384343481632113061434021651661124328001228753392635601232654725866974133438567354113181001332182506124842682410056570825423055227125395227415105512610513103423223331442394211152025660004830017263644121711444423421408452265826230541222052713373314800431040540222610102134041330714812466723159327453258536113337321553335551250021121223105317418363042843101551231520231423112020354518302835026533421238118633972428333714516601413541592223149543515162136282458463350153541145613314126510610615286553422153112170493116452011239131046412036530725138615341293145339227678721317721112124132111108434610256333242655044117642184431123731530302742310420354263083163134362006814271536891527412661332830827226610171414733355314162773323642665634386033424457752471648138367415370282257613364233512464171225231356383721221253469534246355139202673461176213243211114713400365060144127604302232733321224426653116121609524002434354143115225020522031212842573213221955762915121332322200166352154375901932214716673375122048693402656163224707334030212537222151423171404702371743665551341964116996318374241413351190136530234742343373454915511506306011251292921312723124647415153722190338934124234237411304122422659600863751228340381661393157513201713743621035227027244872245635166732132168011836114554539363704302140135822914431302156466172415156223376476264375268355122134674153334412182202146221028061422125133286202256621515505120173174272514612274538544026531827723423085527714212154055131521110815313115441234284950447500403154212313642035241124263443014465575446027324722401734101797211212325624354213113181434791168319216304740242022261032283151153221244231407431328310935648511624154470189249532598732110375094123415023671810553324693420560316713222132411220117701445814133343203521350007825574354416242360560812233363411197312732503517005535061137313127118813541332071320718324225453946848379404401840431351452451721273217522335126513510285321522410610526650114116175130582510517241232155915151113343173194132376227105323533313465166836312373614860825432110132549432445044419260343681617521117613806508252463314501111304335136535091421151238421627951251412120114320219340011465712021121173163012911012262874311403604141304615111704230266473286292035343327023211220831423237627611038581629062415320967566931488503133234362123317141411440652864123203604601147148310011310035472167024180119042232891168185524051102033338871451501000855307615361423216334821844216462101234373121351481131000065431036642447481516445230525593651261920444463812413733174120155212285224237661110523865264410271546415381247012045552526585217447113135204272282473774431343362132204444713442042061255926454743755061154212686167604330162527132531825253246415113081200234422521825935516414245416463004502433159732500454013041111302426043241927140720256180722517123021441621511462714134172734235135226142318396634232426936050255532466165262103510384026153153772137353020819221262031311227462174915122069466740376632111510836674121111140505512316206242442527332054033132122163517943276826176748816218551617516296224575302223733212522633532457611630024004044551223948212345433417810224382002281645028318221613231476342433113731346787333529352156428515263420171033061670166574420747622137277941233312261102751321716004217013648243152156522201035126206514523423374135132514130354331231522320043651127248217210125211646111561716612145301113121142133060141263101260714461153003712126201227351234387127368414116670153020216465237412172231321263752313534378842731340144403161168126114215237603166433102215751238590082193101424858762641040823243235413521112222804114324202130314745271485416625513576136951336784229246263113552111331112112062733523348415263523088474584314311845333222722740163185346284552374525721573811425208260316641501213152145201413223339623921057144126316511462434316114229353438250334407003428170524661112255644132405021149174255405131361601615322246212561648000762185331121331225164428303544611413136320153022274231517657273513272110642536348001774232774535433340866372510382263261645150156116312430541401532210723633321356782245236826723421124590043117511761193601436661314319485166034111421167356256043162293653472542843428131211646453124522636555334640533201226523971097335280441314334251294515541424665202115107224447594522273050164697555101364423170361231244151183882822623547324136324433421021183222012638328282422522141455511556211445635611603216613500552216022750307156223313532615284630771774551302720924616660272315314374523068943327313196026111682315120608741124603362134503115272205486601332311164100476335141141131255061126351127113742143117412249324433614123050775300971645513643126244170573234414201038850130519854754402224923811155111661104430182017133515428221603232118333211142802434156632406184603521613654604261123712423103062335563301027252650043314112160811023166725212538803232573467474534641514511135859053326670710233019420214150757135562251704026510054112335046336122527666571552002112530805481322205424694425413712420860131361118225121742182510292226521714101315133964477171822383140417628660515444666677130402324521227267615202445186659761044324521111672127844844108442435031625078559035182613122244321136511551434363041148084420245345305311522608871351336532431092875420438113015283544510601524741401751580238312513138724162470371620621851465436124201510930183203802214826243355111242351214103225022244131143855240420362125311426140222381523263443919122134702433124318343942328612344140145542707807313603123153714237156436615110703621040620652061182463123010305110926837644442322204556635456523054313632213164427525371222202252101065564513515334125664221241432230033392527124284325523732475368201612150410443517442451215545314501631620657621119378132840211485300339211035763105740032251587116265659735512340934502145041758115333232332925055321124288553311183942264212365312520213014201582044127110120211112211422153535133642315581553127163438231003851002232493611178052152245546334530512280524511431162710543122812813045231313201698131568833110441843910023582652320163221555431011357433169106753211210734242121322755573384043240326765301403601523465032833472475377194316203441557442413251211186152080314711224140222153151174127032773112233162331324253506740621028652300414022531232132251619522225315418602041252942147464643443361415321131131071461585246343313202142414342618106153323442214312060697111212303761555633537522126243142394204443531208343664721382348508300236311104603264735553157312426261124121337216127320169233179266440752013656665140313732335435123114357132251536172596153602266942340224711310625446935105724200052233563251333219717621513820754270234162760354121336524170293711458544814172173322233042165011406147514637251620661311151182565440218238621076482573354251551035718153965966014741761704391612712151141803457432927641112553232002112710224403123715652125860411665392414406263130306222620741553321018207263232450225540462415629562336235832772035135331822238340235325015661713110152501223171021308502332716222241422830182622282110111251344232302631104764411859515482052302014118052816405524383716541411635218510143340055073120422621314366503342233250765213431247505022351053278422473501573466335640256616420631530170512577313953310464324204272252126735614642011251282220142291215745337335531731256215214332434046154516418755823424010834300615036121053561861426423614713275021405341313372206516511511011261374395139212422515612552403249142525342632718510246162462272688512706462831118303553200230201150181256676883765711130921025404030265272532614672434726212302008130225447241753352789627411972367611180038720171033642463022133751111634614232221915108813444513312540252169533116261683335388417154518282431570304105238514838173524640244326112564269411560184476370404756124245424241207431361024124014034637673227231262456395513035364776615262872134874654261452456216423817163114143743638315460534128328013466374165860275619223411534113153210366597223254624522410123427561156510136521346313310415011534312141152354642326921337546360230423273604201535529124266032636531457656434525637546223034101114220371814017053472249210231020284045764217272331678633613753071222401956305501714510019264420125044342201311170866452431231611414602314212311281552103424231261410211640764131014546326311020421113365142634254213748157121739534297437335430331614336730605241531567761543782344572658534459024208241731276364248420144440331253325643154139310514661296512022322180060831460008022370158136742173936627351444231634631421324432074521392041223221566681167583354647514014211324515137386655329420161071132215535687411223342101317432927753412852222363530581152111493237672441625203170565520140224272014236303255910363413042341813266643448105221121011324541302100613261450112401026021144411631226020293350586212352424450214678711708401752160776271752152115312278112514093513170022678230273612001056011411212011173103740317370264537031117338585156235224424114613174057334442232268603144306646656422323555759801217206385034325010301074862195234440310288258524724853090564933126632622551892744411333461465535703121324714535520616526100574252181514301145183650079136172175151114212611327663811631222226622411241842771680411442834217641237142911325317142322311541425226126445204167259271461557352114256012134447544611753352931313342136327797324003116425651133313032433723251023816011135506800624315127464445190239425701512232043245925474365224257443265534102242115320113141552361734624511067435157446533442244020134102137232412741072326660071235845391333012111038431214018450223752834245322155645074192278121247666119653114217114223738246232388128001262342110131133195256331926218552052737621610662214295251623431767844312162435273231552465236621311463251640510035918124375456444241156030536549800814314324114243477343632431533366475117472173405451162465404145621529661031436618126220514352241822872187317136011218951164146402601914772610634146440214642247012251952030382111204565273517123293650411343334324532331294531777457735752226717172051697422144547231342523120160222482711260171386755751116357102431497025574690182303232235212242267346111422668122257140162054513356942245361653030773122537216613530154816324611201223314262722232211211001663627524120424406001565255511601571116131323045611331351488133965281674161281802611713413007445131424553037351113314320144259024087122163222850253513353173315622146516951161130475324435232115679133533373210681060162321706201256121600223304626357510205134542410214449001352201325454401421563446764252070078182620251525361010612948017926690362751324432124453202515961110906633163415811141114765830685131234412704231121404071443241224443063137563001215144633127220730426314213966674020101165543624692111145551432324212842372033723538705512203125274141714343373766014362521324032243423770771343107338240920731428513014272385381513121541392165103677062632403101705165243157221434423272101226324281265065341215024588815635377248021020371333101451605351486221115003146412562153041535321623281142316263102241363344113313233313363139218571202572431104450187265960446013283188315462123016271534301313163226266725212720012553213226311787424111533244165601346124430226544264528312334131514825711166863448020022484117342411532114220243393314721916016051333317803034532132274248533400242323135515011242932743317470123382441150132231523422242614022223402471511214916261048335241046654140122411591512654210571116745531521163121230262855030224264635022203527624442481233592401069463306339320441136265653335035770144210442303460533421146422522550232755164136542862605422251332162526128205303402423231304233269245602902500671007230495409320533764617621546124946648813411342802316067218369081730557955224531166522811756413751554124513191312558535221150332542807241243431101377211445916014342924030234022338504113234419116750703731612513301465242335220133412076235715745713192152383643150302162541347252561249522126219467010063484351303552233116147510330177802120820241340321111413411512421105051034062711744762488414215144035818122121171447154406108143320152154402727222100610550103912365164271543170523526221930310416343575107204319212114564173672811007582480533144237312701024431145695852111144211001167440930374633266421352563230311020223333214242232112271600143237826512814444180211072333401610147957002232233204953475815754302245501101132240626364225332541654232821600361902745723324431401261327891561846216485171204460265753041395156723534436225255344071401621372741412533228253682262324023826437715045342163330052253161516623482721352002326504182454233519411621120046033313432434085920313261611733396422112326640002637337311021927421141313013211335522413332054211495711352436450131419524357232760504544174185280714635214482345315265566197213952025622163233023274046112811193407156161116226512046831245523643460734613151072038382037620731521022292227150410247525141310600655544111220169634117543046273426742651282511341361032242262032330229261214465361432111532214232244214410218252654653023273646557215529145353951402614255424022132300511243460071123124077340229500318300651044003544186134514232243391123160272513854435872846141343104554154432234828412322777650574465501115111131556439341045322085428305136313631093243219415247773312721631183611524427242147455144411434135224413334001736724343517206316720210352568312735568057232109282183113301423045111055421612146753001361212740214359146605432545602412376132132936244536405333313313311071303412016216642144521412835846321664101401363015912451531211603341682182222341233122621703174573420148827837443406512244335004143435832537453003534232320921216818202766532030036415122916195026325161566310656254720691557514715121013440114202782361686324129156015441411635047941145361132122533517938247101123104451048357212085556425425224236184534211415102115771034223060535543105125320525111834348428446517518222510810318201011502473246622285320115042274072175039125454112206123212403495031667171232187521616137829225332313123621410232865262023351418376647130606214142126241316351325331421243473015011213930728174391353282621311136145313983457562911317200508673631342134462417884335362032593154141440508976421967246337112231327880356439212845333141224111431356338701613860635823517124323311421301517274246520254626870184121111549462652332546658421126336577153001253296910035318232213135370719186625510295336563136246151020133245317627055322421071118340415243804221256684100364567274221350333222273515403156614027351247415592166233976721951130316134533123322535442164751126114171534051430352534522546551239218864313007407744422721111210015390993033027140291285532004215415122102121051158150214003627293447113061241217716225138223134933704827021263137246393742213974715354004311336112212403535202502401282081561655130723117436624611458221261552311227507181113923521316223304612941432541271260234310333303141071105202740512453551132427346341151113145511215013318312222544355193300030232365683314010125754054311363014227843510545329338545530631394372930408131344631101112032820747507122626301605132127517186066014047425751024120239031347305421026411360066884615350737647122615622680335542114713527462775812832075257123100134346110212311173256318281311712333416490542242625321273625211660242944023533235132822174141081330084244524725586537714107414374237156562527530455481294252027101350267544132301222171544024632756123152012164927717236122953042135614211630100045324721441382216823605006516501752345420603283443494639225625214434212250712427449716712377058342313403414127081135407411436136154357127611605431018533440157257614471123711246536414872373262034125561513501234105212111216718272183222362241110272122134271447281663512251022338037101592470283133573631131114707424659427114620217664324155110426671439624714164539153231352914434832804441523195424241072116636235046678302719185110856308282625925276551505331623652126610425633161636414666225222713131732456235726101151152061402431234122233244863311522729413030044218763419586137230421211264391717522376824142271153015462465388408342047162122339192131265872130305263512106022277034857238152315512014010102233034833121714425530012311726223452252842111558282331563701321345569113783372712516414356227334641191110466847495360224872762060301272401132521954353560012431171407551111122631233747708100444592613121690108366443211404456913350424012302211813123224482501715403433334133342012730562446607622625110964832133912050325367823652100745736233552031656123079124343320191525212613257105105232291536522822674517450424127201470115115368011234362282633018628652314502517002716147076005232335552720553844374362222314404627181372014473036513320155725325673726550631144246114571110753604116833076417133537723504721232178203353073163232577319313502102544624514234531411023167025414461204885284722571031001156217534883114451415110224033243434675473381303154162853844357335631530333891624543103239561174112863538243121865177525411213075154700445723217056817152637542202715501341116614015013749214121147103352241231630042365185589411021644283711311136278095117144493277247137731800501082632824217135633118244543124113226536102823320523335112723102551038444560523554117514014251213022116135476821267168631721042412325341533203535092322381144634005816365033902265614351712355331716354557243443026242353220014420325335421531335331211335561124186132536005253400452357114413416480630205265522587104464701224614123255111934521535512494015325250344137100328053603666427540133572237720530181032254249337353824511356526573206431324120632618045810373621042514711559121608226968251183243033017100083527633140462402110544246252602260260451200111765435711543682216213733021552152243802113533536122311663444111770659324126244323132323473361163336284536033826321212215754516410183337620106214561341312764404761057312227311117771261278718847529511343132212258075805752114403034534524401211723202920710223400131112421471522623912040752556655424837625484131103311280122068200635232203221221159620642075514423641560007074431412801131253137111515166516864830712515062343737744325043367241106932813656540229387702206128102346642739416412426612049016565650122275625360027235043141223069332246023421354574711471430215062143320332473151871801322423004157181672879832515292864075694582511260386233512248111302066311923045110557269735435311422017227412310152231524433721312537014663624440516231212106315144231492582236475760131482563111122772812352562110334354440221593037113814302462900640772636834321714243441830141415417414619627412120323384834831004911915242200814141045141321157008513041077282373632572151112244456029211546354241682364217201550014175130422028252415115584003416512294130416161743567629652771432511116336567420112172603631813661425371232373026214420442404442130824042603522742013414533935043116453161510437414763311308249482383162452683223302824227205212451352211682204246215612034517754015251240307087642315117023223232733355213021561646676431551542314042314837561615232020123127138626411165122403122654195461026240270132321833359114103302011170003161735801036171575110372621122027101426432152893251449023200211005611011340241124840434580107171541151846160520161314743155428520524263404236171534325152363001687321022241341481542514432540114262645636145421732500307543241760122765430353803151312849336531243117030426954534152947205735320137243240138125011714643713125413405201833421863310202262252125005240425125135448472735248389164461123012716682563512644434211633225820608335135160222122851564235611311335142532142533443203328692063612842231433433232094014254642241735119153095302311358645036035134311215480444127004533412532465613133153141771106434425001614112207324671852022308051613417512142261814701505627025212624053131412041478123440310412811631217752517353211241572140712351141482511312818251144123231212025501235350162348283124452713351201671132922522302541123226400127117721057496343131861438342234930641841937306248297441464141274412726140010471113132222164306166502342808426511178250344549076410863013103543128403137536337822160941254140335763425531423211934412570331102332414411283525236656931232033015812207357255335719045211338551260727460132110453619121117241249285602400413174439151334107533842202717529234143524128805121132227462301190563544237196200570143571002252389116222646159665251714434466241110217532222342162441112278466602106343722200491326160186433116682247719122416404153227528311140612642584276146307221354121452441421855136116528364402277131171110032321224144243272211514153012338355409451364372251634143223007675602621289751233512345451370837534211211822202723571592064467432567541133358166113112121716565926291100321163175550023371704314127715711201421252730356105973334114462342121267895025257773282302012532462913273441140232241326016612503756384237600238043622291431141382490363327611466125842516268914492034221362125053422328653212165648431122135040248189406722314612348655188117413223321391453500226038404857641334344342235317627314342623341563532552421339241515116125200167833413716736147221154738693522142243520743854841210233413486351351627121744333103572334612655106137214223570413215351364217031097516800313497170414452104426264924054614532862235825413486483424244244351168635015344200825616113321351403464464465925003464116552462621514425380202312830527351242022225644710400581255621334534600310562831151786652464417642235249361429734033412504351255322214057813163974623221776571412112439907132306111616560024342781128745197321534001239612371046112435940478513158435211411572290112716395241345153744310510066126840119340193434313344387203506014364572212234714221415531281335730188108315766691158844194304230175618241644243400261574470219350214224210604971541515574913353357471980236528734566833069513372267021153205381673034574134213121113432783652216551602481180537427333412156012132272517574563017046182234072471923436564031103200324231653727083412166454960341041541681121655328144172413141315251682701980263422103170324543227831612142131185542115241554133211224213480225617357271427251332075212454301861025664248296213231035311541217741307822165211431330374310443308574719334322127377166502858152114212131340542325646211563201414111141355252841418733082252686713082311324596634215001183214445014923154102102213744533572615258201853348122132121319344869166233837722633122520310946403712424317140415783507452848376287447262654276427400005245943412704521222127045744026030145741232115241532660451446103282425031522161681651113516148314854300911120153166450223100222501104222616204161672344351351081422555500235371281262523166331224611235220063440535715364066012162122020138124031105932201403732422544130242400232225976651753921472445512403262163161000716569130125347150315282337514423133070453132361310474316133087161140215211327426119005710067051132524851755203205045304162444976334231686561541723304403232652200635342452635826021210232517504180421514708331414483452811555033226254366217631375660934113022109141523313565129388876532274310552699620733123540231833441127301611563125262311431635243084468555410322242234522302312304219273432443451743462100534061714314011510142530034313156111792437632143323220321016316261343425332201624330022584619134549112159973114285284020011515623786241272862221212405311448071710132043684243316172200364234404661232444358644745144030516303234155140232224336622721172623715832131886421524833724812221331242150517222334547860223450055023652135420153172443412265211414113222334206243612223244242840221451484095396102424225133621360124112634151730221281212534323016120216187242615322072673242852510121310423443434267623433151222732360166215216226326301605348703211181625420031713521346242137143342164616428204414727750562355455455811113421162053301027353013420456814015185006331261722713120124430551414185504271514841537106483112833516224232555693222224308414233724416123197313634222046422214341533445755141365115846366312411622316851461531401214498133205064551327170718315250582310342684448533321318408101472647431211444277163311817132544245123180716723239811315203665342253231723214708064177611063621591615406910057334792013631776726702822555120613227212313030321017533620112482036342063129491435071145143374234430161271342674073365864569141535067811455408713511866420202274031185533220913255993280331350111252154943533162516137014977633116432108712230100472103418399640104212525121142507180615474143511115193221220551129547147117442844481121122221140953181579170311757520413341434351765843091732014430384005234233131564183426210751174431339617105164334736025256163031109052337540320067602130400173221414311325601590111240231102262574233621544940060246242000521063143365190525011935111101732852123923742023125367224354128515325273841714571622714416122555316160023532177373111732671422811315530022383873166512126445657743130242140004506324052425169320126360250142465053362638122261124341422187507561342101111030453622615630154446340742412133011363434263226303617941717641907022301452917611316270115353456404302212422026053143110350314006272837344101723363014641383177343650841227284535751165323587339412272651731561751350143286851111211438101412431171113211117312562342018318070640544134714132146533412405002836124353605330650315259120241252013593176371241842314402464883152315438547223258411734412241721216733252341861111617821636207320462137314321215154885656553131012174243103672555280221141256165423841163429016604112834140310731512535227468022100473056321902651051381104443470524233562553212604345423014827154444265321376624325352231645362312452417323496587805825282242636503331435811566321331555113121521363455124321414151398430377351212233241531824213148005232004040421001401353854326863007365321221426230411732038550261326335427755692625441125134634341120033134390608210644510142444722134212001806022215723301503013513821191844123003543422262032352570145825144504121611627721821501655282102712200391340511714341313342521042870521271341695114813632312847414021409211310043577019111124610344513541537434037321216243106014161504820480495330424066252901231151142464129332635421218444105462140604223738910103001744733615130171321223355772352403448541472838151131747755433184213363050246210463116200142411251319500563613208216433427546130480412600112113618251641534222404624214347642161305192332614083912376332124714324352324522305511112235372387616611133254072164824112117614736627637235115317324075845052143003247033484222414487142751112534507253111514536041544554545335202213783211823204114721333671612036346125422175677302431272352358324452414503228128192332501455815311493464163601531814646715763385152241081915334533413421554332421232362161241327443801418301240362365104311163236553201616913341611034723551015315654236264161412345321463302611617238126439007426431046560435224324877435511115186712941587643106463136020256122029544333516671403352162328726215141127316057555533054383144301426853615413673802620015371902485021736512241412142521312306224271062261421287433821005260058142042570113351228430642334401527110512154401504456633244311522736775367421342232714641333052243356379144020132243557523484620301254135412301523264120553111411392511123342016336265316113020627204186343671572413233533352431618101336942063697131622210741346602052253206534242051185721511482134113430325523474324765682643593396213273138536443641283165418215516813158213782342137621349122413562067116219515553263527801743333214703415332033331521442130614105313141011130251434922223421430030156081313446842404264163124196117410342463021342594016640614693212234163544693221434333011471348634060085453201622052527012033300072453023505462003321554554121311543743662281133313175513242151547314311063131352246931816326022821012412731470060521412142632121885433767130631017304546172023661675467284226182312490628472278051223336242320516182321424173737218144251375663035522628357104316392277662243149282612406262923511517245570141447268283341163406711504553415111432332344361617142131317533478167614647072203968241123111106580750477413541337814832501445451611353865120110473016125318780272333342302443334512672201111323326312352337214843712535121230210621420541133934314420642722611014322284552310412681054215657215422014323226137350322139137153111831931111546343189361101475135171620524772706354583024287814223352743451112663343441224580314443285633745652720023100527713620704432211135115622551501133211602101233511211978791226455326118270013134136611000594131345163254174654431111171354471534633444440476260611521617378591476414222283101171034764312433521012227541243133501131741963747115436237045657210739116167832324018631702143346182330102555152233165353013839203232673276112033003032351737551524287361245592343234431148327662151213351316110563421359576551467165132245512021346034719021101544057352035414005051543065133742954932051733181267440664022243415244361224114111523321334314364042301518970181815640115423122746111075739134863523240077363068366881505247510118143313106811500525331611081211861425251134206305323757535551703815122318291282221821221296053732334234616313034254322182233062272465620281463212113117842133605312404243477223144404224341646431221050528101065697222081166714203280120402184914111821864025581310541510041527358837403613044236162427566010452342144053652003074824293634133014847117308524452947202640234145623267311156761046911526596185214458225924720351131672438430351218143475036311666180475471284222400746613421365314244671127321122714560136012167133014271222432186042317782338833215332201834374112176172422625165702673874614116552113153874181421543632501552012131291514340363212523112122162118618112196166810674211041845304249220280372626323711442323032435114203568260154246034135322334125458243121162121263610005210623411413034120433137642230038111425238622021022300315419134842211425311433241128215115312623301281153410630211004015223414052147647252335260114407493020111220415657111901343213322548316436142233151530413251317530412923255257039162117503153196312303875122621120725511708141553005013182801667332213253601252131146189112625537606129152415343136543336216564360142251713413362423262531146523195162506329223022619311718033210464615445330024245122084622698713541414195801242413515637654571323648423600436827355412364228338412210536507335751037114512821112042910612403605324147734012334673573292327131651151574584123114075623835082604117172044114623824215282626107015551842246151733614816002702015603134234225581362833503363244353125161432130143914676355141731216311691845410511310242425341831351615851331141131113063437201550534238515152562461533231229444616244196411165422471383241336631275404409006357213410140742323756812971303751562115160567131135521532351431610164191132230316245695376754273713112375592630085412312363232256221309274465574410867113201620366116513061664439141402250312345627504321513353213131215651710236149460691037707114373061042624408431733355081414223228442311236104617162263162442745211111322241451550102741302357432557830614386323632314116531450658543504531274022240230753214484338523231613383246022065125852823122223301841264565260353276814311214002214153038912533373146465523151514506215213821734180333532106281116413133427201212143133441412339122822451523212106213132026210561682020074406057816355722363623737221337662112112004279345511592611007324079105261518324454330777433132422859841651737263734481052137223047970033764451536633531180534520515322043239362447401421882011210330192211322131751031124715760031253134741121504243057675605118623031072401171766361702525452340328340142118112816020293175530644552323131653329522444541644143156714120407115016521204921144355614127203013141381454138341223706223334321221752822835307411003210810355574302711020151474124133334129338821313153123116363504411112127520436242120112083977583541084522601385472522341013506072716850534261125854202657520333502562263573476525147493212726462517244331337442165453061214588152676251501154131646813130733335137317224114355506481650295244151335244712433142210212160442013871172233551543940171368262606354284145652114339805100277243222171323317322373345512415164624437212162069133111632356488620080726011595783554412247185115138711226212514551343733126433168117324243212366652641912111398132146211311022042127122596927000612395413543228252336137211753644165634213244431654115201142470166812126005434541436130628201793744222465871222109072247250272745242124513353371312312630203335313127365591084213568761425303376774671112420774505457425450166151421612666383551281765174448384160624336317110526574620363622375692349313462372033752653160443711211452001301286235011401672105113158596324931252254346508482822336531148511386352222520101244510053131076238368614024336411215122540600215373311224327561316217111570617061333413916149581127229393512326026421763032151237312431426866373451711052230131424657937712467656742553512912242251244408419314134134832646658234432532311011560431173434764064321013267331468252224121718331411526188715121420725122114134862425622516358132022141120252148013755634732742337232240226361141321231474327003030129027524140413921720142210754362482401625543333404325842156036171514825333044010715326413035132192120225683106481542121127456464821545464133035121241977532425242251446644112134252142046655353144345448709311634632102210057466754102114471633613662579182206221251134425262206864238131461406257002122451136167252423162911114782140111825331448698571401256161423434212255635037561142552465402411655225521511836021485314471243221121501337663144522084588835344287225874763274711676280174200263253447185515424522154380771244337711503113656001418942303864641174227542002514583374512375431251423715235258616221451161507043625148711112823355022819556731657111531435041466133445235546044354261057126220618421133261520151741523536623211711922335231262531175540366233210453325511051115072701313351720003241723303031231611330631637141303645581461112471172301715220081726233331221533557241421243513106143516733154022653513524513547572504121270632224113731617314152523023261243534771382166143911145020672311742643204444413151737111241303552061553340321433247455351412812101914124310443133070132162131236486357203678245365112121050821526461370832932305382321618720580066221025121712411612634264144334700211131201674788834214542146235311804201226246636130182244421314687212147698021524771262411341211035102214601816206510113423211481630112281310732232050031281141282022533655357256475604122441613212033314609416273573777650021233513066423235496155077364643881378158204623537621352225332671638016635334253713543001310032616329012764523114711712338737110293437265105232349108152116317317722447596311422114714111131140013352433634621126654255438840202953390730212317147115392727432302813512235710213266222027354247344119201391573343067821763233220351074171121130025413423015307253412441134267551323033286911675655377603825794512450346142821564263946165215123385432553306220065414217511325770124131683834223401775646221102012325131276263271322251200483221121102841403366535342183611589461475111526160017226206112534443536045035304305111023313172230624901807515722035176211236763241228141430104197923754513549782733605212403671344236114056003541354236052064714024845515240126044121152122340087342138071337425066444383318012402335351324122124206058214114278632318366435201763831137412062613103659280464733174722758343513404757454215105531544333780107471956433116644100794105465751151362431365172421546476731314511241512184451360130684494132230516044021383874223104617640427312926662426634333651323316532141423520032207142765050144585790147142581454443420247405306185451284154442311190461241430114194231462653161128126612105433343106211141612170145642484241532551473441201723721253010110772613101525753285116431520133213134122384156834334110153170321245101111475358580262355322422335611467434643172638210642122542361245316402602412348032121650133710005755313134354406445334764071165121622233345417774612614533013324615351111313441024522536507611074835213245714802415027655527162452364075830526532319510583148652702540585425835658355018137004808651121596731914311311115120021942486311616121437220432230724920110816241221230016118515156830111084219410146762181262215152426305424212704025251114451155292351512521451006118282213505612143534327217112181151202116303374116414526887143311721117642043152334093529507054404702212123951112017505822841373026649413034631461411406345119257155055713360045158513621362313402632191211314252059297463481480365211161050473205010777302168572523332244132002072657245425183609370183014310123222360424396352776332511777165552512405235241164528808742540322545237294262524925452325116562252281211311147233132003276172236333172547311513060150752142123028833056700354013407331101661244253146260328695012062231234616054305143333143322433312533060010503124096109325457804633643161212232653211415884554253110212367415466171103154113942436912361822046315433350343424479317324453212331123653221313735886862136035151331437335663241400612322412240818558345221125174556523701682282158252031223156543703410138551494202150414143650352104212124571516145501276315521243456468635181766355631843483130062413173737161906311111236132726480414854301174411260412054223315366873433507176258364731142030172231034631233271573133622234227510255351030717012758165213116244012262225223410333393121173584623655206462536211116314302832722483501618444237140401515053522353602711113512458280552311439377128472615350162851341125112812112951512413183984484932282422627445355442076017864031182156211825046542204705972516246152157350267543653403094312713213244717130603228434152113027942522254250331043622711170552121411815321505765212638631145375541165513300271180155607123180525935774892103621540151103253521254448616314422583700282145772313564375426701211522352260232360123132516390145615200520381621522011474510028211114645338355072111148134155304831100447121171721053163312332325623714203134827470521311164300221431057932126148784262252225413414655518296130856652335130115352572011443475456301070763175637463053050131945392225347161413736032311273513115155123071161400322521131421641102083206302029725088169551233260331033323351322534245131290245161325503229966225111437153639451481444236136430344068635653543265262342371231251277612183704134332268517074313621963716205151410574000111467173177251476385231131312322216212421124417124333283146176239221125411340240411690618302224024043712314432441091862537651724419784116268252014335041173531825755496332122141134270613670032317005079021154467863217244160491164431642319945021230442343312275913341414304227047440182423031046321913140102470512532340702131300346067203372445032333817137365611412432064653533526042461324211420802569091713401346311055622215211046315207314054232212231715522714719151334436926419524460151417778151452569274420294107601209124542222303374611000545725321233493512150424333155171746270024010335431221772224554112364873465777352275422216421463566741460154333072720222327205424546324122724443136142536244542120238573163481326454239326125257524104250171070062956336232431234134820751720748183153534125804702223242135214922221128521420514125156262555817564336401317635451071155291202551766503186335251951524811032013343535134658154120336733419312321146131705708830730362152235554214222582622127124605501501630646601013034533041111654837071141505731140262011147328204461356273252208203215814822241332223357103538195421544157537231232861486827431151911450617122642170141013322565242776780079143431270022401541003316622547403177215213323030319511413253218462557521313616013240120355131371317150007424231454474874121544166602234533431025202120312131535837665922970126343163122755283424967055774425251045542513359745621155104181273551075126722713762031312262114265015321321531142101614213338472241347512598492292157414325175753439466325640574540103413762215542160287152085205334027418182164236035511231244324712342641123812013628116665211860285866381478214311417518643103311584141229411726811453662961807054003462333288178111554534085055332524824452520171351127651100102804132251033237258262132105300284382547101467310187313305152340134142228620381416237614464103435111635214521305204203211037312236331552473465731001151011196834542214331436413425051100444644233126611542514141264725621178443417185341157086203643406176553543437718903350076351330061335621501223614351244494314633558353613122801471384304515451851726245661163411235711251224423683121341010310131206655542511164115294413122084322111525103178612506882442141137131151604131240301844130631426420423141553110625123824427161244112205455345341201020436832192243321114430287622354274721412676653343760152867354452715211217036431208005572876301800323053142683164714161003172221322325221634850235123574320517312034010351628317020843327429101124464331492652620153431330250144213740542536429042322163315213061444245144381820464671536120321810411410562605534233314281352407733351560470222018335032123992545141130614200643221522442415124013222452241868344653063317033246152731146498805174413620421441501394129611468257771490872030233507561341440623744667035355150301364340724445731178153112803755011021236021652462632553023134464732434052739563044581760317921108133543243141341322535121120291538406755632212566130333523411146232342330551387622133303122213214142532135348131119246345143823483763355915586528233636036312493706011541376264136422178503137615528624004397514021153226510348900188313303148233349362020043321372347132103544665384713350011880159013320613118954033805323735432650163376532524010201442163422032231103441140241535442621251215415093110378505123241646272728120239670525164511411825411418441611012215036741411470022412143734394536281145012224254520311113625532016471342283054565511905505639857612770593131454471722235643164413111215253462203413130632561141554895045050496213229550541332553861274522024916032127333021451111134110012441141803341214294296103127153533250334513062101112182213924284503743251733424111101111412443122332551353078451352285102286360601890515105153305067160214714622323193824027622341263355203252141248317135106553232182323425111222534023161173314325114333633314220324549422346204712010401246483315250717582244867324443260712214333371033143122543413106302265445233322551431881444245714182228434282453700241987326203741512159300204328782851133002511714413642268554572424428301104246183017433136163015212341631119319747312632854473461123223434265628114240121665141766453311213182174223251582520405073221532904212402611273150911711166454525066646827404716146431118140537510103841670441234335653505551126252330735871668201279811642633132782401651636463346845304210211521632360171144312421144102424303212310443821324252011566143325341641156432461133410211253206036100572552255411049435264652914053501130638436124512093377423273447301278615663330376710542234153647022126244152110130722158272268913150237223812370215102623531051205164111515072113641513424293832743134135062127532741254235336283461831473128491414261701222221545332364836346414864476562150020322512281226342964212716870262365563355483361174846836016936015644373682215146305516131335447407328475134253416130330124513321513738452140363218230754644151276892018744618234461315505353711138517544170222277304183810282118751035402035321110223526827026519011165571426673522362152183222710122440912011031543485730362957783623736114164243107264908612323150263651542887032122346260424302270355474212602292411473005311249112311303721151177143133325481566341540464514832102075512401873524026013660514983122324662354671165141500211043041440235624542812559410381533421312236311883343853613654701635578101462138254512466424772415424951931152964316340224218200061233463703266620414170325414233960205723814530418522410272133354631421351222927205271460433574174422232050437615037467715237627333326215257404411254994570467485413024158328116094123136822158414196623404203852236527045551511223123251270424611312043221101143700015427656121177006334604265148163441324362631109232338355614752314112391403575634205171126703031378010142451057301001137246579851531585181295826885122782202718253210146312274614366304327346412166611530204123411163141215112366062226514654026244424618431383324022211674525454052312656542650321217073317733033344653201121112126241487118620072146213751364431907250914368141284110210113234677352617413315222214511006123114545368414676063552643443615475262435223226151572619134044248204342251415673463761597660221315129104212610231141572461108475128211204255813447941124131864451401235210863543102246514126420064631016153522111524545561138206681423114304220733111532136367217221724427523135351133364203308344226006844632252353640176457201426501342326365661117304322121338120184331477422623367123316220365371422512152335158554730014222441315005402716226151355654220913624226135176205104378731520036009265770314013734381332304595535501622248371420350212545142062395741913458302121732214136428121134111422615311211427275827745120212272004921352339272811645160321635472325120111333393613612016172546117826682263127156700443132354271546125697945272440211345535371112534698551144420436105341341219751343006254747352233612201552722405914331341613013155342132132114163723618123013102147351434616134272555556614241013216555279444012511473196662358626320124543125470141032432296480534144023191611109043110115230562201111310150236301600505127695354171712188286442708132046562443242101500636261439141742424184231371280152746376208541427565304019442622335207782646110096401514806400126353111553435813124673817712321758185324300461151132242320024026233776667133354275033120463336162283121161612556215346131246532392112470635602143441000733283633100305344323232721839763484401211540442206227262180551750771132517462110151551023473607762810825532636233424182446827304702144105085688461741202442446365774458014445248116523527148265925121333237244431310577362641634457377613431182534233435007414446320038011252470336155473137923776539124353818571405134310312617135408318260812411218314143305354560252243333546457051244154063526644565723439353911624316218514631826756210163713383604241033551553641316154324530851240173167423778241014165150430845045642204134126269242613460223437633432115145754718133054064211113315811613310143128251943581116763445702126021424074631302260018247171721305012450343540034122132221150353155333148552332019025610656582211116414180241103162224231176245043518418466386107434138621500235040395618315432332675102469218151561144532114234827341342542745275227143807554101351261506324605217176055562307112263441405184213115129588621523123133253173013203634150547747451230221412203324938851127103584851673016314731032105468446201284206421213702309222332164165204381403024663020237670141742231257158231174070021223313526434113402451033611151723332315706433241553562491422398067611558210494300321121320887507073124272513210551613375945338454351475494315406301721496541321621775345695442433124729544352511525711516520227361832321874628035322323141000142156356917602718513503332673421691147451373005414116162565201783510553303421341374197161360205300820322081073254432802402676645572277438419512211357163813312052430142625263206441212901232882081122730311407224513247152311173138232539841632020421100261571202510242327408422035554322205304550122322352662211016215648261574022142401688875532438522034014103075334011047314404343233610414022929722112582341410421136826520185552834111350041536840203206481675162101157545642124113311312716876775001163875224321611232536171145650147235518251512074151410531143160165210504728873372352210516227601422360601333235194131302280312474381353455402192655857842033647631256227142524957200571961542417154350720153103129432727141331237482341360004201322343036333435233335225302731451145536303508421139210164111333031203712163066245142834051941183778502112114908122013474445242525338400172213218215282215183824322123021211424281354133236072220170622323124344111166285637431722174408420070465164236314331577174124250782456145521074524528318383201445843376272143146411066713041571541331239143210312710794330602387131212596155691221141828113252624560772272326215053435025210412421414336263413741033342527361710429512453517395332287012311427115224461546923535152501334441012882260432121401154101216232242506338434815224630812132155841136380202446392635522580114780263224711511021210024334279474912204304811611360145713685585232423448411224111056252380073614112024713848451353118225918141537493112172021200045267420642222245145325216214512284311161205168153440537010532503152222092431446053840118275212102614062115506287512432101136332015733801156316225230613615570105881301412164453388115669825624384603016361211112239236113161454025308324533324215141311065412252417314450105115200664455555627151017203440280661251115102630715144533466832214763222405223062237516021222766419612632824096526454466454332903923151215422618146151426047134321138782917170324214262221801143422067684017111372563137274315236084101101551539901911711572641251602645141414013456131223614627428302224141182722261690510200275709156337294727246314546320320307432011200320464013750261117472028292651058011391853061283033420135106877236107342233322151673451917344037423112431001253174623182114012336223520345101244182016708107788553154125826307812612246438018134111522566741326183372463247133518332353255153546015437443701441906023311163081144618621242222413124105171647232184255636332531521320413720164304576224631271722465956512267182804176347856236071407522333815592246040125245585263190257333117227269756103105061210457203253081334812448272517136231651072236414165704522386320614522503044138430811331653711013187474330325146235110482228032521364121472152551227853122245330746235224557524053340591223134332315371554231670144351112555492016011203311233121217908211525143201133266225615275913680314106050104161712455944132086416511133656637311220132942513341314043136151411186722631431527138251116461755217173865514438053403554313704604752383831517612115313071151581754464211454306421912241274801363328171421127121803133741162502515251366442240512562249151211300646231317313400598412285646086012631512737387622281411436444146346311061038112172114111021848572016412012635551756525538303251661492402120712215422143521322121522420766532142754272121640115594606076110195334234313913646431243514801443533233613034541671243035206311412225962224061821286637242114174444767315760416313734413603774443212144210233406154421547322150034216361221385721524514145114110212265077742223174161225326436101652632877927042637407722542212154305251201415053372102234541462743013620356531416422120342733216141418469123227250222107432335132334205304479115183171591361371105111763168132761432116444104181121083118648463011941211617125004941211184648540031397342425351223630721437622127440312082089506561461654403765146313021174111492151005056347723321276267331522929461011112732452784251122251518554156314644164536654800111212421862365113025232048660133711069417550230811730152252249635202331114227327181265820557147020211621322110840155372356536854770223702710408210622425262324503211652122214093882112432612121943260115123306134113955148251573225002854113179256502728674252848862351705034551374597812515223663237332555128771611118762411807616305251145557324462544353857317143458317185108102810651844458464226156706614032085313306120822504752243256013367612146011131416434523215416242411323164613513351571131333712028430582435685424127435755793346225491124025022842310504424224432468417469185504608111152141226217146715041128134106476788044604716781545333144023895751164882126254163054173511508141062297412807424863028269543233056456013620711510125036134018165471355432011825441175351121393764788380242500113315235155211223811831122041311013761243708312132115423412321512209634220260452175711643311034313303126356863264213864593242520221871233128131491470560196838484101512014614452024217731223044021624408421027138451352131237663324602014188152035143093135883522126517241024167845252432124683535436511770435712778256311516145114322401046113608472706259432359018321062083102312221110100624041800217154591443486742105141631326113534671155221314351381535724332231511731016538223356062206213484257127121121161070367413414766722612477017511744360444546432218745112191830548144626276137441045432003196872441416861414712925601401124576246563210895223212614416241543442218147132611333134726284174011433574086148223164820252211410166410453621029205212371101725644242946933571163622252273322237473261541141238134307347104196349063010831314036785353354172381582344247039126702746581330891202552099122565183353665249114841221414153353145713742123022342321331030595032543133832636622638118554133633550252111212525434081262330045630443310430657331624265510411013257142001588233707224346462536106315211421225270396162222624130525222722731106123353844143133477136124230811105055173008576475012232111247301622016183437403571877524421231225212451243226204923981242418311116125635160170186051502411276791287411793233803327143145343311174630202329726511213327030526503242502913242673715633643123254360133132171116124627463252372144352414114022320616153705912582307522233120007240024729215211265635758616013926176355299412473343214614611613085072224010722077216933353721118114618547409322384442441610122161038324432514614272454163531964465355652025323712167528229146039345445337223172662011753135606782625413523513462123230365713832767211229423433321640425216310581253364751442207344201241023370565533340011542355642767471763337034934021834002668554301282033354231461008452051211125014466584301417044414330620317454141343141165424320785751421113062250435214539523301115816631060320425495107361264352812623324462944114310204374623721523576241546151213813181528465228674416148353237167130410041616156531023822164730321325214220476214655464531616944131339572117554240474622620751444441153135851561241113215041085320595112711243411443147161234183365202776241121387244120116352223466322409241521223937111445564241132764201525053674421625270620222555244010631415872232562016372121426790803734314418341427401549517224554442152064361233244472118244138911144203114314711831541921372542521637521530225546614353466244327575326345515163424230425836023533810301361322351332143266674216103617028213621657611312311362570347316013715123448776952703172435314515526214832022165141011376080030291343875861163053438131045174246844475324405743643216857714293361131124346215414100520126560782112222344065670834017023383921431351411281152312434018404393414164908678463216283890434723020465214161052120904367423224414715633222011330870113069401444154263301443145643131273613566193793312621425435555452571441710310515443206741133504126060308643114723233112725111031171256542022383663448361750522104125407193118864185226672063112233212315225539667221221115442752241064551522564209261225471132345353150124518072710676805432223213702544132031823213712201045102203424333153323776348155132651206346783622412178332521615110647462322443104160629516343626424376011242311494534119022415156152462127511221346314181117023561821812651127109244233572156135141104531640221424327124643361231354422010579931725365707762412931384714817114613749712015704374405236561736551143818631711316430702533004193662325610133663404525245653182130111564430564423253423225113353227242164244324236353032251238232344234323137542772044139052892122426132432442156244503363352603281001021031306934211745734728435315341127362511267081367451251235002652658531421306333213945411433361627136012812303266971736524246624116125121126105111413602214224684402434128116631105223982224572822521061412351543253101572651162125685027747131322033114226222224336431343016353522767312231111412633621509031854232325714520144513605615144454570312336425260503152494491113312223427622642332627427462337111248246116262151210022418707131225306111373578014274275134253334513772347585653263651034657142525682132291602457246361624116340543102440642959332463341236143259624569383564142268425575151048911923127127365125282604102861327547153135171504323451223244506115252044334771631337121515222624341303421435545351414034929427696610811434231253341611503414170391045631256831100834243641004480105812222532254963181031384145117443532732033512630040074123212043212262412234134252106274872197027705732414221335411025110312121458134511521884347055855034810527531156501921245141963795179682564286637321336327193915833412134060101537325830460325531651005461030138075436725438486157704158421321623402561530126003582324536625942213082609653183677361351195311263450162251473148532461672141122316120524110817336587322082011570317111363413635412513214233153254345214602325314460123636922300223400338755153645318152145245201066322273032706209128045286141142124331142413524526140623271613224112705143551206137661322184744525014202434823360367005652813621451054584414312430903510122230730215470554559752203503723140278423414254332113374511224210612115210436202406141115741123912033663224577134175126353535133734418312202464113078022045315928096334143642546342431121246241761103461322557450433215212052337146021465656000201433135300865044710133621171823014146223121831730122042345403111423530061531733289635092176433520355252173024228395716713622884734124135324314136188336010327114716614527184034145625113461353668231391151061825521226574654435562811273031651022112317742415237355177176510212154621521002022603030355174237561454665343373631956461117212313440726943615487245372293333242492482823344343077736424175001382117840174048461350150373005021310015336097351133144362550011122090053140125215311611513102476602083153263613273336130347132234506146624384266416231917534512084215262224343131531064556850355211278285162381235683733402181332223012774515210822538304410502602334018620537045637122254003776140111634552167566311812147111820318711421426434202387133168397825115422012448432173530412051566253162555182225415522001161502182446257213431034324758332749439135004301342541730524646583211192479134111126256723310731113012411531339451311212413231523521066121311313741162156136122055370292122465561041028449200103511841342223633186344245314511111260241541112313451241114931615163232541726225033583184761822402162184395413137311911263411634372316563226423222211131236455176541263654240423357425250202596182533930676212168051218223203061632756102461200516305122633340802543226641781292425310331661165012246733481561012631796724512511655117632138585104332501212461352179941724432748411112332860351830452166032651134345134113023531571514531137476400121270042223314151326029321636217342512946051232154842836317235142552684732163316190111709134141466095902232244124321543067417652125213391751581216634231242336130536036342023346315250322181821072521622418467105168137132233791374312157521832022432111273278914361102141063301125211562101314972752011054051393471294469562424011262122130072170311348503753206400123373573364101142517368452713150361527231323111323183733541133137212266118560315114141111167223921331235806411113453135503575024223610924512223206864435123453156405042411133141316830056636305204434143213342246216004462516508248611132548123360115131432731547117647672043554732611732235547260691175015611213141442041325123092062029216250803762223346215222334671723102552661210316171110228554107513725011245226731110131335681662221111265222161937230332116143646115111263100886531114605537344272477842078246761069402632812642261653064527326215022800173165601704081862155334313151611793131653823152424214331486311316532139471640846038323345826409035312645713236500155312451523231219321834512177524195210134635522511232843115307103521644103514915610138314141317486214991236373646237137444853333311171012517033902430342156640402535516176818272043043704182376003341615561975192871127384360936233211273325433740526801561521031324311573261571711410225215824612431153258465711535013044734038122714062353130711536909404374761321143642701042131115116655122963433811325015130332900653142553632137177614484641806425122322172221241229017047210041011723778345434321561434343401972661244117831121245213623313312402320432133320132121553541361602235631214201540134213127014517702312525658226316571313281201722338203243122303232811624342527553585127201522407224314240642557144426654033631351811123154623512023133122111731291309111423321256200114311080351814587513221116013511453323306443816113525002100104422322025145371371344358111516421915965528844411870464567526613703408780212024241242362472740323218100626616322323141786153131112276782412027331271117312270295152012413075535041200152628205862163671252325353135562637611241019161020512621555713253152564042413656802266627082941532411132252334111431265370644607650603925295443021318131352046022181833554322241262838444161150111132113223068720063157372612556161463128855223601061320611209734310914316151314356325040311567621324545050122791507215512610041211255471032312121762225551252162334737253306523134179140352210284294541216104401351141811310116414180143623053221712443312425522761128012451246211064714435174112021383513212228214535502231437549172851326340002331210210141512142105254045609111224302532220113761274135531415317744107413175521259303633684227577151841601302215352950125612256741510315224659326552456631012341017527320146506377838247644413405361115353116061362232957452217335215171246135232412254373029111606574731102264148442030212553184215580252355463422386142080220453361551186232230814304202214985560316030206724018461551334166300232641149334312062066178528053575172134612282212051867324567331032740025575345224249445262820206147204241021412206153362123063204143421307451028735105153210504401441015116275552421124252152133254311411240835420771123316611134071872355133127416317351655102661322112205925216134007172220142820944302464704183785214761820131400666154417444015214143256551618335111613219304360802217858275792144407123231421413131723711050328116336001034155350326277224221122135078354125206021328136107056402180483348217252217075201270312156324743235264623454127853762888320152423083164701200264214473647222316841332594615426621112331155218814142027305021232213232175444725751311294525211252511013080453313292636266381773679601157561313323265848465514412814248519211111984201547622212462441320338162752122535536014512114509603318323022241612111543147173713151513161121105222210631170881217023243325441339218528121347733811231774012628069225641232044130876021342135161175305248320131414167122721422352246712230171729144452305312072245141116042205582031647320122823438536024232250473206424242113121548070044384541352422653380425671415914211324301965604321113842921230421934211417722195142021015161072013350963325402402415156623057327332712846481634221661263411731323511768515402490214406534771545472003123382027107405006724416246872901084031603256845151267495512109305362050307064305111263010220244052485630301509513542324201611191471372328546232046162364377441117731433172471111522867366214328137412222425136756312284515462242091255954255213167232525418605245631420508714214161247475046011203551420131332214401148223000117753325144573642123205281771084343505523220231163129813736946046561561049355416204532522322544906338217060523065532762184031133123517051932812621410144813200241545023367741140042442504837304141543216312333321353662623444104618868244636642624557813656455131059831115031731824335243231182177519514621952122482133539441218312220101217002162544862605564531562516513467000121222307412625614322333929027165341405311262325132191564315655197375214032631193420452182002243321295536316133253601375122373275312446511522332111464740122161745624283940911532223635113211134611172345091671131741785313353422428235223312021327112202125201121015403805133828331218842044465050363230148429547525662783824516051436528715226611713241135500824220516015226713341554444631417630633521333491122841125615300051235116183212620655225912023112133113062510123214098605154212761435545514158234521031332223511311608463461022813112813510122334145550682412282025055112023617621134398031316145424164840179251446314312674204642360117221126154672346125552508010282413004223565534383542321236333533917343665351420526513595122506211562532273341058001115364012652711654140523353518745535251775351431453242121042151223040352873345150782421541422233164213248504199511734866538205711402105126312243425415254145552323839118447521213232507742526154512245128228231631733617343117601247211231112311703113256421162143445413363166521233615234011438228914256432404132307415518648111652211050224312324013333011333513255671407616251484232214615046531912346134318152576022258830511633232617146621242564136331856436125311442850814019566713357442198021324422051337519121120221523524622631123312400355353385676633622710325412022234535313555362056321054951028222131107619193722351430115086143412551859013075222412065565141733616316655728618215105113136071215025427024546145254432286164211422511153356245206442530342122333065450379215524214030742112072381232111115401012424112647124324151020782290658434430321122422456213100216303714134563511664610133410184114430238803202276615112012155213481101273163232425033405253371923351035359111414254454405752835721056222653423178215402033741243252821674406424642213013828414314260514332132417328352657173423562241317405244621025214634225512763627255352411531403413635220421303274196341430111521521117125130671070651234153457452113221664361126163068212140526224454363405263511524125483533142629060918230410216814740461504570411257121239632233134243205225234382463521211263121116443272260311232156174470527422421052145363220615206536566777712718343214563425248163276221461446423131232451011242524111326034742773253545713131625001353141113402111235149150165172352703424423522810051640426041346713315137318443122377310507501414331687055313305525315241217440533342102362348332445841115517621344327750639142363534283801043262731225312328117441743972388766223276231431001231232713337132354457220524428340213111163216317352603215037324124876101321210043138412465433210131713235255160213534837122344928523579226740359530015880561641061153341223742232169480626433257717675206140041627168249209454143312420261625134044443194184121498634166228711036134221972523650260543384820181642332297742693215565116912007612733895321125352938216411357232815302461012918035520796518253141442023211161934142320511336535344743352544075221715545255433147243243358242458021202286845075054878562118691572535152149845625619327822477632462541591250444634101112520554610173232253171013422543822217626415377062931615995824137441823144315532164512426175011141622009326216725341465241767232626341124442171355412164241362653335731346188352433111602443812377251113022122127112248565326201406514071133728305623356162833725595055531484220233751547134615227552425163234323421201611461251241851512121238265181153735801112951743413151113122856213287013332116164332612772524154722155431859513723827010144012532217391411617651971527145240512414527342302211608423613442242222251036300421151341504610763720059784354164213223175236526351325012174411752260250849223124384121506618211237052118055481360116106280613211308837482131573501135756511452225214426531137542487168682440821655434226155661515225564116455220190165331433411326823273661124084185332113321151425222182578130143421330115333391113186418336425645514723251417300641360085313415825330130114213277335355024435928346217013615315402331270544361206334626114272773372323911222460164524214122114345203460431331245201213343113144054253156333338920497551584424583121507143576522346348421364628610542347164162113124103541652214244121538050322554330426275327582159149945533565036544112222011552256341345310332514815224315126144312134815236381538441436231513363473383647453105504362211202147631111222041422352725731743233212284338121125362259423716604222332713744360241248329821234350114173857167212155210216042350810101498466234061321141061671404655542711640156453792262371120316444001504601046662741103371615131323136632534334425763111757488804641403222631305123060410164701125171635021881138411473298614543112730103278228150245153960022234145217458832092241717444440607563445315252920321231142675904106541810460014601053373336656137501108431312262351082738354072363711353409124652521240314834273153061323421412024800153485826341556234512235306262514621131007848622110684042411732611832971124339466333121322392124350251343231252524515342455213033712524134120723444161514233510148267311413033655483127044575273110210966296866412620173013425601363830013618758535426258323149342217732146621424244234588121345071206231435211693415855157567871320331628239706124054428401408532205552675043043271219527171125443623544674111272421151922523360241200534251031910587205624535111411546001314743453413109561232082112244147125055661123187111212121967221003064684422515173633222555262133823241667273212662813653242276661572045153241443613540651217463043117100385641294882033428724431767784233393142620021063117568212352223848515231161707335724742542103611541153164201036124912343121882821443411513228610214420440741140125416292135191121223412401132243032516427151146246402576114309172513214740210571843322371312246715255601450331253544357341205743443482413482251402523267818400212434161202551142622142241447110332000256743070513567223255341224123171744401163434004077512577343721242050651143543182213651033436406815700862311122504456046211645302474504175215565114151522202234062486332371212541822376048324263513316205576846085240671484122403261410226367251411616502723551428660067335114291122018161113615166335530530194501747452110566543664623000758424375368904910423630352541625105536221626342185045200441421446148863841141383344172510065071730022231931392282118624105448121662643445712271735741878475144112570153146221656088222173616022116123181106214200882330461449351151441505020046143244029762314031083013205542312622823722665210946231540225728943211471624242541666990352513055535517048473472233126635633210366411162525741041133556072121033143414343343931672714224115042252334730071322383070662725804260615227622174704310168244822454514141122437513381514020136550562069301325125834123011421113244011864160386326715712654137666021624515166712114106725412126452216841145810052233321795602923165105343130727837146121331821625510647095314116121761040661161736134224120072094371445166111450402216343450476196051283622260747341510922132777242333783172601252151256146220120327675553301220144244751144766362203666067423323448110535362446352321410212412342605517545111176142819466157037311019220164617223246101111930123651365336131217374663324726511153221041173626109523123394000721622625421414036003244283711041524312108203151340463717224156247306724143162235056079012044224715323335114634274415614613122023126615512273536174055169164971514532655933255630874171425231410513760198037321014222384237271432332043535154817333503824340861255131306030479076856332672836552376335140106283853664062132318454511324172442611133414311100226134211037204818321485058073221727434321716487135355564110234301336142419478640232810935537562230317111123921011666355433218360016655112671747002073771214185545164125072714424042625120661348773935463330723312232751215211702362652072226422571308175317412209236173103313620253160643143462323084142145036301320514903931300708114102542193622551152117307283121145225276161421574917415351234022063121221031217136263135345713094011364677237040262118419502433212142127154274516205730415121018005144735103222243322176134426351435356012577353322345355334024181324267232913833211527742157274330002150413141063522121223140317146221681513195211241434227332011237302622242063114703346152124132234588529727620129017934868122351310051202586173483530222218335273116397246041032215351142053235214725212601422437702070212071022466024411781286056432556486253533305441103602159434923003776609634511619353221514885242742212214432354148217414111453171183141121115814515021183181206421233214811737101239931505666750133781913474382240122840641108876405361165127661422767437367275453666424142125744893015133641383532003233672411312470602634357040365804130160662212410620353224214252361715221310132328006074604083210631171231462453367421231151424460504825204490345003910422851247272116152095332254224474102214601272897304502164235212411022951823219776648113840565629875063432442783211435181116662285270231948573241618880426614910230233664182111535584597143343451545635173433423273632265144111191356170872125172201847673361205030365715113236224701373342162572726929052010281146220049133135138408165711214046341581327161116102475647401511655102594647541543515948124611313414145380115423211133586247526225113253353212422465454317717122551362531244153601371542531322712065137472537207258155130564541331663248334454388381446354151756316142023241131524190352215431724114522312318372213681521631106012112935215413831405355521255167667317017503314281503222561267175982862652404141281030563377642518514357403721564540852007144370073456476184128727048275833451333433322546230602433604212420322713117115383216624509406576801114518303432452680312353066103116531115401403035235223610114403722332844062041485052101122152012162456454069304638371304424323346222062367322043434433506562452647386486482887621175868604411671319741423631140196639131043981232311223553216430725634023135262114388312110205176246122631705311623336173453311713269919601075955523354552533234572172171512462309253646481425341297216591512150749244351240723144064345512215550921437843111116735963144534181913402437326451424953133164113205281230740162215234355231223731611372444612318679324414011120046230231101214316335329808116454035536130186222451453141580553246551403456313015867212713411231323293179225701831214515014120421020371181876272312912310101322442642142112523705352041102601433014125101734716043634745172382451071132234244521246616324104341705553466105213631760013516143554241258509507123341218810633530304306241446362203353224751200535133416210113205310364411055552113434587512416376113215552454141491116251733139791021314472384122774062136262541959253410511327341857110182646173212476124515741033375742031026637321115532272016550227753033112124413812554557633113621420155221111039331331561562020331233143422321872751075321263056413874408588427657341076021736203322236630012261211043313031783912775001913415865912525012074046136533410283622362214132404103443212334104445648226562486317602062831793128833282501118004027546431327302112879615030554481503245471626974432049175713473415441161272456162332632641016161022030426313305163620331110001101811452675505470322782528117186722176111334042311140521752411111622535633513701401847258162535164454623083601226124133131115330534636233612547312118252432424213531024523981611103750635554125961148443350355134965131019153403123322465193713223842373326242514139247812617801733142233631112513114374159552832121743110278135122434513238336110131225212220366213603036225135121501422441243441217432786111604131929203596535521333238027353140334661116143601476601114921261232813315323545057613621847290457238365304272759322322230814032235031507283446515163692323171724225631420130013133253665221134023144162536525426163669631401737601221913123714643360011521571323604061640275413413112517275201942143143711301356448816316065326152091033440624133331266314320412722815268015564143402431036754325243213623405307442041465104374653350111331041413402648211516028232252104753183321025131232974233373241206145432031841234175636140710866107857363545272110433513027560094155603703761626411211562207371521632363562431037842842443214021251333313336033242414134335524091456767020111822564404117227015231344413724261721211412332321522257225132852726113177662105451632112163702443613024578453525252442121703285023133043240051144844654231044241518576015118420113328168431123647833902183364012511103337413815271636553134633417411331614112453115620250105243342624352154290516620212477867035214332612131261095474119141224225461734385246822157316624794038843114401823533112261332511726133111113136330214412571298200233294160203225354125111223987170174124166413739411331136221224932872651111286066550831327712211223224268406717652696722966194613472612122411333331463313240126026504014382309232961344185342443741443121305325623388252238223512142674642101512563315423288304133367353563016881120233430423919532241181718762461826177315243565255361086026536360405250062136351643245432507467664533133132115615010392101205263640884305512244144129215810331145284200330735142112723012152212194154101026762624445508163222733204924044303166433320066113714474061882124511151392584135323218263053243623170381031243162823831237313355343385164443412331166813131131862336572731804215546525125264307324351562616801416104203214193137105341287143532511332122543523741326721258521178222630736638314782343223305230245019524470244462161313745204085820021143033225223831454222065297227670124134301211307142505170455862986248101118532411021003633132301346195724212925651631056112773221572772610740063502153433553146222611741470425025258504671039221791310142152416005735417613249115111615114925265142869213264361712178111211134426432377335543070411553625200641607438145621386128022877512233439222557105287642212315147610377048030433403311311228211137544374211934217111617155388717201121544104416633162212525251259182322120711244578716343512821856022331167454515526412279113351323311432301321752742111142259042305431421276740137771483110735285921442554121422261226027352232752567712597052041446257487331202811476845562172224583741052616438323315154413614672650236040527524201563652513055511550121461453274227083731535553423722016602273061173214521315222130162652674495553303627140243681454137352253302325333014102211634583356767122610567610524120452127926163543753011143947327467101081322036840561333331163075424234251296214781051654384676412657213402821210005109521584825107614273116351316303225234314101112943112013715712624436215233045714046342357333401031121641035604459522036823288382825665618356270913112907926413454567241473231334916231150235436133714726740352216956042317236436546651312222481254882124375860202062104205253826214552200643123533245445160310262041539014864112090271222211142554711710235037224342352125611355726263118045704232254134215300771438533551144351143523131715125522027523329309101142442106262617541342410114211425442525254254226025848142010305035156372321125075140555435431441135323523437613361201943342438042035135202512306503248264360148811430846684222520411662255529842513646022138937115501125833055538084642531311591463125728257440936715543625412475322101731310211382441333140552317710426355238512833361536176214718422032216309273139333121344151532311167374343812711510215325023001135251051696781314721825229429141161624581212048336158009516637232303512132551533662761210420703751186574115146372626320453676834284106520334029342123381763314120133247213444465143563223570093320375173090801429611417656116627177583227403016546333040183341947190436221504893516321704431223015133256105225417380131232365550536241637865523372486447155773174132240363333852493012111412165241225143002903030211161123140735242232643764234414322133040214005188615831332503390056613152335603813191428222353621119232150221334343264307216367436812663710613418506400732323472211207328414421412012466051712623343766176655131331134066231324271711152151333741344610551014154156316223072425437615235035974270231244234781442415737642359313287405334654513116828324303231125214035323413806432212122252117526346272635773227831122125839133371411461071271311121530201014453363021221237218421214422351342101234265427505121211242705211353119271134224514236215145735012462955951044320159120326732102114212523702440000454652344155564200378236116625226121404304562577474419140061116150014051335660055116376245682202394350274826236333426710664602506110388130602211837530231146122553216351045742431378425132116761042724505727451571315152044571502241273172261141022255744097416175316515162322065322033522134025110027147463121162243572158640621460457896140015547778011852451804641313162680160230445433683462234411137313901212327304312611416211303652406077585763191123324351334622203201512242144044282911400540011378300601754563719780612611280382025534121124191410485491258463662112883005156320243663241711622274214821960344313512562415636755027044016201522132442417321242621444733273342531113921408558564325811951371673261421215131732929452227340263311422152136422044831151271336677143494458253102153585153131223624572461110453026052158423743244390430501714112235834012401471154211239510110373175112136532213873302220713131728126196662127256312173405112218102420280329339541546234101512982222514111433631125332226533236212021544414773663471334056115525407251463717361440471660914121542715207764443421005232130635633421222567322131456704441314050635707220431111229664351641622513771014630518624113164553453121132123509314115935306404258662146721514120224653416724740113203071221924162331241481575682022312623754426350377014572026321004237434511112164222113522433224039631001184213645011933541416053420119930561323319120243306142256285122167483411420683041661365628223633350259235522102111281162111614771245115212366607274512376645535703644687537323362156634072365628708243212652452463714033031324234341214513314291338561011311395132731525333324036547933416734751221637705456615740311302642358921344314321241239230145104134181240489132442515142433712057334011112025463100332254106302032231035273117203257602241671410663117521672111161132761065667680172254711163080722241573651340268146171600122260620540721902125562604452000401334052087125626131476124108141112243225731355213321823143670601330214252525723362571247123537534211268334305512243132653310011616222020263117254252108752512507621774410232335174170434252352933345852235443176250255152432421765313125420146131455421912114210251612243832203301610132294202512711137517231022210329241151925140072411847593254126174637337224190126523101010462234143203320726012462012143852641143157186013521143220311185143636585535114134514687125925313261607396172161042321780771316515822414264322231621145536310412777135431132303558246533013217411667628222532121510203327342645622321571111618832472227720661419025906144438622944744640138845086642363182001011371218226212113477651131130320432121461321892306513331953327601586527871253485017322635523157420621163614140342627533522773315136468509130411246606612653332245137484422124411344142515722390633012405435333644151410031140311289233152511631472563506327428058433101235405103511771022231221410456422210521272322060122431545113350142037620362331534532850015615838575513312063428510711827561817346116515420512505267216468058240231231952505310432632866171025556764546555232144284373764521143531124166765614056275641111102640134428613030531343175126121007174719121251023726525157431112572355261222404106542851237914314091302276527115453301743356138505668612276091132311010664646970035688351901944858175315225437315644812331239426163635914193380411214353426116336110141815455432753237241100143151013804113654408147033213403191581525227425024167916011352610815014882231431105533844806622112417031123401301204742251222422121532102642243155467571214316651664026216399472548793174010705140306307613511382243001858515544475012434062367206441152041181841002105184852101340185441103314365390001813034331494320215453162521262103102784036401690131820340014108114603254150420116512260860021362691113112452313155445041411534741361141172134304015453454117422263141110573215656592135593227464523737770260312835100416614618263402151532245227261735315158580211232130374420119138535653511181527263130327375433214443163157530135611212573742325085547514524383651142942730221543381066548345513227307043131522072030105221482111131141131311364772139132232103665362731307352440607050412035837341013435028903132445861038320823923124412116311359572535221111242354412737242012761623204206424224032781901263553593098223514526201353847134861532264022511283532240221219254336133224824113841558502141321290363336141613380214041014177116442633874101133348159223118254703462426541211430121537392133032115508967022345420424323484223300224412421333313025421410435787061109466941518105325456282422146862911235611192875316635316016431526338651041334285144244428225529535212621540130311004404549581531834280596308453341518813229161235630110111716034014671260123027475104471230244140456921101523631127334623214224128532241611432302333533181453131411315520620421717376111453014432334352811814491332324127617168471641164631000536615202242342357637716424410476284030313341480055812320256391243421178015660411827768175321400241812313376152226764015530317157704361112063661046085551962156661363854632131611232464440511214255335453614113751231092025367767232234712831132715741452133556214100350426111210311466123520333334223123255211176254175165344432473333616233112861160613241582433461772565054601050203613841170549255168651265616043373362224343435526602734113530533572441203331028784270424478341166315135335009264155453145436542953615345320400234214586304483131925412126250453346416254141056722311151231814882704127474444303113325521414590234801671459432613300368351763097333736153227024314813412163252123447136732122105143727325512241129372625214437200301127730150161350483043160724126337713428043660691305224015448149641252722311463221531105433012100323332466157638603546130534375064223312221746520819521609248155360270170114073123308502711159014310123216023354332313210159156215434136201310554214647397353314234231145053142441125721134624441212253140127219513124156122473074261108578214517350304142211810163313724901539020211454235236637258173330232613321363622435590287417211711541303113209221534041421611033131134118122922281317103526115123931319146145315835413112235613015381773023037335413421560251374142763131252473462218410182541361533121114553428092325211211121351181401284460261782011160531372313630824844740030173128247333334320407334113201532114117053573316175233010214836162739746654155146542204831443116672321621823243430772610165932433045443382422101354138106571031423551166333312350174412401032524633126418622444520261459601325624665545041676432428066112322360319265321211001368636318216333748316300351281251153227145338142915110216247027850634284359511312416234811877206241524121234252921163436483000573521351113208210450781623274374613622773416150542406151075162414425373870541344937577214321100654721054116207218723436635233473330635711421233776237346276411120164640511265112111402312233254475764651227316063323624436302242317912702342416843017500323558316641065957231571542443106341224487733040162054431131373217000161229455104574800318061001470161464114367650828814250361347212211232046146663582451224541333631113208132731264215106702771028100312261337915125818229002261326216670253122504263627342315875031861205374173221614553312023310333591833324612233171448855192545851525312120211140751006926211311130110213173381243142062602322420652133120736131517642482343509155367220180121651172213152214444570063275588320213407145827630555661121745188313330831253632111372032782823142220371115122711143016954164112338133522345421272435124322705453361413355137457720041225243264662232725171139333567419167816325526331077435191952254450324620124363170374136849129182225452018412552642102856341133060532252150211556386132132015162231176113333324136321332113122755238136394811252218411141437200283526642625170124202123100400841424506817827154100135723664123031252551000112044214410111047847541234760031340222632113323290235266391564641670536014125124342551387546016041505237120211052213233323543133562183336125133549851816151641511313761142943825511236674737323721936114225182561353341337540244131051147982357312511331126165061424130364819350326261032233222155371253405310572292138319223162274286622434428614212017761223223393367152553381551414102415285340201341515223664233585203122470121502423132764335702523660252810125154233162303283400245485301324050121215900294627386433278306512615157782375133116423404163044115241433331712336121362006442310511197063004036961615663005511161125141276432246641131516446583255312645032615520236533410113303111146025215632961121562112041353021084322293333452225063525521363130671140775304375303717437446313167225223232125640267271953226442456150222432332191830134222341861053232450008133472268646041148244206453153742276410600313167388119101067346741427121405133340432225581055152161438333330543092330116125029101830134541361533557735211633817026411421541210305227037681112044142137223293152304622378312102034356143031556340585131716256412104972151282823150143462328212386642003540261221912281565372301121126771212041576542166561424420611211211338303806408334365245663452711574184240267715150821314341326517260213343141113355256821114823416322142444526798621600634727543518731118151505475213456651122313032623525152220843543055357643144338362278245024767534524432455932014201326502223613102207324361746378133317233756411025312410360917273542383532047522593217133237105218782272445453111652335111287312149653371630885351412152106171522579227645110365112453432721261755556110305246675552548517110124701352512865114584371330544634200021476946525330011135375279511370349462824742591556720922401214145658323586476213121728121724151319653405226121131223523208654401407016554408882137241002848614173139511464661130403304665114631214670154725209065211446816227380252433701134321242005532510146214171346301943143212058224363489415253032165498242211438670007181275407250739163031432207104232700234183635594020412653803442145415514432343366203677743108385972369156626525875562526143077213514250105326412502462030243430442443313861414700427681134321184230251932120660442496517330054442017402541556320115245334202161582136216473314705732213451154044247321112735235940222654146223361473806544223514376944144012324221150765613247424328657332463614512533111321363043026022764606554267352506873121011336275213443021975182445534561211860971351352217313511222724792071435402356114572151204034761353522367646133131343441553798615245437505334432620812565811534733822353923236331823821126741515334221184134296182343417610176060340186014206745432931128536391325406020704833552774831151241422203410356528809157210624180343052494151522462672966125814770312226352864203401124223127885042131541413242172333018621235112574115410301626931711335754811232111061050231466736153011285372014356132045377273234755760167463040726626058201135333032231522200234413444221316142501234328347254431182701102223146641267311922768515651270613112223240401640504495443214143245113354411822504284147021813651872571172204231871012356795437441123224139762682012065624133318371313741213052651341020226741109271261510113001144058040213346464224584351152068111411261155750264632823673561153411202004221247122211221446278223639503759662232620563648024401747304635310025291520424155543495743531272121351440333425016691457805359255106246212232505571445346360113411470113131083042344333746220155064114643165600231240092942112216255563314833362157466371512128421237120254202112181131243731740932540238314642221111282046635512051427022411145379410222212436521232317494123552554443420168242414320024125966031554536227457554855891416113515233241610741575612761515235222511154735325645341944951211752073990358463202210210317072664174064821206962061318107531353755390658452621445323137481147539342831660361146074623367316511437023141221384332027034416003236446271960524143431111418282161572811282533012437412137260273254762513111375263832285564405846520754103552477811820211152207125233115025451549028065320414436095552212073334611132212225245535321567124504211225610413262289271521914156712214322916652540110311171787265263645676452244475353404123704552361471731311336171112550287235824025138153034270553553081105404133668416122041627217413613513100438553618010306576292060426423356626631781561226304221445171564733046211769325800711405230546539475146260226160106379361218291525373624623024091367544357321426031133141092881441151526648624523066444260726321416142914210214310105151612859138221218713316152163144300538366430835722322575751432221239125223535444135654811085532771962449226244322352173335052803945440284182954561244351036354472396320438122054150821820424340167010155433411360163161414571452117713431223222961609324123432211010843357030453512561334111121199161723051759142612273114404154382433695165357455155464529243867223936775514845711121717036101182436173621856145146120243332102583031344342502012460384165852085522513854450870111431411121150296171146157811626330031363164114052810021353242453260164094221122563517827227304342723157146204844434627567883223353053544357921811513849641522228345345411731013471106545669211891311624140333552146011161203332352231137507072100113425334421403138116501552341384085523294015913425121584224342382458492273382213342403335535151749143159346431525364921304086111221421612131615113527165503041022221354115528123211115531427345416555284320535231248025121930577312635717432542811050350135149162013233540745336025176948352662261350031750131461043231303243868280242131391066412481272024011073617500333440211724766582442212314667318263722796352141016751137417227981671523145443821426211177166655603161111364368314332771442253013511015302443617328352704620344384277342046221106867110411473724224126634500472614283601817420420242834401831337148204872744313642410833510015611465316325721323502213553517241252382311521111633741721154961458410620471662320095521409131224441231445362102668042216030746171341672014113111271913434027408523525420138012543086813013151101722513314152223221235522216255424233034421125145111511422323315322112132315261644360433611320266418203117226203172265030663221112054018516135122321606127261663226271830057525415847928063223237212555437716523611721353015341511252054313173063498460531123172526424640354623541130243961111113437634841622314102214134133510621538731131068618634752022513308538434772448134632274402140146354378361216512421255131251736742214872114241326836307046755321512151023662284912211363143138381426521171716410351832143321532413242043951866044445231510111071242010610110666871222340452632319305410118753518806044174086550101361328621113131080354245521562312473016474019336022252213334530064519208600380327240622352462134231050865672774222232586836651205381645325543310431240003247144233513887441226541284123013600471067151723492545301124217111373150114550172213432217622305323641721433192635932312484811075530713212532511132518564231222273172382828633711207224075324269329531753641473334115114045372202031511514324241134623063311644177256445310717033311511604014481331393545611415421531640813462360464834250080712003183025347524644442554632543338435212807687125511254811019613433801422641633554333713332272167344700442191182571176374162021310115903124406173288044322953023256412182152413721550423522514374223768242154760325553613604411203063920121225226333613441000744352564311122172020113430550275084661382162930065841105434236324215006733654225303026057278413674248522113455233223588016325512061530286406141730203294861503450312631873401061191228201138315013213061651233220814524242151825124372431705222233413011602141107354128323513430133345223574521746241352011431112666061104337317631461217601711458210828157232912453612394064275304556181303036150366532054363121266263326114315516647821223152751534100131325350133192514357001035611122311340220010140252221567331005271221361224631566056213086315203322042111655186042631633345131411200121055562302922041550921205126114874131310613523602342623314622216578451664554640273616133013732352273024211321162261311053323345162420552518641924217551153051542436525854921132120201122583341129394227224223385488816052542142369242012413361382455816254242153255626723872611062232712255101431150277525723633152363471622335275535021162530116434323444232377672026916321022535740110287154616143226265520403302759464506713226141551818330021120927110636271265322225612063353277444014254706431571281154123225543273584621431745164342452036838634441238646851341355712216263311721241383522216512013332706112721211326711234093371815207111314252347132350673480210432225452174678341001442141541736883672236620113218010751141355385606121731615048714119252055111220262112552361651412410571418071166577218613123241456117539034595060017041423121110322371346217751694134545270102625232017151416413228432036161331730418523832234355217576512135652203353107216274752367195303256511652251158135414060334426124224224711531505222623102543341512560232230627455952399062110031867110323312260641247315125514130430301112113512201451390410630672131456115657912723210722113553225471151725522371409013842051171022621713121460553625265419716632365121434537104280672212550034050905222113426001020291214271043162533262435354233345333154427372131251930743332581312223511206411032315102042545069481552132821274226263242536251245243342143216401050162511411621312255135735505536401152521162612215213514360902694264232762218553145162321310000427251143408019172137122544113344021232031125934726061036521320283323183311206195643618911314134144504142402065233282329612423131452411438442763643235462362153838813126325830201111092813740365532201526044335652602205522123115114243090951414337302330611313601114515086103822832324165432637340323475156113343742825341022550004042225550525363511415224162403752240145611023711113604365531954010082254042135258455344487206705734381601567973560011248111341813404520631025232112133150332319566044314422302953217113100473432035121211403641330121506264487345061336012275578311318224124742411413200322317244560206045337536312803107942320027051152471121034791702214137735381364647504103731038552551431122023122735134365963341211441092167163441605142112102434214764681151472254523335475328112057310161117712114112736013797515243465375615742715911616421244122121444325181336632623511142944051123430529475472321113412134115535757465576662464485303132322685254435264226513433148518135202222842872444359176318016722734444522225112320425194814517450323311617517324721231874714735215778034782630012011325554532195642531834604645045522863331571414641735173117413245467651165138538287126143840064500254462244254333126453110150204820521383562402521245733252235587121563221301561242145127962614492756846321123615251227672948211856750426314722133718610130318411423303121016542157312367067405058517560037354246150236241736830701641013371082325612773124434157614534403027302425541274435256856217461794550222122510211375114033674115016514253457122415036342272523362750335461107911297041423141273309464651255623128532127415506930602524121248607154004323037069606215749341726393563212123232687201188555147112601269560492532386624667426072911451731010133361821011213406214524735172442172312139656531154337361823157256425134177384322451500421113382434153073763272441431073733191675216527050671205016350758314332140124421213313105113120121444613455214283843122047162644164162876041422571232262134166341455717516250226715155313245217185113217533124210305211102192180064614264120552223174654761242602212551304334181558212136205510307728062727433644327121523224114108161813374146773123418630235551372047334616630037634211305274234544865155513422211226110251350011342433396231612153328223115625302128920811041503836624046431143312181459410621633223224422140391375531517023457424465380510628623225144543112312673226416212740022645181103150171342488127537511826721031281623533145247691225046151150541256060364101627244763781126016521253301152818361315410217453520352208688216265240137121457462801231442117222102564526122051241165071832238003164115113514846711331505426505414536646611423731845024561127404412310175533411500302114811541150132931358550051412543434132405741241770356554141616251328214125098184715321327345054822602611235412112630235714081028115176314665188122911233633433973620800671142517112603700053110225310235505512245502034263325441832171131167726162272120374230073261422203118602043285871161233633105101341562541256194441576042551158513535446342512215452062619514924485242104783542310116658715154852635140247161054663155045617041111193642212244308156278351486601853341436494134535522971212236153524365714122850456245774220261328251713143234102312431024461310372139020283127105233534422281331304526523512734118323520551411264442415522331111310270451135346201231631125314655012911512121266554607223444146222362307236072195235500110166050007440412204823523161413162164473611545162715664784542210807233172911105142443143701270325267017337265321425211220123423003014513682212255414195634224323026456425402121212435523716120813742135174217340134330422025462393848531251036011924583225220190197213211200136248474552643400436210972323210741135583101006015334215207332245714206575011310314101214138520641922330224023681350164170116331153242154541245231236351251922335433947199030057440483341334148613026912934364203121322827317480852913625790135510502206246215513763466543313452564155423434119411251131143420942545318109122994424141319940504484601146161141611551367180139540445041502114047303370530422424253244641543316514302665114173721258751130396011741880146183424732564083230245367253691329174432424333524020302264142432875812831392571060431025615531683314737515293683244261121246520642403132235352367319567022420414143332011044220572027016703016180260520244355064490412202316323211030323113901258608072106640830443303114322856161138129101295441258114200433375603977346167474635544933231266126356216416371772557830161965627825247415258332515739718275452271465506641532625155221123057315364260246108530681348912340430302773411221491444624184452324283105478233718348084425548652811212011275311430113114470305610851611246632104021259543134303518146733314420968314621475112021476325502132642465152113133465234333633454404139243210604531047128701228565453842611110521403122341921714421393930520210872612261105417031151520196811241216324130352272429267054246517415305514220242882841311120852121421471422306493686621428750402723213941128459714144114721123118165211822054430472775053376277311213357564086546800282274343351101641446012172220542793531342308333219121407233422734215217122433574713113132313629133573914223180426065606362545140167834221408240421221653143111190284624242647382532357541114236632414846214720222825144462706221183532510122337422613037832712632542414154956510061516322823024255173212771232900112355074414602241313453201234213168196114161873423181282812220514316261111695451414810407710251621303735702122454216042372105215470173114100214364135158823117623215413132650313132253082533641382422846331635425091012861383713668485144203241123725516421315400424017609601220363332320650033226348511124623471210767221821220204026971186253911542417621446182735155209327201800315272600306411276300126232220111719181022744445623739532285743043741506312125106310201660151292462516513352722586332420254234214364026103120732188259203415453522109272317125085424121337625887324505241629516200316751602446555512462150151501005284067973282132904348315223051772817915508511474644362052036676466321446423605605304631117123412136550364044333311559322272343563324514415134593154373601042131371044822553670622213252812421252608113233260476225105525840113426501164130541133163255150686243450114268156212416291165152013143619060211145611283460120243175623260021163323362266481734414293255830450101459024765365313165411445817750204302120513246144264567141578252424382225911134311116122092308404420532112327666902211611328011720313206716192773632657211112224286520718581610053113527145113146531515020804334590180166212120252133033445071326289213243627131256502124260332212264031262201323603103544014111254479624305345329301594062721314042155404330151122014025021140122601508707171361117122711037233461563854225043743411124168736212772617328404210265544930531335125822452534556175941431125411640131023331540722177664143800982413252115528235146015241701321042535119612453202627867793321203354745224308222042080441242916362418019235035164383410522412538212013367733383581642848120504306129672602354716383955170856131663151644365424201242254122212526515149141311482549423474321553577425206425433043968410150180471237711940351182122212348213324654752335366520133310325131143605420017644844562233473011514235336022224061314440414205234621130243052612606237341845301514250012350367124386315133011272131106241625448416665143051134371133181501340017725623466733735132014013537411516231864161119067131410165222614152268856194401121424237037053523315213506369670161036121971220356741042702110214248113044477383573114667333433452733510301722324443850211337464231454330524541122152255336537102262425244221323212151262525504232483034266552341113544551218302212143181230132135612123467457201060331444365131187251347513001238225441250617721776274211784006341245106094056733212136011251130558112172735135847676101114432254131513563610349261172186344125141240564819447115707022474511661564625820011312214263124253324713526125254621712541310304244124529227123145513114237547255632048132143116300272133222224121327115466716161108211201116578130277251115217810532416438536383584711123322742364341123421460386163521425536583342384322323214571553101627651442366415264182610710222745146610141306411635175425535174121742213266371521103553071163472415511816622623324846414104413213217626108732361223083251261013110055546211001315421344251853344372148805745112114218419761211203710241085317413504956116443118311414122805243285615416520642232214171160011798510624722384333540221142405112153348648146211319346373143152405942327046274341531115553719802432215722342123033566114245111851231198412602231081758107962166223131250381126433141671821953521871004213412100452657417762213352337651263622113253400516631266524841825402354166410111246386217684344428101610240116301443460717627371206141326832182445320101135354135716051302534441131216916105434427149421756323843412610312212826274940562542243941333724408432223236103674514534605151548155224312215120042496597013514647404371698321225212165166220120223392104324451245224102134234868283461763317641457440236205425962616241112542298748301401211332314868535261135463235131112042410734781221320226211447312541282025435724252059132111001034222671835306918661533362215443012131411044671491172376176124576161164322204116411202112221053552532420219372114474414520443920705542138744826427448747157656125161233536010016341155053326695303311226333261335212290626348349461141320533409327418393732485317093040333226257052611272240412143214341204062237465211631431332441452740926715238821503790274102014311380172421312229651211565278247761132353723221211161280138121524207196812435126727403546431812111327354512112211142211792747360162241527152624611215423376342135474234541313235214681015075367081256414116186224241111745220856413423570743226423431155210561521342341034741042943964213620561936245749406636127110214553101415571231263412967101213141566741764248211169303723535557928775024187062045322833104638845277017167002165361033421375184725010300525462132323174512761136245335244661013331474250509200127017138616263092524135510217586180133446321212342241012201102515101064316456225316521691102422942963626843216310234126443052146832128320241024517605335137812314403632545525500314386363434183182511001331236524518823636390105023303113134313111836223129182313513239302635524464634004150221122302354326261315010070145251261233016142722112541552301243234034562275410712103674084155501661824032211621022305752072914814156628076214533732344225814537030632367021282575335231033232156040242360556732534322613512913344370311248255812324148150426504218160462597413318522653082248752322421784111950434423536231405447133421311102108251023511212137411121953419837221633214621131841204522145422170648645141346432724527458523688306253122431885234149127413833173535712133254237429323431541212112224264111325314203134211226890272817117191331733705244046741491135254442240101435369155100633266611622145433099928070214202052407656335112761342475411342321164100673911120172132420211450810735273423122029762435715532023444423141663344233514222342340063056475214822585483555213169046881256414538321243164616167451207162124400262334152303372324114012726125115161244041160271445910602036367795228747544602224517240012282333368501111676130521013282122853391515134422125521144302600212312358401023117344631610232141412340066716631312113712722146355531760157621620721236148735414297724162653507011252830263112246283232438600713528606160422774344794634030221324150240561524062342704233136391691053623422699619115464153102000568730121453172113311304427520231128071620918514382449186230528842333127115216173151183435553001464263164504167545438614145315220556149441285163131125511498025760881631010346538236543923281436383505284335384622761156450355532105242464495500405614530740111133844510341171118022371650377363112264340452101861333372177026535731163215135813881054500625646165175651313146253382125441244233534496318112625317638522434912784422261332403637323471223048244017354042501451211232577575280361137545101659336720221763422166862136612375142374201254163261169621493511401115812111046343622152048110333304617225067521651113350062582243274645412310226132412326414142279093690251581352833482242111111453074218341441534510241823185648623313334243111142254742436115211418134498276018118339536617333124501610616751247867147215300148505081661764265154421176306415131139531284434402221113133330454025542555240117143078425130513383154517333100214534284421934451485033834411422414381072577414333221454416760762145925306482215212361437137015876113668223131226324671312261085281395456853455673672100111213263425861530235024426023575296007014123590430170734620225321524012420005310133190330212936346714902185418112432321730550222352353631224564931721195127762720172142626421330265210127441131325013354081251157621814444012610314441346372563462469074098116335111685235512096626525147316541413134232975112211020440705151315145307104511212144312732644934010344350590332368615442705444140415001764335183757657114269143733614429505032244230726122306533451477703527432362601161726667226044259331430131253313263161763402212110820529113425187374221302112252373225685731036473558833235121502753473051255501167071111218224114365111239117084545145687143512355482324216369322272095626101733622726956222613222011351111333751634234441362026015475214916422437206322012202431102280674161306211211456261553025330122206645824114418226039423234421406140531177175631828400608421230333241583312332223708523660241151327315406224554109312432174424151664142124219312634271820412481313222542644631245648512253342073811304434621143220411164775938535675823021345334265391415310133326834316393024052317071214181210152210456835563123813350218368312144333261443460043235142172162931420240568533742335806333142016404212414123220926267263464116523734127621186214115201403111616182133133740734855544635423533302442859257129647258127755035521144323080322228612175112852342726352625185906303138833883393231505517165354221366514551114203753225402283462504156217521074545380411405415334710121612281416241323715451723342176015811432392524814290562232482505522212110233714224103314061712434201252944535217953042131034655011332181035181444452675510220006614321442410106064511286251331443122241364424252067502646755662431460435422432810131342281320758175251155561410172212427221165562345416247753234447156595451141335410520137330115715744881131383612223204241626335215011101334031754328317217381654111842633611853055666128343600385149313110125405013120003191417205311272221702020311213062258765114652060166433326945181016148200421084722326442116276151272714552220516515412091142564369477551575114736711131403822420313602023141623354053822214105105824180521222271130453150508412422304648250246123191164044344740431214412321712622216248428452715335424412750032255722222532472601132140322510442432433528824554453315725341390112361875314873811042313244516335400671002141325542556538310252673601113831413111127622595234315240217655210715337451324580023499624366305463580346237000121147908742595261168402572621835037225192284221403325322762331462323193401261511138710126041323312117163213137390824521688224420432147934181433637622413826458134001134221022940517483201351346210373974545100417347301100115164033643321131233238245513444798161432461421902235153340666426525755110153215325437284355331065510240413563351705002514151372151412534637171466356245361566616212076424353063861331345124334245713740143414614260132162674542852743024345345406572624574130431621843322630254317154362752316141341540887311418416323435515441917344212332034747710526432642532611657521601412433211333035413217010142787649713213443121265205805011126905430110120658022447472634242062062748103035518542633251233302433334520624107212934212333812722407514952600624166641370952202735852023636374511102431236103616577273522254461705365722112051432261401054578894427412864025240557023443830942427110553313233033342425417159024813720748168652822217614471010205382812441119254487452053131737422532683671112716358450272472121451146441151009521654450205118831305555813136446713441961214261952371423594140312320154961693110161464147437142621158734251000601264661519484561246276211436500245470522133244465312211532700430544261114423113510423225520578131132221534718236622615764265002111624322322640541071622128422144066102443172022336202792570261642450718314241220228291120127570111904320061403632620600726932472264317156532410280564451216053370215212126361765347322401123748047476625328332311523421022925423230131521201171122132123461504424177382210854250413240611272366032306212612700615140235741577275052555204642164832217866161225244414642627772454237212241348636116412445451420273151334121551431261031161636319171515055715711155506311267206832141743444167103622070523428301677132441035211311532304713518083318011094556654223118124042761011377333132422137051452022236203711126504611473311411726652645643603634428732536112723196157446324243433113251418402325543354184330317413112333334424390461465434322435826411413413263373104672538783364604416760167746135180226261313030584116291187346021541324464660223058561242116293212272518749873674542062314202080040547137331282513319215403136103423113175025166158413742330507694038177411913615044003314217252111367123317971622134441556183997336721734150470731011954313111550646062097723113161232322234544519659127025344315142238483111153643376744674652110334204094561372860232001012183532421224383161594221403506213066543118237658312337608231211207382431773714240611313797914431104151341020252343222212141773066524711310468836245643166533124873260562045637050101237770541165116132449844242860522401231502541670152145065014424203326705201141868035821246501792156147375112315714142851291782759401333650375925637636336015452613366431712972232207044254423144142611213932531144433311332166268527548232312040221120240325222217161346213106415112227640732153082203525302364252454343010122203252441351263420131818222221251151711320235341142411523934422173118304011518551421153212143523113824402740054403063651564128015030101324159243321235062701178213491623311032141221112170034159354125383312313645546412301121015611241054823433235494561664716244819611354292323314541655545013642508301313724411600431653722631006520340052625144672114520158413765103525430483505649613744566559515015472490261241784651113632354701204327076011836414426524420402767122234151042203229332546003505553140175122414545613256120621541143190003112844605616623220717183606243322152654251032201856361161133535143265315122044242029252131384121931121317221195223317214701256433427021131250514105462914338561478073337644462323235354535623564221718624351443574839121030103593138243007221420914166524253101125717442241836113187671156710047151340002102442077215132024545156001304120260530631151842442912151375010910671254125140651645631231383246166234508210455578425161212763167219502541512611231315672144401102227223071526446206350826341004334186237344111437410284155413652184486646247764531537522512113723255166254920262189514531002303367414105222445224301214853862420027147412343941124516437551025120311531332013701313500321224906334226380595796112220453352216425513127231136408260123114022374274213216227761461341886464236216326803432211333425605701912401196131713612241411224052242737231617610612591153006061714635243114777490322117500522413451613517225333147541669571417502111011522720111532662311284154641421352154420710301152444167423103001177065439302342614140983043115070411527438539610548130152339246415947425381143476732248343843588565164663923423227127411502504134262271534062128478554633013416172254124630621371030392341643461383053251642125324553813620442128434086442421443611353603317373121217331301413533547542621612870412363480478521000565744417647017351617141230525802441855041806067547466235332033145385436248412330112071455310211063162443044272592352155515214151111371119154262230046757514113477771476742113286211568252642834136127478213011571457393913183314115220045403427354382395352725426253435737181481318165135361556750162812344315484223714342531223118745814118500822384762138211000355425122221532410101703325532266350163633333832134611535263441485583531542737112233667471105228120072756272112181139032677634232105433192651143657300347351532256352811531293331311685781122204134324347452415235244213111610404417355101737621164263363164702653423622931482117425658542113534013582222217426731324348512603186750552454361130534772504333047102352564072200346121144252240545051765120624443973614215072152431103211132843023545367218122087119151535183142747244546454336813325527316347084040413001139102475581131458310120517123215616016837925112554101532112746314673313838731446445460254341421324016359613417216251424290724364030422464456112263512113470134162264331432715330843442210210153020318306243200719316571614123462611147325488155381320494418653412620802124443345241553174212134251464131041232127514215372006402312226115226223321206161141661365053212533502104215858126614535641663363250933648302041354312622314082536292243389051337339585339171041421331132307104123161622531122354222343033422522460357025064651051352415452621882702104185284741252121340566122114381002246637016626317122562327124164756824653572313681186331050103320594911651431511271246386193123151421881477513230504123212078625526654627132620101165639017126164622627215261623613681213148172232511041348033274175671818140521505511453156445957342113754306701393425501693313716732100201441210143311510133331636714444325704513441333037011228117515414377218121112123124310512602352423362648211215432615742272246354211614922237851109980112011325244453146523251147125364342241492340718231153294101248143313010002763650256820013141143413053071111521463846030303613033864237408210302834456424333443260155116600373461352144264072446541392320175135116553531303142272282581818635261343032145021236133864442307106504664525741434011231035292451523843541453154131726322202533172240230245015117512260560161611223161752321147916403076152243683773059126131233613626650253132314613312523304534514035124122743424281501573355164525283232625463822325225405535413336233103430785035153412275427542930113794712115334251462113212115531112272219171681112615118534294003429028196562102410238622801137532122433853281325413522611386617848411859135130514213715126750331517276013353223227256460258137020134535011229336308704121731524330735041363407373300306163512254021223035452420316143695133376113712275160342262427596561664234564619441102227724450738473593543243271421637413531734227537133075623831323070556211084311833984322311843628416176168244273234005181046510115325104429235115013346364448975224434123514884142534782943051129126221242543032121423765114043631646642039614101015091075818353123003065370090912445522213614229139461144100414411102306757002541274168243542157212514372272924342221007683210273112624329193352424254755105838242011034711425562029561634921383313031462378314612431475341214844917044474625440394174157317001533165503107552555461112674260167093234131111067803263231421245253352740210557726462742323335020122766346782112914424154245125276062815613337230447060403321147632012630113260662312356168441178337310576120355038239821411808545554743771274116177448224511436467212552154324752263513525172933916776112756271604863641430301475077152125128111221206762740414501021471123162136625340202755257672236527808761308126001151113414326121106725801658243131214511205143961109404242021402345467535012331125232063337343015110142646521416622711856244552562777418253240261067156515244231245206235261346430734131152746713322312323227220332652020214147252176632511118063412656011520002522306104314882117125622811193311144419428223465516226046220132115251828103481343630573165333532155214683609133731604324212364445541227244621251445268627510261202106125135135050504325127377115273210133701220452644521465844429218451391114811341061252445354315414115032823541216221146152624764223825322011700102321821507131134025265215135153238643177514358121116112089355215564711126155221725833212229218068333352264497067741741241144711881136146364592201130814130220420111373165511843218023412222231031126455292431647125653683581015493254904124223215128441215221822056370456414623150282521312550448126134903502228632625333290113452512040224105937312251405223401744152116124733105504485141001761113614324311522601251223201310722050461310754413612132447546507353130028150303222168715632446534313020883406121216132101723327051713421181326104141131024856072313232682624151533348234933607051414464765302123957471122124424320230036232093414313361226412245622533142331336523617308622814161658194752875485625444294423501433410541602013505423512534132411031656770915546341454300743171224670133840086224245467202126126793263251320901050532431265333234118121242603252512720131363044052530343155424613122331362163328153071471018240586113474162277235061130281178135213364542175521164317232252122035421862453121386334021455414479730179500106102241342165114841422149161320331870554486232522070014103121221225748743738047017224511115443100722120477740251043767234354613123513434354305040926223024456473145525528447212678251444306222116107713342343134355086170252351163412504244122372512642032112642122100314260214034136144114245426624112914425823680146338614131305114224331081341203426420712512441033616322311337316514561485503321111150107060372313522221211161113321453125614522163152121815473205315341623412137443422432142340402149506714437546370210319107652137314454463230654611235033765413113285227423742101362141142215327221134713123233507327223313538219161861412661652514324444130394100732635344222410573345572324761115321763534362724270147835562150173215052471614369134230121332331023238371432552530124017724584257032332052534630421355255483327906353553261623145143922414628318211024163907615541116134060301214545223233372186051260006576613840702113721414218565104112525712566762115571220444213494720902216222313336213321147115112556156155141231362111143407213232812552012553472920618117425292161726534304046614219553281374145302640243044604404223144015457623630522198071288361751448212414344731712121550942521141217427254022222122278422582542304622124306927130826404483524362050144555226223711917740152711833911433021603212011415862203431020945481012631605145314576133134322374221535813264011914453406223003414161530323537223920316353766715624180248344653620422292771494447531520502130401115334325951347215524598784057624352111151444421268668256463524021202247816173161822612656459433732301210419572421122333715433136552723861060412821534307224215127710552726643180045138055655642273411467054090227761501326720741702353217142259171335113831334426127152420634335394320427316128811681913461828031456526452152880011321166392158317413401629361512612833433535411776062622271174212538586382527454615287368802263285755712124810111765328706300657920172146314352814876071863126254787453633122222142705090535636154822154111500342171207137342782218653241451073417766312422064073232302064123223217843185703171235311172241265114160643610323032055430252518268588511434321138822315916324611114447401315266411247111813518165716310764573337323685137212345514253534218307342631751137218634315613121625133321427410253223836231045325618230441533031371205163327018121132223128354172121059155413211163342023610133717358838214157461371247234205135256034566617511225511732333314457136413311211220252940250101042213011713001241156563344732614223670920286216111160185323120601331464322424141301453806671861144345440271405400512415296846228354433363138531123164448051314932962251342415512253332100372245161521411447377972755444263119241210522426316151254511325313146626061223573110310144151764104661283303383452713440574110226371271805594174671515672173331415264315418520280512015134221244212016351580721501340446261256133878824515834665511036171244511024246613756173116043221241741142848513850017356201478705553621763054310333214015816331125031529051565413641571134902111021123242713862271202147232423376182530264122152244326626731752016711534124334121455121414710321103511738231433810421157514533141235537101262061713551403613610366458231416424325735223418015714362212106412127156159358305767072354113160503217144232820354718544710621755805235377171122145544314341404395486611442484145136192111197406165261401225165433354488805451539340636324532833921459183514141513213842095311574232525104652122112113424752613485132243561141233512544423071342241875733147411216202031111380817611121700623146151641232852754106771995235125613613360113036363114135732700231221752644244422295125133441132232715067131212295311040462071114125411183253715361118717334331031114713540124470414731512322685554920247222243232117235238312101272135813412135121327314836416735112312265210101127245121510431361140411013613420337305179511777153033211348213561251265234435284480526336011210320353071352135233206710220723213340640126143231134123142801531040001546151614462011114245008414415323454764183202704205533064194031642643634421686153021203312534203043479111571133633837308641410524445514456044222005255665434373058320374411793135412074518030218515213032481322002301223252880412515611135927112625265390503220673340652534313192462643220425222110011165207834113500031528114220235222701571482131144146512371232024381321061824983624265627152145046713232824161211180121850313266524434043371564224323422823210741351242444219610051535638015023435268129203516831289442223220380131274117636212661220663350282312743228631153141234203452127174421553302024566326101431451262046821324121185777563470682124715365884522013231231351537674574465422106133156311151342055354116330612076830865931147223271539523321257171603361626784855353622552024562571435112235168140325731142024311234212431453141237764341113312051114132322802115411055331333292216377340115125006134202772353047202608244417423242751441522412316755563223158701231532172454921852224345147564312234125235481771451857321676822411611431127421428813012412820661737775830366649476287501141831347263415171275456103576408438403440202300414244221616111701736321733311100034031441433161288653417713356152123721311152621061324441300651514393666104310531310623435465211641226847960055111232155712317161596848214567161312641114165007232717853130612203513410452415034222333441416323210452691716332125074056369167546234276640422336029204564618532484454043233221022572601837002272432413210370332365510257351681122601443280416052051774310914000231345712655672221186318213653613612514137441741432222332605453925445362512456832828318172563110255312656212445781732491023215353345253166451340391021141005313016311120612241379634882355752813541150030146222226112269146028003362621011430514152421033230153401221238266665242527313606612381250711361101353842339023141332639413312775110515171716112334705101501721044225386275231223551235530442150727160742103645183344451111504763184179242061697047312217123266644209038530176378562413334336217111211952314716351452124902442183512122101214771036632777314233557712503421113433234327717330121512220811312541622622663121524235713131211135322632329311113013205041338631231702715143440502461327220540662211217024118060424313034652545226151660018516271232392422125011532115351314552854434120910241263151311483511841610602403213262444753924414238400511571351254846435501146213440622638126943601175578525180050261520460532330171157354219138251425133629155062733573301703331003644853513147665262075311663222753218332511512762131141370527432120665372622143633851542505024244627525345680161167315433134443401457125684310451031142024341423710451624483251452122137127376332449842623417423343044121183323532114567243127203315253540303421236744214115150212364228537948621233121538423136002134011856111342803702261030337641645434165324575517500603244124121121365325412501423110827483266743716014136536200213014643537196013113296765253414782332057213130622633305151653523447412154032631041427214326520515157105665223450474526752236611684534321682420303254504401326129931632522012127111123257151311251058176141311223872101110621418168668115226213154222301521713046223711380753569441435227005115482112214184372338333512402632140274471010235634094850453643610317124846165533891223136617417211504627140444706516806381106027217376054126513014026312140113117532184435352022643564302604042713632031223821453716462042185433898281336682320176258470613616962472665204111151533625561402113722120121615405626160723691363462837742174139405741137311731635366309715642571122423345627361512462431112132040131153241547311642440763154552441045154125321420024731211221210231520141434145155231241453440540240646143947450432210341033713369237341671603483111023403254566257002504460526236144441530093143056091714476711875053441184661056216041519138232353561672263442152312232768462035402024643724514127053710840311467134522582642840273551531513519433306442511906313121425123611672131284218406926100301061733265365222553361634907152412442611156752512401548514139140535081112071613114330024542452502434332149407741528030324332611635461415243434752332425424311219731271327999677240164321414212125105603124723422244401505501250330313318022238553250282134775778101414126345632703833541714401165741138103213022122133211354026853232144320238213864208641421337355532733313327592532277582730686031421247124710323460545190953347013712642663158121527224351953225802125021212291110542052122671675207451546538343380303422584633141317514124092741167012031317140753459318527281154551842550162016313383133246611163502213725351849266672217276841800406360131252038835626415501904005135118527456175042151107837705221329552734034070631100354851327074332747247001064663234235214244213054075214336678526671518051756233044138636221364622323444124114351551433992372194111256636255132554214742583038219712367222627414415145175422225275534887460864660406113422242843034402011412321213477151340562124232431231911832837042528324445243541445711216433340001018355564320744203314331521229165469021314012402116163834344230053747648832051430524374712442331510373522562283145257225473464756568320246223116123226332976288457623211341144432253242464241263462334423531718465531563201222638038123016442141364224512145952411237422716345320153423415761109377141724277332578081103288113002223938359706671432122565514097482265432038306131334465150336710214173122153041461715246214760321053933141245332803725022121252521227541334331124331523164361715041367695912556612833522162452324616436163212001817381381903375432535780691348001342539128560558135636032023384120812225131315503218338331125642150565381736015526346050272231792133915513643277550024551732158311220506321626435851963530011103081542212222221578315963115412289425647331707582182542763165502271712112027046544521214234123121840300015156333438435213003627331338618311021217514218444306222542432511172430552551491214212621313226436359820245190146336664318503392282415976214115501100094421113975192121317563273134036247343481523295255022145812384164132913051638615755515422112375221045721421322136213052686740043074151512532514331112022349371511150260262465661440745332202823121403445631232456255101327514526233147314161110334448158865032313823115445641504511328240675342280690463036241127214255772231132232042238121572126118488267301004420240318115229482171620347164596510221335550981504651228475465737325751253013821313516182711415217339411307040283715363743618106424012331011214622084859418676415541232411124564206106431753020110850153102131202921320538470276341140142657450025750321572572316467161900802345653621512651123275307112514944132822356150041514798601113127763068111700122811311832171206410423232831102821521411160040000561240040511777452029235334246787211113302233114053123441334573442204126047130947141724279231112702170322726311526814671017243166113171735715422646560912811253424437233544116421192925601013745317467341212355021415521105855453760221602860801580345321833512417853432562384417912733112265221225123701500085136311235742523531732337137275776432773232262153686257322124155323915543477423343140360432218407412135243661231567111304402130102313441443722311322101301365205072482424134232573623096132617233358724391863231213364121333102612918240327351038274112561756154411766021716315214236331166504526204147474502114221712001211032320615725342122324864562350511225015655251550642605351322249703411321341243627213373171364374307863702821501520112163212215352202303462523455123245354621359212203516135538365231156210266312310014021348363800010288721154212542153593553468110410082143228211338623702112842213119713113334020658661422753700276211130438353350764260933352214140384108551170262702230278061522353216369710319101213273533315461114312304721133742522730195116333114462163251721177140553765165207323203408212232162468575372304421407258170243516783422566733336305032328752721835163313628352682137122531341706416678630664108274215433216823141224311472011972114114532216513446674085105147739022801120450133484070182775741551962562492630225242121110642153876404078460151610702333243011425422134396133443333201723346696443717200225441425226143300523301825163400663640773235134415432533120452517223668041423856243144134950504163683635423752555225337312355812715443206430811543806121114192421201531506214633598522177265321537663125310011504062437025429112201363215267941410132334714523785719154091950641632332229861116747150621732251507636631350296254043313561547126010163301136060236447014231224611843483623301288713237957262338431323537491225112143310171271710351453135325233213242468782933743529515349131516245100338541229143352624803746232614290302113163142215115240326331415612522741633331212225682724141239422132318940209041151205760329155155220523453271326626133353113423734205712692635315160511341224674021435341534341312502515242463445501351230228748083451563021258231220411123503456017422442021637232211642424206114849412535470351326393060431542523513247046466161548906432112303689175343426655651017425124047843577559076112404842420541114216150237856354571182216197165244433313414442715503766133118241414202264512731423312512264076457555155114482176774190721030416353414344739521111422025335011632560115433173080410112225227731009320322731210203741664522852017324387574796536135884024560214710170836334501546121393133455662333222526238137368135321652155091031251324062032384453686140541647901074537014421056321181055732353021252634564361817334232314120377632550601081266332193663031288362026326472345707034214010961556034561612864991122413166441874174463615107751139261465116243910533919316157425074208603111328531256614041613311456635380654288061216812362372363841583120712634357010313253484655336114104000663615132460043472312164457142329521141703060042820721509331210200619243350370848242626112422244143801235212181253704005624122041518214453412335452411401131655313064536553044153451002716811616206341512185321452516228431336101605065354434161072376013800111217773323440456694361064713556135122652112348641600037261214022114550630530325713306445088170912451062203532213231412345417452635232320538914014173032625566251338440125156019216581040221727764547474011572502064236171606063208472331263203134541161323636447004641434333415170340134631443646222425333153241916771313367113443305114912126644271122213110732563020714201218632522361210242431153202110548248312157408153314661282326000111831164332651574376116330736914541152625126034545635242415237291611201629738225530090141421873333142163313321037571075310551170235722240129125733135211001334240511413503741246160560113122444547346553034024515521333514523712742653733340473937119217560561010375586641254740457421329242711131205124144014391343117811381153661234069325302532202643244246072514566074519332211033231323122026000641150375052450190344186151211115122122742446026752153402441497544512335358453672481610633980162721272911255522313571401001263819154214161612046033107141373145262837343531311164075590163653511235561323312494252169416114637406314448361531243713614712657233020272401123353654115993361347027454271571003430454416223618181114434342352041340323347251224483414248302474411114401154532281612063122204667122445161442519649741432715522100300643572365505356114354502812526212042122110445201217231656342855694589004464215111511113251265012415515221611476307234401313545463148159323400230135112157140222613517012562140454227453137411207413132392526522546917531162403116413143452034415840217203523826341277211827744626477621204922643600373742610523623361445631550862561131231640021170153135146083543444705125232026021518540221567123144443572815432343131102412421484221571236254561063157178860112610001143259654448154431810971206265255352231250122231425427005180434202112649123163244428173675011162585555171552010332423118823224511607407594217346521272443561046314822303413555421022164642331426533350682231241212373224613711000341235244253014166647156644095518315248315506122401301413234611225409120346451654535251131206182759032248242034671463125573830811311032245052545642611115356614052606130012135135102193871481233152522390171470520229128183164562512543252717184771392353720315110452114788237320330327431199776361125144035532602731416117145300210126442006664435212171152604826232804207632261822220605312430753403724038391025231123228320051123215540472112462126205155201626861852044762406053027315430111677232121557443736636140430110587542174308224049522505442292181744343035122536215121211870741114150482411211151211343315254123610741131688017311115733633694413723513137221446237222213014132214424335724334471611103525656348753142356312012373438527743760604173218123531161547804522453449932292021870420060487452222342204126524105641520338612916311127281252131273231418101443445310243311017419781251101633733255224715154371317404364643224156140431132405732922332106772251824263213613617505828685620547143131036132636413524413321262321021432014010031343030054641627275813154236242607815671244132411126324911332244742440163353527413333041512328131730634611521543262658824032168663137015451612455219312664562727734153054517136521038021152433673068220125863270512143163417241671556122481074405238641397595732263155210153321342275152585274154213531347932213714565023164674113222132337502876133330101257507154114051035644102827245635419233745361262528134310124341947413405083060870333275484157130204384411675277128382463001323785000513715529174324013257631248520226029002210315125199751117327322870632153352501813645265241091423642263216623426141453242322951040033042301502721342361442533602625142121213161453474625084135217503781047651403444342516125132655080820558423052432330354751523645723401221114208372316232233561431833754140671183022203215467724662600131720636538294283643775816175731403517261711134670030289502250633115140258212301243327336322000477282383441021212322515927312423483247400112431004200104680133404711105674008118211105091226203202825371491205652411223582134268614510741728623420135425203617571112155872802611742620342169513030820130142218401359521202161431554174112474383356065321741631461301573534320548245620441553145152357018132544236252380783133701731621541146425401025253373580611022615613320511137131349101841231316321223414514731761112225012859001249032140311232705010522239307702225745244413706533179522143041727131553134253290372221223231171225731644260213141611052116563150120161181122262142606414704365461582441115861861854372153407621730731141232024814613024216531824007110302432366108503357134543819406832426148395364436902616213846151441715277220414283182416473636202117364811720230752175311712442214331321413276423238357324831096252425536522100334416230247154335910666434660517134233400305435415352016345461134623034151344046121613217321163564654732451545833416050411101115282243624071342113210883219312212213241183213108134646111350211331540157883864440385655731442250207544521524471413131233290513731932353114476470122921341623511219682135345611268125336233051612873328557205128831142742036735245214255713736753626516242911311204114663434126512235201114128106521471209140511756624151450401352718534221210123342124303301551546401353174055542121118132131046351635404532390867010301422434215602403450016035014293320061105413517814052395612124622322824221473161101334272136744411364141513219545713014224423260541461115063142351660165013557212430101918618435541345112929007372011511043940815441322430352230507134821141522401110346331063135267144115245282613505064380148432213152834110857637743130715507226731133742116520616145214137055562314145663296241313814362524758335215183338023717020355111730351441173715201252373238661116552240325313550951770534325625141221449461030124507324036102027625224046376366130714521131653182052600460704424303210385334539511106101574282401016706132359119826537114130541736669438312254811411438233378313142363044812711164620754475259722217226315218010170651523301855462115672138576465150782431127151791443422261464312823602050503280544754434321237045747653854172601001241429122342714638161067523162441133645335221434411182262512160141559154274021125173148551052842220032136245550463101265123321987581612444016262626723641492127172034216224421324134844236105312106158324180842671059440281071532111845431031104236827434427244232341261072277012223222346414343242354110216535150653403445121401145844451183715553510265306225011255541426274339263254505361642321312022127200532143565056002218113211231330682456428671115028333108680225510061401407611173621415211712211212031665742553543151443223391103214638511950153132123422449010632424313810315176512321554342842215403560812616744857424106254423114388356623232313017011340423673262026244813342936340156604716199144313985021434150242220462631073064514012856143115973101372662351754613715321023741346326181513427351716233647525534365814602523034315490250103115270423408904626513272342500413112482147333010484314351122032921525001317121382145111226423601223412435130548660142721719845285096554240273674303134213012744524311188781551920151347257211111737431406011322635311107653314329626564260121814606491231411203033271061704716355515081144485132006431163203357887353021131321832473125223521111815121372314142264905197661633651519315536164315333732342341980570142225907443615461743207509023432471884146331043534125672443241117452612225372243436211511222212201125939116964542656435326347640121581322114711722276720081544020030713391423656406251426168115256554519965350313363312326526814411847444203406482500102074509113416351328344335672108613124462042113351632104356122086112948510326413723605221008115212658326212251225371100402235151736215182323527465117855276549270123764031824115244212361385225894121832211024103872154200821544213524252665464222372312582136525840442376323448330123637150931283863625526461111124332315365141247311234632113911481326429119425050730101346834216062141210331317562341374781385724634873413602180564121233340114088659621510181141319051032416281448216264270442160713116521252423124502665352123460274234249313557734161137244340561215216230269152308515242441405236462157211781135358414210263631524211635121448064123311274742224453728321123562216216105251220681218455165668233365677893377030765884221430804062544561813737432323682281373221776402162211223544117366324361535707160843262242245120542518113413251840450131349071152112234433700141730367694116003451040414232151044413072431711218140145432456113241322213425205655503133503437327545038422571342432654336521583412328402692536230376141308721181430203622267253324162200357621532575517463057742627653138661252812039389653131175152754952800771472118917934527510551155416204413411086601312112531022810536454330522802344403663704111130352751545272334273319932364560636891068405657300870230011423174868321586734816903531118233227343040243936413171821544526113561147143030110257724157042035101738314316751654921031853237423202173525292741312751863823520358131340403311515131281417475803115484143760730337215142502554333243635917737153130544008722313235682173134451490225174712405740126626402083350236265144778504225026231358186541556320434724142614171211154223474371352185762635254012975062051101557202535211107163324538552855376334881249587334278364325030440661746201453540123421261119616328110310184107261404050657164064321115840368321310126004134441125110826530213542172247477433215632212127231012112043653145124475672106121928411312681113231257411342286349092300235756313243316346223304131463172731241454423319281211731135466346343352202177281428170931736533652592240302725424414402352137464254235421446927214751484048352255403323569454433422342640527042082755553143623013001623219816510243511641153016744535732000162200395166170223730525235123832333232553212181134840005514626100732566300260512552545048511707066432173144516212224502452663752120513315211301564132474434302325221161255305241201420053804226294821018540051421128472325144462561252644213151265344816102623482231120165812171422275065520853514133211677132222679244263522844123133243659012213056377922376512617117156422027111632352232213562206568152373215734224028036614772194660373326531069421355353366363413137376521614522715012811292103535561013315204308575362662217386012241246045313615543180545153444414062222531164022704490403100350447120172330346215122252113359970780346131254203025721726161370366115361640241417370202122217102445341262274630210275151225718050214110464433431224331043154250626382946278683231448572733821752255222064437143236165654741235749643174560083153322335374113824085237131496133643166320116015441215222736525436103212535561124443777254167517035462571151129243017234502844683521324042132385050123260322223905932642032125342447144170346924305033212793256833247827794136140522211428113326514417642542130612551301508162367326213524422130523621012325320607802102145401073510633034048113573353436420316546430216315331014382461244143063626319451123140355126244435852384528221430413230555152355231454412443231371862652216456031532031018364321440711266452700238120751331034361701362324054155151223175102250372012642321811118486417005345101224682806024251045316318130613416812236610534415717336245071300426110221013230190361111223218328343727283601281031113229324914123334303583130364145141442471146011321260041427462513062535311651246117122441164505123194636532560013370213106666182122296224296513027546228144720365202204235773513223321314605404331692054429232330241004223116216210648145111452202495620223682626631484334518335062514167132704130134225208765231465393324311314013240430272365503352453111448874561515755439224850153543615921051465663024543223557833210603023446353264247784878613222015112734234254645216143733337375503636643367321134217914544821127112502342101232551268214111151292161715446531246172507121023582546521042188104133047214353352323331454133802326486441447101734426714182550281244550222458313230151336125016238142101120455054261515230562280443854561934111104553231064020515232027313025212249135334734132622854666361010730351758612110614465528311063317127231011324645273225524124117167374321653193411151110282627150242633311577414253874035365943621913537325042151123741122400516025537302532034250352519522555629234133106111003161662454243515023437235131351357082143154293134522550632211241348399881414831178253321667115154156831341141513622536149441231525663132417110013183394391578842244214061221417345011829111231303234261153031255440644251122117275521111466412234666834317525610372394814424671322252306651350827117107316441138175215403615207815737433093654534301916219614114138144366593731670214464242636360732117245728527574193728615447207303222325452836425576737317153028225513615536473161664254798773326475115432411122230667251721219662321041306240224514474521019845381413004637165354537361132155204211203832344313860404132032536007422944642119534752841306025027223931245245142517122352332425343244217164322272012415211206932134421153435802221192260624113712019821515147257354305444114446832245500517222506423063131321352415222464646373129425101652464251213121357315134024314636520013331111492108611275501042013473483155473120442220422333210118711055264362747126216680032746321824521774112446423034881132812534925208414237611815641821331544852214632422022197013233337302214045170213102313415136727010224613674438743114340341911371344444415165401107152832121734462413402213272127311048291519232127051123922812145314111093233125847827665626320261824390466333750600912444219822132104857705162333681844843455123172353823152112228304237141465319501671262411220882323475511612235331233222635335164414353333439324311044467371217174342157631151209122424890126034545851524334474577506675021314313021319136237719432234583432207666342728245265211727440984281430563276211062320016395135222064505424221212326411222811283235434626500335326391211642440203325112124436511828131435121425220411210458415528303732445145322602431233328461734113214155423004254631221161256248264139825021347353104015001261587155917494923021134686324856260852075733463657651024521112001312179221215605260636131100267311744290341205875501161063041312224540617561230770216042424116120716235121314186228344814245887153414771342562181191124184542941342336631304672014824166961218218122543018301925535361324761626760311023752950347144122237682378510335535203412835202611112164027201440412140555201321312415096841215241601231515133731721276734656201740564520852443055432136301111153241112374683945292101974490032265332541136321032466001243186257333301511331740201203232234223102883622437244163024048477533320714313041333641265411335113447150865016510431121868368101511727250003531323215564759416613140232220122115521477371652310042014331321112521705331041019181813874531753421871015125543222351211121361082155366552350157625134324933035220601223530334121592635325705313519311863401231293303523429275456002551935023163686928863344667273238241424170367386820421512441452642674432622022327443155210536272131760271541462116234321331164125604215005122334467242762676463752251923362422502023034582474224335013435046547343434113015612767345314856631166550143227467201636522034115326963435053341251161013242273202461823535726355137172463228413181233221104208420033464344253752124631260620361125102352204220134150744640684365717422031253723443364676323270626370054434611222512431715414533233611221023583263552161278031549111124706382441646323204123621212701427451544156343212057803416504107635192450262442241771171537868321534512021242344414014505304655286451431714234315323489142041706011451027663552036321888153361465151341802143422312615474232782917222121255125241004811143034478895341146242830237255848030176660206815121120172046057714162161421114536212652611552788538252626364001225153586011938536213565821234253461271144177091484212217301120431061424144270436145166512432301113624325210233614520710611429527235823163368023413401146114183415316662006194335731282280101324711520046172271541545420036500511918562301111007711732453355837535142234856661224450812142811221679643517818133313534522379115512445833611011330124553740754134581621445514414526584610102105613424446537923382220641812836733432525829142482232123301829400116061453218751474391043100542813427711445742656108845161210253317743666753139063333212335341366255101186460150344414284445021502521006283216310415611523624282220174834618102474951374441113410127250544856313125025153445641010464117142715353346127123432441742101921473406211415450433035123123220031141033290108005623373350149107729637122123316351524202943157433256240902021331682944321230456031306797126311543311066336207153125316034016050631632532241654557205133231691511280024751023202171202143311716252272158062246355362332461617565672426053625223431532412306215327032224402143522253723841211155225502244035760273214162524260071714101525170194431576223066841257142371572156541312241104331334113625511121853327321130253562348525347260115321466116681046232400477340802568214432565104002057019162732541342312120121506822352271152525640104141841013114168635931522263242155653252832134102791959746033081320422532168720237062450455314234015531413053522150110322733046414223434152522233321177477317402443191352018042316921433521342136305328402388693543241155922224616700563332162301652320218324172067182001162870215961042644464203881124614907122230412139232313164434420305151403756032203505650312186611415131410421465637054136374112331196132233494143345523522383206035463323525924112115323151302652345501801673174322261170926151729364346435165422542321221556301124142547469157842464175543311210531203111326333141167075072924147453477256223502230192133449322113412331510530761411841643323110051041313327232634223184471010111281312265143312413188272641056053014020137281815535157571676440321233143545235668092263123255313268334068272136241212250486430623301332170403214121639172317081501043208117151423116285403280322145463250434617551132212213255640121717755212330350214756562916464427340574166426563112650702314106231400121232014186725234500605030221322683465260522735322251332072141504185213454061542613127511241145280112451271525731604357144511541537780725124193222124306122213414957140451410150236677203601602877463110386104333342332493714532831124515761531230720411060082527134600214180378022141322605015512138348503638915034602281224755121833535620125204154155445418491405741648781104513065774635247119555302512631073114270954262201237511311630233430061342075311313366431095212464723514132123452035426360451035321021477535011184130451823196122544553229261484487132436114334322263016985066124460553502422163355340230141041124311821651144173031162211226341660101184721638117444366723917311261172653370748161462642456143554423232151951924265211714215110376515708992603114310028131912419580426100042485410148269380421501063345471227353414817742494663422296872331745100531277052308796164414100241722255237011591738752325511311033453472133520619401351255131262485383733524118100600100063022001421334032572642343425232464725569530035163296296130675385551451461516026181151117333201444312137912004133442512140361171121337225468061423313361375101436571133542171413081025106741642231561314554352579729614342074360330783530603213501377415954323333157134625324252218071052032132145316187132421854223133456281437253116421544344545415103232765112262933341047221015210615563111565731063043531232633232355119455910530932504073821011403010155123345184315217450075011101575625224262241223431105112262233120399266404055230468568421165225653212563214317432471221148169838140521414444614407321403322621630632025425328002316005523443224122377312416351464253008035551431824355409878425621331200151017261361310404318011621061912310762301367461212521144320830011031114934018113279120643431015812114222023454184564312419216097722526112421225822450223213406415251465411643474441041436411265082215222136871413451521222072422150441028814366022122007150150252164365465227165322300351151523406687532344277311343104023475702624715367674151789436176641676131023531702119631253264312213720222262771716522551281472041544333611825415411617830302689455215111324232121032141829143309103370145711622251414632413211211360738245130434343616003412563750052260755330101433502131195751736214522655161440453766272224435539120590140834620445164452234264322205516672631254340234502101503246120730070416945246510133024331520370121911351733274652956159580731115544416153524295421205615855144727784035145648380556679274323152151271083145110322148531437004122114212212415302323115395412632434624206321320630308483140443625533702522332526335480530126507431234120201218940948146951903002563373566757555171556140123564550263474673416300104333323283833655747753512722613931984452031511111116203173235431412461843111632261450532243611333640701735262315454724321362715515149388347961466263921216358231136567533710042322447431312612664323105354344413561113116524074404240100471611324213584132621326639152825433300240111221114805303279463242820168361325641571422557302113672111465155619122237447632105600411113635836305211116125132635314031244424667307464334172152845121202435122126115055542821322356226211411364228238402714502205765084100160574213591235611052545481311232213014171264279627104553624766642282221334241107022940470331535414126624247405035461369437020615210325591483410104220242423141243010110829616500164211753001962338215325107349244322517412737824015334289593535412127141322736027473350511164344735551542129361156182315623413071514912376160231153125318603713258073208157363826546812815736379038024345926282651251842325272634241124214221135317150630562292634622404210214262114722304500465182612262026666627426584649142366316730644312011193577522609021585321251381258715783420231349664130014104350848127587927422107141870135305312444602122351326661601193017410117712227052225927216231643402147056233314244534831276422254001402142421823152102140783166393347541131423073380674424844953410001274234622605673361016392220821241266246516450114032153715527317146420253154090412053314262547764352612810215371651010262102432256131749228434332983312512484824430511451414249143203233321323218528341319146311245314134362258005612715541442713320523317105111589885142564124503707058019191437535731843281012185760564441329542722248317543211713240320412060664611013346213652201313025426320274422430411344951255325203174612134688084440631133412047223240628523154012298101821613168013124303236527549335766626015876314713152731520187442475043372612212235159325231022150843240819042755046542001422522512611632054645127510544328442303714580325311111583110321052607122530523141516037703142215147466877331442114210274410142223241345458046029626104634441852024223212221448657482216256801311120425185553535564401565966731331143312352154042342521225916788637867421619222476154643312411820512332613236221821743416100335301201642313445025248017031030675064021146360530310371162488230455214665617915503113260853709211043225363357267354462331221475033600935322355241756280530171332303612581146733450653411214303416431723034429322521102002313660432135509271101480123029443050301170336333113325122624542416882410585121412274935402057345826541238407240227783426613352614911317021823703362121451142080473102151604152345225795413142312287062271015793071514812213620416042571812062221172905722494103841442204033841378128302453609057253837441365492162311525110416623503106311050728508762153372212160263053111832315588238722437279125205121347654238132230231614543213610137113031189841112829511467062401652322541844327113510412810205134504702230578374342112620438147230341419123328217138162062020362271706590921666632929623216750238462104651071206065276211602335361152442853164740313221484764442737611721525644081542216211431224778125236021641323502321135065253020765321856413431002360635925112321313904130238112615415211504531313410782322311781324117943352662464113159845300226284225301563247931779427231015116780424011413019537124382118251025875252519204543011222136431241427440116212552176187374611501381355423930304276262312331832283443252141206462183144341013548615031240196606460233672612002463568525251331800413227214004133131521700080322206111231206338252256123726235317613524424703123450640440234064353682113551470056443215020301141054243611125742243333216733351300324435100122827151133041072353171627045042343331543162601233121013447483140718311461711235232145845062208933210257313719539231151430312203140128025619165645233872043815722001512111221522712341120333037107116112420282154789343110725532319108144138142454540622441822164215143102532165744041845150083228669211152059270132852315233155621931276204807004863451103136130084531304013525481423517600423139788705064410033161225231133111675461112151610033151463231110816291127210272125303160021562585267153411331227153114101450742846632323231332131216459447618311215201122255221231042672130243456642253574153142638111244576003812511331743115676430326161754461858481521227253306203463226213921606631155203151141232861535150221406031417321473381173486067153225742467527434350549264361037747251515486456656495143651724914313422451122201024613331425570279641275002311622112247221567052443626552507538567162013222421741541443223572109132155512103216233201803133631121331121251502532245302051026841743466385180615172234210576243044241314260556314247571105082424347181136720651333724424321960002343152331466275841331316432021583412206608235276186535186238351211554215264753421180444037532113105771200344321771424012514367241124771451426442313565161744815462113732351665452140062221085400330409544233802317735713120802971340143697200255406254111142111173639033648233151613613433135252804511323741317432412411342128110435331461264352116013242722113943285110810663242243340778304172194916781522451297135523225756310107123512318135116804131621107168316372042145861615131322161067041502440950220306112433080503347238537227247426232464264716103124110164175154385465131771212154343163254541140127166153211141543660221142230931043203520243520219722337442342326026227635172200417731361080105733041174123426116227104553345312269039140313273334515371142640311136337872215231023412234485951404411733169244368810765502444254364256654367343489251010282344582310381144651147056224913102317766908432122283523324671112802389507133532152241351211230835654318418110249442224413763790463525341176143162427316261249633801232450707171124715050361613633282423522115359220341116341572202394631335651123513611253747175213633214228276544374496411037341123355264537552501043525802330861163675110535311511385303781322654420601343112455232021250406223219245731662312332416262515733444130822515214654651207410527456447508706503884030344321328367419481719113208622471113518341332001201024137116501422228911831481634111192471412841348216394165602522644012612496365656159550726111133333312137130135480432883101446143341252301385324671640144802161362305223292401320336443410246016110157970346415813025123334317401114835415286433521333221634123334822417352022304216746871228506443104113214171147872142140156663010521413032461145041445752371801411141452062324811613513231463535032135413198314163112635155141302037313515631284335677139223364066263340411511211351613504631114351066414746217523731543423281116615824240315650113751775434817894101226371543525732273421200344948057172166731163362000474322046647892536070336070576424821630274543265031232224315681444294716018564432032103644346223195522012125223121312312722308201766182566251535133510161125084318432026253140424606218846101517223222412025543573435855723763240442738044646082382301437165323440212706216463093525684331330642122006400144311126616228237197432036570281274936407335663442113454011114062315653741315466293102419276832933615467021723221113214302456800183027374141624416685401231522310415421423264014214311030216651205324246611451115313235236527972065235323126142180452702026453153304310415428226462426242843458703557461214351437180972662322284907145246116023064220543063043070145185231334213274363122915370924143305434127168424712001087023233214153543661215450011211677309213323434315867222260864124126364334143514252460271220222232172367430320142251213311256316262868272461012333437187112206155215537164404340213361518321134272025076272463821310143632430362103512043314333210412757112513235210116073131021242355428425435232006310410186753514050329032665057364413225266152163323602757378132518426810343574371044291234144042134120513269532171260804304250041323210020107413414274240432581534348248281162226022225533264731420338156362145361114838111931041259468514103274083471140922730514554314334208273043257311220038339012018112111621102942406235254273153265931141345453712100324536243621245462303562063463612324172480137151227410521565624604315278718210223114285801650733420123411442621254334604116465201030227668321630861190583572261242552372341004273143247205303652337414135142323411218231356633607175351624033523221820131112613102223411741466003530131263162572344817203134164853771744315218461431186195626031233521037818222312062376375761003255332274311023835224515711321652125453211521100420533370685307339341226109713136704263679145165364208818732732351678174402122811218308645794317334625147450246612560341116423823421052267221521838110162132622750642175342312317210741551129463667145233103513554501284427154702610115313024328261718718362171223661720211182426005260020213111601348326152235736641155704345302017306423625331552022658152213371032512228414334361563308262123255322407232607406211213834174164152941789912113027332424214021241601208212001042116553534111611111283455438274511211022127136616415530325434530740572711616542617263236464922732012153202121418526265153114010006021240724026125374214082332316108331247604179054094921002311234274547522474263223421492114013151314033115356424313653016504236614541524417197314192723511232131064022183542238335421125027723050446286665451835529360392442228933588663180362110322032132212562861140873531502004176311432257643418444241011217533038145302132514701363211644426071166131040343134154513120246824052133512012368504047424321152342240016206236151854240333322233011411274614338373711041711154254287234256213275663212135220792217172624321125311215102530253083403410432147626728836325446625434652234540342215121930321340420741471322022243161285711226324277119687737273126236128135001372045537752441325545423502604143542453371321521212635422447018126451120641127322334421250134433804031215521477715340452241137655144251513475755653357750202860013743313117307133211635322142831237901911207103415525556262763207942355154631534511320124165138514225611413212079594545441533153273493163430214335118124562514834645513460116132036324051306661208825813423014729822284541311841255405055555335625509132632510281333448536533475202293115451811141552218425361212345416314144217111824191624740080322813221845233513525413021381105746402637324606451046132824802425925111207923054215312636432855110845816222532270428475632247952616254264404123355224347105511442468215057203036451231814234276804156262025744333550516444048533635241566404223441321253850403441569151205468226181551452447348100116330428237460752010224102712228098726211620442680247063266537170557420255232712403083111113251127075315150135305701146485537512756869250841351731133127368552133122418553646263136751462412761271521802302245241325405243141351532024357319228240489534681413325054172342051343536116186232476332842330433641521342875133313163585210137122529320302151621106141116294137230111112647458524131062555176518248122284352721657261410421030841241151542262574912428122412135502435944241331273107763616124527423510713521446164012621232231315452172821111865323360081241765535332212130040376765615233542062142817616353188372473326164132625145130118410438246515100623313414314262153271522011014241138580331453328860573119126214035952476155168843042444570434347011533211027167610563845113421430420156132136513110641322813846646214223353331295331329555115452143616433782330611981574161611715342598786565201720112325236043639482192301851123692532152039363641211248911357783058025585685725415833423281034443130244253134751763473074117342574262111448251321030200322614334410811154044461123001436362444743271313412807235244155153578707032441901225640474131321883525621261351462371576373774010040101422152739103132171720570237242422661846323361315626450656240245201123402031054451165162481565034576722326010104705445632344663917413012210139927662211106187004345011904329337921456514033435198626280730275400753145125614201240634511602572813783174923604584232516175014326032427018231326414021813636745135024055121016961142301561303365140460115419751650144301132264225441747123764313297116155253423224460817420842454181549561504115854197250451452710233928421437545713521861221615223232321548213452405093218011455586137661250577361433204330202162381443443134640123862385425881478991143234662286315216120931253553577445314272034330523121035504716126096191025210942561642324008533543525520280198320160111590252151621111325401561327391312332463114611073464413162324881022708154431466853114752138532009125229424230231460041671351111161510922183645275252021126124411411011612441111314271814760413427412420221121514323770261524351737527311752051632213761114471551056675206247212568210157056437322937273344325751056200365225326135422661411216148123775126452533237348643232111813681765141105142013413463411381560342114016222300851041343210222116104211062004710948336487682121255311045174800877555202157334803221043165164262223014344245063346179257151342754103223265342232533960622580942662173511026804512144361635655731165011771522531383240215206251257347613254440535233554641441005513272202314756811512516253912731862242702140310401122181225313631041246804648452770118477385320323333552411166023663343216644431743361311213156126021142123631421157403633615457032854372051147502194322341245103737152243442042107447372302143311179021021631241173745466542132522450063134616040468420011633705233496301152575081322612120425022962943532124854216041444431621621092754411552415371791245124102016641322817335141453148221224332623682523440231817415938522414321522521217554330373216133411335643183322634623786555434011129877557414251213016391754873402421242282065417216332135531012106114420413806009561422616300343182124901125173454913241371442350503115341062373375023271313227153140201359461357625010210634843053803186151286040626361271314883218341141442413012104144962115211260133522273141122112701057657432111761540021121831102542750215617544633103084238650442425213210662342534103015541964529440533222201822415451136765255543411381202363422165011523122053050231032173639421423842150154211352161550176135614502515361135963832003068801364232533135212860120445011835702352404315226341452133715285603241106236870201114562423640268421503137770974333391659506513132873235211386410206814680056321285318344520050535130112221610323838552344021294761232784131215425103446267137247067112506354646016716103471530401424464431450011624913061803114473329744323255451514114111146566538033312259550349821216122583933729150671364290225861001107382169655011010142867243895212764701865654645487814272160156134243131342615342341216313552462336881638457336302643026313101431322207913285831531352642514614345369513850512164262721931114187348243311524203128243125791363032681260323331051360325336493434315124513237316034746755113022515005353825367077373133120391330113334126696412431284448263564772554512414615916428731345225517349351364550547336151130121184346711611325504415223537141230722272146305540523415551436414436517532284315034386273432841120412169146310152634173110359171821543501202311421126121521011045161321221252340881223114953113615123313376611221103054239657756493215210118338461410152341128326601004421241852125981416335338332567556473562315166336461717212516204116479251045151492261374452510322157731906505084424401137050548132133110314851433120762318041623557351385340663451522644437414623032887432046424315013111523671354142235414292113158521312198543612522257719909214253351711836826992353178239071442412265334225231334336521268412242933860375410020503651023026230374061253828612723611123839122524601136011103482367106061412232111122566460417116251681322723230741213431544918755430337310505278323461821624612065383225228616253214143100524131331317168530117454312226543002185104830422445411035343077340740315726244544225304347072485544103435222224513226460053701451571743415325316316615721647112134165151035117133835723112414293433429171241942312454405051062772862323922156100311189473094215242165433622513594260014213248316041388263495022868562428320304351235370140006753311532102011338827083438211540754642101101470371212792730482521923413273407412372257734113045354132684412610530232131364134105206050560415136457421706612631226523030306980317264140331423751426532551123301336084101424642110432171212264146546403306213405123523344212161732429131664231416832126311123227831303379413820857266235035847640013422255391232631865214056421463241625231814953351229542295619324442039263027224543328504923312213116831555321126417211321093511667720118841357074563715523146246163017916173511488227055170522689017735528423166772011334324620555202732621450401522305321224135614013251765164320764362244221143362634418239775660717211366146432660144213141333217614013417634671529555302218028925021047313382423081552603387571146602469705112941746138141362421547260251374135765824352003081948111252289111021248130012595248273531913414312231541820585347841141124372515172421204255179201512531556043224134643744253320881215339974362361641313123316263420678318422062291141406028035503467373338331621153234436101410219724543461467830635010003258153625615213601358321156318311116524335491243325027203360052310441601423421242136351126571535284804012113322745202176673070472521212431221956156371233884642962621004676730223535076231355102632766643185318031201121827342464343731204836351103643269562241031117820313321463561542474261604020452022666053213152413210134150101439420332453703362043841213301012022404445037203512253765123553112612222766311013412363611401361973416646302610032841429702600611251362428102303992151112412118571357522238536921128157456155206134346461444264021724445518136142660121526155245250468042533270162538433312122919401156424215202167711347131360525615223560574014212316242414462019451932910612201131301146397364574946554352916265513561414341191957162930155234584235522522473185330614024332562253511567552855420915316904093114411136124002283058212674158355110217337524503125223131231744265203021764310719263154711016143031312310324012102216014533427389142834217102314442244254650062502720167023410240324181010080070311245221216121332472751646051751341230132654804283623835134741522514116311231082055347627267443210462024433100537244411616415640647471211822431507326114327832174482651154216113174208571336416537384705635552263205103316467282423312682164473103546444312210361882030702112636211121011471428562240133412376741345231213643493530876471532214390584255501310185402102861258253365401100371167656122302174214215827196122581256354413422223025237158314426021349436422046521531181024311753911155101640299415122534152114663818661214082452260102311233384508576281172150212315426737132326418734211525110162621972162130504867421115053724167032352214023271240566163431016586262431344216024182853326105303222166557213344617013043204062945162311337091174751363073813232651352132388465476105428342311936235013736091172804810322627254231212612161149265509533416143442505441534930325575135201454532544462617211495128115261371132430445730523239525740184872438171646116161313285322560490281187104541230535641713234129146273873372424428412226001255345053525701054039252163545333292628112342942135103544320031276141241050131928593465465620728321121203057591200330522213554946203242202006414707125152543574144052767213248733832424254163234517157339331033171124117346524413841342593062507821207458212005147521827463261951236391563087015112111320822251620475111513114291715539528543113132270705742470112401593119125321391176041223524231240758423954151782243284531144212441968166822045252354548020171442851215006314719623852332202717156363517664151360160316005663664311425245121225115431500204127188633141127024107250355764278412353304530161307341124564014135320121721384141733456193417326300116790124088330300212533404216526341022623604474433154416621241313531945357282432202237021358265911150661122504215012303340551826014813741431318105516433882523358565371356105633772965105848120715352542048367125868125423402123014227888324508942223362426000614711645981013725103150720452160345212741384467232016634819845452796531513341271411132256831140520905431215281317403124343282238362431711669528946003144736442341100460540235447143310316381392237234823731533215640521068681413641216621302636605425227263136113564774151182823542451426181634522211161901256452634037246300342133710441105446825331343513245182103333311355416212327027673751347801821406325132128161520843502424673161452051711565652216135314431582550524136025442241224173830371414348232018334129113354623458981713226652645170251213230372754301530817031123782441420566312362539431026352156090202122321252323656351446314633767252672102746134145425011236435342135655336032102275201349428407885133214454941712113540431442001266350418054612211121564311447842462271261054052100492244512033715811351071413672024353710513842144424316450143886848224160443652153525225331580551060123414321157854124252942357233355121517331211011429215111134331643752242420442674815844165641655731156367474136251745613641135383180490277216163229033616542802135165161706004514226051176274126321134111312323146241325038651342026450613763151432711445540441307611903208471576354711032246016904311402540171542374217662121140613118216366296212216802046258022262856757165634241103200841400402227743031223061421044831775717063063102504267443491322312104675123133148111012311416411321456033309350712225670121122267711294233100331662213534222308101145033326732910111610123087231226312254213301232818113403633317474760107250611263133397131112622693321135640744920331510446467462473134690141025228527214155253036851745887305421135173474132147313262366000032571025150538251141138355020831051462100070451221322901563184320030303562871038644151013477413456306641360240790211705045021140373170121584313217511402141245214103531747512751245658427723041020335416320644273137251036561562714631831164820666013332051271852105224786246057166352067242351137224433061814211222412562324626075345541378335314523461461085123087153655014118361004630716041070201663238520641411538626306811023310239655023625117424217924231272142422427381320412483805041212273342110162601203252355435652005835123333432384432331253064761132331162786110614255124996131371011283171067144096200484465320412125193101154431138614342614197765552315412170341365140134113133283331565392311261116444222722312710032101631432377117311102514034344551464540115190676053125526892111430550015621310414623517326446510576035176041534956323554343243244345011042343215188663352628401443135151186175357322402334318518636402212151145711231431172382314156453913343177604320443503132138100866383061211970631134784213143135215745455645281134533591311073730135320015425602241612425111121132703611210182223125650077434626355136617526024544147721013652212041833547332730114430111215132033384431636241176800072134104024863143852897634222211312124411387043260276441756181011355603169231339511134541430710601173111209232111913191313281238374254213730521211344711240322416023228152211174041123224411501324192124010645314218202141132491412832735783731431421294510257173101107245564022113602161151551413202101384458705450327243155046421303017573460052442231338118284301648761283424122431933561111112424321692434452452314250611202026111623622043521212258408637714451596923537124423524251043106010224724008282245435248564100230211208282611581062157137771487333284230247156317136197545330370113516241277311304211517222850281805543132221232126214652502747351304215511451160283691304221382748256344172302748324116415561231552723345911024346505232121110303402393305203224716462113220413328219233632615644152220701634001038573142114386541536535424526021353230644326118463000102571337751398532223540363016321541711641411113151534180372345222064840323550761412471577541181844345560702223316543722435430491224004721620621314434356215278323951157172726850621302437301722372025652727271910926233264122101364220621119340133617415446153804019354373414611301430013733411043733430732385441659145663612691266131176835343373743353597350061913164420322318237426231632483513223368504524423122537436223631543313344551521143160213242141627764643127582513122246224271104130438554319731461152555211326643016134284752806742505531911534282170229262335130111456036422311213151323231738421499546222641150141103431135192412857260312335126124539331643319930731031532326252221111444164731024350712326060445061345437940709811432224066322511073615611205431550715600914272322233413045310433156313327132477254132331040434545057243165415552672853724434211546110516291258577332732976041170837262725352261346520407341637504317311357413402323023310744403315535829131875010440522621226123142346221422945422113460354143050738050931722072631255123562121320277144656021311520125645666423685434448217432467768453234281156446341646484141131311331534134322126331220262721692134511523444467187324116071206354212861131633511646206714173336425612450602483444742214317162334917608319059416620400121402330360213345058125041265316151710176572224102872242456227211321845555544420080125112346235771049592732201092509581615236731223143123364829235241320633932276121561551610300466380532282119223621112120413566374116246096381702002602043340088858433225460014051341335701715040315367533151744641535521600625054352678042118213887533481116920046173334722822535912141850161013062110550125219314666571024133154150035336113594311302613500205162125185563224241552936077376604155365413245912271719224333118351723425016011150321543240295791452351151163014323453050255427461652115233818135314046133524771615677427361451147112671520243820332474612241447004263821124531232310008273336102422329321352361362248422201607205140013121763234527656113022775362451734265244308416642146244300161974444431415221402153513426354949231732046012565135741130630114252612060923061504304142058260321413152278622041212295003204341716305419516712533413033265172124821473215892121506232433352863335222273141663362112402552216465063044154630502142332426265365104881133573137612010744735223152244301389521703912161803215776817131798247152443446311533307036330354212071322025428644182513128544922111511415137155454130313017867104155111262631257342143316147206428450341243432481533644217611262133251368602422001404250351236340159075015116400278563061404110647241331542321770115102421914261182590202202253281225020168431139221110346413213132464602141351110425682213310461213260340222163825815527633000377616911840011083145127160312635237241519633021140346648560517328102767241113006561720833011057851316845071411522117620861526175231110281215221125239111141301180172282151214426233122160052227086313003251354633611222240354524531122193022240061404212307240810450164124550116334472555102535036664512316123193463120436130347423448131314651080194164312344121222627252106214131131322827141715203813511587530221170401411167365223596341572235341362114214311203521514456409132662245628654231138476248483246324152345220232454403525280058626072706932526270740220585301113025202456728203445513141605702366221526745914485526342780314517526220658206176171409121455640372150102205214366413215197234100204431247831433271132529325013552242572322133250151652336471345332314011001084211214844467187524211722715512347433233409148010146171128312921123451225197744413130253115323821625561844325681230525443412832225305032303314610901951424210551644456019786102150532352214141710117243111367311423515261132524643733203011356336422137112416012511347204213163800810114511413383407121215312343135637003001345081351724202442525713451321110452291242124255134062314121322252343085528042615814261483655861203669182042336612073233217377015024121504755261102512401323574541158451212229631613711521821188123047343124122372357051214633531541152210442461871417202158331314165977256496425118524244631212134321514441161282335813621444343835602115253560673511257444213041242154182232501500462100633458075181718572422515540131621600631624652161226212068633141853522331614803271746514652305205211195403344463114427283106427411582632323061302323442643614051255443493016013113740131512251811233327771265317762636114487115124412062428523825244330111783037651646200483217341206733224755623142362252745547680168718045733431135141511213206601620202411534583553801124143163132620526361144123635222515551202740177402420145038324440735630131525330541345515213416320604361305512631621491205494231842875830220613322213257150193052935126131064271957112613478823436543766265336631419713126624251245775220528141146142203662213111732385267250163234662221133174356817494074256040143003118103250144548623432133744723582344705774331335031216521489267414321112012481234394111176234111245451212893851251461255132317804550334318568526731273130258833506226368360703903030032671300131721312151271265531256329815113323611623203123223754527740144090310110214531282011432607432025421134124211234021253811553630710173316212413610900726419480362013022834210802039500131457314326350441328644081051821231144113631376210393335462203451206004686341731312552030553942311661222314742346014720101158905410441111172190751213399103363724324811332354575531862019008234560835247621203224113365521165594528385221342222632523552272401548422080214411178102518264651242242541342201510484203168161151152344517432444851122121111110154526012211011022513351235111535761293115241135024538341146428592620535745764410422468041501353633180452150453412123465075048210112532321134120544626042412327374124555253211062446862375277196332646275641441042713246822033356561760631471151936655501214336021840213061112471227736104252714112281271231321245103615625327736200411067710116206032094302512672640323057103417733111020310701431711452415366542930233702731154229155114634212623041603225644436592926247163450751011212422161911125624604533122321385245324214630737831265164784567435222173351744331018217461064430740831635506134591412523604231533033064415852376074323736101225251850635117156456732200354742541242714417533657686051293032260161110108155202323353739028541572515306561759032244175213012533210100313133214043220431014203134730439214334305254164103430835133812162370413134758041124122195630614242671673042821683784403258633464046123036182525037804368053434275063131046560824231348512215223010030454262241554673611370101854092714528310246144395333166232021548158372111148116080543363502147252724450577035271515431417517379443444211345842624531628275134121745020043462145090315618142403111536434353130341299737602702231575410213441122400622111442324123863846220562106024122703661416102114120123141505201314197114680781255164259671241423181633114605254152556471429511021412334260371128110410424117431824521233171245186322211833260622355254735253552618731629811252822030455635541181450116501160250256405853170129413341540355987710283335373463502112101031057314506623118414353049301418744902763321811011131522522122425110148414516402003171111915125791274344513221679012375706213261144351311164531616512451514371215937558579516120460473020711839635315256261035372117535031503480295603371538635438665653174446827642123544023349520708038902613253411262112764263641271157214483308222412012006131410104524656141152163243507011811621232812821440506321125152330801641723524242447106230116424423846552901067516011682533834859385032922203132264111574943123225340337141111713802550622722636231141360515216330337355657222751124102426197445061426823861162464121136174532115546901354202026112551344333546036334532732170023447104233212902113431421325136341564121061135813911221954561562153141142157634213233171224125131431331272130670215833442045251005156045153661161391731616653231170052464121407113512862521311134945203277775250252614392222342011018210502715317823767535154037031135144243882068333784518622830434104121150051876640866834276351410244622727409016245723375362543112810107443404120224105565451253223744111112022247441452324451851211071180622233348711519104034363323221206087122532234236159248314414085416120373225333391336112728231342132412220383138409620654103337455335287131222913264666520322113223314231914711754712102281310380349402115435312121915966222452723143428212153121013130620756413400513202021705661065348148454220313401153445333960173338034233041167411000374246314107464644331747772371661803261421945281245911564580660044161242161146270642612305231392031133537324521130261222013722342213472372132695331586821415455131730183226103671266251111216370073431341527262535145047844771520721246674532143630430044252122068522061013110924530765235342106376101025413401442823052515315102702410923761772247523786062191130105268104014063331586113240860533272602642650503133767613033157033023124422315611175305472921231482776138323164106531622341280219478753633337304232502133153314137536191195632246264353326862472571201671776800137515943142486270306236675627241154202041121285823021421535421201714145354542315741430572197391244837111773312346001401044312174166575250642120104145133164512446205278246863060593210237355612224048113123631613075233431432150628624142103622305177321173074341415601244522468222151390620411602152400356761014612256655201011926145845214736613126133244201367234658766702632812103734323643181065162347111126533742331201145140164451132282324171331174510326361270213255870754574414120331223232233151212325546162378343456443114022483244577985121141814162121743507540267412112154512582114421280726131631123122905215220281511541472352111325139624149733253661435413644172323212415221596260652522204623826041760135131220662426421534224715488346203303111635840563416153536626286100676084423513107121132211429515395541436518727443841110315041325203210125643621651208123036313022731502101401411144068142612117355110312869140256233743530211715743123146341175192706832004444864443123342272661465874613445217301663816523508220617654151127659267517110362151503144249381112251415024565121205191523474166225132671724733122111141644421843172421100282224152756531436564473338116320482311850360172044955061605415006010023110131023334136554666220370240962140463181219243322457144535391588031417536764451122273307621585053574211262845251745334221412360326714164624814245351631266324738415765354456502312430343110274614430142315606367411533400084142646253032327542744243362116287051114430188273519270725832242434131353011513113261323322145426015124563472445232324215162112264403411455668215302111663464545534313443113315433714105442185794231531603652305925032217422322613111405325218924455284701203623617331527227402493162715415000822810756433211235115126533022718434260371120911312922135116614313310620421217513001225415217105265020111161013162335239412132713244423483121212824244413337204273312826643020112441253444010126238156310272314681251336121330021043206732127403513441836116717831144264287324847357233056125207290255425183018932512308780521165617012321255574256255313464411331675642721500411343543201003645324387812016241514236173311570171068235610015306021364264453821623022431235156342569230491951295341953330364218132143365062176311554553715332128714817831149444010723052334070050451232440163057127337870425530650223226025347012041525143300214251160284095356410341255220168302629556134427245214331494166514713643454681221362455012002106763113841521115285434153052144386515413852543031204113686325157363421226174140734204201034105865023921301625433154431626101621413132732324148214535542443215232233659521256412235955457513162110127284771528256273117284406204554406529422142961519144404301426104216125338155372016357814
