10 8712
7054689841742826505265698017953678259155529721581127688689396985900845399282552664644402662252862058809757105593158510076403600027909804837396601682782522184388099181684533196484874026456086906826106559180728325930595306198990702359267551306199160810631540722050908954206816944056011285467765777584114898692099813951507495183853274776755156169455527576086591110507172890628683158007837406718870500099273031566367042802684663733754892117474020957157415081575060740971810235530247908528875381657866147291746960673625515063420328042963257865123487150687921154978476793789493751767735449866254213812182023328695568232310058679150380805157018596539972099876783033013538452221174063562449347663264549684836143762138505531417735419370855681259463445198451137778827004592817876310851896931820803535904195174728903084897089062545157596305797787007787405633889595274126815895797565238991499461108530321800592240965776825063176949173475525969158755557155684298207756320836744539194022600030170047991974851226357761942067096222212309806149774552668085706558879002182817794361840650341006885805216497388044121306462762562062586355186180624974510988457653134769497018290687351541487374607294133166985153088335795422812831277783493128548504273838011514833531092406271331758251064136811196595938685710008023131764568987558342122695715517042249695605562419821003594266972296378048696057931134403020847186715519491006010145508112196006607151312444066270051864093996576503637093529148345643052663430281566476728854781275692858492432799458250035605732514799831206475533358571244837208609885127786560097875191596427407607331039605807604115495059901664517612892584264878419134236314775758158418054743704639252984383170986947754140410075010401861378488283950594655884405646954083041969477438895593935600497827122530678333334983499061202914849294364317851261703621743254649768216648523861043526622940424502524200055541665910772286248898052672990444520333312530357138255644133177749975206671608543468924457766731840361120211285523647083079865179228542585814586842670970078795930786154767116902289476694575288258883551483083321460151708246293094549790010562810045137272093612067158171340521847560309708061287105132377341626384534426445583403919466390475205670212978426798302248070227740437451840605584334579678890597752707004094544997674533335604589751674073757146105770333814482579936365650587397997920303761118003839394643304095987139405537537933892559089600208132184658513329828275193285407311741316369711694623153603343196481524352344625009417999235765505857285531104624868579612108668245196849051434012080043464542588127901808062695894810468013283297008390217676175787825828366708408469580269097777679173911601642410460606805774443551874954218451617687289057613260347954375343504274214111802328474161691325677306928451541875832558837982659401295031417716390567652540717977099822165836488644329576877566585467873479247003565633232198766325004664798490068534057278244196629285656618914799315164980490272122709590384075918624235376506938128087237837558412065595267852685683626532289240658407125820008798053926356291466308213815836915732044871511669419232515128931405839419660948889913366890683046549692779063864875303983263568132203590698184561213621148624458980439519329087308782017881346356301452505403365336637345492227977034395857313848604438197321330233764262193507568923945899142175744380592062820833139638753962556194165372756839364258223721997708134991386981810537389653954826660171209198491647395570877352928157297428497554493943040997191126878730571547998404728920759073970753902157068018401425410517907192714920848849782046597768751492663077263147237652223909077318796113061478111189521823942895866478804943774184237531955354942580582986273904327281378823417798946166904294857677916718280071885411104743130018721394412631719480812289712845817978311875968106389807789183666555308407103034864847537645121878500471183506194571444131643943705042153423252831976699773270560364571836251664854433522059026052632035653929626060532739944561934158935429381109152658542110305740733396226659576051827048279845840479213878757452735551378454968905829326223988451108266003421513027150094312259562488280742996220237237898015181321161445637479494230139152670705841987642310451197322238695885381799466717984214148482243924682854712583293724350198532147515912383564183677103144218622395096247823251711541887209263723244198872117489535933865704396640051058389048103717295097427201428623451685617900832353397037379153429789460273466611142865594600062132288425763555861058727418414840088020508953640767569300343749747742712829185362030260496090986960153536474022436474616215233821057302941664829686149783406900125065471650262123937826168761793491931316332767050045873879960519805938884260986282781078285236428134114562651471860999817551315348762418695735111330213169412947023486448143657800841459300514438796631455732412426763615887532322287544228489851629910519462624045899233072077351362314470664368049172591990855902435005281739534753122334519129364066515688654221763996549671720438009577653097163674451310413656556635492913841409046377438723591354115308912072178717752544193429030793506703122993660844573818933002552125657848427423970483476896241575230946980822132100649229855123648852460455980120387411318932418203762739427559708641882697151993569744686551531516696087092181638724204862237588368168889299673657278676819779605421420371231796535594106275157611954101536627490941573393828600705316461243983999157488793653643387145270868388293153252539816446182809808738769294711084195932560842953746714634107226965450636612107401074749372016802550533324836778996582519740323800853317912581491251423597741021029652343623763000462711687790912878014596884114350521802671884062085554344875212386696854132651081557183562395744423030645120220595404782013507142475631146488468200888001472318555249455296062084384184544985752386444165981111669278744332010260106534032465541571565191494630642295620067631908074895134598774196658956639950077476281852829330925913598483681458279454867892806699148909599634673531227928328087913015964849507080304216049869781284890496666576706257054162330480069229805654337972999515941009205229300087712431841792308408330072124322196559733814264027852879283645057622598071499191898095115499106889360368439541642442173813045853989038071145201765994497791406016119938052794880571921812062886597693510911490677881173391899460331603894055024925134683764821864046537153877361094452721123411036681498995843945580975017650763521882694378983433651152119115580870352711700065620768171282051040295466638866329617444564880186135893758554298351017666064295008597085930371408529588114534046017025719968101183132965518944648562133231064172507993656462149105311654952399760471938895021931764849447878774931336135858071160844900680677090325138726743879055557735724423585091185959266364031716488853201922251746884731336427068173415507955021932325651393012029360832837552647809664713246649507781086933108000968350806560642311431255687697886641823670936179235680168827508382594054247866802362578372154182353769183191994340590527754163690996007636755189460432310848320349241925720430598552995191024070996209991936286051452981185705716547438552272098345653964754246000745620069281217792391786123923129703909149271962313481123438950040430546583872013454788341156160126370949548751219607434849677909537753808795816908962368436226172067459240743543332768601245062281126060054408963339292538166505627246471934942385407852788341803859496701326554116003272326418913875745807454086888237669222213690387877834263041864542564915397525404308856150269913182883332086856289264879927039369749282403008938075464578393440524544917417422320088447596830802559970833688030231275924519819067166169547550595623317990072098916543617464644228761670789101994868322288972515383460738840961367492632429972622979962049065213152537800999252641559073981623950334034225462836903001591755242295808243989164975375637902429648430275573700107857610300764620763713262852094779430682668023111692131518017417470641127959483662007359252125885161273990038317747572610034632148468777000052736405969162545772710510210515910750468377521311792765916980771768805642517748039436029847016182282776128814918863665769472001421718531332044052310016253484748910775020525920373384902360946758747451504018046396888234440027012767919530336185785509243477271457360215468088779251198735672719465688127147214161490266733007173754796423146872922248843366275862241084320008492638732278818594818129571691642826699128120901483417574656912414276380402614772224993680493634073632674135523057666144184649079352749374146443322156867421340488672511125080334540428183447787557928042540795479414222786555422114138394584021262816086952624058471522901323462843673381745340109352754806273659946474740276517464831222169626530497873113764630113467695757622662651182451844077613304179852128505613861167574357807517402836906668266382231686597348200695305163980530055134895541581642192911201285282898499163221587817208530778428820689596030388161014869836970762742901524763791892271176064062558740113781050449888927624242617692723292329363464286940584966727199430862010557995511789287079781844851154300001572651791498486760167492935135214791870131979767706745950486119888985299308577467033859019650530640181243310257982287381376541807848262515830540978729056630911615653817592867856948846429412703269872523709616201387140203483922001255558619361619345565923436646784349120258339473921413067643441895900247091238742906404188652851553579398413497688440861746121588855087848289979914202396909257164863567688505518938167770807735213570430202954869878875857730574823088338526122132119616681858442763796650485698009190070158202698970555693375187016215431273632731706487915425446280855972465630821661473127682400487997133928122488627931619060308020753245087426400296387305338360355782402454095216856807332188124914174319931682369149804313157740179803716084333469659003538412649621922722477724881001384127312496508991230922532635763497320589231221564689032525213752696764807051300968893047789056217086496311544732721047825942594394963794168534706132036621892441957439965919501334649221523777183828734557409743409341703072980493288833794798230164456774274235766669961550575501249836475909697275491546705277593487326838928645204371243780560800754460452248081638755055121324509967103559657710718213845977549567270735612505676608904614578744482667348508187949959413882656124582427499429123110251539927559207441381423337869896162364039951825255529074861962588716330445549267919826304491861864597561215264955047699150439515966832186824219035994929182054742446854646089082583298106634008465050616427545915336379132554691126389253907601454003916391871983733678261953090710013964041351825412431748079040263850286432544287722007824750976354504147311061736038930307595142792118162468661286291221092729100631440698676714535659978461581564901992759452025812720668738894485776163020253936208467250159509298015439684979590658384319581413334097967655536792840493561912268687593351034625029260547730176936905253356740463591645330377182975400738534690159236061218047434976270025604611844662785689554144861085746317513179448928173590996297881414365702847851969240451382060121870360856731848974939067465409809835030606790789105121070812792697491653432723643375592776975357296562907179665912564931740596227875086925983485953369645795519218827639327997602131215806557408202186010029701224348848496336386694407602892916663447207852690272832894075477153490312220581730933314914583498957180634883958971405826294555542283366744231240483985734489145485731315958282342631324964000741334487073013567922074683383569612150879302679363591279520086949376586616805751132450322320117266914578158655968223455617940878469138144121637579016689596893651864690204399247368228107908284562152374733959616430360262101787994352847332395148195413643911733368562206755261390052348832225561530760555193424540994787900676829817074704048695684082074041843945964334958018588906406820206722418861266389139140800413635407650457583331446470453614977719494532200753009646804167587250210863004299791855765374032777818807129779940036824551956136017919822721815930714179487100703616618012115809192521570200492956539550064576686958007047208714569445743190760576678305325119765711205737805082641771226767634427569342242742136406828414300962831765909475608558150114844860263342852912504559466677254650886432840251423188246926651039249102588504976204320913588903057967315298807447179173643433050746580221201165095232598864369434204458570816616139380386742708340995765758319125275304100690626615402179922064583135775734998571311740633869419725492065676533887051017513654649388707476049527244655306873257106278115711984818375828707242084801632405593186235739709436854256319771431041884469550505302737580488523829138776721993624819767925900284407276049130715198085989779728160907524639921452271971940812840832814270382420977064170161648851334774902477464180810846202019342831434691339969240254877298224627862251506603529744143082027499498813283843317583117526928699638431951267898768180034826997870936021267969065873078463374051346970218007123812431289516132468077208109031314758808871694833940680512615967634644422781196402781752034552416172734104435107376643967542705514799309054784511388894560951612003966063551124374365931037190520138746292526954600105328250224437321142395012675805339474616062714121580003562043778636297095296721879009677871160044865787316108287107264153489503181860513123153983832347897868396774735068505815398545434232081850545064014795336183636271479777821538959531064994269006155223925300198251379768406307034568071621832669917815756586202680587862155533535216903561404672642549776529072714536882043622808084171745755126789480886369741579189263058563143381582128295472580438033080316866014456298935113476271689831429041488327123854193023301386648562822655489764304628958208984740242418158047777151178199987383328589506422199006133943033081335114264026258370004328822222586117765368915943065427200644904536422958941566062504327591183658290605602878474844596247585942783064526703562178528464132948348744397999466885659697130525479243994603742540035997600964421568057638214461694383076284646092010773796453512952271009483204705705276912485872220422592933505195825438877456898833292705058787561014091758448443774166982752409622233429483439808444132508760843078430399842744888211563560746255018368264658038160436804079606227255271656480398333133632724547282912077825076020355819101557495786106890617421456060170246997668598179151005162788795832641519388497303605311602483287443516454493145417940321579819753124781420735588294547616727692126724166159809851327289871550985557963708801098140060949094304859768030032333167373369490840247413438632897204141799648744798551014170379019655727981977456423644251201114399091980279034888265680031144793722812040065643761230453769151723136452678143731876811399325417930778055069334721325566410972965954779387433107469917758875063571158208964294140353039118814481598510429878482718043154955595764527689786547010044371797448915599277345211113119846937872985436373239951062574470376073464229859292389415764312561188737159237176317278944697853164157864899529362009004565262879286173774646574905907553001300448077546100088470180838360690656573437169167137165479225296451020575202130975802341483102760082331851077184884231389712110119442730159889477890150322553776633128133214151862079323599878633965779392720026435468737614670996566697860882637475268151811030806668466475838697333258352475455323169726422201145582519786441995203407260412826394758648212522174416233484688538105961702255662033978218896649469977177593051476763606686372210438167916443582281761422259402745553247081569789875218435505779545881782858048955779734286873949657827212037042711684114913328493295138451356729818441034586337678481226673446549303628287132829967002989226002955427547451663559471660894414810374120068144411568927126569250480814823657229397489194970897138131535001843904643774181482197120304006100692356635243682023838088610441730966849365946358653474445509672890474521317962957217861533591990049411745553948990676959200519735809295941267156336121263246310100029516852669294026344668322552576649434893934367991660414669036810763444740376095273414802725517705369735995596333676376541314296723818617189912282839786037458242534495323237755950048644609634989340004527212909914098479544132089289633385777970390339485808326256332890389178127360501013145982638017055183015773026127633331614415332840342129423055911246329980513909054468512837530854419307579071098635488683536524185047015124443208948726371945556082083795131671677669496510368996196465290579756415454225552363192760401650525498953377143571881079219574539078065314029578757074918065410537355087511461258176889686139285140941892950088995774852497618342538610035153165634220789462298672735768294800566910180227678555921417566146314927165280159924719870746552393908724264271383856756940896027627411037486615112800424606408182143449419072784286448818651779904540681510701349284095950029141718878149232396215816321646760933932756971122963457201486064279563950747871177632363703329968816302378276303196322814246332245077416336976285830321768693037665508433022840656600976937343229999733335522689469478294920444343337862326706844902821435481817161049303993689071473719277450397493643943523642812183033998029999255849313888061299822111136345490976128406402551753987390927486683297037809254629149891105864422961696376204968094083113699051240529276898406336736367628853999151098799742495288816580565875992211000186545064067635783483174395616926700308914697487935242601484098878809612293132837371763002421200100263403718111861237539991313343661901404317603728693512845190678799031664354848610981397928196985098177634218381590639521352141652769642296024275458502857192279667522061675212779829026837275131816212391814201185218193831346547170521714155575016025410764331368320713129698209804667833377623477648263122162275651537984848305170116420757176861234925529360899802656741670268382976449677858968125711879095945364928085782770683374554685192828212021519999077525172532161343367589852053950803512098206653901670765280577677151550392259571658636474623403318493644062119204389926499931283034518045258388737929580685824357700724262192995807076046648093986950607838227739437233099918408223305008023096959684986897860604234756868169974844255066862033478066642670567143691117793298755754338796964981262593483004892679203004891581637886134637336515438968467516679559192757683554020016852804683731660147808153885887472875433809965179882617297796635922685167073683773954976655231925103820527188667972560357970095705099262272030728104139029340010741768985381473295829053188181355524532273330951454379789717854609074491736041189746815706603363282652047661001975788458149477098475699586886095783631665724723572052112712511391874950633007576074487688852183270787970272259058499159234445784954651991336343384429364000798186563754098842192766892214483413272567088064296662543785445907336504422520169735181571235735680451815068204199819167282775543580892410240852863771609998644223204645789997175662754664720142695059640749678146611007690706975471655851711755318710489652569038396191284359000172342529775888639248596043974083417680759237303447528323930330893852027971923289131095589534714091216213507025951350020993466078119750202906722079272291758557360566786009893090239470745710479725315135224545760707903575742616367971623379056148838206980161729636998248255081866707397505897780572626463161248010760612294982249403069675710713812073495093217459775754435627028225797496849706795461936498311355934674470350149608791362414559064722381338544425426772016661597261499744698050504472873452511239590466045850122560979315598833992950767242476755742895344148637042118055404071766145702336302206730735475904092819609032894015988964601413043324206101590012702510183544840375915546707728191662682956633670162948718402423582862287142429468854725785229589788106812154222229611391134082282092686013637980843284317718156377857658924912118438979863608438233199013626037871980878158204049351474756359368657836671793117265314700365291156032619980311247770471429978305108589470621775765702044163993423481641615702579079494010401775313678751331589608647068201500033493498521891961747744786036031491730704915203407193561476090259545525138659291930306645357392449911726501623726776651388037583694966548801105772657998911881161559303196226705181192985066292548490021874466984293601409048214283387464821431062342684781532950400456850104400666045525878096356391207219661847552226703804430071411333201385352774354837372591632066506646392669216991648890083202052838587945096788864946164416811104172169680558564970587140753885492900099066014623683510595993462975974090793357735099068579845334841452641978644473371359453008484829005493489848398543680981951356576038588782743597055166473528377001871861045396023739398661600422522808904556178541602568838090342524514081600475737903988097243715169867949006770482903804728119835914720841530779991271665677762555947152207395406555631309277424931756198029569314898030157002617704534546415456036051066068450120806270021586202017114912857092274811813273814035048452837858087468570199692025721686862767865524483612771903477755354550539281641902372782241017754329692523607020459628052274141585545917297299447329136653080330806527248288322066299056674620810662319359102510251159016499492750103248259632679904808759619006227641688543920821501598472572204961249204616800973322160349669277312354915727816148587511599626679824418190193720678551621503362465806847856240420275357427976212705589396130275292948892700341813394445058297738042023426470854383947444476349166668912770855416700657214850087645468936933674267524255852851515381177760320976641288063269540170487383638627213333139787631860939669222286137663908076752158141230172513226984494393160396412757794267781309740499918067800006097413482534730770783509282514113077317771344413601952002455886286139836162726086474804241839479282287004376187744344961044111031579289817747413077765870403718866904997881724241138617877140028629038738020446650631529435550314437422224290157130404548115177512467609258265170110877680317261509269384420939061240920081907057195335799084100237441469560487129852341261684927873910198338070955310656026439336629850684513720361547341086939723809999560833881235992292806798078169115399809923732953135724741868791543633545810225740232818016087132697971655607371327700621249285446143421913742004777751806024768594157250524744424319421043411582998813887581145577719845406556856659140818124701694778231016613479405406430800189779692913584943085545309381612599471962412127625292942003464815782878332546211050267697133816304613647093726841060749664947877258844544018712020016102518496243227794397389593716336608457291835524156984855327982664601352756428946736334968656032495832027669773566109597473276536031243921899445287456193422398991235540649786514279181655984795010864848747510157367632140711432410097891744989816671805198231593594293590988171738830569394465934485754753762857850007938596099639205602190305082314207088887750973455674624335766188806887674861108887540193861479579367046423763842518530018186035183017750056552904089080800623464765552757334725325443735710356734200477420895557094667340396161881040902293768670058984043879159476476695962041258046762040277315954633151557892619587712931763460024559836537028977668063251797711369444297999808795793238329320676520141161263152824149994026093667884990218643027653662065866142922543567341856513890216793539842296664399696249649862462917911340108559418062228124560784495721933788650476890622380550929511816207092259049021479737721794085908607852758883040113018107827317370057552530857970491413496149107324079255530249219652993739749672091216782706959815026309295454653977865066853834556108347082560867566162947222879419363264510528474200417351531404550976520592661082335281344604069079923973151261616235589959657764676066571619980625174281346144501427076150158312921561698402982227244870887848232308769500710144868565556250285635423375567783189937702540560225988445912892122246016463439674264220912103535869662220773950578990294626909607865208387872120931252817429519515037865554866070317891753636787281199746144044205987054639207248559445360786306916843406446362338282830808640552156598354293426474957150016263400271007528892439124041263081353570701455454698622238476987014491661728363925907432270168081440516980936551041984233249248302473284389134251649284600544586844382910155770857085448512172876225428733223510418174926465844786440215868339372489804662346736470424220053102340452018255028686950372397807054299522347052932727776905807702134286530467653947835727228098431851407753630144957421163982037313585272756772167029336654059881351898163930168180014871306286512611640233272180382799829669342724098014651881029218422581537929330453019119221343405865131823886042445559491647188896509693091695039886737012742741514483884163999879764467851337609057557985576483551017723158818945892711360928575677651186969983563946292306153943820938546634003527148378114600902197161026627979885633546118328767475777362251342925492005837825763232178316552744404606102184671196605467232408168758380790287596358924667019848613661863801772500394070973159932411597097364836876493683018104445527428187760349108769060083447291136964650986826792611811185126231847234222806695956060178800435519464806219978666582591592535208344827678565444092264513789429564168827685240841080451032994842468543233877053153128543933517885830375652577014348492705269067762709487664365022883154882700676878019905533155543871251433692301323215968396040637772047309731993416912964568523411915867763052395188474051803477780269165460621439278773886345013359265714996039969938336180611146065856247041959842797525886192028525369063370285676349129961283237885703340388057702616732850395075776002150167938311986271401230707517943079984915315952395430610483389609797319040635066520593851381571463104000285994666847122473640986228849877688045829653000387575229004113171976650538860118897519532173402591368632420653452325379708048409557311775932397539189259274016181915292788139892922869008621239521262752566467969367367321564449765931209856562698547481538992070884926801479859925663738750159237840452812707890478962847072918692867169331240489375771471862654150066111265405353122480578855481499203559391859381620809804443704826191223630568842022912678168742382726009058062487980167095069399764384502328776466494313821053121570022275272030909331945062376533758977694818008043357053213886173160931332345369914811434712549868853108562090181572915308853939936266112544854933426976073376461019643197572197539149846195034335329650300739584608705634150795247304656640718388370834379540094046403188179909049042691846857551394702712832038955144329126893132505098271476564008650584384697179670697057605025892060508160077954125840723337836365335443643350964668641176971707262906582017025782568887494867715005675976800678846834593172053555233742332599594299648278485730265750015264425044920947907493429214215764306802414421323163637558172948598170533195427856319084023239088017280599341249872791395640568391019098124568457626988644602651765686708356411196014078460626002582172119750180781180146219831281419940017125314624669582685725886792903638461824402372730202912782902585521625277405688621022312514963417770407169837912246497868356899589521457462354570339115160041909073128964391970903837553750860979281399951348340744621998904193344495680715751745307419239968294863424415982058810754807715835243887228946263264342722623108842340065889425842298462846388463609926614576252602660175703641133046807474212504980999490756981205097756488850248438489676484634335131791776710653613593341724350163262339132119691262598680316344682036141352243569018876129954332836442798124490391300113000654139996165199739780010323653839244454092522507676807132417890947384983458828587197902143025239999609144927787596406933257981092952877561269931693489714504814021230187305418797148239601184709852960812383353289004195525996091289483831466997019438982791501841710295332243944099109379541825126348903328632233444303250352184921731165148583920580007064572186261597023074686856889785134372290379391601281167745615141798219276406788816224998661197496210237099877670492804860101840573717436325203352553141351566735108041895436763148654892948731241247458191788292189568774758894121886695095816224102290897878392490282781462007539770969847978137455643981393067954070957864680645122710041477183700007704394350182575581920659129341114773320338788466778835977802235602955900971739516511008801224987274985104298151922132132477165805415935457294306731174511220820572065622543994769976558770775922130813369679267277832601999481826807355324461188093473662523825717463297835176295542901375878341317839514031851307817176653418749524497810207550233140716277053125766567709755798225396125842184852409389357048061512126901131636879939186880888940274867100464163286194794973979116615535593121749578247655174085966611391825990157194951698219705569798070592709718325404526418177068888137339202237797442083022728636462397237452141188308810185168006437170047471582532423654160183728436650397778921385952369509872947505764631646074561810970877261234720113579378957150149147095411885016586435432147273300029862162663514377822358095635650756965133685034018266175850418483270903363078491518147832193953292292728247288450266979180677117346730784504340588475503660392248813093466112191930781069309523537056424235466779840956088953528223085608376044928135865870122967385048985789194239715393535024772489297967908521494046329023411971820718428472824248892994367655757920763822006430539751487144839523891193504269212499537463056120402531893210351892767724029933974349538871819210687459084997287821896874287128188044244633583285686276816528558463087463713061820469250824689745045781253571953121046239619583187887004581677189203128080158489377079449528458598902720938876703622786760505485475768963761433718286852135693332120128494759350171778281972426838862734309334543641581898131716715088620574220596846025038121023541505572197476052974480314618982332010521268896085623875348357682093248464463283846155809737695026642488856474751596176261943755339670675532930209016865079346801988948693916957060868366512314512527598981599415791550321855226508457447628589259516768145678248283220904872918091667472231075025349530939231230328286401701223767732938071396520449219582834122018521338669241387420571966698022874109188002352114371469029151330952160172308739198437469374620635841850003078207051799928500565242447640959890595894988758914550714688895876856555955920743399360748738517114960677161435764812909972945986374361277412918691001900315805644290328281494474584696938638124746808828197635215896589545579053635610449302023715483538085900585268223165488961409054884597845592416934493201571678076528424983325018457907074343240013857375629122190000019443880013399348830865086286489456754757117243226223951571422387154859582226841485902070414672589966024368142213003230474051229438030788503846366899838465587740556546598895621302416552232009276040799709263496669416839351208022014194210852448501196342664788180519960248404454583137505173003067973197139574044568538257677175083312238107722480235252939878478930175115908348363080396203362157165806496423279770721373809114853533194038377446629876368399976432963389336083767844482431521296682943876706293979539874127266826340828410339846901908312269043997972943999073683975939275301693680804395202681100995815565856116216868410878108410191660355966609495256235378319321797744241023162819733482243475766651197419727218104644898158926582891553437450480855336371165835227372845682641736481218556052574223517277552627485508675470659072443372147502260913990540705714971400634386522835335309579262759890875414088464997459528555722922901662061109519466518383887179581847175407359417260199607436504780697457194055781893953818478866048883704220928327614198937735539330912354368190071702795480146099282449178919037327619359683215335609719502525460321479437958494274165247410256200557493408479898227951792739579536495738885764816501693068916089738424202700181054313832725326419263684084114419072655849573115261641259883246373531035183426942227444524848795040365976428012547401874460250056293802444268634376573111366582203705941687651000678109347995338808323481448561548551705406250042894362708576820908078510356352641277749526421611418581727554738168834808441512876644026974377483468069135206696470994584921989227346259771662400619190704092946870616705981124397526599918304901974745353678207051820711663255474041776145188885978161428955612137216042651451148975319326889115056862147402518635368290170202727333569409851634362111320463847590176216204587126337691857131903930663405854866411172457172585870056306103589342679917836304883809751561912066334247920552150562638784078404339973698945181437610400100970503590051866486729480650862871841312620726564136097272460949053487849821590115835764120337262722609591962973677345879003941343603562878086443380887788284318699247446554318848846837867210100226163730163159253056734686716938746212240575493908894262053868834567901980740040021667872358344712402712887003235393100536692063235626107827142882112467226425968450283187992190521969782546235092340858569700952251249614249969113310377267484901047101757743887318377014964656771783880577055788615547153510219509087154059559331187804356599469379104701776629930830367137073112044616703696701795743557476709223887579838619080586033972662504194841947830938906501000267437048444749644637747519719737673697454940014699363244335508297558513127340700858192735488427304157480314407482212707245087919524384315977617968338074702695659287731428212920055072542724389219204348369581588087533936384427547992830900380301156459209952628420825035183324451118249236618452656180798242897009843968549697874592763708097999893392346327215684972264063784864225659202025795382528937525913555013253656145875027042917608065768003469295973477301892585383051862128248835195847228676324622000242268263092706449226169743146180518555854026960013641715332960923779484107795098382674109395609989047557457158008266896738518608533280245150972808608403254316199619755463560960023883310963792966831698946962266564097003373861476535522338576342043963520807146719493628606250457953207507433007946430290826183880322174017439146989918012823121465693196830864455556577852184422111443326525180635414299420084395469714668179364105546700718160926027605714660073639202593321533345225798455484967109358813966202025726664322928930886967253893198870456000292287395183828320959758905727757297146754258191108274386058845565281179794625955784332939814382030249119773389069592715997325538872786873402310261452961896671678168755018441489826033244001180197164895659909801506840242671602339920405507407758634889168421684778741393263039094484510453733312206356882187207947308465938461602359137577297984824682397235596943959806835746130710959692263068373476059835460642639520946264213861468561228384767839825673315691959806138189555539633492744213521521366194279824707249543966449593749579208180872599443831685536120008128956135414379872942518122432264260095556906883387759581826263981982638538139469264312417163652960126179004151099622864790175361505115235740069923132701911667949571004791817920335735849117101071191872973685830305110223933363474753140431114377988122436964221919225588690237947959292081435727641210271426110017138457792264150372511663395508313178067215820959321497846598342881688531033341473742426398322720981936051506655229493342396578886171999041638453314768199876674503894911104141474061082069648318807319429065122539839135221153155186041147679052138061715922458966581617375500935742933647982779539811650120314890205760658146001902269391323932174750738542364685901033277782100597560535893251962375614585897866734999498836132369940590071777563962921924549077183443462642598814209511275195103449996472643654376230357188698943154793157442172917962872632558063653980846353576263670036203221688176380018585223500706556879137967705008056590040140795505430437329041848618624858040890365320253157252113197572476658804346483708643076685362621489269695434726790210870516998156084164739102903924134287888913733260635565957470985525215026391718993470167116325899312914766157969226464477001700751964663270167001879336058430426632298537655558847890615750704588809883848315191890862637809367368466942985516606702187079027955912718908650342934343262184981492873986753987390846365593903073470068663973934130866338828247505501569187470103181034848862632105453461330541051157551349722154699058301657954062937283177592974191932217105521727745285034453863078299101673075762482905572958477216358618935721971184861358316159984048851324633963379406337162062768564818474960329269115821359527693094041430762610622324659613372792198561730993177329095978505796137903378380897532431148990692405225754602681556711036047318579293978350530885586681418449296338627652625625395264325161210143117872266720460008630379410446957637053847895815671908841006811677594079970561240332336558149428179696785951288231475240274316355236025510930774811555874425152877579242235502915282961313048327294211464217628446635886380234166689947360052098973471210455061641638396491822730097218475172348622451112406771790413570098444306773005447334403777046367111764353673319043613282186713746034669956289216777095505109675479847932783924591211963603580130234959429711382426712184455788703328463456785027621039776265237569615970548063045158227866389138011808064981485992916822470686417710518926267878262974111272035906977792618316344533945384500000690599750802638291607336988908260249134316799520603636247047186122055689288332622987722448456268485943881947101619383757513331372866477781413574634921902435592791630318671951336938148384955334410663620837981576580628033768131317681964672920590752577146181312080478855159329324892508326478996135022759782836415898742399108912636911801206848459223674594508971564846176873838752239780363150518112831411994982305396532867038852335698799407649199744952776761914695496337293202108793983581692263022665584827057128627997086424827013863256173886950849577312894525002549168767374558427469640212814269307175023470513271355486689325475384816353627174202940730662329959530298572489100316589547979884940281058406438669217283972173589507824674217075198036555864333213196563206135744550405101636977287043363176663340382893178766516212778288156480410612129216867600997726733493654717951072871533823527112651946519224343830904288740472649753516750115790700349225462658844305272403172172207341897274159511238490810227769614715642150221366325328351249201892378705729055800642499743985066414584089006797773234118706224985534164084755652976589659203913467075403978653960711676726219575485945254329835108288052995842492987632086969691619446835330891081964264051232306560355908188298385021459774006673810300131170020725890967489067548770013122344319028016977103878857058381715169271294994826123100907755026653500821232614256866058835337015585767813194549426023106662665134802783013777811635066834292825225615027514217382009804233417951612216969501251661541974417332496917526578814982036355897752211805587335216806020857458353575855323368001803527703440275622317060418410820172942487424289412440402445427666870210173693767901961327962628325548867347635527635977765949991657455389062726600127015529419596553081019481154388299741814783538846167128453083802799080470734530478180948458851230138308471056295225440207182237243303162487228843387537248581427779285545497573822787603471725713643490959908200678541808102774050511516629469559305495507776392373626390257302262723574273125382846777713653899394641280693343557327118485987136500840120656901643377437145071623837940105718174431396020838912207113145916926399640452455469909612056569454005989126381159049123320106043665153187717142046279523735561827544852746450785504677060716991845542916554642304763489760571677323524291658008406747633892971816160709067869829516479970168449055246254133047019656744852619546261006711225946821795372534608336457220344948740910449923303338994838975381255469615607150403515108197625763539492974989959401133042716505870911239627834794017514707679377378493577350750453316706686633380331701456751799042844405268617852222388953344268644017535697302526976762216653717348094655305779576145398254545489581948491268315252781708175923093188249586329164335605645137636076012963797723378830624337203020621037318001358144226871693995159273114134499305949736815424931971404817466519325490393057752869121503561334466037268664331649751933489714163986602480046100097300660732260558338709703325544387563649885853686656527081535285942408306101489046920628984622216678418028366283077059949513754612675579527465965660775928225906363832716472168646914628450942799272665222438422016678535749038957335977333275698267332806021036871388311650349167090201003109906066099177301219211251551163054850471588238571594629774002307784941201044003173737804207657358942294391923330633315967822687474805354676902187438144839217274656104761671081746750255388005683315704081182476054291021843601954447845276435252883005101564879546242982545171571973613882261337172472647374633721284682000366173530795454017419730318519777384958929694118059042274047144894589302463194900826246660686086734686055364856050676443523341915685280726403228306952206730952630150452294636667482824409596959987922473056713683085635704491502216473788672132450915705346506920597185942357714815388132784699658366173538502983723556727486343309939482332731005570344203139489604543998163485132399819145293273848137264712328569660675396635249074990571026894960949670456970097499548860669057271338604411621562418405463699336571551193355623075817585944890649724135682364663375025631210297179704263419178415139613746086705877225586793546250341837536328007739488077543281425700574308129812052050736375419109179709634545943168333260723834751644809473969205351679962247644009601549967007853942039253247640502759865597573087280135759415697965843512261769410625410563142030536908154523494658110378982308463056081735004682403650440981949264874168780348708176330620914861460806874820700739383667651157415605484077069234294551238346207887528047943078619064108244887567540364071590551557197133812580236482101250435583412335918186322290401648681451793126619649201620782066856291382695458315455629817116911632990279924777424906087810412797988906810419353773674375636807796608480441578955413860626226228808847001351266719297552106728520406316644780561603450882484538591242038607785067323603871525396433866728698325057538927079700674950742724656183037029758620907395381764141759375089154949931781231509943338468966173789684852197468464797834652462730928325856513551152937592730926230092879440928033246097492506120159538694896612166788627897720755620689070754170960754634428694378337446733142359334799352233861616582355961197222813051494773054732187975014938340745884473788273602691124610474460160507887926207666000462421097003083863777428386106254617728428758237824586517257874336220064059994877235189004911466208206623832210963773696087345165107999275416414983562181035544076765884346299609255485588334951549157701322215332891379305792047974654009450185494521683354861550147568425645184859137792170448552400252916556933867736273219084434471795540255561435254787606051710809565501077420168548228035329409567137467101117183906839563423601337373085118036428221300644104569296794228241805628058214837383222193537351632216232275668318650061324079464688223641207268343352786113351939971347688326350815086817464567774820888631466479297889747195863475554537676515436436500230816185830285272046701347017043246174659900447943715842563599813420198008042958229835202571574047158958964170124027748195463977604619607035249761635654493700660243103118852748813390932222401625966479276461464013009451712084590349468334490091524461632052412768634567127228590167422948181559342090702646526532406790720886932231433790542127567336509609402648981250217449425159011992034498286524657511475991094405828269019661048912159670991533017034157045462463691878079445776592119013570728307404413558047916327241800892845505946303128011644698970172456907493325658671866427434743908710689014791589765529484850161144122223825073161835973571507833346770172872100406995245525329675454782961392632244988442075154609397583644807341730706023730112141092686088014387587189674708912144302920924364212252319880683099641854148774198435876055235756720825231120741705282189604389171156801114108208728937819249456782384597127957922745649675533403842213946831845039704863436798072495809614790414404092537127944496198359940001462061416148862503332169385386542961004619625897422659887547113609909382244945887175255129840120012142396801391328045558734968089495726527888030034609674270090159641506284007212672752371572507462714352975896075560799046296154538985483964594240230156976701366375935421892216551786375168526155849381793934802170010746598334910871142455156395596583242275667966082247955704365113459989467354974118114806452974439429596241869290103704349858404568539154460389612102549724766314287195741791975395761655331165605545211512720459925311866274955411152215587744659382678297983646761104752648104262421470160627493823291765598934478515843017758231682950609422881952439060957881161356418380880176649567553231549686447397576615279325191416793673227156126787204468177430329689121858662451303969776421753833745043021377409905994768933218612318821050912804594992885328289643727024015417989588788430271445937632055797485555325169216552045920125715655311165602745490896488622215970623732522798257446206288601198363958102594339095817656718820968273286557901002604569153045233070590147157269649098233559274671821167875611575706529094211690803119098559816586258179813182482713835610593353070000001349789272756237308833232265267411589706903528478362887123851512783855775048995943121134431694882360937461270066309714158439847273269915154350010181519352456176702695321786709017168225760380172433986256146047883807474634641806424049655260160442200875451562106720888326532596839036571649059641921765310790575499046421358533827213767836095534660524679623137959227121722407083035515687190987030744847209019533304872504894597794290120223177409188369968430339958980204534404415263361226259376166406862222963611147281029056874535313545952215649360782688497840391657244697351409478758597483433728764345170213262258027867121415401145652995231456468466178442982296763155798056902948677641832183951598087083675879858612726136541692510229788297374236430245899281432776855674611057890826308546899066943423004139010222975949520656442887109732846860377862936091667145077941245023071759155056132968665481725220527815050557182471467027399931105017512767695935083907738841273784435813573388088308274078396674139820290748549499218835965734367241581555512471593306195668296932381458131398550000819397318931462529552792569589561622374197535707652123581439518872139548411103899201851917168957360237378689088920205626334349075110849619717522764226071505614446420403386358537179807157910354126269717444219937139844757895429345226163704729632539124025778604148056527111176321453968635407933950602326633288533849605375280576538082645186931547427986624702557376652393988232905915507097445174930499709535027730290199953463886027118181885579518839924582880694425234334082163968050600989150612138781282608114041202312439490825603824006019615766197652591894364968580381265833672539800989545131101139577253530995875886760575815028195913268457936637213462963668687499917773768544277735251518508347430107695759198892319480442296131144833308330339582440796935858985370722775910088252543137934932681656853566575392866101095400978256843419096728924564765436423260056398317991784262858491035574589210261960251899084943268015485509525633989260170584000823562314289774382209438506108201779903621520158490533383905745013233518880997956009330722228041566817825015702303566751993799046759451264937199445112222711818485650976462371245058290481864833390587445674708423444492791174623873718277769721366707296335717204778725594486613415137760251193561545396754516857682358595804282556087653216812790928999682202577196953496080479792781671893240089876136036005974345722831258476655498093893400046519712137905762201032331992908859750986896564884909233542942720817125704560940550595850246740721433125771787943992699636200274530862432720514025494458200420003080343548519212771418458491401021258724505546915277014986248560888680032706590117021431055802182970994476028239033308423135544833042681316139255807649282736339666124477081238719695515811646832465802613936929880652155229904340843326631433533510956490480046122457030195641104199949909103936493199328903235656662562695098838369294304828315173449601322405243382913617468187423606948189825173377838697625487769355263347057514497558220788655512159605601372723679493681648391626796258586970357418976252291476065982762571526487476293424881487178376743826684534155629107246275224891393951626052714726472219031432761088440067438003670891794069255563529725471371660840941549495143525499046396472758762039290906458928844775332709597022141151999803887274927190279191327452743823102841434465404313747602187489802208354792533986571241571210392732677268413912681907054496657821200226098481841131969328105188228243072032337442630794704334157191600803166001486755138661099908170173709329478163878654083976905044335467536364944731439949731257900449302258664069404318494839722866928146122758798342211894767165857883498995766890031112711427223131793582260861867298661736578083353821249225633354131516183103539821946198651288614985595015460364679280377697750179828351099045523653600561257284168215336540093570952100326264883826450026337804019231285001781063801033668341942067105815085304986219777631927135166659479109519230310193485290729594651563445688639648198930922001468727383841816091032927931141588582210515898519822234948052422280623604306177351574288216650898153415155783410890218331196197222776283771235316369314525354177346986263688310168009451988516252063619199043259059996287058803302693724648963968079799424224855236508193989298207179031455153676449250768900920639552829435714559696673783776951019411374047524603272542939745848709037663337798317773086952658458653349872671625394692419876641409953952331793243824265363927389284799145514059551070506021959099680815368776821249421023148347417519045014627843985000644690633384208812494370780212276835919259970773122772940971210006617754642841355653049046480600281258643047484169664660420492631976862187047663829407652693868156054262187855339290257418716534359978416193838977992655747322759756597329724513335510385227694581132176268812165846977699550909334563489283629103092773828840774422763911293316937105587581680225411904144687472202752632010034596998523901850070468821122337808499251764871070146948253418398150177473850180196700828389130145354021407647856656930760893829365767929813591386179347348820778465377570040198707831787789888826384333558579560255546226324309067612167146113160814468110753679552968984596022205973705872169216432420999721944631011710946060623067178240455020143414428346308825732567824526550993535469011114689067949493268559813671795108787615401560116164167644943454324205968024257063492356750117761302918712357166625881758981770810204195323351925403799599967968990309153609793263833712800596505567695055127463946439829890751207296793227983470325209219484526445236560278826050592733683238802628286523327924904477755371151533383938360283795132017666973027565958706934224957350016825228986493484079721116053377169782792351691218102436263690308498667014303427569903559830180122010912452916882885330243453465886980347530129627152396833192680598724498422384211740525934124393467806661829441515570283717346982674531643789843612840131967756043498574045059332518741830735331890979374099924495269665648373582799749158243802339295971701259558622557694976109040867950287132114679550147857984080995923958170659704848525515133133845432271436529923907558082617993657884249803916416183081242151439349963865267008628946083490734670566972410333395101009348513182131948411444785415715661624034270364307674064535207973037753182338071750366731362271784570000245062330576461599717817564766982408964911757819002713661257847180196587855668788179537854858589700359366024812829094789267237317465591315898282482872018763496453104446127965105595716784144709232776500296839580081951367768983373923155758808836922050858869396681098783775578472898075971810670791569058816675954954463564734725004109082879586194530909592184786197097396464183758940829237705335246098854364850956938164056800356175150809216401117145552434489016734934055727839763240683121045938321738520225102746714328624137961266318351193367150782757160089325058013322670686674141850078902628431085272532119723900117929192137455902155569451962975887826252907497712480538744144842524442832501594753018802416891365902187367518104427227598379625448658514587398942685554513478232017870528258274554210861330154355354306434471846469466701016671126679412851156002969769862641753631702900025627134232310504991257547837061745579194347327717034719414410587336468892546337043414385826096922888660046770696937397099891515794772776465634248109908097360959528926684147882692784513441556609503381717795174545916560638398440790072763271827339185478209266555574940389661325455912934982737284700930999241998700925433808629219532543469780651865508198972816969145683881868145615426425729527651142420626642103956590384438196520774756510731028897848581323975144731405678792703500358692909745310550029011291761717898010284736081005209340428719490421541935533944486511575346418550804007571067635388465119782538530130180296159800646159257722506519820861698879835661518580750324506505874654557136489237234566939709288955300233874719662211906897925830563606116707773114426106820323671153774565354875318140922986464779168725270659403227412930596975101173622988028560514729978797227537129339134092263837725616358301013156282603939432216999544374698023853034327492633422399946408220735031493334627181440534177911204910079614078887941296634547788181108269978779685907692246937975085934021910008799470896710407937620044358350259399508171114007881097743780725877727834155557455766551821893490372077682140007785430714815175302721489913114894657640321859381774812806317928385269293408538635037519173085145663895135280065879542651970684370771404924153732606063280261800897237842357842022630950177479470393389536411813076283312269327366894767320601020860292430662318999687529609723010051415473725746705459639512135132285923517291883349402485898504744248710731819273314772571523919563456429733672105795942207710776234976061328558338844076960037660279975239104139114623219233101320437162293906828282525579001365301249568858640660045812932068711035901909073251387068251679760876586889788223451359294581750757505405385128665023942410787782634475925537526028314875076864039579281757409031084462279857470549468835508421739198515612479434690676128160255475248710177012492759592500756395011802019833004290441611886617130522923929459098034315703567300354849153218120943385057423155312897924256380384834341204611364663558905733983469005245808164621196188681279536668102685691175494204194214489055065455937244705338047488828843542119802757447982986645639534080211124491355275565150815888498432854495541068814359533033074128323964418734518253306830239643495981534308089806339142365342611220585037035137863787913649030475623146042865564852565042255414976203909387863268624449886537926576888819595141125662760513408085683684565279684160559600143961629910566115073402769640876193257478427238767207495479669498923782745468434157928666644583587077361817872598200268844412062991728021808059071228004676994383777589880605815937969428237898285133131392095590488641666657495920533865074745814690979636577199165541070647228819806780549270486951078344069040922721997924964850977903329243458732021935551138348350683637993988100396861286210065135690300800631980579817430647372031183395351469736639593759608811121550208354320103153620791572816983203068692824259714785854235853174792751065481652043758174789018687864160920007422997016484506394072610703725768967860428171900529880872374943951839991708010072072250719323618993882185188195514032203165628647926346854795448962184690355119823669247936602519927509834548640916953666438609593563448092859952767046981761742298653452960877045979789857941372259715121108824541619527533872119281793036830596650832787264597625717322125176062067435153825599382216429168886282945653155636765008641779857497781448984569145867743020928867758824812489305081775079381160037839541789841342449247395504719413469767843088424368200070643505043939924242286633785702766116843138340774994768238708994727601147971268870346391163982375257483182208385332161279589937464423933273223059485525675679537999494731254851792464152711886598447810165743134371796169447318152856064768071700099617753604419916715111138200409482150510982173947478581522762701948910020457753692470642020213507420642880575046285460864815187849025303371077815454650043752466669311769068970417093197684842709862939857744907816147005710982088373480374067748684384177377575623183240646532390951668395165649160684660423775972038989697382510580148112680399504512492452803873000811191330282643805260642241541554863998237493095542728145201576162673596467969435807912454521239697248804892765247938395757190072996809288774291006046813524851041823771848289589213897161566881195482768717667880381210486275504152541622500289549661809558209834290374725865919806188153996879400757131618421303124059541158310586329602444684998313570607630791343403658038647509058238192261317857334137124994099844653072323021864490212821222126784011246858156596737111233767537968183988795674240161207773439125255564563022647655095765208132850406872376860527026712244058543706583833611783608389703231205777327920494584045895075510630309062754015683080799416267232583499686389047477666517436379627978057807712671339280145785647656674354145502857776092760256231010475101653159846667946183828139296906193420525211107736210035075867578040195636978761595598315023773897008584381177526098021523022322224103733870724423428792396558973403978255439893357128450035122483970718553652099701869892306765254548393889080970257156588284929573325903823030068993774514126076618301803309327328795378780518191041343873707469551080170121142266590899372138203513520652978494255555414629460923297254771513230785436090067251780428895276591780435134350296366628438977726014059785422662400085928935629420055224768134596604118101883748943667256079540300831663043537344612638267331364469756350806860223409425350598155020677967743988348491148117922437616302398898623764078800692067949681811990784052671551732140935013106417487014291547632156142643175928989692331498371686420886424138026117341482241620282572336940762473329670814078226675828525593953595454468087809788281333804320679436804822634704843978479813092137047440905505081399156259569974778443635387885034151797973862230304889527308823558830547823169319917879502506972967931825253385278175327500399507421703240870319336960830881862704884321308350493001186394590961551185246193342844975714183291546877303132568943452925555874140848780093441365822034881381095090080089556684186509987345466986194115370130558308229155891409048770227430607630674581062134138128360026388242219880918121657499428550309125578759750764922691535300650795242337224201695856122784740011757981825545836333258426012215382193405952735380705767371792433664904719984623613480339428963241841335443907280740983827913430644979433025765860058660352997971570434738415913918774831223930389323716859562864633338650953083137410117064340923459524519139653416427255609811377221704830097358123040520423752685757250451109931237209463948206703629886197080136876925219331921505683402103446243867389434839909788020562806623129989043628528598510586968840165073197450214285038307915890028547066003254674309331023624857821737330675354784917042326001704079024001756156649543705407797396218611906521305372854614385326968051142926158805092473004558476271306790525318919186786362301948190971924685478306997823255359388375660028577629249141469116064991657881850513569673941852468879956866242223791659943250498405513409043265646921846361412472034596492928704397701537890040565114973187957619389634514630886319706216032915845728271856835666559380985376082574594899593259827775075724632800561943812130322010739413896379525831123656600804099932341179043727161426207589111024350499513998824988708678889992529680742153935543515503383592946825901336641115668118668017424318020173939060528551628641684237031348831859003980064028289602536662468743676164180694633795048806263039416024655834207598194196842347408302989463095964796317111546206239639676107895295828869915565481574453263163782496272184640300479034482798287628347775351593650764204493544406253130666827102478010482736376012327503187829369162400895434255409350970672808946106288721246918143130320820816526364148285076882418652634915589426032180607418859616009493161123939167127088865057657828334469074980612542648165031933768425322733796172337363978261769502256520011848193820339275543703928792715109910315548488162534047118390102213366830871697960564475336548962298072081142058017456209073162303303731967373476143786983492644085550666303843477065655107381889537515355751000927682394053253329290827593715727687128543860222143326187679163032746590109341877100710599605900396158288312499311385554435257287124962793153286346812387002743455041232847185921523951773957215721065241970764026334601926940444560095402491825458049233029083442563225465767234138254568487053201744200987802315333701659554896960381689589713278569624891472170328688737700257024918598857086029109183075392215838789794493327257167694425847330320219771203120066827489076929963904191212546552357397214809997217827040415082539468190892914655549465706426699536577778061447193269731375157022879776892956888104277326131835044211810317195935552214027323847360672905634239785236650694978825094284949482583008883864254356867407004962212722723219757382180921621029560754227540637366804899171205353628040917180919599100217667194757583675593704876706937993825390078358809179868658271162747278275330130270378135972388555492322077100327554389976105282722176383015369024752861502240414822682905631563131539789105378773141551027273798061030142791579805180582222503329425669939208110628799111563816860326431562595867657580947228026171944112592070937615901626638568652265514711717698188360955921787105977340733495235064279881181813601567531172695113532631959050613769442751010743306580887902264552406893916111441219409110438084446125637348404735897811874895239864437364304777457450559148663850413349791280125081256172159536797033102440464165290129345410080705215470618124875888834505505705228095256080667477453823575075790519034835821868505807357974445497512018590876758238275982328897740061812022697632651149594303279296579971350036591808057407927066636633961294866168964726639347201886384603301918714309062128049149979461991183956516614948744880078936335463970721594208095783702796321897304688737459489959449728553664394954750717657552499381438994346933610681567324785644787899425239892872230162533207695674748263345752175283657979660348914950315880229049306225301445458854885585507603566188748084820625205965537400076616600400184176897515280920920701663833144573274925643658972963229532048697934446902578387593036001407576282726547096024795008828980639568750524243047619149121949025973968222667293157091105209422931230252630379797416736276210624969906379429510271846594337492088909538670552771966735168129329339403292347747833608344179203239189628975849554016852589639955885057065561646240957107160277986483481967243178183015743072780530899107121430468762466965234419598438340686732721197885320971821884610998563968077977432529633913584595664150989879642894977479729300886293493491357556165102297329317136487847194842678181600355286991769745474050238368621856397106304478017414767594576654595226856525326389757526185961512134942794246076154926756363626850266455891619526930535463925522748313014405558343316052366128315478971431986912346963420234165802602765956757284892334367796578958124932537477058384740531180905039623898765660590976120250240964838330116692842139743988024213808751974534728134228527549263555540637303775710132216980007374820915645934625841362972073912597700296909571377403822040533002775914504653701543025559504806295786358816396661085730703303035523489280811789000573846106629174712660863231131111717327909129792178175690816147218062984916887094122883884401344361761252052871485885274836972429705022229426777255774368977439321023268100997815614062080923158250897629819822385702010222739566845527400582832333756998362220804576238599794047524113150394306955708659748165117540967119779366066823018026538412520432329477173977378383936907471416878915724242279029335235172335922034728252491593557090529974498792164101440522979890062152591482818431677849256337553868220388560505684498514479125521545593649820388747721360372047321991457459680676458704754150812024369005065235892982358985278670027229948463174362619637354233245160156915434880043126863587823641856669304783709312990340252536633499539009509430842898813388961323488400550595502981895125212566836696743995775963244786320778561240835236723232758458000278126440554299061404891836766705730386651290198450030125013684487417092213443588504728329807247289918452796245125599523436352193294259440177889558703266893123444879913942642707699917707039374773884491665957816020710425674271551190288074975670651895373790067189327246643301586787437706923753685520186628976766519201003590870623851415215083654597827176385367844205748469826496170007857303299611205251355016835857742773002285305152489201886681387655177395058765203126434095423108817767364340882397960669103644625302250606804136852030161427889639866846556162769982098332042905103708455291469367788711917129959250217736003931839602003937925850071876676190273363585099881598598895462171321859117916017366235215783990324400531244048906540363033342596038284520957767421657170506976671692246363050712879716968555335526743379796988187258046822557029994253345933962789786488635568577194440153551941819679435093060979415450007111315482628149445642705260462203555013377304260926196833181303970484933864202597126822330692289449854230882033765668013282422568753199479694090759770390732001076497534613012219106235210733830691344908421972083928479742046225452064809016426919876762288810575793205127961564461230678451438100440272968246682938995863906028085002411255115330320928248042863385829964678133465650494290788036718624382125461129368900190913597579000432190434360462472695944802824868279412879017276637242834216712751694971092911704549942375968353614023422635037481378727413268741164408694497135594386039557551667238319758471122571374241196255108139007866270447776310529166896619831547366320009630604542322095190564292125127302565039461882523679018320064996342867716114578935859903109810457733636268915708513624936110165850435061073565536998594305333040184882091367821732703135999493523113314661363638138443052104456769010778825310123168483995350148171340225956980318377866414638745899113600228251009985829212088867799151173210340439213154362141830968387629975120244659207733017233063847935657673050082975376291527102817374234769789178605547609431832791216612700920982737409562867236350931431643654127869937313039784700845101596129827013744360238828824547816520622523809335559553646010703575539782294149796841107739901280933933352798687264396199282530545038566855813651210821060213467983831637120688929103329562800708201665597777589491744692893095815093544421179040315704204513096796262606916830073563284655174946784245838632669017556913641367936352066921117231986700166492108765063856189104224016043784105991719015833766380881416906616138409303098684224224585307069894634886115176518952520360068147530111844551124931383419627552235548822209511134262726710685828595379719681916332837628688390440109073061353118513275254003349359489785132443414843388919445491331431944480741447788699745206559602716356333797667627713243898068432377122411408162044388897715751900742986326164368909988779476569553073608434880982871860917586661960342305706714213590583363929247593923594187709058239787179213084386957586258176021199828959570908613361198205027139031838985978959216545385188013937332130949747688244773503517820754999185159838864453924377289277878986513416414862254804524471378179942284155753999671026695742661755906331108428585900569033211609101754086958708210468364917098100287808593565617653512105824864884875646995456343714126621217817596050862339965556960845166879729426623868074520448623131738900844617113910493637491716909791098461172476735090931234827918018866995444239958944287761672496404293859472489495823511878338988509007056415654148519608752760712813530401968572446538403679862243729761077946381164106685581707309477504419069305917787255558308247099650779739422202948703733579490465652725870112326396681159208266722206983116379200899004936972677017607241878918207320935644801722495419518310352384579253666838089540612545590940597413989582682568629095765951901864164212773139013133709497507886322745033578471904276417197075627004627174933224673237166865558370932841556878457090706505062019003489735344200901294844570771781042927673194316656030599567957271695453784317082888057035723660939575063607427827623526318674677646345825769451213598121189748722578080759604947596328658525319777577852734338007951916879520409377054329752684579781380432584612329972969327886777005059529182546533920884864651362189051171325071565773279837073483309636760388666135572686385845297350948997955878328886446122661396302122037516678659413227486535388510945797376453514038778321171932146618577335686280079834141236761324303136606226454437871996862926356960542294831475174493272466311100384523229378006455072440093106346018532491392149648084203536372973949498547773839759179743380799213154920927402497314309659820943480993185137377320950037919205753863393006765610605819722645422728259652428211271982055341885077004169324345464662060716916633653071004440107565093267878442727326647203313272971417195031423377062982234553762013822527881321047437751328625826120575453587613556523878630332165214952232213591445723586740058790387530872321467069319193111202233916293627976672703614257577713224045527316995165639376025018340947429353062591376403237730784771635860168547674235750443713102475951180936823366063027598838095792822048620158974277946929849510824048031068166505420114291354358075888104212893537768498725182281781704327626172870619684314732120292834618428825908096429823235357760223287079589380133135660117083025356055133361304810596507317630495010555882914627676438361025286989254752176558235070926041771562587965492057090709891615914163313231771996897867748030823459783338405524305111008913115451331886627301933464877680991636981399954894909356935813822907805936142533923870693176688879771596100573088487658086856953853102714971379337204125922519094324598997246390312726238680691044525536262893825229063933194419061834452942246978197480911462561644210526940769879539721089235512265417023019296169032332286057473916810142383990115571791396334845729765193704917464744895541935600798217789191959335917581674364334167057076381436030708888514177585411330168323126116026878285165928261279222546458272959799435920846183108372119147332404467159155773305152564488311883221936054543093528774144178456978083980357856109906532070817437437726073759381273137554737590456120948315474513928883476127482007091045682263558658995820568888790896575711398153944628607505574776433925254081595160920690259828461076793312481199112393538423389609478802260582515956200374624505452535953121575280912949503974649114629133391019022238480700164077439574925227321865803903930567203382794336288366879469974120163611802237875814611579676100118479751995872475049196085898029879966086765025729650550259254251347977544366849924192249165500837834500157833947569983991672875570153268162658334222734993380058393639448803756101674086334341390853099801397209366987512178307312914894023945894692546863615466659260863359951510976774035872669605693120135407406073708208666626195520555396238867359179146720451124109939574352207237153725882905537522699046576291906201909211977821081905554303414366456597904688988299046496848476031683375054854776870440326363966246794399986576153299421279567391961510700367972514478896744593812983256412221693040140736108799109445298410690126132325236027137004723596875887610852378192806828222571358858630817376107399191133403530618691805532362013934347807180464223515088426948263799670418474018669170234828874165125368335956712931977559548074707235280776359862179827073890393236967234091977406598298797028362168801300699430091130919834760178988230390455684790903106594703891826976933601372394805474067348730349155515844193573232739673448774699161847357834450643500176146605543847895588145302784911625288964268968418452284474875038578366783899863800020688177670447505193674870353357546553232206156686155633868116962527062294829790525000598409217461388509011182137857816679710759087858979119524231034821794889999675694705670203426008480888899757426998685627189090830010119096958760530312231230435666878979574661846897210335599075952941820487763362183349910828535920202362248576784228130214089571793149383333923655668801201380450996925480993358826907259607655664578228218545559460107267034711388302236202769727950876791285513554099619007099784764663982455002401584495416305003669979324127389730199832592292570768822556286351390496865186563831635080621468517789365094650135510039311459203291139631226451104239160427469908233127241096329942870024780873796028953274936043450452050039328031828375960685120187684808862685960727515593207445205605681979668842593265797431173664222539526502763209780524863229664027099860238578456521107421608012733911134101968830143017178179564075180792118912248741478417586993622803016927163157307368326917400882295089816141173030864675615604045545448282612915113592355835431108674492755176689149376872647958725284672289067073122730116901705446003242150170682977998509879633235560997226296683494264163228742320531454095665104842488001807051027464084542072658806827109114236192690246463821823515445358784513993919776270365638172908998349739242132951299772719921910756941067290696817906277189581758442768597578371271990829097374131507578436385432823828727676389452109254083546020532327316947182313238738212017060424375089797141494460203704422686045664555560611259409771335893697275650307580625597664727206888707382324074067816584278900889879508042461997879649266188388266436432609918797853770500648486021987367268239134523774730708523811550496241174726115701991745237604655299319901735205515891436197752291444535800351104693939668554795050503296223533014539497542132659620249893169682365224070405871853870971409378626348068018895971470468738767549306102903005794062120103972948878408921421993409831841250644433394188430641903886172318572217569107942109319818737980739252939861865298149133106096099917122218316136950083315117736949671002855569176384935476141955832034420078106736141818423748224647199318328194720901764230352737468619453562166176342995922317254015182431847454200499183524342975403958052920340510720004731928488075893187331314589689052146116216995226959310768649554981724445036769376327504688565176458812537205343995967528594113978761134857403904610665414047335421534242902294675853395819555017363009299630317005454138213716774075916092023955411124947429018435128849044559120432046880903766480264180536660603017997987555193231649925581552053964682539040663759941412589986493851224148107682698939109007748053377711744414893686706628513338867538933376765043825480541095883739642179747262744314360660368733818027192130315968514672830823107129951164317823884264647629251973860197820533113769125019134223729840725970203789814345450902474670662362302782886420187197547206285521973361652414434364328248066530628066343585148676028044853626991719563943477456071177572867756849997483741688416525375781456250349180674733894658105693968505749979936331811498208099305466152141034999092141984985945603419643979460569005114714220880134218615773742842463056488587792145208995382766124420398166037471013804652821433908137965770617030521006481544156969878565538552506806576640258966064812595642813605452037254061979371750516717079814039957683772622997140741740641376261141730122314230424591585812651875149271634057302773051652020127933870143561593792097475887811504004118694944235554492982883946646070069455000575237657835351118037033191823892535490196951062067880111495795178710959544661879578709151642169251248102860179046847054310556591618448846053260864769392459028401268262868484490889920367589329767503790750191490502550508461639300971976187346598973926782047207296503134088830627119719114836577449752171256211154245169764542286154691919552687122630736280638466025418395555387772945766849897690333364020570267552220825936795951489991160196961306598001873488738647054065973203864987074535500464389997485927515904623306058096435346294706759271854184989901646190721314189316492032443643900739923175503656508701175451063036120559000597247030347014230533467613635894538531588481024007565227502301764839109148242662518153833264452037277181117675838943448764322757474103446105608414050839583768407920464206786850275550609995047951990310180067014582662752478173362525755754557137313880028057303757423928596209960240364369092589322836895417533777723151352710664048647390363641613151308771837263228989215599873490740519714660085003926675883144310363457823943443955515093529150308944656140406891344866340276438325980596758337693091837977740572260431006052911430625515289258684829951856079312594355895941709393200388105056416943642236507638958209031557398984478713563426233355258323264273622693969413236764201264782239713184491562887664206452043286377987347493893689202867161402249938782654135493636822751011237242211476089651116918285308631456699937567722053656774425300647436421307099597872761115845800755319549440611309595608114615892545519665727859928780511095704150602798462167269059302421111749821290046475101228350523836211113235351198820163998062548161492047574803697723224222576305656870729122683575017449618469126823097029289539030096177033177959450172212367492593300126653440587615036395236507049354939274454116811560214064760695201248683006880058099697364355178492471003601809738618446001731572012114404785650521586108571850051465825313001055123933782067292430144698118213745260751089908464670139970793299935113231241288675681798789220234947292316757724204505375527542958887030926690242692352804770175975789773553577856201403871880697167266613992697419889168476438464192076365646507585624563338174605002640326977947619068591310890591867099718403364590349602603653951662733695924373529681941239724010385866659008351421638773675378529135793893941083348145622272234169938247731852388124989326579205191035938313573587098930507520249365078801378939658643714686612860378370438323408272865244035533580318673405767516992419032585145196153416182953564017911399025555372634454962438951665796918483912488045431886792858550143182703963768223511282688665879219481777173116479817097053543684822911720252021904623650926494876288672600002304788263566107816634612184104546137983551384065830414822254900716436081119538213574967382995078611211554427270528234984374071954298443095832816831249997306614033098309104505490534724676237662264026136708349323097457090966105527330900057919418455174362272754489600807718689626155881001576936118320092162244981469880939755566498498806030648706785998083549400260252077341334022514544190050387324731565819211765149550676806730133381063116585299364341152927042590919430008529657004429833737018000145165149204216650754027020850066703437367980667832235239244361143406344354330325549284210867171441397925488612287335778854774810169162602685905838535431008601638646026494907480555218520580974730355194786446711463517577864259404933503170963109671530218955815510882409617940907052203090572223231493657541532559779398368580025494959804089435304334392163495154649732150393825471010346605120807972117348620480593527380112392291422366140489438980840851003434696852787725881671865862293738117724293987678755943640989454288160681991850656262728919074795511791082169254090265086984675128497797936851570598016937514047188870665242519578391006957381291190356893044913955075963613044353401280507298505222810302806233795823175016896610012142524367649121650152961522526930105531515440705733129291773369509073444109371177489331608954026054598129266673314467529536048663234147095852485823707652276064687294113628068762232998235053712661075567583381804025048863135303720208979437517119625404737479744066073918689693757519982859045461278781679730227178089574670237576644921926149968789838225340217873276680294302401386130884008985224084034766926257182180882672324825258826719566277607686065209904449431224372229982670477207119573638950490832822009279111022909382189440423827048277388492804733171215377652476493124985365851188411948825082724256865303189217258564547077260605594244574415430206952851509580331977335996452602498875227106151449294705361741082089703525352408549119965049369768830102930182256177185681637505509619025265480099907797852624104288480916476686698567574739269819657760520400269048095460506699576362546587705729720279221090040696170948620413585604747848164156785879863904254736200117125730328008014504241635577508410095248350173543169253900773744065582519846192709636948217511117988161046875048113927769530873861697713311135958243949013292578939630263396001928242363694062857940989418119203249486967473871577885738741884218376975632219588467150934014455593302897210288027952965569034703036425146186210105321199014494018662378119752764296528429998510598727830905193535487220331492461443146238947390858772718079235371885620446378573543846843776423633398462019078422726321890442727257015246343108672225504760234980681337062502362686369935051459639072799149605085613709324491557474775889761469152725677038486153520221119578683977637560401018582804935082852360323079219532390572986604891327379879820976235484904564175520257437339538171832422890539081026862515670489893037429472670704681052731090979492436305585755135452935034224193639461039506030705990493028457032988083955558748539579973948842050050365832816769818725031115310517543029410008981786409811542614560185028048058148719790847228887915410234230246127016091735823516277212935152766587318681283736463304619147345994845615034529265708469396230841255736431894832522560520143329464958803904589862010384311845782489469970430538750080612798597757815804067222118116100579440335026507923947359182002072916260762434356860896734936436649466442808253059138901526289046902578050807103238029483221227037294392372304628442502036370074015646003235917951332637474591114689281736247132267641390969293751891986520433872646997995014381680070642985473659548459051411670899164374113608754519715888965165173730163723710262155833851468177640886150741760105701096254284960248875140248450021152997317723847856661887852957082471124028323028884184879366084223558150982404285803502638338972547354574716367869419603758566810768417008766643506676143010891090033736822488959628434855837146361746529789585669604000805521378642214382362048111531512386413270421052508704835999060491042462434739900902486177093345449807062648658858016825555901665768494950716513426208085597653320189874848621983506626375150414642522216270398961723363078231606078219139190006191447946861921721672788619839568632528304428690779157931824971754106939573354442567552664253550160085935472837203150416044419437735421180485315821084990352295188952080248771476784273228460170967186300498545115852186242280476215867007881614392832458796754577273086784067609802049910705185002602291899781661096909172710232695134416396572683473493884027409912654415082442810371651273015117394735435970173310697724245858787182927437654987157841475252040050465238995314341055194811045263509022034697021326058559675293546668174533455589484259326967434090109572819397238853987793446066378246729678613418907798064761590545339399372734536406522990262326051902840133706358121332469613418521915940330187009153311492733805908614669688400315867938124606416470136024064017826719551934695443458170788202184757814208687333870700988020239834715258236171751741769761807700373119952779167231339525607597557160076465671396651604386348093929026672332481266426887611432735857436961321448300180871917492997842558882048899019316410351560246611601828727820752625652738774446708190982886174336093286264620210021231449357780502022740302354558702866091781933145631683938586376782584852168402967227630400268838396793119959177090773744060075806696909004233965932538137354036797509429045663176521456301916507457312538294502186342174365935772605859978321569413820276071768048756645770858719293231030118132929793583560351472715031244057569460018386531670061794810247196354355405058437433812496740459284642302808861535938379943919059725955168946109812842768171287159946472477107008584752580700647531190447159071029417995986142895126160197015219381070888692873585194405337878026155333192591069591933776475478103838269638836795009478215865695179915089884673186223047845326835947747845204822446773657100785500476171891275712519876816806556595222504851645896905586389954816358821208362063853423253179652209081301160366954216834151218458377419825084871212195532855600430301305003480732943716914574739771821421992267661954845214699768970035444862520845222943524613500735279856100104926132406168410413150047879909393208678585328589995111100010260782679629373423514236348369605686063027184526078503359115276756554076796160868610947878597392148575444062141122339038100849175932679375501615168273283289197900377226799082599336876204136826865789689707968813600420154748546347425397283097377441658242119765417166996497157011378204637524277903712664599202559371946719148838332690049191347406890462398391236615632743997837439787937778011772457821132118081951965634455844211093339660460585771456814598941243576434792970569806708159165389659424094201359469351386494042929081582113460326451589331737140050229432778802668016949214021246260333502502870871487630234378195138480661040027387060095422342057027003339333292090229884030457159982435470919331463543967912920830003742834777835389908619003219239615898467472921111994825346299150651720669951265556950695214451638800096904020798683672196751046927128818230431291658090865999883597590336589628703614611330510861813866416579341924306649810098291587340007153246908582473695416784641661398835625575732392055646302668997780243912518769167941792158940820066568819805743457649054849043049707788669355600584489985099513683473231369841809449359058902570010653712696708843900926948197490478759138030037339621215236078235020946061064729681025540469212714010816935517597699375314455626349322216779648300467990365029754816130727683633671583549241239620435427307662259309683508943025070712674531756898778159145440267230719163430211189914048814830775966984447478608512146147542712428018453302382135341255929492635656514866094409165302814855030705658054873435543073485882386568245042649104858278716494744512336832018128503540343182778229672377790602475051287626895910087537206389738453672336145939957802554403398143520974518003918811276716265291543751302334845756075668406126392898920385960657554033173718549848663891417475320954263854810795671152293151685980326604105386863978218725814602654517947607283502545510121583948511208288106778932584598846152116258277017985778048618414240651206326057747436431314356792988020954759655399964296943715933955163638715565683022818489902410136410503050538840244084294638651394544852025039376704344009894144590997122725854644188781680196747956770963660037767737815044638333222230797010786681362899272237759292273995185943072573610853820960299708448032541918279374858955996068012836002305144271889876587385288481204634368708988085845575095963203896224304312112896564065573826305957509930363544290819568160793408358343579145566869745553822184119145422538287063957614918126538644106579390098604567058882757513923690721952812480185195560231525004206593794133163874340365638130572322711327653231687934499425572935106551226562822616267100679972604470714690874256894816896905285855826485685112912595196997437212725383954685878248779470333057321881398956435389357416549055909287436231997445692344998015515535291124415170859385796708571226876988521260266494986888635750359167911049186947568146101798944862776880810605551397107298304980158768961023798039740691622032348326332436725740717998252485719743397532327891185874622860553449078943175886295794376555700065184971210918639128565432914133851361614605761673751497900313820279330990467756321662372316918935880079148833465833061504397303011011127920297972598860411142445866981875824713985063005441606382192470082655254950273919199920349689809074711106446747679761717978050977350580325111198076367157154142109177422943055052608536241788118047989395910417698651478648679695314443035078058043380367126206837401707424322126686613537278853793893536280695253044319357154626037502121282928234887813748313916868101241436471059833327368671460370614979526841827359095173421458611208182967161899928555099164127250280786613794608653475583097934183151032323913071530299510326744271376728229829172103274329123740808670424408518740377900832308408468600362113917164956141571331299060218422945871566372520685007925166000216994040600954112814536044644987599995285470804107760485851562411311959498770100888147644910363516801970940172352286143764992264966275361598736074801177868205613541079249214831321650558388040414743867900396640905973701837899463941841892668650477748821522688974250660828713750527521896064074409567762533038382254333931639091167955329634682009652977332251360275908083461863728945870015464403194104441737002126805936692252661281648921923157948453032467625945120922236542358395818254118604237441864440897846327242855737171017114760969675207143550023053366098676662751274110665699215541142919578073312733892383304078302503773592033226808266518935965337907276671924826644417220718442232172731135517393034776069806049559952067630381984381287360994942059255210470689017455393582098493341082221289313070709160581443999097519658891318390528576832131252905971970003832886756569894120410909018218694004990548647169323313525368440850441615472280312673247996730737981044812230264453977966552535545852353578716171460376224407153930165634415242411648561923648133262725488923484550307691975980306700240153691048008967366855107777023251710137957075701689191899811338439742637334036495326427520864629513976922537278920764547525199061388291646383175353927692311539699638995543873500992881034100361254345821308680671051467897044191727229552320507714852552568997271913979123183056651939185196915227636740278595463556486197808532416002122191739016854496198143594114646866131152730499228054403845501307112347542583605402163477129379290547411999251023430797611568489753407516651755228298161437585451093764329617239080098162810677998464816907820948070086299456368104508318202598515724565430366188758719731983064538197650806616412483466577895578509475475349902152610560279946717966423159252487958906945939521417071617534902619601307812085138056117092484975838280991291724722353262703310105924133252544028275721294545757261675112577171118700021696261190377099266185498568571930579818867868705343084831610925275176184862754208709184467669408918728124391931021961507595435526510343994088182498551200865537280214703221230499546898877340261414887329465614881660569213450793293926082775255313589402779968289893422899636167736878157064194296638839913551425002139046477196771756848115567089493609468199987252869872528247418770819648557274770680834961802899972038003930607887861579651840959354174477637317324473339615620757164523386238060629172035717984892574804547566748666889561271861018690066715309265064912259435738798714598048085783307722788453325316777592412191641325814851106837736486847178243595298673016611584235031949885354086843166928186721225631710265863440086671409183227980174190887243441019351289714404712143333278612735871019192755226651916333114519316638759044567344645279702373305968945860338263657296378527158676462250283022307226075858885642409924964378528473270887865341602796193722596333671971859415795965896380559184771089166229708216917545510631220628736559521364266930512777829881876523677733351945016495379487564337696589024211932793423461139883762313525166252723066504640848135568830356273665974726212496429178061298936492291866409740512729725057962702143321174260231424596323211484898141570998933196757589902262654780058249065394161911023350737105221247143802338422634981155897412736463055208361546946373062723198857154806632907513340748140751559464066631921803337522448613889737334229311511847799155926525410345987820271577249464978620381548236040269616363201998971001375301225243206062302492319632761323445182404030363714965148517669225733196621877140668392246922047742272054143977153094438043349235453668274584509820365379825848384872799378720902158715899493454031220467239242469432234173748144296234258392550715939358922959378211638679146117731888672177024845131198004648531611679888500107910021042426489562939810890001714919135588128204497591770072374767891441275295656637704904333939719055193614400263055646291594786883313696158384801387917386754534975454280110710950861590397941350817546779741956964334573269525728572361238345141675242760642317464813046891317796230608882344082664980669922893416698479703303771380348550959392151001991444713071026993199120338750849185578805020839358260516301588608178968760764699547790341791553361177145211880954625889170325673993807541629936510308415549237848130805999083854986938504629304339429930060366056651621186048672716921939086881476838149773850054646959958558625509515412990215691286472229011861735286797918477505145589500688072502391083840792428906959937035207438538832123375265072998991634577543338541898516346555346729198042377221523504330906662435364381628563937287610731519762210958032880373191885170421397749736751251299620900439671823599682489504725807000363233617987877215397780582282211864127817714758409297445675199275807510403990940889524203712852334007258569553731785326699085438941886842817190580032893813367373453247421352500735114715043900466892756893066249772344178460537336701512819465334899206244319062853106497535291670790336060986284704363239858137118361968988807299625268165178881618736744826565439176982410210674467061766312977884694935178337796622098621030840209914643507278860289244349543596489044494343121459575932186645203210851405910177036849050624466989986326020057770457574546103093914668260477265422100656496997580966715054970445975952723512283571372898287551049756128570910480627808638403727894526395599657619520505367749628192952503488162314584021797671681008258519445679227649930818098308145108265844969643869042862914740562308084592487765869176569154102462463112370278757784552469800268526830277314392080636894804020073878007059488816971780182805024304434131091882672760070272984636079692912020389567786904122585105386777179320278166856260438170608295215347397103781607661788760819350087826558037119178468244447592601585150175896024862606242092472522259376877579177537461683820005220179067736964619457725028338872010018903719302360034666691699890813625907037583718174955114296407762282107856327256873404025665654872214910754692479719143901466865286708995564721805931221390178729399300856239631334479738745819770600696531616769309202096870747827018864145832764814014911998690511609013598995476009491882843814276178759540208018079357733044464171168223343354372229995499057484893625179506135557766227323071673937654824659216902844578895272598253837202345955339998797537786723207949295780514425306250940523945842981472425098548463469631148744132491666267041887345201627412847287553391095195149882146909103041908239668179703694008691521058448493451469439920341412587812656615250307462656611974244145312994711771617975768057491105858158721810282191669695336669454281275657695016494363019785822262699157836547387835146234818255514431334010940824368081684519083628961382699681219238528979197472260510079967201236288007218175391543562550481704444444267284835992468934984056610364903723326947384397797315908936428911255869810449328172872665529311638244125389313341728916461612788504138896947372656667235397887839262043837587942620573322200905823249625303090472531064306597371896870310612889332430080761610790579800894292225690991987348347597579580100344013103413148182833783763975910631961404819827032521819116929985001342745820745007301242036027547893288872047549479515928640516295524521827792831995507383636257031483787476850251701652935763486646137994582727899276480158696472195884432616515652590537597144573073439902573369510865535461110619072964342670741849522268599562489996320709783888932168118096254245007277357655651887900921757193613551288065752851743055122053434781039836623818183480223420864462665770533834774235257701808264622429474980557070716698770716371613782270235954146705774757406560048467502219723503273670510187103141191322514866486763736744686990000164517015855441914510178770872010663385872337630281401378577978037387064510493413863913980670773632350004063317613226714791761344589782188731412734527907295320990198308373534920472384016660682891643673126749708237840628786985269529053927827863547739609417033107232624526302689552634585400932665029673324704879035403163156632336306658241638832302839176930465017604749832617069543672285423037917401584977695841308557291516218978329918797292424499311572315134266359141090255914856125476199637465699790945437134758415026281959418680674447352947788483321428489447437891728212900040393647505442497396698419829825075341091855016766327388460565092746877155978565317048086135854058935872369215776672602335013438423210668682379268628971674938980323580460828766728616985499299441099058030026608762572011950824126121147179959927395508796708410044358087093197127807878460204228666764686925939831718765807250236804593105890973164942623660683476825355035024531237411977957514128653188881544889523640558201933991539337403181056332687610723115460325266676902757936919191624363395111791513908724535446720366617121512875186158503367951097871895947346954762742091988007095196682336141819085484573485386015675839463747945496965403963866334939005390084855442904510099734347449979109604348550222431324778714604724706152217432697839408599981355945581724769938633774545643799393043345732825900297842428797826453789382786278407183545526521366644794163900742673957621374412296877305805071349656548776337556455186988495621709573360195072917648236005889179029375515014405291015845445352564413174698040789901687323888056498907498212212202581415795790451442303126677819187428197768723980310835694495503567386374369777921904675034507055715542279168051173730445916843334998318446344481756022716510943354497451088446723445818499686033694430560325109765468517677291860206472534046134601454411163249581138381908833213558992338654502837687087082303769770903961533017707527425776044141432758004405387239093561177781925322322785533268487934073841156800044535088336394280617113529119115569067112961690871592846977101679708531728107184455849458268556426499693406114770356491330387959791850490023620677416862800715815992954158420607351239431603484905391718670641698911876068508198648921888062144135425041891902786780888785121535389003114406874674752543285430188081512952751128896242592256566565618826291423402259728973729477140942573735278525697604986044950964143416156108689449859753360359963324161772542407602570126372270523131318782954615182115752191255789812682107560071502289611836526608898328077106277697858954716377388210239969686577273280673303261284227124104953772210289632958278810722352079548860008081298037018010348765921727949740089805708519866652346440335231232442915798974531968822057570926180393882871246664446841521613223472780260314070436313467528062309709846097416769590058713719972144048849711307478485376650769195520506589639589547074951158067541792662525775640557965172190064266422895384969916834561972098414078558218625736531917206406379997044865659342206319349902751750657055830777099840776697062157214141625994615519787476174512555969343035416988068925735286433959103409940859857679442962728045155615511618795472317725198112829390063344115773924817438262656707734368982571064455310439614284077406404871079636379614595915533573145722049903842705254967511060396169363586062252999597268567816423581139757195384455191157051713271306591202750497927354069330779029978028513554576202628563752754844776729197744466848896391567163530114344010679273055704872798142385819430690517935425833204038478979034393356060702305848443212129234784231957939381165101442775820390933028931099107839176443155386370694688009939912021688013741690679249261154265679830651958219497513449576103862767923330171012963229397007585782476900139261479002951654522192362974198136403305711188551960218418847872412074546656721828061924729618870199555333905189195207792853652882969592895323554076065262758138534404985437982611210058243257312752362807508969182309153590421829055448198996026257162611776058173717759560172719655819206012829313188256263667522235156877251183613459377853528951568165082322604271101086649434702531239473854491603731597431021577610779357906289554603478790069720029154066984031414771562779663865702308298693835224591968026423195655677556852596066362367921461948727472288657374902330255493797561221449416444056282437976247195337494545101708628861588304145878638084716016070858226079705294157177768389188165987817987406833760438286494203023724414257052429662503362895117689350797692956822294521022553223358549211626220641226328596018465419432714556833957791860493439990033526981884371052131390633544540092812910540667990021204550124146429630986964673877997562586110954847037823283780472120590102309703638332962250407811190303765737220374582827879873902264530226978205854236945125437853227541168188866489395007561548891547973781669237369969828174275559248818177110076962166905523170294195115848845661970780532869090422133629525091400690644042941105329883757388640700766363679900542622908658512782780618997897861226538513386565935916906617393527190941470026711223115976628172001015352386159503016705487415617919666004832702203885345086767770636438932304545025779279877546729364277609073777444363462336900067686369486966820289827281173189047705864462044392497115424844761753439885202933392035778454852948481499110325667080687625220444284423347599367086046928442496017759015785913633238032877346967635866554048511955960169895614699175951375136344050266176737396226811158883739154171910505437359151488278844759469750732295122130478225229614852720995344857282222164818879475967179605002931473602293092150646654736267450799370591090215492179743389056228255425526559211448615973090643460003755322544618472181580544012114401133480063012240390676097500940186626823326570702789490341457685259951496065247436575611978637284199550357093746316079386251191520697942844128971581439054485538829514098622610778811049407273075158577431892861675071131050378093862725014392681108214539899690106399000451819059092478457538540190292457658555765122967630786727948193050126694116325218289071795506031144905348191622762679768441146470862618438512900167356300636274482744509562773819747577762489037223674752049340446196072230435157747112318463717328937370613151927638082828399054169806960495589462382794726951369449037207977826274443118903039173109041748720359713325317633550082189283357502596848572337604812343293520290749354301737517900437976440469654709349735406328463170916973850221367550291023981410703390805949087752971076566838800130142836836521038166914807689625859042947511714550362844724716292128314287371758886281863234176580533951809174974693971426153703958265545462072731041395900470767703259727127312737066556795983653178260205936120826694283774259589437657163895000861212801239387422299925227027213554735970818753294196939651574050725433436213533964657735082599762207541162747053431304815384252672458586750656119252953483818277412263858136959876282720023043804223530664251150889271484880181715280546183221221148386987195298039083994216540676524335054895699507199730396574146582007786476348377242493141755535756626395140977812061498763236812696227852069943179530508841744904758554750847184259401205672084689534121326066603753895653881249414828263081671948458915213658799404422722809296251044895172142302956148358579394620021738975305590127172141272834938024921453134466105310467643338161575832147784596149385070325453510015452220882418349146108843216430275417697858792609431437958823862304263071860142085340036010316548976593671885005739755558780546355004582762485050156821702976511134702999447965192784156344117222802112278166805073700536148890272706123962542271842817534335564037649957322549925336089635181886560685417893788411239404932013889857591470760721846988392815194071040189387359665256115597208826922951081718894442273724664558341568867960040406823125503158005361167885182324939241923259359887904802432864257194488833969049851434897096623653023026332438433579150950544001325729552006861411556544710330572264219411207461516382985918185311735996028884157788108619630263566255979777482173185966931170446273760730670918428925530947901528896082271384127111684670560932933664081119643564644234402498891359758081168614090715176515314751648477805677298462099671304071148005987444384232434311643341487289798734173718051604770207565295284259898169186247836968614365086421500449557202185993775303101765045181257999107999286949279548042872997897729731661477324598325704916827799765043190924374426198501313083271776017209759311143925056487904094815537722676980492000868778299680155820207006365587775542582462679272224146973731428285455802281221643089777242314452118600840083349677767483634171583555759878104081069709073780831118683861671000406596595865079380178557836136198959829327946085214269964889619716618542556176898444353931902895656633888618307143709014106605361024324395127134406517248828667781334963407430092675592594452342475864336099298575226406161396635344779508449516040780398657431067666516581432258447798565308627385938886149367231101157709762610134014629877510640768658645818821424916016767844040807781464277631044945743448842034923381700684010425291535549964468916289377970932651737203409067978599446255278756851591033041938080156794411208093163578892207008213102545896697233782581002934756268433234823546016385685088776504368881263839662311891501679229675666004588756907206478737651749527147526593105037994968755841996620484253796491100508595190291874134579168700810092043873804101535114121111315636830418710132408149673784045508303447418643016820787077681351192758412276897482472300060207338703846095875835092224421643408499875696285768287629174458790540649429047635653445554110001257443486500484951417984605625743799059609968555896604066648325616511403619466147727334018042535187459910878684377120741757220749686709788776205937902209941015106976876643466979882202126349071869666540089696695827259005932130208872070161023525462663176609621528958264368630388644171732826079086802261224284048656041423042151751207322970496463269401728065330472405622681429777619902908433701943607085248315198008401466056172632442986919648451313469265992177611839723617754006362290989316170483677938826326953304394455085225702597500332028550101546264799469631491624848815825071607396445328687942336330022722802853497952830735180023025229402887259164367460179373697429582792737646082948276305885529709178361328946362281031719284376385342774589315555678951091639289813082632566233911908037492320404822288766300603796729560912054458807673503585087659727820247703585472924592090786850752786558027576968339748838626691199944869738326370244249321913022038636509553202226873727118412836601472339650894673165976910213093133566543742139565055976990219843109776042475322059546437478355867854670817662877943608565621109805462474330519426706563125435336874331964947180780558880525368167512901305335505751669634282290272482534267019597855038477628647005389727721602389802942824610610140243215397538438845227610674908934257007972735612344225312705798245167854057830066689230622101147855563968863989559473655877283179745063042330497356822629549968055571075429760415129382458546641110249781659603435385720897451863887087363355898346020209967145656554400735436281085237423150637204654940693332442185820335301041636121300635099528202246098122287111442415137189112356157969418149384547252183316571387005048072120794440970202879107839633433767947683890831010931934899464930644505884978271296580181027612787337828535574693573782814878266901905958425017666934337037865675988575538149007612277271979458247096750586608381508327634509324245912172952790843797453123267801414821137508814304069574802582844338662314395825252301713962458881847001730235052412503902369149543275541684382525985597723659504051807185714966486237909387257874955885467855623348058208155833550239775672246792818630765279724849937604040739111106273710692298281161767851772882709083262693433749135811998498669887105564829125239730031093959030960419113025648742767176483389595839740075839605092901741101050755620957452514343556832162280455940137092245679247842078596753279484193330909046742140911787334274993249439665259475467867590138529173019175610789246124993906969896499309880050075899209799317416057287185312610111251322353225142861671332695828963205433075789976235680041643650070745062531740595253370454020029213729194461432969516552174378319803825461737943896561981510362452054513898582072640038182138595890462951721250614639567982952533702997291618670335202212417863453674513676565791431853026002347806258845411002146431955556902905532318979291728391688246036227902235044294368197456392195940630055780209655696433083294990174301971193279948583002543054072622039141568472422734108506135317711937086043308773413284099550522837537343793782023373973858102508251117408777171508008303315865602913973760689850852612144642325626116782970957133324530127459133974565852069872326980112879085384030537964063496186119527627355771746532158609419041293175812480784350865627698512633141834192382917115988669710904538823234682976697207263137159702806121889099860600326952687769169893973103081041005812090968894974273683902008328801030226116725354714024244178179392316249042777240654398707844773126763767944889046495478172761273860158064544661400949976142269878003010586963005312219926174373176677847563065716947132969396725512297165681165959782978010804555797625104530027916325326328075576458090443666577120754517616383031030196454201045230603586425920045076641263389804175643385089206713397624172185514278829527547310662646263693164594676529493327615890418977393964323096137672535134395184035352886306919908353886215946549104305137751941776175918705359489139655520614713640331103650809912997640613004568514856132314217528484447068636708183916140771645483959657630300318611445444700259766623316547590553618484054181277842393979628705066024450160209005435724616606125739494602852754319084465227139624564246421708339339795219924007585900542734577702671215327828596288262756125195564907431315385115933228061572240850796857586209892137233302746822893690459271172518233584758633044504661700030491234612009065389841420710936975000681082000569645909990285802524592992113189045747656894394647228539741279306872547327086463387330334671711391575529227073324069012672063304473126368077600238151628824356726138967794576791707889863490392928916685254143236136215784815207098789426933486210943411092624544414566172610361577819230614179732180919181339506407322694001194404695635960830481333594106215877269024710814874907577119032740788600083266863283232963089265433214412750346684109696114042585116559955901599200181903609887690268473165234157395787240158819957994400945483112800627634627532424866071511842233517271855508962340047319425840391130235787783937153887949535585990934522292606511122816981460151245899249521375607880799847072216998822994143804514704800519751660444665299772125815405656553619976552371268682183625483258641558105534680660808480920256212587527093463741731690882939772933605534072367542601881396266571851514114670324706095146063632738881522989133806407931859113506397461979084686238143429350611562230547447026661475918855936285628674338251817977770775261101864623279004308327296284002133219894411343974726747375977203544636279423713315982831538550824407236278562003813026171148120793536355433633937439066493227306872407142408011777605445767517394557561914737105085549047819740226992285888610318065199890966000699040620601734730261350347267229233417478763149385520777495428563006763752166016588866727269215717315980198710378476249985919602643134243037286123769669472533797330756271909514000996955301670305590328418491893014929451529851333665416475777278760615887965220586249906673591389370151067709789603513402952292249474502373473433905345542963208157807255702067677104880298639674374190872290157880488419373450887418617857064873813884733078259112084761498175678956621158295117515903172181848635510835756489132853480818092077649634309949982189629610439839813776108225133561736699962067949336149081514072345925813229034187904804176793029543227771794303295805314913415589014783872504855337089690953601812403992143740493214393389861962423914140616665208637187265472816328742906574214099707633290674216202503352985304204169608666219139301837047799139848900899610745686881716685501705796995878045615413704365135227916516213320081544816572007722433216058680680956567114534228682205830899079267813626299733701123626717814942625909538622912236698469463867321844819603094247007965802110064448842932233687489376088211447982788171397755415645255296440158526465794462133998435976712857822788267926169450415122896093885076894706314489642164664483983600282682516964940366844403793354504762214812226254130790299627077675997570914559265264585667387254843710903378497143893350318055459940130488259963464802035050698702818058093210556258473988149939410245265686863481528838764688621865484142928498560645432920704882620057441312168425198580752151315631587638947901420590775083146820970953949862006255352053389261460475982878090818443878128244582549138347366557394871815630190365570524271836587176457023234280930004424507387014760684109747843063606088918740138396736600606102495293316182115977760330611223782234767377818327004259330684152695263911694658470006959117544903729033394989847847452665511022396520871271255151806282935038499343341688825530732370866391330566010101103657742980286017171449043363493760655965903704523867982210779275332849339630284682370704791928654950886969189567724896498580667252252878988847739430271051038775191308316402198231469886199986727859811653184928086184905814686683564851161675676214804416076835113898136313073614196737557232753055968719128409030816861705972507095087991953857060648819528778699198807193590206482283136025085004807526098310178499934757357057450332031064001042935432168065821064289588188402607460678674279575913083893633025061240110737607190619100466090596710743728788629601721089680641413609001870754814918217475459692155075264459832453374013588749157674310757851126675179647731678355899086874106963492368032399154955854453863679929377280631558163941308815372296324244209674410006159930667108961587130199750052687502780513319689604613581808079041249593846934894377828128057154298149625238749376371395110125545571446189253112042373804918484151317936053484880019300913954399721634231899480503445456054483575840485565715785021697294854122818856435908696198379020405020201018771481242852881803866670612723710950274570950031649406488652223430569938123249525485343310554010266181915431506074709052209920949779880346606223905020252346552429309454016868458951298624379741771838251847982797018800250124293507522736446716627529754787338708463638592185757720697395028099957440299420125919178029722633749485604768790481311433318793367425907575374615978212665644972614326273722386003924300866475638280807392632252547197396233799637610659014250526236187701382266147124127552724469290170220748353275900677159517756765999283031570360337062115000897698536151218245290116629140421100165971012838577700562708942073309898911316395265244614420727259368171232861310036427889073799825654797294347552194003102502604172761501165812054554076228689318586657963746971349966880870903973639557024631075981781778980287743610612097196805973262351599375856819238940620138686932283112818691515511574809869472691204406465619370449029207175436759129766547676843767880527262930862968513592176643643615363778775161224573900696152413269536633140264831131310925188624800465099238613746079381012976556724223446227791410348771169736610054490232011373429416644748501628088113336785240191078442494776687618163851576517914778949517197050076372721502295663679520450167166025490540869547004978223451190012551507705669581988902348679670857127000586646754656802860959156899691671435013770370888893919690779056190923490449429429840929999014944138479635578542626638749640135740780643123197451034128214528214285461073394251376989930384307845391490041666814404597545987862313672976064745307966730458436697955344172568299987770745881660655182799265086976644930638704761391782808518127911506562544112461551734707739430782469815258497754840440114169337693777492451128635879810426372151621582938162145625516858697823205566759785020582065843804616938606274354976147373159441802617479127554161877514020184464927864898764180488151675883221833521103079609867872159839374457709141468528724434941037064630322536694578541204610923642105357503472849715036417411095207933615974458542165927870099732745008725283239466058967166251425248022660985834451567295111263880882068258763120576207819157455435852879775000357187960076731407902390587007233053961068833975688127177099923240738834819238916720659351555899072858441384396970256113460962061568524672104911138979515531759827779146676288393310364019216319106040729547599920156589622354266890182038017900117795857105721330640064965657660659347377862115479485072739426701637586564786243183890286230822185166912482006537938166781983114940543901423278981909699999321937983403747065083375355256408792402842338157855384932489229290652958391426103653247487301432417803664908510895410380013368529432798390361372113341345873645880080031077326557081247926212991099212311246991890036928869060169280733857668850073688464692628858041449317492411970938417680787701145006947400597593456334324205311133927769921992257892545175606011333322216305521432706213906709832384516166941086476099609271177615068805599819457276339556694557175165636717774412245193082639546082845448415076211032350734680488765439372079720045492565145184272727874074168382131389195623241735412111548586999249150645169453106318582532141366473557286131641304372727051307156723442277663795442816632994909591147385241542186569245644056206512362807161391169286762397017861219490128459765996584723446345666608840808706497246710256100876638434717707366190963900510717582347018780647256464756720991749194917908262989745112904905191202814834651041916449650250989021213816371677980726701728916031172665412791689683253647430353482858311590871749086540415440988185217388665751870446487923113941762602460157534798338340673280356818076313068737782618805424471255384935533308187340242986544791421834688920838584721049896285627730491283488538133257436087741434675714262238141478111939805069628220868291027384117300410038991935913944266024655408651954763059770186515437012873840937323830707038891554257735219424176661652675466531189872396450068724881269007650068955306153259043454790691586885890622447865969326916905255133644807043829527671362952600215779259176470522291527935215458935972089847991130504297939674479988386572463596648098001179516716566413651013899910711028909772341084570993494585677981991070327647024215575125703613702111164828820253020545217779069570616018193340942916639438337204575399228762756967853996041782339970013801178986981202806997320439532022359160758178370279904177121545872988976083041160252689693977654864882602006332589748929216273672180540762496864840853976894183511568734096882286483971652292543921715316916234004492759170457961152886487103723262650779836722837236086818380829204283486079374290028621651734856206644443590042044036191486883713399836195419636051882121731002633539170913096813991203576698172657564577806687906228695477584759628107807798488330191958809496668490371360130963194202082134790859808135348636165688016221820007988021756731358038839574866968888680058641976999882950538144134012019893292802800207452297922323835934555766166388056397289442747230788284090730755385005041245161151109501794879520032839173781017139301483080134347642551049143088118378696820266220497612748056889918799492648262423104588605416409499430816634097339987940791353212358459015734487378374363690914151917138604062822871227886897224425131111710012291323003802734298923254636659079121443723118559471799452017116040304678289267224513659872796510551130171307041492768667166738995020348498392633801890626499480915241000059214716905989728899900626728723866267879687552631541706598383861687394352229485531924573522800081920477899840515628097650852871175132013219263755755512717125234977378792618913781234426348081480118009491284872118550114115563576397536686086497263386917465923874528308128777515065887523147627091044056855727323803578102086795119546323925859351739541760561074128953365840007170226413689788310207556042262979203866144234065288253879095515637015859592908749786264495966621345032901313400578125566372944391804016377718767599255083497948220642409172168937884684136040865949389218636642340000615211329813943187142026270473466280332335831461177599116354620540594947452590620379201838422698748334299760724773913219083342138183632708892271884105205552997706089461460889187527340827016819417583649830840522557739442343207957531616893975122815951485727442197571162451183396902242025789220977285552861400010255759437579586417082260500513859546681538507378278616777940347492072238208935964746413319564225643986918901709194957400458800585893686487879988506346304204464964552312019910062818479091459178523976288391519791668769034041095383123182236235511308403827026776091309852497148578319813536313934097174633347296047120574327820349288641978697224158328750464719637711000880824251084861127590683374676966968503624232444396466713402290906956339962106735393195655974986881434320732308167496161871489067312864047590326295103490551767690999525374529348878429695783752762814363015941759713974473740138529158451166353434723380674888862877845953789022616254233923909107001706177209463208851165458480301601418138397637614740585345398478529654685568321725075500351109171258627375120222721291448878788025807737361585779821185965055058548512468719306400539337853378124098436410360201264399396623668389143786724044382923152737395323257757349945474898205678529054589454211105765354196673658553933171712854621178789368823671294503695080544871861917791380401071343861017416792803704832194292648954258909591981473886397738193100825617787877234524453147288719791255255935658230777204144015187434959745222065334265879493201974381555099206859297907148481778236382101223820072984698559636651201631066560867266647613596453505761087863942880444406985723093781890778362572736378968750272550659839687054228057176961289434411624504439971987616202420365936090761104191481352995137186871700776806438888115415148887666736915516481461293856562350237930723305143401622128974131275988162512248788863077065580627336344615831709708035832582574407063425128211491214710180337900806270782714855296860808954854834651640943320869657657543938533901385579024020917873647152908420558128222625936635992907310162319441275439142915707919851889020987204769604015887599484764698906638027199510291060130709198080863766697558590616929112051071157645204151211292807820245352468122675000421543933837952407745779158679713068383968855025911488613482554970930247224736229597579839296603996930853328162113080164005677266851166690426839267475005584200098124985947743669518210099439740772172868563029902044045918984974483689535040952476003596506023663941014610838275075547199711079366477151156175992658367541868805664379616243732107156902098090759108279816319829747357578699674505454557198393469126173134121574239894625454921833462988490549993074558026518801148566307353572892447279841623059005865513862361508457431725220142720472770107559324068350874008290549738959606658076001280801642896982889741526455275405685979271079277364418273703463923640868987834660213031633979473757035046739315538052117624563149064869432385030955379051430046942348483831346351180206569565171536374660914751181101959016743908756344335932040152478471275767633467802315829857104163280978733290172533317293125731371578464783913366797648973456706853919399800148730496513870652258549670561775678839480988255470455434410780269262203221266706853516957058274101543887013884481932639554594226570888889160730826209486835459006014194221406508139297890548448271980325675227152271971145101048338671150682319638745071591715741600915193354419203931080371057338341951408141081476795744049984938125475281309648317001428628011146685425775740793596638692426830411973453147316787572532804489622730375681522311068233613271363656605386430683901934318865093559419148703972282387831617336794857762762151302732737818574345740516994300550945119892849285779921812254421415227328505555242245528743397458172006987434958192846733262029049541139894400321526411748162066913138238788912087828092008237148471207277388588493394517630366104556495123103942273754430666299864405938240864004691054212161040692106152138859418544167393690659991706949825988732341390652629738901797791489464918249434618611621991682941899280207140633414898998278573674702744660843204884905744713291663867425531074554144631232652728226179742049416923508831119581325032128553696409781864175045189705137282764306404683292027757747282102678020870350872094779466304514773795804039119518917053693247844136916541774627618436925341037661474038325907760724328874297956005520582172061143777584103991703277325735041175643411823432524871524199613922518051336679824521685014078562033838084643756300668199818687880276294679046808864785866747425462093770677477263851439203948716135505582422168753018059555526252902481925162139630455532186922122482797403838793749392722425657017307257733512808950132476932853504221296567970865808267972378828473514281170176978724533960745892165583802832729521294582867368774445737110385547888356734680479114607328579025913768634002362273656588467560061357312744271490986536592549567812756940487548748312093248314096563377316282066910311667698329995422356976492006257523205237148680127936577008625509120653560358582296045765740320232419066013081320926695291243468839837650958200412284705149687560465420438358510848438144032780847581855682434630493400005203509458733493768342513054286706076032015557025871022430058650358971392160062552676131159924171961320739735202682297425317756842996279162882343792635168053650171798727125452721116824739294423602676389144539670454847779331793160811727393450417192881944316644745030979237488298696910543100596390319232902043823616960400650381334260670974276769375535603853187625602892449237196840622107447129801181347460499076038261115849939169493151310329945991002599682598639166208432446935068517405877842779509364500413129993635412396584436392765726340439924487716566112761249932566831923493164033656822168152330135228889107820185990126034489692226005135817847438651476835994118830544025932895952291804514237033187702217616221442654206841656986856299962585849124577351418026633473391861357480157894138062825475924020357005211112647443656415909522559379002335590356643484194148513463673806688613299667278904758324683186944907356412452242720752130748335735680243789913307374507773829314072108697708330079549449823775172584375045099208174338412789217765324921450572399025866157008777529111288336597799297024754841596437757603484175294117514098360923990671939546087598451870606820112299315461270949906103384278289408651118237441461293621268019179137368114858114445720866767897900639762169191837301397283164854940036245174450310441161689067771774510039795738972111279207975244818043912605495928057197806522224028331723564077874585595149681005030332681208908578027764622945668793171293313361195961535941417506815265518146455962337033276946830376049853590217640345963587262411026921473424188424933481429860084697936208837671394652797805804385091821706496525102594274876406125217500241815525976323920563177928890816117881501133435703042734816027751441691937292964288683387989856120302695314723261221659348435047397586219611937372437684649175905673596479894722987948322441931610161039918482602599341685770164372575698637817268102580079305943110979734637554396544563514000521818701476121762336915566987941024014373996284529330888597483507128756147995569495503375213586290386192881537789259786219887418446258556822892717897410519252228065810724904397278932283321565361855029439060089094414046192848145649512638858788129524355752676353336591687475219462029595972617962712892541282221623704292675681854244610860203587859301768249336972364562682942847097166100255955181747925311518317246068184879319685387130292045060878608008169127667671612046864043803836642554542421785919595011391994569936502054125648799410551760338442394599234998999831098184319263694064007698689583684412053971432959579231291470750302527046281676544769011178363495640564104474048637630977923462048294625062698572255244137405800821206922393261486123858518090272414039488004164908283354155204667180041041670272210745382804460198413539817036257424952452890132175449640356973626233491800113322098953288897351905566656887430831756076075702122699276154899082177976795288792971028835417345874771442190962379601684258902689068325536752901173234959969328426358023600011328773189077100142790794376378612601019136848863352534981839802082285398002800356801229324404825243705505007063845987019781384810200982685301695205136306437828160158438969050770205057921605633650793509624693936451263526209594765035907688173741967432074243611415127985903599687550959473764125837528240719690345562402798300803878804895766710496758938980171678650050728321680456561359568637792929912956134392148496452437429821832059884416650792359722567649724149347991578667095997163029912626771772029806707296134636657812689958371553334075998352239930300318375623056673184242665559791742771563868628136650836584455551040196572556372259253101759204328548217483342567402712189020474438451210744192062234664667804277314656620252458773360946629366299765347595930920376570154282032000556425921213261018253894007429496330854198514838853334734608767591608017880563360805278960757516878890780959205405945933038709506406676683503143857343648510670532391959211745220186441414403656885171014100822030707860410895403012325755749143435111364466106729153749415451995628956612253025133527671336447909816670995419132487264399153855956514525267180620368719844121838690262811529783910703688212416287403786059949431623082815277895547136733640683956276679296188832567340726704291048925865775550917641835426057273266072762239240107202845642381718317785928962184024320086445518569259773789197520174193837380166281388676598542769178473303339170308387266213409518588830174183136194830753013167117990027638963594087252875181094795818773760149569506983523623124605694072206374525123775050582174835232774512064798085813061408802557825478694365194995293335236681383052812468087698117662207868928223637873993852785452994671485509882572961247717284473150428970879338544888752500969374516405613568332912090240436584947808561849692093394338594144758558515891780189630185134750248093144826914924198328932519653673989662273878407439324505680948438497634133983827771221909203269000784409717102079314534656093113112754725655875816289846567879390585959527226707447552400108039299905979801474430315757887811932852340442609263206073771554860055401655837074596115493760267262722899594291843454015591519435628109278718804360881530913856440472599361373809008363656934898855106063392692695651116001481476187705246406987662703506664723431322058618429287677229895469822975372345400320218052131990874192841287928172293210435825022453838076770707026568613117619155460268057037732608461902663571247365372295170333499589068537861510249588295550811781987941629800046994745390571760850666931833037629013544823199377453266361884648760246648959099756393151330994883009883998809776426941074266766287175465467444209093310048637275184942489145775676119313298135655369508432921619422465906011598124006049364445519957669460642476976503731195876963752698952109719461934065742661936117203635836994080686173639954585408791274063581541379654749118960739886504854228568643128059047111021971579091079834448255352183417724892793120004648485043251714586166567999992366427941486669037965523212422680422139287065980677441792036494438872792700218308242311716377033820219481633565309530904753557869882953316864314297489056424100208403957533967506464571214626667629224999497167713360503167943618730329260987878416687015900593366320468588266229897790300351680412468436375197096977908155314377735578425936856565477492045692367914979564370926684355559238666357075923550574455090767810876414331845492471137638624505585348771085726083116091873525075719509617381201543444532184602485357440179491675130505715407867393247376428507130300004746622473999827461443176128428012674013323507454518035867621524901605967218255626621308280555955036522573598070854086026072569382944313662661866264066695861990106837115691979616234103602003034819751230520483237747207609023406391636781951274968819871774016976039920017164673464541711142931555769963609286724108572608093278967053335273158588635017846383399096639157584342328821525373702812577602553909431235309146636139506297644967802146698724399203153072939557237553334117846768003602017162818763016549424002024306737444955723256020065665089512107161758441786590516074772945385091369205594143314923310527055754092912561997428032364536254929320543911020964887015468315907862136439651859537458006057640548771526402589454109121828702969736990750131096636648943843239133044011134254027701798072407330834446671216610580980789141805100556333676348318606897701111822899554011747709561461133244628030105506693665523869994331995018028771560027591099198641753254179166224528409529640406791039748685429171913168242284885108075153605533826453279690298718538245505370865420948929941734707734306034132684690682898981363256689392928186765756155944292517408339721751329196901615056400260215119284548477169222057899836059582401075824750894019701706512680953252766331523944126417080240555071269992246761275016914960236755072981438004343856447065380175685093238261695182747655405414072584027165245755229906646397717287601517151638152262949590561281161425130413440668054133182422539771206267803089185720138580755624964712612932962644678628613108716199350776962148627681443773546475323490208634516474630939485042884125367320792541125118278773151585233965157303715448265234742010554862688330822368385830207410786394554508682039869362605356546375840202282585663529800557101740546566016284843397397544474770724391294822528077729673013400774133275877021848811990494764934349796275100404406595847233838262353993503545198767563207790538974385856122843632688929890065962513098823307692051965055071789030569563894785082398895313791617965011423091599729710362853144832353795097146231312460646950565710280089716541672030194702958449478498682438507021230723110957006065123386168881906299500718420046551089997705096737808089843858723834925715447210011819923520593098412005749472593877989231503012855275952919388967657503853154652191788990038027982652939376931142311120323427135302898745668994226368313957661421802699355154679427470966752896176568693330819951819817482983513481270703006991375486346836119679716087307009358016841426269326327128878890757758443705553586330172159151246923867350005455091028455563607409807732733490211315370039319189261056452911033386934149070088116532179370594824418052959270213966393232201804347172568487610928758393533723379006355315088390177908252746073283030561381111438120277442271591094270301532875810837593910381481920152225703484489368979909159461696841331672240176984084911879931837960257471511329739442751946249936963600071114209463668055679685473755753186738877353470949007744011609139922701649986990012798391774687570872136236947171640401871239909106421246153090176316795838931861625850687908925659440024029125398895055055869627591594918830681660198895391356005386977780068127458239788016638396986766962094939772660674439390189775593792108275654931586615726623372853283032899203351122796378826303623256636676904238609256348970452777462229031675437353987996951431399611536703248983494315921364605566831601148966427868671709381837633795900998540446506696727920886165778969935970822402206999299815504392385895099532982573612613393024274884305459647826100681920525144844295942809711623682906270706381820526707608982563773592582121423775368050048316603153321765807496933958984918598924478744557496101609617010881993532336883724555917878501702891347502300774120833513683955357781453893860495688052330838365234491970378540208325559754512138797897126992923955703690251487276257161981293790262741068326053991609097139608656022140082889498760682695576551155382300710750728006267914769896644897078063257057876597966077632333052058386201191740566363258603028224374996005382358206523693917839488097620250497419081442943749687587469686845788619055249835705673332422107887968865312515287844300562892782491399042213841528270238438808347496302644128502349564527307354095855132744596940898370203248660175908172742436618567717033192121811648022287148117890713344556630914728166893806705709233601386378960898698998691363496878108757755736895616495724093870803678575068640303072544973472764044001607692822121306095562038653073155124327761991713499614771288714228970856968351890973341689450005892179987912393501937016161181672109010833065615901622438677956468571554972434926019354331257093842207617152567398445979224123537959930647014775719328272685150857840027828405179023040329034229925147840982691514948193016530642259943134593777383392603378332877793208668057985214686135169368237668446443151894574187996842878656690247772864431962851456945700361505275773136422630095889351309489208995229073458458236364516484627436271370835701746375746496070733450709715285551208703564261444002074245965622763533089427771491810234023507873358658721410859150206800351058583561453704702817039649977002073639975267837038034920137859257530529265970695698212245220168823098916623803384417651475612696225238802282540183949008699051693318300541715923319420201208588039861935026519842984134256126929007490992864960161674221135747967609720107713821101753068552260131025155036510741816314181508513827352055608994095628056308182486121628118228629402229150970118752017840962954894236241260492299792406495682261694411759898239309569308888204383046323224248270347279280000661265819233877696920860908920096314015250548529134410613605626377981506772525768122383645420077075147915499165979327893656655372106028767773482444325980548007538130138827367721284972229041714739962954603487525132656573874269166653043583357073338108485921059615949519066873308110980692090961677729635334866790918077476494852534619444852542533332282021508781343509994248614967387502854742089559548184247653513384571966486341417548184960421071648756597141414268277683837156310386067774045463402361756661312552358148762420760908293872903388815641617859828048969456669227000885156954068062871928606728650659166051487486793087868452517582699216476325116716615450724682143095832786227098671327411879206705210780522343321565426525546338861051003559092148802654220053051258381936837273253429061069664902840155750587805459357485363054230445942110113650787455901429864009515038049527515372885227314716898313119371044771089701434008799740083912217684982874149842633727745036577256846144788764940212187902752597384198786754268409627530805075905544634410958799773636818436148604268629814715802365178913748600048820912505005333860753257019233048339711213748054141466497313949774845167453250684753694545831708204712657295255750211666379562582084461481918603746805632608869289647086199161555355820283381421595214045951028564268516066108259990304190422390949790516128165354516228460811905894047879695143794416454446558338754732613447716370935571356281276641032396060999903672819459899455868019927136028506089954133090598600514327141201002919524823003985158502446768080272326721323831546319573341259296650322656950006838707042169000895840207993113799799513731854063867819708019400381433828125521800701681604746894969461275830932133293383950651277213543328333556878336941927254297761095029486285020815029964585282681114252870604687301398968516777888215412772363193245243194961640693156424862193738264593081357536854518194535809845214714871825430081912565167051775356755938401401794950766481851388173767707869139536502362749899616903875752785830402839005905888408985582752455795970073685364324122890267422991690819177725150584963281143433714005935707435403822162277832114716229792747200794920257151364937779951347267256659696621779394061178202930776563644206593442841088809324393169436858618074461589689713174681854431204222760840900874401861946502932376764948130249681960084737922389176572686822882970188674588738646295755548746156174253801674750309077521317222859474756045611661568432793417712850547143724082158104573824517994148984276974101233681985536247664652091688220343701019764308284641063323165311603704872422372958384818154786058441858193542067895379104872609446521652137333214063983383743987561827032785008607917345649939605789684082703675567293777862944742623131301880637578866844269735997220581781745692509385701694396138116405671361733861433723454069800760440578851137492876314932032301545523500625565064617000333766012694947139687306777690643241042203918623713644241002097531637078461424715281605908227190475182149383975493765358390002249767973021418170458103933255470368377680041059014826429944403659408298292519440045609795167622795614455906872177667739475139518091436149038247123117054769632741887701826640364995810488362658948830232897945554135375233699403218331512428184797425968349201732785859221039610475191126268551841549461886959017526850698545849203161449046267131718907952456578805941077793628890602497854602704299518309871752932193090660030571442493302677882212733799904973038477927186066309774064256845268225127957765615504020667453991713427335033594066688845502011104448474977228844403409152353684250198505440244807147385732001646757729263487179803753227759833629593440980899790077412389282567616050061042012241102333251728499097313638851295315648195268229428371634642861302189118736788622650735309508750960881876444406763957487649414623633930506046814209977833796359834147397912705146233238527254349773614426808312147680432379925815386848428272698376521971873675115791753892253001855962249607330029106605822442729235681844797710822484186342716859329603294065269609010864238833987949478996632692515593216019309394243332915276657228549440500552176401802342109841628782934109339999271525938812174962458870004923043415909902222838374163383995592833556648982376103731069668330515162937747274806389508666709770488791477114895425495264036925964933192833514079738474079661270875385880351870744511219105543720270950916293380751874914588052090297288019647835114515285082502521469390456459963316134664114386424573820465451705310906319767522179553709366657300492245231183511588860016673513854098831971523871689780568941228947721128470970338228384378412407109431470779903947795324288620360323673960852346118860301375303436925211418652585361512849481945539082323110568017468673733829584402865478434555293070565058908470676316161736458077254859651410498339967060807805632017194455517542658474667469122345256901673329585644212979903338175767934468349003526725835260298774789328272302676540053672891680358290030460847593528107588657704523858894009750224334085972862236811613333200452988586095471625528682135676623131989711358442994075218776560873963134262238529946669547393302898123842075049954720796648178379382886005509595199168042851608538917847390569070918912197479244248922973920049152963494131378702516705118324452768000743871643004697420454829296316380697954486965808845357496028958947955303919612616263113035023849656106619770942880111617439925800630591461785985996380025119919974225592662370081919133676667757291750136593592985891488044831751858981740310700212550376779947032042138460630683830098665672397791114073036296802801877657806796809406929850450633742707409278070911735812157341635827787814611734007718026752045548246129511604126099191779975659693518469739361262192569678163225696642537675994103572639547072551117681560179501869222299126373516296542551621839952393215045598147793179433616522961582217968782674011154418390506857108094092552973208872603973551483202711169578891978160657124473713286522671580870806861595942414054618976246323503101450174438033606514338983235766023042706521081734380378614402005519881653771147575515698259459912012199667893753426107023178081594723992691168423043848155173524927538797805777071575302022476088733502415984701071811033272981976357718418800207580614253443761418189152952975825916532898276517548473960378872685238628765338384141639678655114667741539292022657730617405138596583836055279556421405465188959828133931770646588651197827835019044347417591362137468472355857073417470142478611550517754552459720760794934025192354241716954838104395718312842309925097802417227859342483689039922543254697429306262602183196281657292862526658204666985214034122941329771339279835545066672204498652729164001906651279058289820805088196518808786803939857769742350381964964734335730815781878005253569956531065758759429816639164411636489508075861915898752688021304045105105913024735602880885945660370012505920593375553833357833083286766270441779434710167842470998566313358457390093209906163354301034581536388507927039866391834159508863513564278182288828223838700786059406043873002986928203203273181043868245777988770513053370900236512539338046825198603952143486249593648652254984744239476914730702286043489977564987056869545535776692931040097405332019965448237098213518619350013316225991934634475938712749960211036545638393950655446612621662078842336365873030674468742809026802155903480913173819605805930532840532103114731214397897590564060026258569954277706486347413010014669637653270063621467329720944332495170600906281559383255261894056673853845784841979295931043748327815499988564671692387691166218991433651600097177507286404227237602967240249278140868720362198058466480436575389387370416847664600449604251909859697850654442802159031467559667548423488844055562685723691677341195655660185833211995574653507838394880010794037128676051502507339947148229822566626251502952718624340384489855417032295680073036482732170075527542783442571097645011240458022976175511988090774507821878891088717261579680670240944231112240214050308288547562776101515739072497629678424291680490861366484645508675639170458409508854792178648627393220266228498203674003067051880312350105944986443863162087265418956186602390946344682080729570387996766117101758346546629598526547133956869064090675239308172926752267955873475532257117124349214451346843292765182813728372295950285071512708416617281039480976916613086256199972912236174481204885483030961050362597127565807418958471487795821290913681492333150097368137631750073354413658183103141976830127324970323808629059565672477602446034288668622528796276723484640353973759721096065615487847412467956242114415232825363249980348235159381934450852508025045090123631889192730747998002508228252847925834329503215015587311357531245958300352894327076929164010164659699846346708625227155857883268449345070862634376213890590018054219738917172609442821090194121642515536245405652854274405029283657220054617394501228689391531898710947609330910032813962017326190214974029110113614913334076688809228622833856437028374891679462586578754051694608655036123369748597372997089441426132764112006056793182112056329934310942242878649169670898520635078282409916992010979278040206725653014127716237236254078391163640974586480103046963590549658214221602540572886795244390487208742032489656856725251801041771765980438515121095530932237326494102467411053152627912135089648080529460567072267158384092979907259115394193349056115716915825742654295604150186717480291806370648287769376484285145195575122106946832990630270887596043577810624310709782011019760577044845018461433332735056954223938532333171445990395890617150465418741270434136167678831866032576362612675380119896699078691140997350527377388269848048837162153089063790428474370475270986123523659940993952519559076067801175530645756243494549676395285312887151826460701475344294734485684391675231433570226765338796455806186609764013168934560559497909718380577980516309777732972682555515663373524256354149536916393944402950212630585191075868407912474870891386334046163841703494852349520858403009845321511883388714889866727259235970121429770841422318203928061860894957134131493636756061089365446862797202561856723341660698355043432154300417389635821081836532896203656929657812314714828673183905271083948821383756458238746038687905200204532037772716582318496188928141514827716287848299038878760776827521422141847866792779565562146119261577871567158336284960197028154421101257182027868464595418225769071198036350237095646288230927026168961516661560237877690902807415223377153429542431110202602355077437144419363828930272443990607642559190048420443681927438608384631542757511557025330093955903686753020971048850505536941434092898192182406303564317901376778977996226476227893226127456045852753396155899778291825762596071558809646126013155239936185914281384258182913220963158789470010248893604095539555862952819812057838218819364411127514715817012798739513661303437280851432143532518589076108642380376631847311874644561373240690659412828550859415991248864844019070254330317469170294273777180200427950102860977916646135063385328215328736724445201834430980533566291084758392014227883171145691542662237088319953731269385067311777913623474669955171239736679769560042391878783291634539396375241445796073872413577152081930474720210919426860237144363678736108451462324212255161618177943785720888311952297715998907614992566774607795114097706596450879247014696686119510380159827826950873345103935908159276378071668845299711204915830757384211599386825898131632115302133774123253845644450513046586819107719047441907674648142722305236107323088300287664478960192937559404802854874830209095324710765637039514193678818827372063032725448311932212093177836053658042507550865086206815528243500504876743949557190973535350922995694489885750762789034881095215776235315890188358471172273004793337088779707854614021479779260514244313213090672074213192238482816547888209277676398629962912113969758770717485216091107508830136323392386324077678919761744989833163411046643532323412516206309725289503180655109651804746387351071921561746256121424898556483502605973247865699041443418358628108897133011501407861123150943753835568162242384080412920914411096562570904155763925439421092193961139131666344636379334635066552687500887533998858901587083659019899079942244141931219919306407308516422956582678719810940503455308171366236495486367673823189911728086809468918666523917446539734732444582605482136447492267132518972522882530946600561788703976773126426689995558714103995492189604446126216083884497706247776648284916760560968527409144013809620031937985993056998924538818802808111129649246837620075886866369170285379493098871070588384212140360829768299196296466314938262401403401420439070646478961900340692152395330560544493209510546715020272935283250899131292266149664901106846462441375496644450436029359063801047494135719374430234190296578802741356949896530565974105975787151418004103877045742274994662307648470083680585061408917386718682541770038189887949930780554324790987190128008913808179146570171260991205037128418448352032049287288508021734597341378691008128866618633808478124463243643657453336199691538562928452738295930465207166432280593540033862477646268904748178448792715223461345963773478487221212406228584820339736275036950004544367147729785678597220817947512940856629719286055779961775428832127901872922527327213502256059283183283785939981615185512310448878307695300319692320173325571650400171802953023255465827576831804111203619213758497199968544954385607198211506648367276242657005868709822902866694331156443144940942825035211072537642486823239423907421164462817503764646181253845509835371753625911398928255551223116665852314806145958885550782013781486739110946541541097087290888128811734949593949060969810990902806901695575061988106207298219791301463132630040060683632475544797055579754779077067340888364034951610706205305223967067013438024217287027679392690316017453485808747771659688847878691559807609405172539497293270232497399252102639184024873193438879729744176342470875274815378158322217826772919907646047574419444687582259441663547152921382528118867004251339883590903143518649625556073328206557678104455439303158757289021889566376733487317924912752875053119748543881725639123318526221754821675073357830043396178992377759848368995608705234863765914701817743755225095710496784487878259945311853384055296895555442269354907203731156678489154690848074486107472780667437544914018817476398056436415478122835237240108759674429060727561045580206517314272636852037083187665787330281700993799994894113871569405525896107676595197618117294334888690202962741250913925766109700569509897081339520145811443334300461562381634588894597631276627695941491564112194643339758530211716055123555086643908895648971062899603980689545055066541550886167228848806772377075740015003832656630423210460397984985687280448223367889047086074484162103169192540429525333152692229739076985359403557002427808121096113714441583831861025805610711633924570741256332534015888070135459028313448271544158858757963638532664928757022659444431229502578734329314138303267810134004354327780813427277615596821431188513201492835582466117010163573344666717293961327930734772229575161752573861105019084653877945453658028624736538458024423120867142074838421376332166700332521257774379222371227653255208752878545283107556978635170620617995961681923871668644253417508299908368480060156113758102072113033069927126151074360192509712235543738442268367013223403576909573046813131199890134474942534703030911244355456479838352728398601615931689144081967814206036128409104364298698096998318144756796816464804865686595349363730339212880380979459109853799285240463841990907854887962263404138174478860880787165074522082497226684560740719757455827235776408166535709803778415928841538188195860333413702553367174227065176872806379640827453162505521058736948775762766601949411963279064878958624810473787628937556682069174948521598869751645512170389496100955304112087464115323673522354469991512731599101863123497822288170323726078008186600961674092932986258067867998770876955565078488223141059068838837652220929989713228445341426222919331626514705029064520885727938863127708290993921573583255068045659351470462774143421848564490158283622878068674246543499050185914478677686463189745007204213024483440210877387583003946499794152697610717658508928425064053688849501592579551564508036451919993975247616681737398193960071972489206967526729478410908935222590410029073665735896898601136685848170077354129608209060203861567374371038641503624542582080337166596929703083447093272770916822594108208506062784231400711305777307127270078367780052043295982622656593502650521748944485283667125704354739883157964532072331345825253926827432341796213656783385802396001744191492014591471729429661461557266535738118457549483669705062901554329360307081129585478276666741195143384102226497154994762336657282510140594255961580958212079019270407666101819989287028447349288528296026309428448362116843991744685287139271237064295101490776334874707737072881220930092399924431004099706184229514734963887220621020110750494347721319827641826940254459798143917270152139221836153528497401715634759985807210028392431173575238625723226969261222465794061787869343968586425747905674093471358204890848400976866523053392627669069165116423032986201752926803011948451015648839459855069779270384322453017010978955683570419747100547168879166174834181252128958115841840977786180500845079187998494898886786415495671408317028070479350130791230918058991813842889037242241366487483494595081360485102346484042801342712410668819529764524030230566057210477478330528181504549707302043083742787830640710384256988302922427895670866839097634552384898030720409685481300085430899470396390550720268520728394393442771320386370318370365114773019406831069818849996925466033467507283319491207199081757371917899710061020342271192369226530419480698710966285525753697352513454635406422262714411091748091539992655297615116559759053075140060325857730241029096911430145273425102096112414535246519626343605327626459622376892773858684965697571319401738530927314172590071959382232327391583436846225444649798933487116496030844486931697588571839752311037023661584845713571674751905308222519669343816283563138540273095568454388881429075310385304626472219769748110210863091541013671092081187998211417728893916293304823931652793837801880372913475959463740919422122202549950209814772247230374798939185272502405172326261509970895926673825387895359195347465646150717391020811568478904760424261232282394597945783795282244980016356785364350840120740185573886631202038665759781977086765263948268682670167358655476244762376124083452688413488147763352589303822389549301641765653018287149521979025976052340818111031965837946040749565801002025148537010027641717674376596900534507210514298382379708577179445895828899519369596687656693539219093802055901883763431290863716618118315827235702265386362845526348371084727517733493240636208054884204676347232791018281821926536956315162005375696446728031894609442058268917498142937840141514658075813814776502805501716189546546047640218888080830931769815561185061194193101287492678751329457266395804136476326505570625570518147829253120754534082354803054981665613125312877478603305613301468941273934413151943474255505843868907200943271595934351822518896817659845292361077402705178067640526412951480587240732250056932297858053493463317380627642458679354361802369690550812598033811958306718944836081064423226827914967630434137746064416750532445942827860476262068401397342699303505383523369586456788632913855305055530866827482252025537032684382957943727487825059602527905545750466038908783218170542433989684642365367458799708974117627785160316174039008990989310204072511742671004206025335277517914495582961173514236969518262175734505701030481025623774812222795446938261301604188577178490699336149965217489099069788540729852498684136196095294182936920805254015748557188809219602404406251672349314222232153246488030755033599421873398736350928943938544093957054686681218200197400576977492110890668789711042783950640581022022088978849045234731816086180582790709884900554129222820759719000200281673848453585780055138051371591870285220780379374089116244315605643387667695542263374090641301897326302073549085325946921053462117747176643541395081673781349750457486250527976475844134488364621389916189878546222637106934596845836654734608220695505119790475978745311771714795357088969027516502334433707308833734852774647317542107708438443818493692056788664875645600674958917376594482268648324807964571372321192530056042877569278625984316426881807603090968987762450981743523723604905121031927164174258800394954546268381675592909356359388994340968016376927339464191242051686904726675260913862593610835224016408285024035543792375381803426068017819433907588735565647919736549440485795645448194751464637203357397087563107138803171534477802753553429751774557184239976678053528080978245822530155064644441913913220065559902129626212677790282506603378288692777300889588707987860117956915485147325293166884760793508319059585417048575155723922294025143121665681448155859141570994719043329088154181676801980299662786249249284895982664972994082571105241289861351739226638268515627371411697955028961754772523388035486567552057863950658020471284944710467964650168245257215555241612979887364503329866807362088161371269296646900908588514914823982028249016626816697668152736054357373374157750531207335708533061910260975863048488113804769287578615602301815753787177765603360344806357440137407336302885213457859704448671344077700118832199884777231291645262935976051270370957690019195612017724542661918913972976105667090884249627719630929439069758457435981044725600812058974859695560378473067857838336125730912690629588094979675608433038229488642511312029986679512035069127294465729921032901874298096900921398060182387777874223222035127256065273623411190842186690102040976495760001333619057718940145352993789791047328235226012149684094364553680314467189002217175894433880460424880890990222951631296784022084482662661905313676918596198416864123519621452719532381922764562096549631778942015255647845492811566621818804005750517211862266312187480281813680831583881107751191031189460921016184672904990209532662729013316955634054543785830016588402935650316711387657330461211374567042375169497375018276399646095021271007949698191218060044856570719819705896725068976190797556748629712401095792701312611568242026128380699288469712993052998312024083044162920094503010221252575193419028540562112525767995364874325540394350782256732743479887431285215872862288863357896896740080724403889138936261170771445665837287588791584303410617773539034064933702871503867028725270393791297767977249846548530279409970119088707641627291246583625544656756748433795435771542014580045842619584875548237492613291398092555625003587500261423772123924399854476924675803068565977261811918356068428110536382091939010102249846800643896746965358259390516492272366647313139764700731982753970108093726151247728713004279568791890394929144016009409848996797077008410624258058991095887688385217078033778573585884485343103824732757225074653331790446756359742129942471056382571726313041945359244603818646815087841145451007943516897873667267961097842944859212813720286904700020824220725648840112162053445557732154146803707931377594839506371708133925418403550401815965515885711035776518983143334041722203094317895668479713268963237687907430119878935806142030554244134097130217000602428742919333749358081005917198532428829972578405433854357286049404206195542603178553108829655795145976753915422299629624789280714414389692364686760755325253445918568447673254032327852399933446292056936581186338315574668922842267171741059715548115573585881019949213319502068099868128909220236167610761989790876808990844068694555554842743740631622706104985533388794188583748000592132840305653624153921407209279414898040737199707029369092239100701736009730911633571790116246518611412385498752231320632278020093234694154241464598773911033244560921556970138709687998092616084298353163398179159868890253872421258875106143050159258285784936354153865509006343269089757172000435724294296020446366432151651696180509149851898744388715870131879841866961240036574547035260349454552148464678245891616333387544919355192761787478659284534508199344874250520299054194570940952986574111375494521233610824121330189720859499053478751764378423453535811770807146214380939771246691195272552498319769962852186947177606071512365332428925133737667327946399736389544536042637503257971703798528692048972138888115022104694446206732529934733544348570069603456229571666149615241020146207662496363621257311855989993615592931589041189912218906927400052445516612923836358370162802009245016677092377005852868360773799413172001439451937345392369650602131331507442738662213649735715128553803767062020461728611112824891202770776179217582373604099498818016085995838719966336737607580503321113618699586319294974844106459862324195363907028435120552217394548167696206108963697672014845210058039659481477767524935331152377193078919058934809294957084511443740852779784274116533451804178444749138016755367930275578905751148253054929667572521378379066380125752147323282554684533639479402177313065583839409873158397250469192428277770642841386315130188210582301071365741999520336564695663895123251945136218364912593259859371818912648269315928198723629758069050346185216721760534116294090907251880303296564747258079471663400798740369137511438455604763223204299227351024467232094683905525945089015139796629040508828592108816719444414278372344148107318111984058411850689034568578321352443840803198178283859708752187343849829150188118495587383793448934819054063086847506356835199192696511149649254206051636156067548110434590545168783047754572227058213875949677665269156503728655797006592671367085111761356323894714575735891791312600735567078540927792203575626088082550567334346217739089561360480645811846201042718748695753992178759035775070273247127614933342139245832552579925837518121666899825320775955067540223335401203487139218903431386510865405736096700623543088427070266726591300973167431030874593731313263593802148881007296666141372610971454768766987608284008258619736873269248956817657289304188251960409433448041928946878307332440481546882896108094882732467821180444043254064084474869307009217453878313711410089665515227369206604445937070298157608340178208869225818738767873545390607447535657150124920907253703985730605460398422844036971364862557537075316359553078665013699056820757580115282709578299871776650655505638387657736557534634419676228902840727690558223908349406141161367539519566318908734776503829275950901078631421416005666160089784796994977031372993471297296476067778385208337526093112964703509497225766791476095316824214587628341139701848669110094435103077803116108214270114415879489908791004917758477498031619579690781801215990938799702985035116386486618129324115287695418132762331114946078411232901545550746271302926524695718920374031025844095287161540213236383988183889381031747891115650280880810198347440536545858313564544525566493337503157842695151725180858799044994202986367904077815012882786108728947775585995896597876066898661787456925744223804781509488276544202916482007507985235375122978408812650973643553079706238726588689856065329994213185000094873653738354898909520848541540239514099925536626588684660735050123632547290874634713191294990102487741683890255748288327938140409375555034062856896848533557618747413918644841622516582949622618470963747421714067815009193374231420724589672270983784625052696830014482540799907378960487849642745313880089971909997155849726212755134332241552643359865057671076601036470526992328414139099196776071638710501954797300531442240049115106376564163896061125549766799209048814222824420553209486077110016097629901365330870810437340361983657749095540537811876803841250525411322076059932239112428543717459701900825938262375537383986623503895977471519746421259747432982571061820173047899937023086287634732034262568569474387705543208894007544922971918578248894344224636500114601715772618699153796171743064446830327588370205876413707005679254287157204226926587857770339284724449161803698266962931965815407841979079540388284490588289729525835054128287207966136964958022815332744882712600414022617640823576760349632094137759913699891340136473536758183059942432311678681528873669699095119372716193161236315692763783296323626456764087810409897165604249823468054472366328507216808424306674671049375139989802402357707694254480539242152033405752445306853491464380815011553348584025820281329077078801178405463887571719043943872852180040508009068159383670189466884800150170078014942521749608286896823030060961587939003265004805407902100119467170102640242824384276488720668508518992918312740169939703962012883894086819284412525497015218416997315118138771923785486227060979630261274363485055516138047034199336485012570297740374490195726952510013482402388436095007701397748762230793133978778598260319295382737926239548427278214368499047412104739904766505356004045969800333718720397969624444841457530883166958980896850494990235991979307914022013818159569884583892824745268681064871058958306998392866504572879278495480241152901109060419726845807447671988179289287451323127808564331629548687527562616928819885310403679439302350712404497576127377654799750985959119860510142981866548415603410352430781908316512386359819353408871841133966730298023037164425404708943459135154178771490052505177981237462979506376735740110830628971837026177026690364385668643642845777486300960118556335311677072559497040136378125070713890600055906820855702727424415797977974486271458049411155816587207196665402559474317653354905855566244997362209852639166757262910857246994327422908014792438831017753573027771162183654898893906891250775442570998574955737249838253240906156377424011714430323468704004632479131552625291343681761161645894707082446075120600776814091572164862207026830010080971590669875573715630413415745734885871970429900666637271945610118615003065057246829848955628650411212748466280894971786240105367400874720341542139227973185731674661355501875080113820330823282670925595684483424728961146484963965715495935287870696902571267755348098581001009068878055373341895714762894096112992997756082182973342853474185574785452082511700267642101519278866614834187478626302722894943729602298628386340900194606090594455974758506340550892252071020587074669442096253352597906008357076533697096623278440430050188897463942654536055129164189398399167451648012819341459880029051987624910831225179547445449645753618219312656366530284941927613994927870355194747987672966628947631548694325721519298685359365021207266890392444583472109055850990648429488722383840252177954944120982830725175459404631327033648656841133640198250623978873450215809232599828863827137126582503005228609503589163897711481631153778760910298406705688948021339928924918959919511271395117573465279962978881952072421942991457194102399379584792954240751816638248798837886277672318386777350396266251131778647079929596453783329146469557643540652622477845190214952030916260436718157851581514221644667204559342157155223586120387973795360296431348861449253381008570006348981335143207323653073842052906716842588808660128627232459749530437885677653888840685833727893036935414471789565824507891690906799261800978055639282171251263032080360560665340260497814162466884932118375821048117091509965546151472401113338141052322218094620989231544978904011243697698072261304568176968489726185064081219360916853641409683411939557870737920725082354414757060937935920822195825250703378186399184807889218902748710177187017147627328279261756539566496498314079821668707972727695567126159678550836737646019090548280197075942136021985506607982702031769273588380498951711429802007273320871701961058129284474876515967176248434731565694051430284890519233299764833402009372392972253178710888492752954081231538753262254234383558975373507870667285621254784250349896248147313053516843531958104093730744597094466072327614435036329505074975413030462344709402067119816413977590539883456326742666567110727476651739397941535001658571865723688963194008153673859838114606186184695095003460768861674266875793174783205763060848138554363834362732282751157351166132570955391587917484512267506219698686337415106847590737499232211099825566106901652946897712955184266724356249536721500473881319747511276891946638798957245579673426563274568124195980834584451915662109675608019520823283848949708910098560582746729067371485557569668646695061735653510679424101269323105811987664015292137877195049469142260128849579004781613149285112458672579628528019370604624365721700079141916737877159734270944226444350761357044951925364580124778325391727453840152601071183582615374549486982998380488718196350007551611421612650711794523450461338412754038205598867431879037362223610213065536434378777683339574035069587362905452220100433681206904883719901448781921167447768460868349230506495787815772550518595451576736495163066544919060831576656321180796292976389485499768633488516788319706657595356223208848819488439411278927772316647443225283237398417231109330126880212953276127168803233169371089222519058870508518933269199499443894811698741592605931160232376677058149213384545260378511740508425439372821397013242003299279211867916209358050476898210167300408300020155952111000844852702853803805012739961063157754955152432925646821818144471349934669834328893695878884441697712371284838717099796577043303394523861244117037908868582834363945323677301204125003871056415709453720670793217917214511172645700394553833176869700353460956628857512897326124094229788993557365218519451185516230138920407233984736693901482008231055295031329014873186446948961296738333478399779207862478267688281215654403392212208468214975713966621083532785107944787484177483067365839207719533921881491151758406200322006151463744183419506559279402824439597181511054935882921883277632791421773870593094488589816591772014193693744263603773654426515018457039505954436904289922505007864887930445088771129212664286982583276441941031143274632052660111468204521744871398963181357581627749103497996226034542699667739626758109018732355901192158041205071801912787132824955182996316836136227617320724410940259002915528372333097369722946064166657322469612013762964158076615272205463334737324512957057618137659316669264198742937954627652310441028144783859052948522287431477800616214790617021073293256503283267980351532236543084309951589027915172247691247755108125295498111928355134268135678480229780501796741254692708495235257356408799393619300593532065503568100172031394426705051289959405437547740001466138635953859091745519406608744578363951446547713486528188185632698904040824895356208049157632091111738740321076696702618391713926219003237347126098259200682994718648264128852752589522580791464458297601616182332404683874911478407189250168314774142620143481223161008116169537271435669029162670780614420406123488955159086443431794147309913451366873701547911282718668581028155854154501412742235093161266373871416188220606049740276424253551692422564746340437464228643918280642899583330673331953839351271467647717351310864071557512851997674555380613619037494165540659637214762025388512453869615692875798194516267018453761624385585376187858695308144640924564133680401208068708634220213879204783823145971743707421462741893361666170699984386229387582963219676205464485013635765533920271151971730178891164632485770719154441514554533671255495075266193530891468044601736496215931761134115484308968263825646130516842453093444232278861347983156030275796331776924022378086501126144833569858450074201100980394930313980065812139561794982131534588896093886299467556947150525174983603983734670428242970222742350712221796183327341661883279415608943212840394039417595012285945939270556706219372041764182797292212487160701830054322933202133577715723713018033667863103638987689453747348362920628940503512300247731487323715997813085439869003786025779042741644242786664585073975663589753049564954543011749038795263231757925320776298462587368004649944637369358280248497345157532426009737884904928989816541396758368453361954466457460015346112968925271576932870736757204917326110858037620129393178011622455288276279153386337646678732278716765304222652406362059843262054932662114392532361688582019314927196507256421869128996207351743772324249802918022821563498584973306042925336340742910461310927380186399054688783194432586780718948598403183971492156504104277261131903411729170305157897216234548858191593422674390079012657314199131280544021450659573968791101036354520942197354334620699801134789343338747684237610671774889257381737501481016877067134723640601774447805108888704449911408468557201103833734514178080420498463185415721294667197195138397133744207899120786517237762722657022654354566534408121827319787409864319967541181916220051149881877421419383493815439654978178275229380418080361026902591500638352302545643681903523993275338183513778234614705379890319942773324893828309791441530681576073306907391141313489532711990717249050881925378816792265574545591497697791248142913351909585154416385176402536740285378428053624254082634909573711540395312694240940105715692165510561292571925111242735394721374551672020344955291474025617745490579774918325045114718299274715983072493445052783386105024615225755994560265456784396911384129894305971009744544175887125559430090600920926590210718622377243264526549753302643644408768684130783459524876031695267133114557527064918315241300048773385730412331734586200352656454882558711164239708520588963528928475448584907999964112900582575434179047449451367791193141411154574670534571819509620036397403162721786454737787871897428199627091389026429390279478312121213914153257919040269126977292513914541866679783802746434375536049795884761631234418273601384080159749115491616257006387427025051045178727009626648277149863678795402496116280164904648744003174617076798538864466840825345853336044835800687233939923478055509325910690761606199091458474926889590581657718329248604441046746607855930723757604784329453227089887370663130122510943808332352230977254569571824848329384519955974719367235639043998036609506295686714568221127537550112292814604276744766880856501535774277837267051420220305157222729346120068775119341394001746128074888894881313449678270564178996584385896927494573391569087898656185864688627084335612612511388217715385348368993586947111449380251701545573363833549450526455672063319168416920294132114071548766290106150862093606847447511509230261008284685968652518479741666703035053623219096478417391670360865381853196216955998847905151230788065594225012521307318035371349476125647360634994726741278334391104880829802591965739889632363493082366266617034509717691029391819247883655470022913995219340452376087664321325547938670706851001831597920074628533390373250370655716708935310483715072599546733304997082743781174893244119994246956856050348678057474805916342258835430785762568527938649505722705360530216583537442237487979251907053084754228182417177065902222149469054598317750787485198310724772698347398295265125744795770367748593354375121836420891688636513362617377809282825016175250801138621358058977471172991418518832616041078988845953454717688473856471780870675182649023901060578215513592559268554456758175322145796247524463418983770807340776446172046503856666156436182370026653057720005883500146974232434019636509529210780816425068403834990640705648628809663260012415034011383847639431507826027380893514842129804067117921524474683255839144246843566558623280740265958184529303679326318858143171786796260100668612475551365684075864581513889663000655794472171667038309689865378355026484893971984737625824353308900570972579689353037719374604496673761930800055370064103565937794180496688603132358960239842511942181941701236493581534618882296427523796021780031214675765106948610202816904200321710408918524596838011821244478769801614787148921042146581930707909071561475299595929578663945836755021260909158841000087391076671194232533460565887887737846605845488633101258956657530236109603163229569786791376221375185067583907873943512679494641369087745257955541095574635010148248012759754428549296662463608442446741818352327576154393953717164758131186440397123684970443171756782812656707620180697833362547117529886677441671630535071247251933811771635792858003720054072185698967021510018038303608007435194190994075096899921282214958499908190619348227331570911308379360391553497211167316508860897845005152623566783634287283364241041588960327917472912860116753859127024278989838041227230126411344348975783696690744787792333799324113683162844018506486631100134765225543047441411261045287493189804678974930292320726264133443623083002416437889054770115759014634934197960749674044355822054419003512418585462098443128423084996267700770239648402046881389970528411788932818668082782810920294055125028402298298766969261480007720244384525545313130058396598262208636300055588911918949798526869652503700261372684570440594390285737228274301681238202453803133828640467027106421241698991406798554892594524166403864873924513590979220874500152658035439001580597631629079206471297932952002252915077196317956397091208609924138657697220136967768008878962497475134886919738604527324422881628134522335228088732495037235397320794129771592665826321265916659948563730809068870405853345932846992267478394191464149475188392084222061813452610224383804933333987205506841322346075585990446744684134840193429249727438782378746352758977231256150013083413387114302109844081816010338980210124786996003421623426670568701715313005815159531805662631603907538858549077122224793276369659504310266393228550141469115200353716934785318385399748671193349830655123876604364530399620074967122857344025663216467349346754787964628323001354992636781566055943335469760815404689258306201717250898786787429187024085607999716995893683435565387795477476568159638127462118868567327066912727803935893206085061895712305590400994673196014512813385537307377368957566189732216576040070707666673321150053477024758756948924782016142149786410885872466550928341265471542103183990156004028153479238583915256745770491025850190035116607154720208369661146388503114775690162114140126453303363875362043270691127151026558804183839336673644957884906753655296679705372756173052772368945674232202761137066391560017001570093236622045943592858950852121223566359555241690097984181304528895630785231512811722230590964864527507242503705077491572768464816788623995285994756003201048441232196606134825211813355571337660092752585980701015340190243031230407755475466869315525771194218560458297763541492067744073516562719559427983042560456863335903476351494112618885120728151673133868939360734834347549457736149447442599894277624578735610246301065316497834526196961444468310428170731515189008895969428259593322505778407307188886829866938370742511352002723801405581285234400972019212714096337895135870433520931073264885518219934733787059344464910399042984089772042977903562963212327537935022539728738294402724078931646459822796582513253638055840105862754145924175412085002716029525990525027456120628340631236108790942674532254436462425851481271277736390537970736979754814942289274815860589752470367949355505643326832902088347573287314896670905590900200256903253187798455446117127249485177612043922767223846758495663373054579863259983487065026702131667016113430548109027529200435891514155610796706608581523786467610255037006908568428790281027701756551272064820884975995010082177922062488862170769558089089519203722990777004202259257487350470865054251974594719766606653601909425842169710114200180965337629581288414597620052281297942906886224296845729844264506520711611253772579251156874235807190251587876344269376153608108018055125012748384434051513446449245877580076824568985238672226162869829026720376364898677011828036210114007044993584561372456489302314834760150600066395751629571004608274311571507338936290367469822851402552722657760581518476589786936303595960757907371138986067650480762450545447376409397125882053349594569025954506657369170375609550226328034486041709718946438506648273376737533633726613456426083130660253109582874737072846645970038263595645052628325701466163189907476961466838662442500318748838578186242847814050420763557432489499025529210837000076541204472531665118151346146375922272831095373196121275802739243482966287924255867087787973007666874423317842348368048956268226026498929605060018832920576590114753756738444647550745912563794499766350406862839833326504096435413269401019593496030600310953616945005118369809424696749735298984415128276158211880554449168278639374191729670958905579688607493620261553412708710387446408277552798843317689453401258090839884053050391251298559876695701689307802851186427373452242932012044956131571313162620846249642069454099446790306581797311408706874275131010041811990742014004983301836937151443654628051471169411795400126560825410417664793734016576880439633394546404173466079646545500466825291041451799698563219980158730570606041120281159492581528413662852477581721136096556808660958155422392695708528375077036241388840170559021173133650376102232336365520444754367642809611166390026788845240679553735927033764986566663107396241624338031520910896654985814468542275281455657636593913616282156574324489944829671994475103319288812250174857926037605415768806988105244840734669341082581363272014758254438096140359707065405626093138593592339484556484924606428751831182647505153711403895737535818128602352969260323802597460953788648086372210562845294953258528503411040481557933454179494469229782808847114038375904965522456646836730674077016629215870237891484250437834747620543222266965125742795671175039203648874681413990489958285700630217014684926537577494214015070311234622216060939778120841360312637019541349545532366340697948302033009336490965493058337022054269881737376594033458482306712230318513240001424982040481052297251202548840903693898038345787532854010014106687987992948527492677290291804482181092596368207486405427829288698927178024854814654228100048800824631455142744201843753989082274639995421705327424099319518735110201764836580552952005056021552782058464234289574905400205370568966932357808957467127349878144151746103903790456268122321137652947569079448404342184619922709194060977833775320768221133504545142341224513266242286399962336840294319980317933181712808052668988549438769674904296488286672782738804892950460880628768357745111093482697855165129115142136859971231410306012546478284698505492547608748561727384325896846586762642438585679637060569245095881046391360847900719985020531212426277523518520791602204477509763602554117180151522744102954050330585918728944098264994101506751922643536322923771160591761539721185450012427706832193289554448856504625877769373784022179544349299854563459498766398708682038077155703058299086715707567971778706486781722732325095972789088878418389471944198710239607507304475205163359999862005977647400847689127475664762964773448200406364486145622090499966222264205853393110792102363451183500032738067600690822258504834206401895623483644646874746139571314593087345909376253627250329460812432166956015631915933985943154597726513424989200895103810235606608272714214334435966557572255837854056679104768584159028544027905330199021528578903125971593385040250164236285095300027179607421447455100728339080012029912854091966678661616526747942153540169277934913074828523219647191119136049740067451303847911623944879494560566411861368079443759348208864811584662010827983279405447233917287853274258948585647192037420369046563100024074639568963628974871629160162581146004012485492892956962190569675407809069708217424232541717676236919045918951613247413785474198901835429424508032795373830261064447901043716541912449945271399734656873346910204568665182533637294991236849970348306844210673504194239033022276039733384363833344969873397615410305643299682136625724053836589510204623703226000772180683231205225807308722542621059027662982427127189971328700815039916216671393301210643433416112133956514675005348404947400344577062715384806551511908850804251157541179551226578868645955592718662792857990647646412227979260236626833624800764337859747683608573156630233219664641548406077046373137252593672136412253972886633958893164421857708945233433096591372808273458120125640114633394624914731099121335822153526057510923308728632996570705257082836020372365340649419409127925320124273630364440583643867570204449888141188842093467945712955399277101441245745203109772167818767677031165952672984073219193999658551999684843354953394406715690468859727223758175706148749200576552446188666693163709773626895442886415373932469951828482261727115756405718256341453413731024837522493984002638095348931035630315654164785150070506419724500741228854323040067239091995645631983780135631667502512821587262450929064528696566717112460397652847963415296063646670828059734229117659390097583362564462365007931896928049919475623362520022035114718733726883446974146350555067650553047625081881215152309937895860164056777055398123366359050537765160057754494208654401316381087895810808449091976517940790928600483684430359648329215285477367527888433588653507628266906654526414259520417987641687279055627270998850013721488546486413176005314111324796844610561322839651184696958427023715783017292467798277074836731102800321052210100947944329003135537560867208318315209932854189932808886718569610132228613244157340348121999970184638491726133197144166575483503186928110953284299625494163435043855688673221662727486992245761047715595117403777625214750226643316087519461950812355020274938481202985023140223689483600115175596794498832857235175645979406056847296079556490929495182023748525264091048808890059569894388333879270596486485480649748176221518657717555213754038114941763836822513260981568982995309676171853224551769837625034786763500687020497565749423057627314884974878037713589423740613666247854243266969219352848931497014799335652368401438612607848771160105862218268301185647322401537667356677603553871556300742806782539319089436933190921197497267631662590635241850864105964882666942191476121228427847353933219804225685497749881777422948469560104982453327226595559763521587790180545070014674321410892960932162137934136515169312391707812248481377880634350201452625528843611040740903350472747222974751244560535727383342816758948645989345310095823377550438244208897943504705287737494737574904086972242843683567228793662062782572718092571037751721217515785232435235502807503877908950640266609254904304174654354461447684256391783133860226663201565344791520900235812044822374422257846928110154855061566903465683367179280218803609978578816495953661809051831213311168151812507886166171477718079106123426778476295922281953070910724296865625556068408523020231536955863547292810851633157280553161847321143554632927434154139766852584811376031243187594027994791061455702507721059910432324903222687167310082310421484828430064243159002023554596657239284580926231333645990541326062102650872517850234745099123059260427616088765780484983117414451695376076043543583993405358814975623540147691061370933470271860444799913675993051344883820138373762655243732067311091596609656924411937221749602801172732627411072277919206376578885069443394594931734875414081079697742073642046131818581902019178944342606012645929077387588605711145508401695480309248998068731965627460741581532656677573548755429487661712887265832801357243915055711884284211714994031776287984555855303726098409024213041931386074524818727587611352656860190899461065839507470705980688809800046143826799756728318597497387681217529410385189110982641501261585267328379807710028415565911061717641588668361584325091584811082956126183031389733442813206506911625245768018192458939289031633015551159151072439223363366631932700035252579735877306654527612105318835284477954897452904898328859654472811807416153666057089964049508990192033851117934642550157227128357551138461166840207333267171026993208065383067209033579218410229652478138636677592042193156178353723756621480150666895112740577169647229569506564244955241411127303025192052828364761405546671601906537932147173561621377165245638481197603310886068397115659313353793655989987784723656212363801292757447355344918493116352834175360236963517100150663210614353802135723195027132310633707352832045740371074709231226818543949373149196296878894136739603997854461370210009880413289149461466002361402602502573094910976215847273315797060437046457465388882500153835651895591156123853852124330823308789451586398895280613068042502392337406237327867128444450720161614374110942830542508163136474537266807812297263635541075812497115795706127875338802912613064775377047971658402284795967485962611335224411251679161857727213776830652013260348554662554285874659817348866911766344790140847502416140228819908642234250454106677481606497588364697234282814671612974535394322903649367560938311501164715348530115063930135986358664035681646870396900115635460428944622808695826516748421969113127582082871656229914956265198412382781070335950161557395805868026395612657364373740680182679693324806283129577041109140327498921423242576445150562478421370284526042211865490646015178237475020846278376835910743350193030534719458487063774958285514017182765820888687974579699160673302870584662642551038190106363723123371759126573696515746394768290528815027697968631305157645675749731235215103988140855532109895768803626137657461667322552433221212676202167125201133490853478509788600848752292315974970517397485448424491610873360050003952791437490031195272530837038345815180840053465902367560285212815343530555193604052800038851033587162110849302717118133130356834742274270301504337372686631214990339756089149794421600483837448571676376400571933115364849583552629478318365558082838422392878032209032188655786969903333530555977802211078866672562197470646345145576696794352630042001087811448105886656011496790192220904368100801468289458248359791884232262344610431498422477446746362618063526769029893232996771629800636100777701880316525324687869842762732622002255800662020908112308874066469684497453677898601051130538174065706443920601683789092168187603375131423695073354275702722404052567920281888325765535927177592960752981281235832587070009978474460750078393996144073075183920476463480411703637246865384696835691959111513877793471111591484966361293564141822382415674734321979120477001385515787246939363481593652353403257755671284322980041506733293611316075124578966060132017537110261061775342141067291594259183209506895330846944873145762700022194783536713529916422909391313522922396169412423267569618751224628977703656818356302284171493867876547024835662313743371610228907681306799477629123770843065976634084675733405539807001619126902500288771223099901622985007797170190168592091901174582094986893822160911112433860210639349928433849852283426702945010164157112496593711163956450173289816537998750041179775332369989871746667532547856823558715805704071647410864762444912085567267767051712990698835446847313041038735026435696499946640382808023098510155817566652237587979792213065090792460355571449358329740068569869007052712876032866053059138016136952125534257635450968971994517324756411156812677875684974547299874537842753911810688097451392289955659926437721989700455707037142827032605679797860835625520266649562732392261249242905659997554610183334782028243655333542200881191635123355471738471728268276586641175632179445204688426443291078395958195351002682444280621938767575516163463621085405680785671541204830276760960630491471958205535938977773962945206343450401956471481288776190613567005165462029390438225046127475387014752076105170113927551599049870445644484211233727692843977856011797135759102676365542839736437528231029939398944690093998733605440645758880696368387986951343088364830610800538386276174428826653258420522597545375004446220008333477422891566005525161704024889327181363419211993601803206804836744892163386605068348780370955740321567816676294239007256463937162338031898618153253990836151167390125204278283501010016851967899021561080810182296517122218129041107528721839080652664807919824256108900285205470658258040152779302302540180839994920846853232183325579708891902696890476011239583041233014334596277235036361530866189703136885624377891757802008646616929500264603503698580800874537120392531113565055825025012787411660915258505002706201822212063140453978040572944776879290418835090300404471966365242173335430931171132679988744260697243906910039342521722596144123149430041264301575947199725147652517732968590678262194286990777148822210389358396625273864131066950391329486317172799005731037624874908176908917109239902207292679292329939722555498590912631021060294197280657317188371665969085207638676864595214263429128046799474432110579212869201315112001170714145114148344264607330550869963377099705739188740673631837823173002972667875669827102287260799009418604683161343073424142332362205395753161295815377713046494845376941479621322052753079919515242838108180212649016543556607132517339167381765776322997578501954619645585652141085295042015100791776226891226326875571073505774161796595639462269748147617186693982533226264690784590251192771080445787504985253625962273450679825313176764400974481908275555439980419008548747107410567212757667921031008994806678824545922800512827027836449028800474168341512006721724560662474611137183267569351425101169638092227145763439575639349668741640883509277633782465490558322488787257386069337583344399353794582228158964819799023475500971540994920728329308220877349358403604196390123073125104159086947439060899924241755495900020637592498789873217605144954158442191561531610961843377763300246478724099152160444782570010256913787196201627764164511834859540011840460834703339712195590765998073039334936462565774445514213012547793186054200707342015656180336305645242883955809203890608844494150994172689179392891861767316743832472930857089260548835668464868205418505405541818693372340846668330302162628829880340574550336289421638092894994138188763799637771936758939549982092090380465243538224039104092413714975911755030054477687219652146645358424249254713673694750996750288140767692285563824512711308638462631312732308803454627988941787262503776926908254738636440740667817306199901838222087751925013796656467560743585985670075776367942809765751229947527724223051847047145810965859801706148655931656572173379877979349974951446721380718147256164190200615972556704987912659375987127191908363156844547722879469302033143291516391747449927085015441975495676207501267250160684440557299778520270627364570650294269191068040180142008757732052478617716540850885215082776973343204177941126225946664853671005347784470695417904782368737037564254811872325337935162157850828465846156400953748485692388580529023730373598885723412642620974806390449990798281542038292582184023289178247298562965015265696098318255291212079465066714474085017862301724941890616207945573076964117409906207260910826573891799302073285805734747741508987276339538856358143719404764554492325470288013040411372740315866018755995717313377614801842540163138949420352709462075371855861206290252499681848245982069766808657774113301405442142640546349114003536068230975119375529464397927470279112111622789334472021733672702833044339629774324746122609999174699134216104768132046217306536995020461394970703108841783536147950996348935925448422512865680497606433246731505349520806576735416351806491541278150152821604265813193762939266073018513673191893114600114040869290241509030220753123235651837756000351266308574808323008103101701036384934803484438941951281363489317902402962525619707035283731684577737956108962852767506871241618394309129138313619569167403594625076900023856237395324294763128927518720027641682336757424956961714586701695775100005949337233327797660729426058078872908843275174032006960766695492985979219946341753569668427986496185208112969034392578312221062671403235751657218485518730057316678904679056979737280283280134891813290395004978916934565570972183404766466974767563219768788996458924792300978946269338136927792687076306525519238161994519288748475227091742887605015698536503562204003179688540141810686446793925546875053810824105484020801315979579274875879219057470652795382452571259738789886843009498946491660786881779857553875715539370637727315602680537125616179128393066019579059033747408327450381617410387483486982622654401450513464412361621431894151713978140488049287561934015623804312226465469509386699190683165616830696134396446005937225733294090069893444298918614356821161882808780024645457528955767895973453233257923469133120696508095551086321215664797012273953955430550313536294884685034341939472457788054685364744447001294152399267383773201878334034455860212160119488928017060585923719753191202362154177883032746037235744864010227856834359756451374849247649881797472020205042170686701497398777416830050756096054826185927994657430468735334951545274968677232197263239782488754371970757483894732355254414489019406691551031736962589140718832774554939035308006474500573577756422815940491413052622991258145888281985947218716908198215131832672862577228191711720774209684051257506238260351725702344203600757607342360315688280614147629824584438976928718536718144806008479922731626497262133970372173220134507962523472887394344653175308861759124583761492136713023655651938142510806158583354656133729012948192492029877104790325917821235247408711610453824086878572895611362335416753066686465442623186534797251026444203879513988418064553478583447860167338828662580956405275519527553486470358727732574124675849515155902230022996453085465041123658248683695187742250096713837112038027608118803230439303686527943945805649749072217167448290084580061757621648062898545584705355471758430516622002078536027564202399432604386788995940865731153512457919368146957654952426553836271165013847733420817351908401149457151545211773984611723663799844851107650728226689781047537643228431116210232803793027992866180225369180303805195499308794605849695505547829458119260059711206165938484288345278394301493815443136186524351098858408657950694120940514171271166906963878059684678641288406534344153752750728306372490353106551198664939123954781052088390248579345730965252633958478437453400334039325843038523360103078330676299423109432287743856383436495247389692867007781389917472242068706687065776566816709667991319189960896665434045838704415768796885084742408822605487040846635315044630873885246006702086679203727380689977613413016316173195697347526435406768379920757169620676329994434101150044029958832090754845218941056253877762775077242828459445562407986673050577494678533689455697685263760727788355129709644414194711299283172927649711676119758121462401710923807980149971848880948288581593005993920917294072296017067116626138730744465085204125021754518442417481059677109531255520193239491361468326258123448912131657516642001053671603940751966121072668188283772832436603729453753231249189686960323085387542019353489510578186129649297961475322692843813633267331353269608341520804386861297920377604764690763743304180221224473233629280357643103514866900347982245493421307717071679369325314530091643793467496553689741472028357413003369200876136320479974709452054300431530154788045933505670877228563636643243168873334913100942910274060406934742377768080297688808226588382878005774792831511503345994832219032721191596868920274896471814937101340692288270228927766869252174408480608757799783651257393722262230412289269359727862802176313766907356374401393000582919563031641678425068109729779980046541635015877674606570740858982759944645142929581369355333241626732196633025996324251714051335218449114618337969507670107430953928031514349145217185117850148450255506042978790418149856162107352803629826915978793890426638565768240134945533524005068643792260015320724597869471979763354572503238200651557496796684939508888101934199457416017678293144222042455877914657588466497821246672817694388975623780531213550117398179709716300679622745390331262290172044996963845041770723042561790997586104689113282564080236605826597437895938277625055299851545417170881576424388013533640016758467665823485035936482776079645693470954224947532380577376341002349367901305279409768616342462609557457507154297165936783929409575222974909529237752620944886836578987378350496373837041521326993982741796756585860694946191790189575644329199606865271082181412569044478507487265903013341604850855214067935754454977324614190397819537250748183882537198627669562416453657485965448150914890759012878343001700344371385066061185482218719089035674022528356764224665538467582279672846871548182859322460319536515999578745783960812350383468019520678564254550854201560808931883950929544011299649897098881991408610564288319293474196176485627610769387140360829349978729303264351291125254246392200174224572008349653271817458798927342909101155010450733400290282917327239354077133306666705925148870724671288094344123013706322101203861119110564278570050802015255753864907173793660677657181828594802592210881148327114024326276676847370379485410341875207146725530267516474125152259901618400053099940508942659007997380120127748633985999387287108056069093968853364855883724464269177298597572128505205679035662779498269948350321843321346802071132281175232266552107451044563607125254977126991123869275643903837553042976568800209328802302706463960477256038378221003263636492810857772508355270590816491243444421310872607344313626486802146700851050313079521003971773907579576872105434309629118485775644511201413176606591602553222097468688941280141992052327870071717698684032046337545899776973075036815430744597353052921641968663366010084653580905300786872669115716736312962973715903582968099662467398787904497987457745754731197928917819578298233129706191401115217910067818852166236175216557370282200181066493038747491266295215655775893732037024873919731484940639148413838731130641817975381545471434737612946132414123872038798841237110324137400034322747616412736667692315277371705109862523918584565796425452745265363717010088455946898535820568094588201201367071672537219465286934774016142060237600423571119904493015739156191161325974086208860261756892421537899489809629535754829708973246257395298282155722126297386632457288910738263737269899749302669388401494210716434515499641008066808968589772515069538512615411393109159356509107062033295966018548666591361492210613064752383138226897933293616608106671821267289088793213786466486045340586206124115548836475313139773922564179780236030907631146033527993602593538262474337443369811633193645918754993336290828730093324980473459160425167341214445970388548895923265794658892436045094048029741168839226105540164685299114098204209333063510646225856969388320961106404875051803508196335189486516358757455545815954589290250801656622589035747432102233279279337211480515181054465680937874019752810061892997433193396074477562773771171370034365694594953800099566674723026472961612227509728696576958471018426507921603775746394901848161105876560940238004635035331149259838616600723723118611356482518613476058223597028882219877320183640566380652454465688588512743137384912208665001791662435810125953576998974577878254618199313828175066883553230075638457508890729428316661106306089836607618700843676464574416014129880743533747207853422865689301201495761035067764217615286316458527215348046833276157777320168930863317323028547363052005011827025456300922999725052254957369063528380473662755450605092748847191159298577952498680381886862504919058925622882870000488097469852768770534735142342403404350256534521776271787924384825482529394747026863152966314708446819848435159855370588119701676279374429955030577745588451638485515177182688837821591667740708452979688166942646906164038008163562620438345709529337732754561137301667611104166211294489948273923200973384910761882241357376788019228658042210518034390029698609741509625849820826455457437219393666528125227209874311376217168635489514056789686249579392029102872726321091170714863794018128505707531950069252868139553387430132187273581609995920108456192335543381831123014709819874616849325973079381814586488387958735897386903033334785325374391166875703313818264832397146775814411093545138175550091728397178530651115640757413614006855564619895938612789642935535131887461442135927397274597040885983832196602196027064433368346854359778638867691318773109153950306583348246105536503833840335496044598334954729571955451797256852223277864256313520286357082869211650346984545099217063793199222500554444818519450169658979111371328962643496432670735734746095457264520092955334318083759580027744398429614348091891389237439233665627680244243344573616352275553246126140596042799072800229907341963579850475746864374399299943031589786733220926355787618702335405574179793705551131012815060720280817788279834169263766482454494406196024109537755041689026497137777599101074941468526629290003992841783003607044828483532554143339729230510516998947210675001534729654605877586382224413135390963840412010768526061612925476494979942243432286102265658117886276390534177397908344902945643383922977504435146182875089543171685893745109625453932450335864925524091721605273766204257935647119738010290939215137572477954885771784723917960673442801616096764832426837745714270650813632310715169763639222869925908374725098506592057171467570262111715414286135351370438285414847210751490005861190153293956340383370712744420731767288884430760027399583125200598449329962931963694762074716798832784670086172663231460134933718987366665404880316452685280751851709366828506739397785503501988258287099040633895563233893901726567486482677956623946327817202080729569946763325820772456496804899957962738190872841317158758450357063459288377774925832817772729625973011868868270974357044436490199491809605442539165889223082203265547437091466472152294713245563218973674941580718137631155803156143433927287270095078383866391917470785603552573190120528358469318407999444604233248312148106247100819753435870307358685605221231434311877474624369240920444680923476565222785323569551717198390938506338528252700655929768517702783318360215488573268136207188656197945166817686202048888598354165079888699359999415493255302949448529398445365508248883335529666548699444190842798578002574743319378332764950329396118588254587626479965352504535346425242813577114220757017680416078792095342254676674597275418046117537183301960847298136677601415268179439528804546659237927360806816781953936312970193807754954548336643037890087298690588973659403279593472492324305654473738771218169636077331983441088463450773509674274227515982080048313582863922479814567275476772503954132436695876445162732309772169705160759336170608973325203631621330305250079039047471121486868991124669666780796654968338915826141507596164353010617440251933877920899437963486547403659744241236427580277547412154719606240686220178228192835252923805621980524542384193599024218710402693847211649280850764105188148509003836191121106374705435369332342825537861103730232975421386710014780468778074217404149497190191862830620737150000436587296225604809871064772772935595336169721322221537226425830591145753847099433596431275758707933631917637570049702021598399304867951714484680671095245086136814739802562922902231856576111912385477845038440693070840653764192951635430295466863047004392703298381126145803409915817276649968726838664255715916490447203102094809765102884675436470123735954344413943253812556125457921418062705022567148395927583475739645818430688592533047016365039913706569749519964480182930565477949517601572680028167552528086992846726884242277303250425345145341124822478815747082336081517063487882229022809727072870953870218196330262742637354642857246488297031077443926682068443389027869764081738242100506373801806782681281686400830903550042243013401520988540636826394300644167407882070847022814745107183519272250459653586769335147857228376593751636294081124631618351418069544629568987291984067895136952018493649460381499097007512138331402767823883043174976820035088320618523001327864571173198607751935087389642320879116745537403816515245109564763674241824586067719455996164540009554858206835508666255081435668533910932815585551179677033799542063078559007864191260085554631037364312232110630958076541204300258881024568741738758532953305521521636382156451227202599049503875240878006843967817266181253760586565685269778489207045162648716564122660830608740446183349430098521989285245239473101668701902774095013550273133645021891184461082585150179683179772851082420738209714842732249218605924186171294177574947491515477961309236556185962378017378037746886721699417903151974903916701591385464305317822149632143813184415981332163878384269483987515159647892221718746183253661512259113014557630426064581068111566478901657512554170751157991067936748003756123851058163154471364958861358271558853699226666992300406763582839727006228816405947908774244537401122946757398004016883417080722165351156908938330930473391666892549964557340293206265894952562936922589215256596342824419797181773233157902574218610263252163252877315005552993787903440988203603446966613805495107654862604167621237091601343873750138518027719033964044470977242587338453126049547061428717464912867903217844998916089150016409616606940844255247975002003976837619503517134681378070292809415396249510425893142971113493556086700672814525932359582824389008670858251915421858906201649541521626454547389494287827981067211374139713443302023725444642583733178269515865369632106782133708037054225933560645075873187659475282825318686850459166577452510250534085076651818934603360712949915533130718011004786232516702823376901992915125716459800493887134927046438162763320401570058794386010776594980412453522627616057958125996404445993447622513438144168858510965774210995148501536944859821819306929248974745008695292494587638452398386972672764285625095750717066016813173349987742241949912939542423753017108172319605728212188522928229141951404587061882212265579511657944006755471581904330800751116003535103860938221654966951284196461193489594546604212829158569427536106058502394916308535393457103913848610069483235388839474107428904987004164697146249189621383385073795332993737551682564792252870341904196681338606073444971178305515944705858848748012601810851322837519015009973794176570567899302275177679786377914684850541471818427317205035938316991965324405560291113937422283874190922364131362674967622060367986978327850108368966949157104802711555253563390198884991624024495772517863105334334025117539101978129126648193737131862728958045080992758770163008184668476270990189687456482982901689428267356374554290068277579837991927674223898330338365234339241335214936218361315153898531457712253646599328459186486231508479607981730962739849518351433271463171455761936111082819272720866193330006321055353767604976964793249341185300038504266953561231567612822574677637075661149365633504908158737492310998212168642994594629405344606895636944938148707181321858230019682498981728790618842149163174054493302604475646422656875184719470723113770344188476253783356496790001389315043082637127763504395496526689183704997909695178607149921509429012401113085812874519423805967160303614944426825398461741259266296750276610202851697981207243895662801473415612801599941866367843334473944626808987073279807712045604128681493401310739630401827399721882141401842015070230313264166347773814918449168284437774382036905206620666792612287954594710502025917195774158576283842235495910423132609234081800286631292984926230512648166459699254694892487132304768576421500458117596947872122518578132582747570340146025457608777792962339396341577101867739627598804237168804154894990875839500300736644544172553174251936107137422099465173558067403608211144189388456065330337177639682797205366301909652797404380340529262090822133090489341789936988136557731944465524458846741550565132005101549111766542436514760406606328695526894670916787183425016860939482293750943524232876397184197137576864168412066245995835246171148955361224430276868571297815941736474797252481180137276959663837606175012260398303040957043429389918610838199941575582586840791802764979980895964642090777956037525912022104810296405693380215968471974386968207867456907928434481890449047080866721612506370910091055161169168760144594123317338454290308537323537906640973616773192134187832385208062079362130749974604517768598596725873196382491952535501370322114603012862102417872345572727138710113509830073982216785187892974907359432652050273164672683872482430383849046293701168346955194659697174090839309428372169701386245252683666607761798217109257171698176445127013115938868713422784811467191015426939727718280451032400331742204890984655593751866328354728948649637024593160476000156520327381267161530066203935143915069999235943019035958463287570076285118904235350145912232189109727468451876531748231674884014109865900209872946981058458071781677389509688992793190965063153532260232300210681912918737264518866000332373563855178141867531317929154302688065572398696540693517424985345361031382361028207560523931687336541690826140161949993407797721595654858793709815936399078762012599187056348450245874793799092454384089635780725204804295394851290690784254546288668288749425546727895232688406293313397431105789588204584345266597028073184984832954524988604256070077418806481696049449409036653753694694234314210374237142709296586947593044668817531265637589157953922247825817662989464312248965359794696287163353419942399385032031490210046583124039570428934139498612736514929542611654769192033026212965579433997262831760186688311727277140651579084150390159102274213947134482480817156184204624265652585055494695322261803275814699850575016497220668948297079458535502215074819087874823822968913594917744126246045627929317319980573247889623227002714956609717766303091053508528910307199281989810111238718762874024945884184165178412205383580982678177797125852995117845105193572490181823308799420127937468026267495797220211156288974820844682331120854095412051068462746117462774881281024249377433609542209476074223527944083946409375815774382824378282802196039986660137795997546386876005920839697603682193177905604215029003182175433864171094554097799801132449982488098497874493483563788943831290291033730301749095585379672013243548844076140061610359339550174631635042659885069296329207314979035569026134850792324554205814820596410243730909162819231012616668221556849951077270313437908787539784568474783722763127039817580778127286864139325839553644414682724643221956008584649925567057249805347652254123599601260987821803367325770285756636754962654957203237734954421205990397874279999415488805347697186237115762653725465465912881791634366034411813371828639829911074633438802085312716570674665783358691703901454828575565123612149930300610856430208076588851285180212493590346366366914901020868801342612946502339952644779955955001593789359505600986353270768498647117042013585793320977964933099700526927297966221518226849340212285007849747681752707381545568819319213399150245735684938696699541664223330376969448033014783657926468993230829863879170668154948504305828802901580429606711307178720404316507877811801473705633625868219991879762942209591154648125956065245131547877948175739872389115931464731410314144839818069180695751326688611347720822720638619104446026097323018190585540622752218041742686287018287761846211653767051231852773504270674215381859576999097464034464421063793080957548779417830578912218798098015980759812526673487720501523554144342423685464022795977149426051687849209977470861578405647262332216458375334332492552219945390524361118941595866231455349190344770904990152858471736272301637036146738965140909202021281547440274147944670691711125565849506533140956513792086390166652803488992909770359577318345200682940942152052289156099143666836041347574909329267166072659234868114882592634652369198356491877990398768931618867978025694993984944812835198994813636197786175599172475986878489862683353983644551098718417455532992249748202689989952713558224615850034876264154272465713865427932137537473800537794297593138043268231970280235207646305930934270096383321556378253805518503140460090543920577494794446218545781901067359328267856292033108688779097844976015790642867478438237337031451152644800296036079814550255620757134734765680209381856803567652565949635195215155450252808585842358233755496923670715196254730168191588037842411402012857230548567636551437690740064449184359107172947082972046064608838284304033227146435639468820804654086719051875619194250035337992321092997396079908633658101993335656047097606617472069070289744209816715697359028424342562536177170753412268360124680037202122039026588724553797355479319723946160719791469968695454305480896603986875114200291739389929129719209907630061082485313427432333475667350556885023574019852207575233988936624348827228126648595230648644228872854597639214065891875931383162577027980021439238517023251769026749639832107140193996233512436100295370590406635027860113566199138667946988852374273504860771814893587407284431160413819108201981241101829373601742045178928117453563945074546632057664476489144400915714370033248926684424469821122813240546072186764118674779881262518883682890499020009776677995376176435836177090290160947639268085748231040869880097081057195993460485791997095096926343052562108369850949848549141997392568970008103119293240176575406972972292005416558992100779449038425646156619266075588775611734587343950613762489950727581654132069554638916374360364215372005421389862875412069215738297698252392298778219535666331170831877138377444297340826651760066353266016770399025127704100107752380103781032147951842352394289619830220543967654031268627268139314359303829806202540402329164395743893277358008473415970086437111492039777599436990489489243186427641628597652441410570507835489144428497353509760928190093733960332374219561750764703722307695648176519675863839211704936825381490261130636110353443059631389421467672865578723077592467596560807786092542414933983331180958931839530704967660979204334620445528773774480148465306949322588160150549189126262712308550911747754928859893419882042999180454342766844743204184318727857904531937813208520159500692579389945058931371345350432691048099195610416563898545510779006105014588749325926780451551451263884434219343035625991246303632930674027173689243952088839404617676208116586620916446241183545434154198948520613479204334791454861500396158330897819463054199588938987692447626629766091401481476264945419193856734553704064101929534077116694289944216812244338584101834493042938459242788123271683986447953346104230608432771031359194101445358703765738006131586407038172929799088561583316565137152971184253272240318859726451366555683010639073007802976731868513082605668665187869289852049012530993461440158047065972376299543744282456462276974683912761736202832197734171990658961247330173378687582999298256264480123432990750628820941098814253397850349536519693609928702359608385639784665526007911082239109259733913379943543454654078910837903214853769135600386785796999782033610186010582510308989578766961442553374544705756746625492300465732072626108694478232801233290983482675487366735759051374905114454931489318101796814951561073410924262415235324106593949266719822240684107659291062556484255439874034447122273570735593041704784187534266715083268819335415185594269617500229757538784235043594132025095210195860938383809350774198797428459166171201701759746355127091138054881203385770644400934843959076464887335924900640864440865962520900664358969023229676672360832825911568366469083170757195398673384630498034155772747788217397645209260195721298494462406235190612769790382414473839389925636810198287435898238521679861346938169907861640476220617595929534572462258515772326587258942126593841286359827289837882699903762266306231134854769667127037325743484207433020416384319012965739099421465769920850281104400196295447505293185461411622084393944680650189510256327702900552066436591501775702554544757904101954723995263735092667332025467574156466002588209665598012580258775511131681423592043065213360357801124285647998115511255701738518622072756747568031457927213066841178543219197090157041883389996023879313332053389095294524635447747988233458709818459023406052947657770037138011058170622449756441119332065089104914198642519153386412618429359973382148529536084727111955000097558964846992610285096313833834809608202913394523044877151656139211041252502256582189106283097920024371841069837075187926247169264823009326201128938642467283301985205449081303498272541489911231874510518670211039505663756009187558502699610835988464952552772647420809960145956792308565934199153163051298783575805881376817925431938279049406107607054857669322617664661523435327022600486311874560227591037569263633674527607083327276370046165440017681362082514233990116932496419379515934197731020251856096867015968753384058152378753374982984690468996404439679644194892000461728719571935124080429800000278462436583709411019073163286433599734302974835936034472912555826901352869245858684241432999672394421608834330310744007298488817279342147890021007608359417290918864008787989301064811052771064872272072962892228620725123221808048565953255477359524256770972706572267682132087952577357344536313550418743143868038073709384015391334421935343367166638596090741004747852506943871465214135339439805701261877377513254880313478461151277686533286524202236783541859008986632980835255691281865142044962728936211757228367443169484072374369983058902059705233392701158585795093013318400146575975080968639139452905047281830447148434419434599790296914229283298053605540999868009713135375694612072726935843945836171808380051279663259933429935762874822829066122669555019202791178780965981716284152683606095125193201712093811349537819418252761281573704187411386277131176564685042514943696945694527667413982408851348829413994357333084374734731165947811300867591819468943536743439410553739700881947733217881325368533818788788073068589269602350104797587687684102060188160595518107075933624234432671789759522342061767329752398685955820992128545941675542992952467151341683650144401277498884050967104282749784346486335235840039869489885775310270813557053358257395275753386503506153088514539289006593844616097604022075440478570322738390911603325724378335484439624555757837169841290243083439311987572255184260589613114779632921678816644061249122635223106400560573138656790802188612143983051218543520299401930913137448743986943395337307490681196161957466162491147877548708129935043089615876191070954745759754478976958657376674671165863950397117902960717376965294870365396227919418409339955774153389030662655518358504409196724054158134591273320171733644516133740573145574006236319896467073557527961638030854415416063962229274980065168175716258174472816856246473101938410357165724117813459098508714775700737429042743088209061152522022218950154348978791719026398512943750065622519508699704353427611216215079240122102082617071742085606326242474785993356274360768350183717275643154602529978154101110413430917432113367475282992233476911023996109656495144355778028919034343163148909415062830864677873237565092082956774958146723500045712513712139706212238802175399171344636049121862207280419169178402895419533831371011274291128961342015188593822243371012124930286489090069653877426747951376394162162188245554499163079408037765171302448993444572879931764733240603847659213860379463661234570832118004947226473621189204662865179991595339907469779999377753382482533266378034133024271159587947311659589314047379099124294298921216464397712759650782132551365696232984655042919988223678936497320530198702115136178435428080814077108170312925532597039157359768498208359743216685590425351449480522357424767546297259916052120172500364933607229944035863295234786912307697619533158764286939327919361050714889196182601216348059187582775155285903386429254051970920190935476166704368293810039223455448017624496044875377390314669126127909561365944572431665043985710422679725222791134492999407080243402395129318621182503445363480750180814765539867217584110671666986968546219325049027630698984572289255878000527649304495283842182207904706089943806445983369799011722402022917517353843391571494667829231544415340846186435774252155280554918642627457290779317642360317928984266103833022165849195348330130676408803306534040959603638873830492272604478892009969445422807066316798238037438346401145348274105774799512377303975202866683015805484658005838337957153914345026584041072755508416241745199793553178295462044086802206717607152481410156570009881001975657365713054072921941020452540227084557882581976090295452616850658226934382772371512258441248326348951311888038301739793047990526324775855978920005975201290442096464171669651753253993032078509166583741816101548040343773723639419984087699063067214601195468521521149031137456489860171637682056180103218164702700917090070276896027440256858240231952172291092624560808693517542957377796918390058238099563449654603384195125342377498357691788268716247762416855595640331601447228143831002989460925178330475417443738050549497509026071238771646111246293134004908725851840234848162991226637149142729835858553381570805480194118503608105052380459739488419022994454497194343500494632675588099457196005451901063426886364365320251853508610918471151717345898015111663644866605731922858450453985043500008878364656064129165453180552773570316994822234160807247413682930183082466689215208142185663886894192650230452192936346802100992423801156192303728552164695896038431746365715197165403062541356210584112694325331093309576713554504217498042778177409469052509989522483397785594547605520972882754193444424174540410984181661866595060604013488631841269528626475091253666127990296442596389928740085463086997126860012972086053061620948749651539763170378076504666872876854909185414451471021409298577353773983625182429551891942090747244832396006259324635021242447261666105908653587150855099243162448058671436906633730430384912166964041386998781174110140731167884488739320318425066293298607305945018162313258984805154135885380803832063601401083510023712242454057465946288306957979342799136551499993731573381078225614529177516437821180518647680341724953605450232562716590280416818206786221466733106776926987868800488123471365877455249867644626774509046294773640385293259831400182089808298582610349886762022330531411553331712768948734937462448501957402573979085878571410676456644504754263361878627968148993679229816232561668742450574363840764855498856132126372321879356642049609606521934893247344481047561441531385571150494121599895541816161229078106145750829920495878686728827657263060064166125604662357131907845261260976510391769297900012729365682691452584870999681715107033623803150608007097167250761676938539866848848567495440417704419464540145941928769223577247808955321348052274243185534271971968691857854071797016781401518827796071759176348061849281352334023922219139083802918038183536141753175310210710921726556000936003520271292265587879754356560362646963212731201018985631217446730548969335665766876330481427210274083216782270158791759094817054784006676113121900395405808606276776565398601723974514224207824614460999881175672046568108812574922134232541100514182913924291805019452827259210740164456895275708645159875918202220666477115805871388387079891243322191802512291431481481380606051460572923353718876216364536252390567772109492289021657002827278324201414573713715870791095923857277640099570161640931251953430257933255112440704819135250793710734059582926909500516241230714787184364577499349512138472743121051489867706832786221089253787083243359221816307949057195593492938373498801451168263084753013418365627609754180918438805427970706388271148756969904814357246216866903030807614614017742698212028839452435116599220997476299413518653018530409541662329160233885640064847009056312664590843123609926332232357991379929225749129232067200448257396200323809931975383006272097948581643145040338086608225456360441725039853888898458573030988942216749946445534391448773763570003699883458101530677664152739731011211588398674953640057240315547860138098057442026242966020776674787706514270773397796618607476846517490037005346337190951818694277938932934690244053061162124543566379764223259674270316728105451088165689124111731882654774239560396076090621016314582171814962912729540624946677247486567273477661845829514193048886464481920619793495448070584384122780185148049588245342320958593883091718532610737283615723784282682965730921297115499081369709188306871193232945785603731924844894402813136650148801294589993474844225551118352434573132023580096618296507562908355668093341660234373925671181918497308852911244671965644852163214964940153477856164639036445988496880007447352261654759623112151760982648585802187784648970307773964348306908339207863772932601219663495387330250968436629001124000659380113361677420004134469879856886818356413357580913669748633314915940713149009010376541334987378894165490502403763337462070708719225767947189777010979206277278192980684515402405403323062999900199379822593935595039536727917949078971442747216019164958641665785504849033974677713228295473941691187200708387058391322069375744072895865893618660992328455941458859537048529605607859606391558563718442396277839734616258523391665539960608303279830587331891059522620881631271156104150249566539993293566803910643078204150823944464712594017071391421858951445183776945346075325467752668924435904519263162625181088546539992603156073581875384612768313224594001620971378828299665698141590112294313443425256234926830191122553104668901728361865669670902359669145947212060466924801091348216441937988386323247648059384227061186874823557071746763993535242352961663938858034820319663107534952019324400225627651719050925622825987620662147022396323535097502012874032266190429253507038088400607203459268423548911846646706767607162381323670581865451021619599315763097467437516351475658517560036646504467238865114899660536862628498864587586219698676840526710559545915895418309388063037808874920733242086048096814118110998592566900320936736517051862874833181793936949624497392490980563893163478272156716547917225273573001549398625406052845567206753263610579551291028223091732409957311588433774176918219612053960711869824101518429471434631147119217390722805847884149512629560604445638848524224959820304260423087642646499041439331382020272593457712371477622756816219256717053746184523205573384907832605423797537982304054302904887179811103156874226724384574965992075415922729351946374841439148358899581853780194733137493417262073923220820830325830679932689188600043225310562247206310888918790795247990948383005757737720519611335256362300600497381255219390425160917159139171129245986827081627619534447687799834342156855919700855222980671656290627313024914192934152311696237400233557141870066491824986729579794249975053351911295606208255346862770505051162484246896613467045345315012128696212891574813847373824525960721562043392804180019621093891885941346677077405619593692273372188212091801561334283575912362770502903283362515135504215462639901392622270441166838350818202294526708227262698483318519349780232835857596755703056808034132255630135985782274889489205828063828863673143561061919952644460944950417743192298599605881247432149180154483625576648126470235641589596157629197953797536752236386457363037966883354338905159009675403706615425770205206733833820360652536270767908720323829101459646919758944635609853236378616572383270064659332529065892755522753290417872937109305896263735902241582282677317547046764037849075243663041794440454040765669878312970484554128165781950446623474984934601223251832129193857315003426089101726021266275572313016578478300672287623242922373876445482214274724606141353582069633174507245619071685940410626701349719433197294385079240204105239102246885507165864798031441194226552150823539227716732006317760335862844129241035818038972668601307583125140465956052849035097357028640156315910717914027648583306362509130643844656060744792143991341267241637213011205796103612847985631014737260382072794276452371834055650476617914105523390647953558035293164877480252793778763010035657985562432457926413481982915773681150513760472315864052473262522837089577514967555951310736100493393470123720577284315509129180612169391775944662026776610828812020189378064543965534425600581915923070188554840526068520790801694923231086793945541525595607989571916244115400186430912694402361673299820482490236357718178506663105097238597513168031069111780310829742511575801837935847027278272249620897370653546153077794731257129120177134411248545236829947759871900815576610696139922816504613903906555336695229213626477868150472228771433165207589428114142399533510756284714682724657282613596047134953356914197772711984435260075683918501030929391609164890099657978920043358297350286975976952861755980515336074212901621338715802300571107926359660924257120601843110422144779755958593408468774206240666154049836808348197284816450728334958134914751680308991557529684079005608175254484493661543603003123893723268609368847991571893117796288516498545531223390680113902533684245190875999259337550841214594121750939429376229176470794373787874187042181723962529898227716725134158378663951113092036827699114742679637943254575978772532675349528693307654201920990263452187051010363258890192384320985195810033280705706015256888979498292215644836517118753544553412534765449823776409474840405769212600154358827688537932274962884366303039033894847550999595896424084489502001487165354213015857255715666196437273708351972477195986475286129868151198385744553264833551185364199210260934302928311689907656065016234338788171024304294261868381216661630579872422872590678629940636791960969122519988967059946929720019125038291301307004299801995197029635676736868798219311620232144029787370278067100033425441677379279106325251162287529375452182239149984629737175938087622853096122132794888505010018772289708520753042423493216227317737727579656970432701225867718694366114271990953425767266157226652486033344359993499215051775452891426050695687926169864161628920272097058718433069048666028830879278076059912228345301925719018146065860754296232764867650771597113792967389132308816574761812633122311371284427428397763066329663197444562226998929815312966134464108577099800994895629025830398718786407698689189841763558788671641214293053983898284531639496753804443740251660680254419370245557191697633911179204848795712489490751545056176098674463237495335512786402211832611067682341897540830670003106377495375509910865868038038378127079626389390578075178993940973972854694543792621130149655742232637208972454736061177232826260423275263500993709818751936582727364092564574046149914320978172021640808355981595498020019048372437627674182232993995908024951115099758266601010301013026531865574640488271374537738042617014573159320247506959643759132933502820752798468186040537651044617899066248104134769034709805366077174920750466842965637720578197927519514772576792558220477316028771642231599388835687827570382371665180259190193673658325575723889599725756777234819663310182480552436121798634037114455684824190353975266331935676013601285614860179805638824583116776815698085212122787781332673542143802712254676966835098275729946426817133702518113612750424638273884890382535366650127382745865153734964137865540754483669446973468064479385839127767255291088345141700638333465144169608808854568850913948515229637720500586944920933458309023919881863111937342347704754859362270558880275119565338723421567704982860008529675221025588636428036213335387477199413061056690414147691141188899942561866545708112193437745847953221317963653497906261037711619951082990478837527355778462835740070581538531286133602558933420629877952905255869331508693157110019006219854362495875836241964185307130236682153630415050458888619334457247652935299704761740603766104040707092732614100406469835667261433152638819441491239134800726072309662666700869295128610883592922801387950146167890871961432627029358363589117197196482545029952889836284327136045686150873860278354172534247063823651648147364219839002758654058514600734672013198019484451877940310506965186697528489036133029170322118646218180028141755269197449663727370188382496584202421185243516573501642083954304548676391974521092376786173503177256806193847966104974703175412437017857333040760379970287940103037712657051249299306346332343766469826744868000940797320587073639834408807907913183037117814309382942735645457987491402105855705290673159914612551611033639309949918423335798975357462045197082195139783474291927685081590321750276164404943035923624705039105324950602018333035590990715627151776936159903526077298469923661750655480402754571400368461049144109640880075422794041889103019749826806824588887483564684008972167769552902000958327795115125433329284697197194249938669381047379397789698609045958935893297934065053924907101629532241561474072579181581294678521765133270890259188358607264239607311758958175195142922870293356119287292210949655967344666923754774414667851948454488046660035622186772459773510179185763869331860439876763337344454241547482880043920518161805262709063923221245839011927029848238156551893218713926010932919742778425534057049431234357549435902967430845561605750185951004717125089065731904699639224346039961479577273683044107241807520437896753592850374707723815687820700307956154401892764357835830810042937874214314510247122706717933239116659280661905810182975879194027882732018108910140338915046678559754155088079285340351057634682777182700710838384319616399089278997389550536686010073623823940851589646711579100129584086583560731895588658678800870299049527690771440215294077274314420392253223587730559969886330994143469703062835082008189934924348707877103507207527538451146502592271083563486238194959365135314731852238776392231848795200031407814237005866201586475918111384265680402108938186923635458806224984944157070080995258905007629110706234951161150695717417291322504440855163290280973736655818280924929637058076295789346949978982575458174183824502437141050048397855882402805257702437732069890898376528028566436691576072973172902884688754390159238837345652975375733728159366309114948606015742235500545674324465971934555032277050026793148884591796141876294011033612146927588677404883432036359730965889737526566167430855490665671351345229177704647642191359837294349081990790356220451896792613157075375366511135391592371555862789316064615948580859288544040221272071554261319316254110515769886305452808932065601312383081969710477867772108689712953551679861038916706116284378593840129126421422315926566194953459793606460702055740316036643910089361939002427292453278835348648594919830074014259706881545301170761774994397935815615769491509897164874413109610391977038210319028505148681562701810716757788710783299157436606917280886556347515066092935517308227327172729700426147540211954878721430835727869694468601806406278534617319097979335306708568187262625376477385240072662620639555719266125863507607883345301456140098803389949602300935677715639858668919003275427631100173636514600413544063727581621630196067429693967375849697771056277874838799206963649509598614343040623524444260527789831612248573535009474190374042227309735604168880857467614020564494589140778766841509461065231682330267444210996276232341864952186302056590589438052388486071309152367216287320457685645264496301567480321275210990656103742395471431465782324335613243719248797031399870202858439784255172161986215114346622687575191720947255899522066641009877596689995612311483709393695693572330449900163201692751112694141386321423651904363758082271888126078322688800438723822269357181989813203203248010412831976806005108628958594306669043152934634366129226075727305211746940425052766808637302132875070666828435823424587217642131658817629664148780138082766171246340012178694664790790986894938662665883862420899870088769162149525125401864045154153129055261343955417813410945472787682421567174837638171175612182862224502211695378396405196526704947609842233981722584205877659344206110335644916196838346101057670483538222615456130964596822609850123147319856569787159741921126150665496593360430145241355767592668129999225461495221577163043521553542666332491035395021645197452928387910161485216748822632579861891504710970494080072457604702093163646835197715714979662232643172656461972863436023209445801430696234543739092896318352064107166901355628747947770526722154070680727501387391270223027255664842046797027776893948440377053468764363267945846150115154971427416862198104689424536073660722575372511523082926599116674757126755126478798103762794561058982779283921902833111300958373384651700114406680193255342170710396468699139728939264719048211240019070984986971827398415456603806913024434221315365328864744236829342987320783231963071646089863018418161331684772291455075163485428334670758357777932650268536270003582758505284198455692677494427995463415955374330991378210872561327868353912365556903726733982234913970561718395908572175586919303802970043072892642051629210373855042076496877351768821964011529025454014891547833717015436808723460981372449332804507062942914262450587044907189741667072275811068138035425363259328345572074402235339803351887031865314644284427952034680790693992523109727180007501961942923522795227202110340193409705010382871503245477713924264436958918396648064731602996342888473494545119138501673164708206266717261792905776853361763683200093711910122999594021319777229428702815047238107821962832754828890201706651684566652157345947938058351136304753548076722217100027062396128813199196768211924148874304128902411622228341636060947598102212483747969913188984991952985106364838547768298389998285594006653338115001122950851972641042937263096706010226413622887193306324844626229271014596895716046998394758593420641001702293810409461056916250234546838157451411677773564301345021804731606769126815394924161883965359429215120933482885513691187615579690225430798208759238366229788669901446446466353278304946126983973230194740597034866480294903412968977363514438834672793106667165952818481834639106578900599405012495534829582414173184153095716265711313463717146554189610104920623754203694528195523686817229491769491772324136600181884517656052913280412047829939018489156771262582645049031125148989006693011491775291494738462353473054358627716255397070816363602107755519400025885584785534094227104878728743323093463117738451393770752847191491957271964802131410407982891951248295582984398651721410811009355174923333775550622095076379226843457980379835019530258997030636181871028003735880906915638892602709012934227907010601397376549739942355777798411692021750336420636861460131194563765033288950116992258493623071469182612427730520767806169696755683074516201555551432160039806375992345298345112257664787899748438894313367170326384775684550694675026484394448278666324701080449141709340907726603447039137393208590556746420103647362598427860619866561105435791657006840826807996642972418907062974771755556257033220764576495984351647294039744088254821770260617981622326292910758460739057031821113445284477472410783880613918029585003663332773063354637128942091593170605894391856219143949268529856018719241346199003509446490377108171097141950871423387126175805813124859054252596855569389989491905612717155514419178026916187498959322369830472681413227835696682746174058317778811333249728489873680187138806809965589461421528888018922032835731289347481763744575460863048741881827786962238617454432959735133235014802245238073638026111624070791191537370177750564398662169330471726454593469737376132460596855129877246502695334268626908703216395011693053618236019929799012872573662060541376997080171085582749205724778827627525743963411607730502992994758401187675939399084036545744311272582259962893021447311887528867016453349751255611363673427423254099556621978439886143407271596216161725822887065892344081332055891186690170877658082400846263842153932149257134933295499225621036330546581494099339990022884900643899668829430485575507087477453953121126069127897377275134100495929131740872754611358071581743445459545544019482538565835209563200386850454414887633328840017359697493740102580476000816917864725575061271641908521532143029694263789038192484357420654156247666954057889227775437693020854712337034942865834398059552657230565461965161847376302277435388634173461907104833685813878336199729277367398793262863142975606709628486316107725902438636418008991959682422396909342127968871680905063405636546472615603682773783219851546493050333094364633132453350634273570824143789265578935463546163742745179559697366161927293810106372099264345382190382224607837474695731478926137388810271974633213888125927753511392311628101622123065759757008359880174004368883309876041963908889096416074872322222926233625405506140969476800352545388843313064780799636426451827358442795202892161047609466840705561053573764192396278136932912680885345633252403040075869072550551387860187329643840548457823178207903112164241625800947859168001911425851586660140357242170290381435911369925161219163372592740895509655760488621737287438623924476362158308380453273938700212652318543575403440089593495616901134108655297764884734075548158581913879510598996560999665580350541849922271080739958014664829996092194613933029134147706208397126457010616938042478440060020934599503764379283642486405407692072242510159097554714355017989208422895022921978569926628426566301702225539847995897570314160912282516289184073684352505934925154527367397907287932394087401038612548470180830723174575425840621976915924137301948397869545627734555340785637921963641807369153518344534218100318873955693720291227992335357688486991452944074398380543178838706597864159776117266212549655447316292720607430158972156333099740370844804748073873080933432407464648140736553140661674128360226812848814499003082169873621854757941022491393911359236811996561287500041392705030085866958716156816012342534368588164981954680273196330706232292028638736414633963508798534955179232035696152668930700885471990816031800635893916908186724035038661743906418709519430024628343119503806767567418553585067002335387877444112053109489205905359087876732373578981051971481246367246949376736746043150211535481318924051726500106541783848509930942347630382324290389875945850844278944192546265226103819515519139255686060787429061545706278393430199715805757673950420369398643774856536003981598540798627783071556101723343692448617479360779045657942476755991874713950149043728734974749451558930447453359851626313709844990805069914261156438081571465056058575468006213879797865201738636613170182804383273081502895670243871099291821259759821202962216593614733828263330232582778991772333717311137662605853053064441697280911047905166861488795351510238440566457085674912803338402427464640388206963386666110050215173549890610409067623334551794411087966949290198852307973254615916912527546777572905692917491112903278124912689072541055716857347685619121501619885280984589313004785798068131230750048409532052431222029054287473699531606812357471895700140108669533795306734673753255389591557531822572255614992417967027174129421609126807398542450162092706641031145725474520786724225616202507813308865510708580925786528788781021828471652400724492244134903335419477634806098439855261983216970849725105826889066703813234043257229761465063161744245581197512457425783309818014658317448299645509270500714517992925890631897379417479740113822217806089160119061920996107509932834453389691529811801443396201794151419679941834117281812462533169230397401706218966049205670009122173023393016022828760557777681819313862364086461569514301271672715012250851717863926477796973146948175352423420924681552140684579506033208742934314460994984531401207847633838560938920638083453775451334847796909723786706061341006162646535127029399172898134235173337981625327589418617732178885310120402167917050842537064853306519571097908606600053751458909550630831541603283490988043934811896091155435956297587382677258660289426969764305053784173911979927989578564196712212829213312404192372328950523774257170623984325874206092246643061970265553905782102031478052688777793258861359892297656472630627529946924082281602567124380362324231045675893976322035775902336071195862443960592026715205631430562178334922904206079511204340608835888473773115914065105540722625303241738061772170680466630812354891964981078488646902568849096587695215532680467057534310230180869490944204260178921554597708716957964584933260254321900673674361057438143669687239321519898444571334349627788421656719818663212465892774555597873476557643167303815002557029716253831897105838419929197199082810413792412117970064203134233516577847280623311349881394819183930635355517941205183514915946439403958512206326056500921716359211717888020864789342554927774825098996999907577623889493181765386176067177044719119268596874323052851580585988899717787576028523929089138846657540328277890644947067090076631516540389189345751488107305080331107135163219797155997847567602912757486007196804595209156836239426464064786686246768603409032294030559159737451240002552475617222598423508263689601856226009733902947417235795675872604407492782208949872344831519999641380570710525424858253424526480518567559823386763711373925565536504371453701570171208590358801763310556848226235557526573566854185132948860603358003870448223632365789587647194216593559471736183753831617326047618296153349167455938099753550411552177422538303098008195472615061298040295245765567598045429027157153394811607156015831684706431368897390450386989592872244107263344294331590380259768182695541197517162321552509595506887543872524262714862212281943544398675149797968664896234520884233212929118814770171994649647372815138041042411658047423318247628253277392835120027981342188853890218169365187101099245454551860883811858366298307442089437733723004301139951703757157013986478791421747954035300017738038995774036402118511063086989704594273698530742503822350948149598127609452557729213468765779840982845792047930051329495984079067541042246059257309260078477583430634070795812762611818976634279452061051752939312623512195735672098115481996057219762994787267466508068350955996065586957693352204230088005795613361156847493615258289009880341670085691431914430358288388314491492283346639172329169197228690059477733516444678505524269328323463438701446023084558294126179627163953118910220697637049979041759074606699613905668395582408774803463224407719486337807267156736204726169860808654554281116702622094703601603789356794007907169568150433725196221811523233049118223297769370114205559992418639472991699747758390957067300365522924003107094133120946899837480874296526436849473469369274932111742494069863901479408345758179445607233211732071013847514341488248993435508917039513487931070016105468121112947810368051470402012859893906312094030857994234467865944266998127742730449165723519003451061095879264219247912263185620856158655501224360052270709373578286063733056584510939032961218358174467873643014010233441564510329796673159550981906460539080215104963288135443745483466364487117716254299735301042418044704417200828447542074271412448019470313495452126535972236670573430662923761993568065408077224767846240519828295093855682406082889423696588407128603173434034534496965713575488468987342966531971787258828388325223159465019108499116219077802344861907700830689712436533243498004394266241239321866432786247257689217852007131430193381916633623546252672587731742091484069321898525702962637923242580909853243297787173358170415965156051475916884593151988241737254871239722401082497507522695542940063168420728967938682842618802031447401473392285266552934734149404346486835265781358641217651691237097671317097243227441136417752452141493104140463309434295262620864205745159116648814253072244240863637162305169142598997133780086342080410129055314323057625623470898959163078621073690553237587566572418917099128708753277247925573924837537771541336963889571049541146912889965218824304273408554878469660578291194746284544591978926984161180211695314968528635737548056166488577128516560344917873898406146123835808454791104001310373109711396876744315645167418746056140379989875228794400163237054878828036113655426086025348266845857652266741586104006552598175650547885469719329041696157184671827726284367211116405012921518912695435873795938578201516877660041595394675368238050221000986991160819286914037865007300490001310511751553058956478408449670823887152327624621588329485354557937644096071445813648706563918823580119817973656942913869180265545756957867322948150638758877541048736632367853688872947746492706871454690597878765959646415685364422191162159127614799530110849511722059264178959550405636723874966263382719527684844318902481897615045236301281665398310558868741268783544884951702735803601675092882356747452524907589069156657857182986624096488358255162937634362882464093734799617153348214660040317716301980044779123146523829870752504712916393207831495990997974324815019948490273534335325032776358171087836875341874308031208135145243928827362469012827047072689303828702658826028430136034214147739721906090613478481306740164059923034935908465235565239467874086510125617684127883528566465984747979562220865543007075931422008915861114392876378207791153385177885096646853602734403531169698586307964769229794147710027916986616532928073042678362464177976859402927924240717746902430139914976168863407470475067421464557946883681153993950676429585142037637107412824149107961819543849712644398890424557243537581086959415876675919564219862512643438572189746559435956053406690156015443530105078766463904785020823389933965682750518800401923205753748234722097249121173285507203779515907126952066175504256206775638129841656052782252889729597150174078265060551706906078237165174783829328673765576283208234742330614658618904752390842765151584548123086808275427621099736886562575895675624166851152035836404751253730592911818133358144786172499793062475559362909933304031493372890337015961373376628023483742121176887376713260143977316882096304902969532850185482333111332062474880955443471931364687930158518296292038395610846236222267339150901306156817811764589727550688688010657250142538186268936014092096061906942397128954049660061561189471295726669454050917145594622782821695261127734848582233615985387649177309282889657070341059587344471123263551638346372487557483840153701056432266093253929889194201791008961107718235657738657297487789697907998722507272259980748619798411100092444391719717701884956917049368505254537400190470167788483319392817462232244511520398358602831244182425872225697648683463668982501843542974436112970439907816078374928125880601818182074757584331926860568820902010439035785248531139315299209603868861542088833177000749691872388167531939734073994170051439667605378663538255575184219555433193850816191219786404047092765097484665506629518388084705271901669227077661635493491064581783869992611679933492753151532822208319570950855395792000473675897838007013220859550770719277958663666487919997042131333552250036622260973182808214377822169385947365584992392416845557963113808556224835076437214789497908380357999673392067980568427340390328237217758174863829881547776838854795462399978272152536206109186586144574793511956129062672793343177637226777882794811070549084393078710399397769270578544764196623517778707476513682669035565129690577369107960249605508176808990947983815703847729480419010009015725216888382157017250471683786289802402561998610345305663933851954126372461333569229785000485773105032208453902824902624682361691195547602194396988241629157247478132012223662472398680518532491224727960548795227087358103545697362078223222046766693624190661699817861385781578159514133319570474380710419668684757160594661931369552503680540115031302769052180258718276242273988018507402843068859889623873461294344006280709694772647244780839463085605706865254740465835038096594377847425970664622327922741420058734409918076648972684961225522307967069886442432620338652107559275071189746211473428506738484313930240435058115760530304252805198342486183915683666918533916527361829659943603991703656160714772854039125418829909486112316783068681805368141063101732265843162120400169073301612917154930268492535761680212374767704397315384539027316437687283155584438166531665496251922660287755420238011377037752056435453350892036857086980877304948415940251654269189070269911406479983200376012152379597408861400528841990793130367418279255318560456767937262398231178006557314571167952870229254364386931794163409114592536651289817413884210850783252627202620534575855408485775090554204768731101888548398886507775125793888929009964915025877755289960248350283199700222722507247345381117457798668813305575492346974018955644423506856524385520119730737311983436031706134888011015280031331796309670403904915136857050115385937194366856269072878575816366079781337124860980279247720686283484737451050048267282184144985443818853178183221160370006696141642540067997430756706928590224390765763772418693585188959191722828595862236095545175193202587869638117652261916445274515773451314457312538622488008479156493557112845190974344467224149001366097483114323767405128552552610410380611053521381895653008589543771952079624772182867179229193672989496370768076282111035175434832793520507326166698913520086661050402454318244805606058276854959999467018932525107722871658373285441152148312044747124401230669123438844898002596410051186264396851737327349698431737077613142927112876701880936029728409913338249546329407792504698569472815831706668520490962533489527720505606462434596782147405670562515005841296767536942704461417781291977228814567373764110454242583673595496074001388919266601059437788448055457507509427109404369237374199834514566438360201859705632064967510287840976918293263738154750524542457666478227846131266643916382739615363185061806924808191940245306952483111491295678709804040572488648159319638227297177783751291086093047910952671301381676998318929444137422601051381471260294008252685529999014365702840092412239418160251174830302707708959495366375402732235267757637444384040779431615858597262927782342748916151242949009727142130564749852460794288180273019222278764840006087608738766269101520418893825725417281179905837199133932444219770728855967641372287590066487577541546334090327577246544112160046191926336380247984758279608802531826471229345256641768850630003407054198022879454542637613725266061690515994931316571552044572198457701400816147916083388945274221092354355961864663011817535159470605260776084543064365130868717770426413223790096425258435228017059811343714733595013186801622340321665158521893506814795077404436894309471751033736127824874230811374211689992287090784163507588937388447358796597767175545406499247083948917786574491066708369583493807801871649110418208066115656056948246602513786507515146613239145971731005593463316843434979883582657077558094325202565152061311608306373372824546712227523887967719568807289836417652426704412314460270910104747614857549111442890037351361935818505270183427628754689935050831683220461703698783163066761967237672838900581559868184952349094951154976224392578309716143062469774391915644893845737653970146013654065722423718501468756980503170597361504007877214009600870209488115585187894517938100107328398129879687368049733565595530589311201361210114219568247012262394634762985199540698442463681110575173562093947129075431019122479906354783279294111854955070437320275843473314945220838657690542560156695946360084377132893848206431392899745953402115614911931604935414301008548871332053148428021565215337101189244669996930832100823658389599615071280085080591703361199269220950398598118360460096107034978263494453587313389380991916333151713150708441999137148430063500791028211057176189016969988240439553575672309039141759947781744891148635968881027312208978362943160143731742044877218327176690108135608094200889520555592171383227909909449629603879320637777119000990055929001489521587274907109120328040240300252602342942855787931765782932068440975169546036929107895011519373360898954757371501283014367214563572569965894964314637063786333800178084766372705468184774319891028956524162652191031609350241444459313741109620743805731987141509630934347209293605191499123595459662298931060340172241155624161247699584810866176390627300748863752822303582419069243976160068343745197776919838972580106105159545255022835920737085295027542616234956350854027748467092746237072460315510915889628649843468365713744315506086271235111677506079455006656286105228951118080610777277834682314838943077185366345063976436867372187706414973807335842706394323551424367784085930524997526270557910348026546260432021705323598309536360236872817210312166425476521157192889282016247473017774338766405903822345961609120900553621291781386710207389204514569044163363691265385234186537105300736264533871301925563138070500793632087484525739487911730780961444644382864559497280573564772016480031239984855895064610009400040246389290885386882245465305601837485635615373973128884345807902853518279728218640628072754765142413242414467223287304709277983154698852408120670300770819720037696592932766943975145446311534206975161539326933440984848991521118944219343936503513197907181494308941107411163614956746674726178185295946273536021698477149758769208902621104909380128832020026949869223455045975008893218210136012156613248937558559002825038951367258572588335303433817343258387202361519565317670154818133283934360433592223001218619634155568994157628872274517389342969437228855817804143715565411819952606481983875501072520262463358618279487974644944326345581847900948808817471186510354805011903997908801541959721768348061153473465467521639603979706734962219777414168533413700992767174507494445073028389661870247074436198554271574422580789715635370901977394564106587855748511040050159000557169747424219060266483720621996805901943366293411250824816106088778865121762233451635048850458528326858255478035311037924982036899694739489404936259941640865464326099959099514150256630818354099618506535688114331994275030531412465038808631064156595008373614973608680463571107986508535106716076156192561694592462218020823442057678144223684040582386570815240929753386866390540999846849385670565115914763927918894680818397355986477866358049039419492232189677246222889883718850921244463542476211419399880778960006764019458179430581479768557577344867715744680850997085952600564141934608288263374295880263229955260822650698127776275393845753479472639618643312969618094789028265440523587039227118239627859677433485853768680523346221106273136474971457238590046798801630943590100275290069276065065128115486796735455473692298706438551011682476033701062504394237284606766036839321447799358772692353131754559783858847772849021476981166733902219093080266480538326554338740163074573511170145189857282276302621170642951996604801739979521994123108595716399999064152224425039361323194745835031469891535230487541050424039732898789152697738612717981304277677657884063059812005995045784662359239855451534755446071741408665708613159404992438255551794772242023550600111377394959220617853355823993124351282697641604619966749058570927247629683775238326013918967171017980040337172117818120116946247037041297024467168090003817443469185506229877683682904296252598436188821908688159349780506767720568440753731548492661643411216262326393866240009567851195516144397146435051271140025264918522953887520247365691694332843697014312086300058727908544948420121774993723751745455421815759783050462734321498955608801579567885131327971311128690691868717625150585492526858749708005978842377627189541349233335436145121489343372248582426951714329063201357886001069323120492846942384432220821159001515654858455985549761875180210363920526693381835734813441664713005180949277552255838192360932254082098937885230015835383578723224623737437950172785415762764208660255908816953321082571949469435573263146751285483850154013958725053587175395834421436147453427922272119649244888132868725268052292503697533232047423405023848277449708683026421173635330634663529402582804546675139984148506158220491871248125861959464436064898157246381115901016954598414825631355105247059150068449481183648795407053958885084058098326892681333030447426046451473205084263518013177021845700847389989507078072301033319989193121231211930048278301955043084517732053277273212362658184784135029536075714245574959979467093625778577379715564969058014746008897866695777243631539430034856637524203772496079125080393991684538970577738635550278309809987632630707670736411430561653561426991981861036687943091368835907798108205508298903424652436948949951891353374285537195450275061176255300849368833744289308024134979420714842645119560792517222610772943539713257423694075717090267464019112759492971380871770999867460591867728916366563733942830798858934627740597143439755258238113128512488737464929806442487418922983243216272675777433681345347737172405323700479333891247791477204466998490650693975299961138050616308377434493983404403736731712344101047506095547209572347439865405801573305851871740276939017687360539069577656921148762865845581756753830595299506502700585065432027310582223475035228498924660864827096220568183807647769347335017719543619629119895763808553374257123485569472582370682650987514527877544593941171469844863814288197942513817247305491877351909018725176489426356015115952064968040570328380117738549236653179975943977925138831805021886113300826134038544359659253343175505717441056800467323268514932484177912237829067820348320833293800614837711840622856600883322615996590263447629806677777212575284833861227900182941839860037558131449783473601928023901924991707063031300761055887270392004394091396456723040530478429941380909061928592096341318353467597518714026886207854095022379320003095499399110815416941478522754153824773786988651345405457834340844311801591586613273711614140354787088359607370817100262878023613412467538587560570526926838110553910695643399368520235010851029610871345697553307641342357479332610766327094537311448873832978251228072992457188444223726025042187984474631341397739212036850068786425889135266130273678253281059893693726462177304864691139247448920392941478100807268393539274276228714851893973891840193133762506377975064373852958968593069420079977495052339734640690918152370479118845099972358638821659906153067051670779124987982157068675291998078267279670668895711780229611630477194383340341933233375258321488320758304550665998246783545806930925957304571082918706280080675688375206675983194187805805183641699211809599838548248951489966137271571622507554378485533620455272339691071829488427090374520069214174473675733587288438110118269798347627190748698754565796524694428180819905996862218980752213655485698701490198339329304747002762421513653864618772624208920306740913479757431408680322115467241553892790733896656809142889505850341630805184962652586966837514750934116947565920290088991665242357980776452046287518309785401636547526181688236287039907668823678542260521364082907110886881460425643697733354764596586184420564248510205742118688438078611689104177197873005183129946709090020638379076489197620516307338350515544542300211083256898743798749523970100354654199790896165062114503545770347756958957665381502173427016052040837652538169249756020943560065050735998927041918732926303529026190809911627931914229871333537168158241523517620242350603158877802858000373035280537707233022722117110147473091264936850184576897700945984205542135843071638439222426916557101317013330493348281623246991801154066311461917855929243053135453059690058149825519453851384041359430735569744497363860991415752616681368534976622108409560237529307443418927589720762630653427558224865857627799987140136798446488086574456228326353396165229897896455810552316142491019731612612459940918369093442565648901282420516707565664128675151243362824076678526094406565200325673878575334387008450127847971658966713549999890665777653560627643236882902881879366244592775551004785975355544492346997396062162650379806572244478189018746955130367468247561920938062938723259307264280038140256262675449076928664292418244360116393069168972759100341377826857608104032129395227451710594179859861384596537279127298547956151249497047910657861511567475080336477172885053039102458218738961828538946563068900447288271179271127123999398100244995812121178201115404435475412021504029156076399859495934695807970674599118969845704490859561379338989810826802302943151307434588478572664445997101528879534193152002488054745455829606572091508720981996560017892754632833185178196487044267048445808201511129150908724353077813313445516920058050042579098991323889440055350155359728727726951439395300057182810082877859446701731483798408709909117094150730123461730702773665796427033038040588774964431719280152856181985165034440885178226433931779889505020465665395137972387654533485007265923572287106535290764224945671366633054764319840138570165622070634139726357463676445751245662625250254882758317183750874652834662889387574506224791790455668344544474342092636205587524000036781148605006280922692346867060751077057559299403692928524451546645342309421681142657439976220004869299453533857115878987622632138279317660175808586594357542977094928606933413593143790646063964478440053497946572852038744230998734049300217064361595361006096091697749891799126595053355977586967643642912846696111648245915722698972463647419040335171784257636425681147110017070707875322285859318654565689308588488110350035189166824502634402341154300525356474076626891431787012642826652491818770571917205027293797572713826693962254986789620911779142754333942177787457512733022959224869454683561329290485087403347923160521087331250528048088342255861834954897914188194095841166645958564973886505516035721857434921087694183755408022796091046458578430140645187110501111417074122987992956686429670993254161675083705112983645524733061477756276856388788044716219737805772320007855643659043664849549227579771668142719816102788755687554644702736209391923423418998653339739903545586899333686675562096069171446016695749209898664863481508763584176662795694550948507889957408835691972432009023096774861801614395402968360282891481097170431062523039068016395654753762727023277793999702551138713281473175695596886078225638429049106713295956654451205769503708848512051758334979211887950242036109525602757154277455342379894624676368734469088744480839719183741697462028928013673656658788264323281693407500887354939920946300840931494346545270995009005855042155224679535073064774676184980197849429372171498087646384973904608843700110279078934682071563053830320433670707792251680039334949171136495675345780078174027631741076816395921420629736158034428526109941453897070965573586929093804920065666365352121489293312795317515272030586798158088619001732605225628606498303331195315691873316070860702552095426170831138590199305678845066801638624939888810950519513239912205289683661665650823796029233653371369627905471655155759992277516642826737306663108896785905876562766639369128468349120832320978364947976888854881893876210229068652460070055745846146969011939907263282480256750486082905219219137675935953538797315707348481396263779284559428379061716754906722311249614678607603997572283857289325496076038719230987227705425378839736331125258368281271726275069954788910667614454572946773279396864878056817462832226813263314090690405207965448673454072534935995167789405149928266983138721341059727687193215154742286170404702676457188519245631171909951622091657367238384067475585602867066343281025053589429177969147863690948142849317489599585429225796700736933964832884732286129890670966589896579959323863675574563852420519386292456753212772348945307360490040485370693080237241972900949273233960141451797441739121148365808217441886178832015140486234914057721801719722945652690243636252124236427591985562732978443089203848400451551128313700746165217591442609056188149431517326047716172342440170194338409463069740578804260477598924986822349415592574110160011905305900264308077244857863094187639221469812619356931720229769642786025016490335929311345433318586101824563526011962216051382352093375742094727014265163213759970207074473865769317123464931858078097437735512665379835431636465365200994567923473358003367125771403492061753193648470806721218578830046112743008055157941064911995919652847147144871675973484585279356630574280970057646905665304460043092611920937693404182624160194693967259462343686204488997926615923860826250831461829911635298900318390215491557869053118859749970831855616972658755286091965175350765248035413400931750078805333321065870611163176254251031886339455144126434761698036361640293339945579114780161985711977926451565222355733862970652741653211397019457942548765720126383835984797854759923791384528476751270861646043935516665239076951090286363267580333919643540137569587245561431466888944200534482360206772118256154951391366937363413000531588196883934281004732095526599847976576081402712387619161942126835703501754127567240377493807401291752049653521345385244736596636903339296858904754209874425209001334286063853328768848400031133496934740046370379455206421736075781375479229486343963727800400290338077910870614000594374535554607406129307390992141698053701281144086136897086203362367760080115535178077786606144372368568502275714632320180994554802859721958629102365575597244624811903210195205751201980606289682902523532285852195485675393483873026501929624163824393842382660084654769931349922573857287565765140846731887891268565495162850365541116526226464411052580765013568891445297055596693073041742010010274905900450331658055129633636674394886124159245360895950245925574184796324340876077575719323871289680412068248075842326458736876956998326241050554086623418205110732766402707784302066528470983278657217480478808326188127335753530451221288288031859883626312887833157295015139216314676237616621956885308831974505083838619473789369011825114575095570352511880938030234945394025873810282460486289425831671293872383301540800430593206465785064292853107308363644964720391017469944276119167623132534864987843937577490526291806079477085890185163804876615997697746565244484090592979751552432108874501949360419828825170315756553203390446608792574001355830687007558712473442611143478171342064732713053519971207576383729145521712319682579892541101795600454555989067235344711851020502747114724622566002793808122393577481973358614416606186298447796545634180963406087825647681663237992422629961782494258148404747648001383291361710158162004400484296524063190573508526728388427078940356987136417461063813956885671626417142003742068571887667344528360094597081280259447305069611449658320028359394230183609560836793625848685734460498761637820592876471449932370520618701485757946504848733281245406276637122818598974979298532284921786609102953061670621474802215305175088395612989141281763184636443173925586904018448534844437074683105653365969803678352715724305615182618404307894622813687017599229490252985864228629200113183015956101591277611606626657968469076806287306390452034911618676796486226257088253479060253011610450392930840665215111138750841088319713999085708212447215419749791764265183853986141084556440429717335843441939865975340197359440273979535639717224971290947891030349493958021863462583778679974128168473408504060448817804791113121981541393719853837637208639953343619740021129504288130994101637299183205327490930745754365450272182603267126319605100639304341771034352294048908648824756300487882230679075886942924309131309209544501628136922135597602844964910382545560274497166037333921615673948696633004931646579081145612008067643943456712381480504285687483249765221012343481453982640411957923447548094344600090266427512306870847866312983104120064946478077352260892380620054352776515435160586697028200225853050903646185453014038050093778003216572490938451955970090377399940598739042099187694794941882876048033938337377036428012122621425239844600537252017820352514767202388048013938360044199551049969320126248753689816245392696585737771397384764645289029288969454341692331707364914818959065102556715968258097608081906803535783356073910719499400512414967655983682193197356208471832228995503064275514440382151335569658121727367048582712157281957934977061018714782154381119426112739635836829218623264397439163356421927709841605233662317445791335747439313685220589032976755000574417378858370650573781556258226669596572431698767236381109041808779429882173049984522954050132139171072489905803275661288204437366663823716218655334652794138084653157651292270813499688314312799227092131569562903082013467948881500915393269651170383920816624797998529066043151319723907789368079143059853289520412924692520638562967074493547708190581933018894203202661137009038008102705704424947133467199295225155327027562178883220151270792308052864532749639973108227529779777055638102087204514469313200489105860670001021494132293514752682380340672776035669908471869237686722981170796254365314591444302196606913004852288929491555107549209893415090229113274521251217157259712322346479927371407828553598492624070640632591633337394664703987516590774123398844883249831341014774961584035919397844927264565054451729134825877571163101550275732015148532211988006618783723516917622695028116148921791394665257041201915748362474556787343860764907290964722060635225159447716326068054758156130882390464237862690498183908831829271227860868027279007317191595622766674650573492304335277546000507384851828367527953770434056108047644726564238253543586101934830514186954300427791269079465868832440236796930629955854992699572917940739544727612319929290360753467762818390073434527668714799037023437366585940395261035624729522877503373169108646071533116088467149697923845920747992223831970816877790096888863754997502691672470249258859837324033983154232581526643648543285608097504027297369125491446796256375237639579527640201555326972721444109176229995135202047654036272894821664575290830234922345164375959115795216419445139393000469256187958492033109613542944102020648536697891303394640056686981167940501300632161548745334124433147329479452969213000833267612126868907872168281711796233916330036039818044984067456001393136259074956982591017954864916231056273671261520641539915618251368186445793867843297100863681837847613182770474013926904575678553424754243291712207097566243091535132877198489919630507421933008743220930980893957927860265785781103197307486793407296432922690802343073911792253094839241430733967396688089226726121046391484990849410438370255887112743001492597640683642769460171575076347697373343807095233271540059883644592826108138871210565760670055404609431366153494760239416411163843798845572033701926867639947423992808575799269364962655760412804206155844961119505992569732114755382099585897769468735828031418167476344026914952745427423794602349193705516004208063717086649995025627178071621627910929505617221983611630712084896880962724648738119485476784366164380675231205038178626314962580238415958171874694778329727197111084770807907578165998082893507825304385295964980571589788039721453901422141639808058946872944291683947451537427423339936123772032548383439191145670584228517942397127691522836515874218269075405139998271676358037678496615165690801648918863866553594178696375558644555333812487938366147994742518983737210459344291837527191564362957898845971411796668308776334629309405904366455214054043776158318459961597152975382906276911942009116265181370020311950541967369370997605952056087302479787723650769621148545166028465356048535503665991747574178914671296259721099880186933560373930082807901220321341936282419004222435325577500844959707960062596939474141993109715695503710189794943377669199182641312685893994480718796606714991344535036535173266037618401103459804328091500146942735796008543533187988260275169554024636483758276987913052560636348703574049876787408905154337961054511915924795455445072625322747110214926617362828547909643039841082476257985388132845811114118428885431321980993300801932566500380943288396387919929233699242280597835864424435349363822758998247950639083648172328600007097933828182202566305558510530332225510620841219861536589652606820603667663984182235195071551346326904660080698131862479545871405295683801882698086445699396647168838138529908928672153183769675750584638558543600027655921810587855211286260521745400994295475151794015651615989630641393030655946569024305826889075106400487173959853393075674773593155324053558656905514292871140458090615192058678321941130544511532514125540309251358683639010263426059503866901338127482513650194821793299899225057917268743965367658270189303020943669554052580475394322474977963451306921382329870322780279186421583195535780897820210238248003351890565134113017230384100121458559805510141654578608030252399474356120144509169929943960329268815748762134340264158677609857630205093418862180516603385260156178698151957467448000539377382911802617933671315347412549289591893154847326758412253428448517807114811773441284609953917789779602003380926265627734035726815975106536720446100875390073674374904777552518321500050169646285896283230401433586801839914764343171696756099679251555548114569078347934535612739814588490068986712607072834009000468529727545116508225500930033199143335099823685527290303516827954287896991259703753785036840536964945554882774349837333017090886392078758957582565211714443724573000096881731907758022498862212732831631716827712716985963205470674939020803796970888384706443421036039239711420400268830496750063788602785027088104189248015141439312700214912944562606609235308551922963576771149539391215075040234440797386693566495837336040265609890548417785354037783509725207188352115084539944932492366898726563995505159275688029476077841619129671406525005007044861547820043922063837638160165741118010114427645139914920956652863867898531225950841556553418614293984950072889894241896330223863353848877255134758950795919315650137134859564242259228021975530765678073121867092937031358823819388105629806527010736871655966814835519491273176240049306892696191842704851368904108050939100939015305700859849482207493333528631161853938034972315154609972937063340655658277500235697804099797241227782711482405187067689570295537226799859219029728686554695159893663770612714789779327906713623101680742923514681835556329701214382658862113783069634466356779137594390602902500463809667236349190549602022274431733899532268379654736938377810103484667004153018693308347140350911397109714036127457303037174388417147010726338073925339266796747472403677220040534187215007673332572161885119165595518218977233702118327038266738281133122177468671725438456240080293738167123900273836873527545567952998600910930233043595269018925114174367383326950201757851663277806533283545430651828523891238130783231585328315699462951096009098321791226367848894009310132042094185538164060869282433646952154792245073692978817070547432869458774403882071083900286921127272142704102520730220468152285212448810241525798933979007435956312324640712203396814934679496240582948130472724407000489428053203419322581964306026267229256778029974342730192794641385420100924141775940079471935085727857872286553260289236329047712417414654401748978913767783657818672257798894881994270268545237314550221230711020579797662317040715958083376499666647523954660851447467796335402086750155733828984821512166918318115140616018818390673889690624635249212014017866025336315508963688731034645344158781335815801270245368724459896766010593203422649395380827936524145327647201467516354338243915540182868789857529154709735146690820227197072745672263146652431546568470279674153600914701964218097134154223658018222614700354455168596120407521345727317654012720790334574329683178819876497661733996363718876413296195844722998289015517316157779310114587098037930693545262150203314792692515401680246984199320653042513984646725941639078202299714067577041835550615534655096077696545261575020293866244955772533308826273798927225040667234409059063682271063905602690515978075971261688804396159548599216014633979147927678486332101234956531838864776754704338558973389132247343713608288632699508857992438182766046864748119081886787221059527121739426239357455255277395447452557799534469124869688538084842297986039497309917196941951655875785381420373466195919126281860550288342479918559040153801180255276312570763730635742044364589327950137305978953629144500250104010035985494291774700182300310722947445185736905576504036089061476140950633446993744349968976213057045320664453859486502311935540266918984341626687269490813369308109999534698579495364547893044054963918590367429957603312736333749232301360202100080313508331626771922150190532530674146082364943355762792955208487022742970596922610100397039080082476865844758911121171094224223682469963638641866995207749163621167073559523829639261955083377683502878942324417535840541898578028527321755116071855031112199911764416703316943121824267476670768330100654350884988504372131127262493668095275694546193316649667806374295945706170990343139298970819451265737367568712027256066067034152828574222003528245961770693020402271703125570526033302363885827254344957626678571831267577050907331048913590640723161018816826561866879128205409916017111913789867654569609161052686617709077276143811792800036416077069198035641123312705728561191099128921518622154446928974215534556341792786994358960770401954629486757945637072089186128436818086853557131850258186090856447565141798423720757886687773539287023392157639826505395364838958652981317090274855584132715502680890234953171586256880263936494404629034464712569168394709541101575678134507975892843415480502879349372945832633848381840010397443370684379535939789884095047081321409038003718806717318942842976236441464835838709442256630848573337773158861634770295850154103466234741847130527548235241951297932518813628880855680206393644658801702064074050710750502878333315405824421136329327577964719063723306768073826758417225806822104636225324627492465208980862292967501235727487635475483462691989850085557396271730478717986394471499076907745830078149869410050329346958732437444471659510837861717613406969625394451522707484885548080698881510077129690350758532533602402773772616695823820773127609959346946109868560054143478348255380274014993769976602940786621361381982693989098958155325907265415513974282382277214749241287749310809347787925946322468687381413615560440252766520769627587620192948994130308170269321271064075261372785937854091925343461078517746947532239968252789055354438102918884139025141511648474819641162161576508034387773513196083119625905557370930607278510130453535327072922915197116187301368841475392686099720632272002161145204745123922816870297519925050772366898182563270412363468083283411101139498935096445783783321693725038099092713557046546971050522057957856349894600454263378343778585482216125787743469908855332300848062894364158614716812367597773591970328753715298071227196065334653807603074715724868587185841206796476994687159836604612198239020797587145983066647200742587490681659576284582278191365525586776832981501169306236564046797484267455737843085628477991782422878535218213513385144035313578765738389303874104849444987355351826874836314756230307797542077372961664498063708938630384804533949327776775047161944184664239553786473152879505809439897433318788545052252132814868969713046034888506033266478176962835352957558618433752419426232628273671346109042549703665481943782249306016133499569855695781272406638250875336285370031722949181945862079722471900933207491629924422929894331443436987848901803465979068494558914724408391493961459555326971082666026855916202467315077666985343945553244897153005502280179625112887101602317847399747056130661849761142375359019205100015081285363777926452485505016219929068716185877545983653176998102008091600317381871338665486496618628880843771178403382022971554626627821218325497745147336612176758632753718457141667613204413208273441042807723801763093656186105572676876740041219720206826638285664261035369403577697491075015874210644372532889740401628332019453537174349527614854939982195152406335769633514191887785196622084618306482763373551441953837046429460120306654101346663947761505473686936513136580348664530803460750345118731301536414079159617612868300175505850411020938899670059909136606393355667752763642969859964547376623319207675959145043131806535320671801768283310026550730506230207507876614267461027212383108158020819670218975189002250782699602703882104911441544999968449311503083393917251438827943900931213813145756483726521217817820163447763239897469023344047729036590278613522469583829224026142991020004476814762244289603447836258460807488086320941823197893718764866537637269566660189181454230737582245972140706736947284639702673807516720912618422143806798055357231125327808640084366136953789634746398078035245891436024414587953583600606142823176071432882878158619771516990217917070459738773536624077866899802529787850747221985503481092272646615302599531841312652061200766340090551624701832228726068134791710987249939045469253069875564667676422516530278324642739287845625467620495634768343538486362144603597738223691527070838687893474925818830121493190273052933391915497282514663274213828233763854695343517293512264568401970267849475946667141669015077174312106243750526250518430139878500730456921995843094960193280133128364988290094305911941561576088117727778778120911035381659469573245114911745737062590985823972218022443617113019290488081570822826060544585808757797897175159531269414864544639539310047754610956999506972338591444648643006023815887474828679733329183786510993671330742702807139359820671682942077271544934869014908968258545972691068473069963653471416583070461660427723831199666807456775921389343015619750616419486274776104238651314499553124062980379189714599821470427959365875003913084455558695859844782589081572972339184976651536936406304561950403311020686931756396947515612854108500561386751312027988661058469439718846611854277165241348205150241048809206635343887223064791015149949162935761070014312911014540665891086773882003636837950635691392710380898210583468384447128488651882891814892431289825559697674763964275756119260342020281949437935572240981027084586526822985690448684872085903353126710900791937715403623315671285866079060163856398882314983201709629727755251802910142732054256338200077594894185300575983328953703920891200939469648438770788080592583623616785849782771862880831209782375143638528098396775970111299426231526390411471040740871992064780034893055192498574771861189757970351756495837606175283591487106432529468142032842380641809729385757716732135421870846926810040526417082306060267443237838153107970978120938174138453259064507494403326511650063108645572224975536868641706724255241818233642195704760942734282906089103669001771157363539277467298128687607774011949505422381220054122804591192507459911461593798122502953094345280104440599861873146531930386805135771720928217721374789920622356023126138159843183771665848173778080615720824234721890674482971782963438642388950351311971379569785241215563550587939038365414304958271727295453167282118862214809747811851398834752985071213805890793871922915303701320444946725996204318819342822074210834409190030494475621815032656869421562665824263726107620107783656902188672318691423186316187464254663652883764036347108019975321787272452041464320230253141773873710288682749371416642058128625106444204689718072746143976750482326947437508518702518927522760013619374025198178321335007286487940107521251260214348168086856843873837973209421987714714609286583068888128270560351943505755303832912744561729076161631306859442855029695089106844128260166200607121090710721525039085012634895709828091184448162060881076677359351362791355163389569888676303258516885110828189255166225067303366064577879689705331155651302840468035714902874529857414775171327122824216615070075739338845107012304945518237255040983960400403835220993746562288496885055295771313505899667086955536251790569690942641530350145828445744791852869033408454460272219895284591877702263308767704237318859438515207743075064764307350138071044884550150666254714649754583607086661879857784155819907457937958534821926694331833023981884790563947260941576789204712892561527014860054124894934315694042214128524721433035438869341957199823685279314618173051108293234116696314267821868186316348683294075706342226514644296022800121758220074418371738257050262297392336345906933338173871099530289433289771385710727136457500520783001190230922196829487137312580003312357479889493652397248408708041497256334485861210934086857973012958593233919030256974551468971487468701195208545152530676695734670460879301158983136316095580157313393525862670085648247915932866425790478845865349195087502080624313373357835489518117097417672103661998802342316129020981958181449740640086418040275285470488735629705703476271490148786746829384474957314153415439329113795946583108851466818353205136438242893103290336037065587213886800389691110156779798446160668278206367591708595586522168326173913751720892652320975303145972376861235214791925134867193990349946061715284579302791420911055942778149687066999488552544941467854761821657466305352636223381076765849904973503241404328676975741228440037308754016440427214811135179284135902503160124858359682102142755278620049251666411372882018493930905029946002975002481602461067257779863595982705953236702000748425504873693863350904776178252294957354833321777987556173918230847502006540739628583192415530515295695469652617485916287732806545006772930191852553293186688232955532927959364511052491259395580235649445573946364523850009559704568422171495122594081281159221677440957008630002600020155277357391388290173373755757794433278128458299326885451958947391930742709620575483920217102061156340520684954492994915748156483027099269875214403817603618257751470618505028578070930514339227574636606418287105320572907150809282854697735448190477869576759607004575269005845802780830537497308877393295891591969155128969899696538877679748137052786792783863528327285389295912310980350646118163903641782274605713941127768876186442820067639120736049715714525191675692665779862668559241995634793373539218315593359493703568147574040983714483830992472941755604100310613251756065214608784446077028081307604201042424304961578271301654324066160512964453720579829285649245872025433190462449523562226140847241914224460724879245680216201147248680238520900046805826468595319107442294597513394878747716240182146366037788020629513495211451685534137028032096268527250697785531164069062493112186011293063738864572498849370581402723029525321770130016173423563945260342876274489603220782231527345579989528168131475453876150004853963817854969026581889606626201709300015403305275374436018651941873104864224943570125746733848957567964486000479683278041437242998995355177134224641446789423745736461270906628084248039903497980538857169922752199194004445364637444470363758267398728464912378242689737232250189171919533860694074168881228258385579652950239639365344668406234904099406529612540174732794339040651591364237601610205684039933190262698233994255276736359275786833094818207845364150905944413096517020062946492139129815376888651373379773333746878962419299055202752721256541320418679790705445830002339005367300287377449105798911456356184016154012958869550651796341159663490191598395452437608455660748219329670529276439411266725011042096153106245190252478272993399518424736581092117576325714064247080653511832066915767331767381109197640045462055624579655605938147033057593900784332229009793529424949629111309834268188250714977373555497729825241371326317027784231890765647184433577229121819444623891377198751038871983297451813204351182958281180498919655748280636866072002310371462350026974137734461863006233392737731348964759315612234879409602577634722117261852276673516678027010485618537834351130612471286087247928893787134448409856076696540234234504417973723800420389953277892273816704098678643693809126018355866459080840926215595420333188866622530816000621302845070300486050423607409584614928628688629444696259921072453847920988760806275193005304559154846837833016765476796448823831417223906519307846447282094677730452773546776450314035434813786851240524311958209812558961252057283457998006146039587505640858798133024955569184335005571756555389983370826065490991660837692240339878973799440551847020789026279366276545691869963667857050609537474241700188096374069767947992650374477687687234650728442354639867424184142885460744780047421509442082417897354528208222284336401801172053710163105039257902564855184309870919429144071981330045755115094105040974693703947963638349841271098215875245551467940874951008220041548282860906701908496526540566830669165157949049101773529505180176282710704630840937482334042079909392365038034327285410836333245485613138141595413166169793349887561904710179631059667867391291059169531860733050137913844973298104370456651176210101488095334466095253918257978988248069792339148766079004713623649775665920036005622624027689966933401113217839302886488268167950212635978872812212070997935822173338147935338751978260185669878331448351896663960809017575475328664601902599887987888737404956935507717978077985686671521918834586257176074972653240492716699067605512231648016330499670451377357001226501414267209396451790745645980630993332254193951240216782572757947590728157754898020610089257953823197904891271293476675690597879380093772812941409176638887886727046316507713164071836636514216111944516518824443728311963404235531082653667001386139557898431196217692268961321154009700746175798467783792826951654556823450132998688269462087345910894150165554545363529947893395596002238796342800152348227688137957173242088288225659494152087983710237437455399856016631852542033179812780219417038693090277472900803371324466361431732879739929930367619157714057122629792616809057928936627222966149210401384281275080674399715441372534982532852452441973854510669015523976461829083272779140326358822312070352460700079104258883885349546594740932951973598399909633789659025218434721092021933926296251153877630024323537921233964500937217170303737292087320838298401242962112615636836789862813753098306747928682397988086577845464497081975846295185914661567003745463763267886516137515862592089525113459349111746717295464972026539195021232319100840318005220173085717831384494490621523075205825306001159590149424578107627302932764970051185028407519294036242618205212443145115168008603347520351094558894307135966928253107254564911990543376074687532045760238829930217744563032785901698713518731752648195690060780949933296069456640770439448436622516067765602596563709965708581934560439919268026618504296246560038281194131145026879518335091214032352785811513422373129628761284611011613976318747370244211359943144405722655441279493816164368892235937294958176037521157505586800305244659669482236374244003685837353939117268601358975395863668503918049967737982970401117674446939754950645453650813056913567353330927182747214398813414980826371465175360391742546807397599136494904560591865241821770532465316708174445524358452830083249992593422067821478234617827163363532094523205344287661555481739013434986208964584461536276440571814523165071421977242079636683794469775493645754771970135725216852740399875540239358364056579255451402689156479526672079838754491861041076836798456873076863415511817934818419276853452068401162446169541582429236774990050166603219195445619732419829824863723265394040523409740844927625919255986580655925811095717471185000521179437959652783254113221724896925069976033201628251685977578381999007610153537563743250218066157150033278524570846391314311256164189406580938134763816358473281829089837942955521933780549067371270453360875330745213277195032271419975953706772293730462975212576463060530328569835191380023480027545710864810925454604607267271946629626029211768348820547476582356338160084480216390365204864111745851881229461292339051669071467965253597563883038133511420767573010562410710244079621773841710231507741942968396358647144235269531226510008867494579285609447590634215415393042799639309245116372723264013329810974926072883422894123744378479578181908186650030574048477327496324614443228323590997946898539381744488930983232542238837912841225686579767080536979764655850974762319407135381990086443249248834067108831581890918554998012897513225220380489670458867761162916468283241301479734740638964278826864180431600773367320329966948546287222502591927850104000696770398033395745957845057477639226587500059836341225952719685529377258353436282437122413581254213938786359170413137391861096639125223858966929434285572693476480102409508390246984433612151712024275445276412020775058574665868317873512153486675470249836414465362635851311198637982865428187813399894937066032820028791501483012902517243048222445514894932436926379013528462637108587191446239868960334370545275355065329042920928971309675302139656398213627611418660728280695650491232724508859737920968949424765819383753748633627623638780159950088384650743205089365333660555756584159145465263321874351506374952389425062700162462907058887294725897493866894340550278258008692191850439240676621948976998779218396651775754426733822413212333165940110895357142424868109434770265598587034049211990912878467415165035938654505815008307343004742465151118688179871621377998374830355669527566546818268957916390345131006952826419438245246897834369789394777318563307823713698054124073541292240791403094356381995304870999436407767168796344635367754765908578265273275829293049746235727894643360989472313617811435129909593841131070214777558623336546405980213523864241119091536181043751995549847283304224579419515880189635710558888332900841914492432517290245124179661646939399734205936050585122289465279128294636439057127841061927544688600293938853786762870085739499280401894601290068255454949101059099171761980107924789185096393222452538848078982350480019841173318783789588507932203224408535088068636517667382722266606571270306161832591441643169730609729759577770142286562871856016908086955644968108966264541164784784500064672685481127794800278667127345913273743075964346685462396220023563839258944680248806266800802470765800695075001003629200302760058538699117819939203445675872077823882816799603733077537236643647958331921181456975640584150636421276398606043832416495802075739078727599413998232001783912685502475356397888922154422745205766223958509490284619052546066864488974044985123694519766394290638527121749352613374443004543726690305709636018347013335789262841094564659552319210563134072456677056633588731652818223640897677592157426519885388302766967946805032704576556204047235042838410236436185752593197810444820683929572382870229559442606380361853702130437461539483963793049335625941104142416386672162488411106890920636807435224533901763173754978132712687209875165361890367774587951311153061779227526754521909916250387603983107880555900322233150108889487919617665287439654189219008168051012901641484561070991123159166280670744804250459471703118246984144120720155313272342875909517023657640677300647801201791874796153817076906992692023114201870607998817418209470992406046225486297278039052919920480294838596115864967064275380328369962722555061657355782511575502508792158774841876376820997449891991106975589689516110301275257366486296854934887629859986704450000840425048429211198016988544766840815519563486516419227393979555756428576924595358203132649516183935705397978626556881255426056651122883770645412010337070805460895083372638179392546345527295377097344728657789063810384303852551206988964634732315373704301587927517503197862296843145777945838709580099997229803339036723306399247278368102004557552354686516652301330360783148116341031604469919065201590816829473778860228231168880039232024984461549592615741732755999111801267534593974640025212901822124343216667974561663306617701233889110899798244322884446338671962095174075892546744488044801127529036755264410104545669041383336241037655226358725481506744099615018774208053045596746512141004608497039854169910504158662994477216142127563655627153911132799413347551219676348074567990169132667312455633269196764455773606164815273836363494060626195687395976713099645186582866696364015704375875741450030417176922525096443943629886899832761453807408242767021909600716282348938691517903818920101382922257240011384374865670900040432678394527675005593250261387522812861445223933602940098347299472879025767070642039258182801971250372850578832245161971354553890828325372376700536856981558837141193643080650806781309657562476685962260557738308450426194333213939175322106138984048877222764067994639949754562188965600976592204877783850326745633326335085425004702089012916671903566386848559021259473664423545191941626483507622882148703287798103267015585350738965057375046877323146805632627625320157873573215749621386769451985112029378819303568696563420738242646503386526095876525067051077432002560114035523375894899119864287443776379943280981562594682022976466093200520840197448028451640596117658832816946882805742036087811596589882697497708472677497478540100308780431421260647406145290232284252425869987061904848380525765300654330340267689065013295961422589134280217175193696245734186556469000033962671962886370780335193114329635805111391038227282994225857731513024386489423141651093589574826140770338480816171293651700105919209264302504223563848110450943063119642894436095399331376582801322588787153052583638785535036180530300245540910375173948643472425478704270573720359646732070244082054401678940176162737955189609027487544630840678961688316278490158014699676843652932873613552768881242239815380774951342890286065311554758206385993047428456375018183850680438120444107174801524353630610875997953376003485857282768821039620515944575015511449816610043105156661330831303669652436430060777466799795027514671936592798976632223412914697254569239408297882204545759448183842765606725633976332928864882386552144939692289824037033413761329855248107526720155858421919361248992725609272409196158241498534625098568707177088803940089865547049027099706527309995126202776502604313285159810901413056433203566997517043024236589904757279845444398012517152910801598415490956685416880725018220579331172398958619410612235277336260599020815878040003446973708547726729722502326526861660252006788672564917179944650918155366156013481905812738113407432060676499740050533906847189842140120969955160113616390200414629951958063699623084635867828202390587513074036554110698390420670620391808424079781762514558745720089369211638708094546913797280488446369545535645291885476314365309257303886642361671138960426178293156654410768835260067029856898203888422490205024242976851742584062004466508022656843451727995393513261033056221007654728627178450978293598130453418802766494539748769028853108442442619580954020097991996406242487950020015637756647757397232602599691694267152018983634678068217498589027932453453819496292046985735957653918453057908728052862365153810121296794484358375772938643926161280159729176106793106960485291341576640577489278508497657108454511475452413332403464332062917388748213756209441918441659060711885636123744800901768023021214395150982358958150346150674996355063071209214331386211478989534242740992014669807448787775640174549550871448540206274144828837394461469525579719338042424430261609746818398489525321586229465747623224365124288712990534473147821154702514132916125378937263045172762933649032666315318054550399565889343469837469920725303534400000146603796534456621383838288509535295576322987861199605423275358879646290400306538698132680117124180721091224997967970160372014624616735160559265155461420821493877770406453499116655717001140750427467134675686273765665881078012979802471031678275731411720643861963310415893610385729003187465762193164745227465130032360316804214550146768424139145571524215838213449015979393529088131874369302957858646507059957881160516659944629486266963960668977248003999352322168765073259058792892194141595702678195630547336518957563713203463494158424157029844792065317974225653695033837931521929680398912799089782287092164458438477468850878978397296433870834781449557754561391212957457650020395542219685034367774511276409538204427315018466333786824476549560924877578636260658253810476642866243002065703788735016285860246882304532223591584218958464680498729104426907275908714750140389154296658240960750541118142471318959524668887852829142057416759665749227205992495331556490377253929041892583824577654414443198782699898246741110175527183402493754653679446587815589429869010306981241487067760419363349462724312668909725411764810166233505138614416388040318819826551021536397060698725958750844619733887438254226398085071257720893283146984636267287904031723705245559478851679319209832906507223709648623702835775758161833557027911975275650139704713096362176887285922797922992596895534761341381886277169471830411086672719067267086713672765909127785078984820820493951257749852652150168560744913200325222229684811829896062453906050784927905509791891429967487082172796406259140439591700658378785284824742676821791161126174974692197783961845944053487297884545976677283360086481941970650206926583203850058628935022209422014894337732730714707200642685018699033726212283854506761049740522537029640080467847614738905187552255331342500304268663776404169606341697877107526514901541179230066137934846621492802958285409627242158832416756156344392935097933268244615383908755196609300293839674247075587353094674506745021218832551209067566133505109802123228674804720499224574006007441764721123827868910369091614358746110453035933034061262353988754585650955461764272511766266254612177464121299638109496012637090537495107439314245186788173195140919629664596130859549366878304395467445897620917862910899659089857791392284275071264464329259134005335755202929367704138253296817452120662064910880423360689591436860027225636636880117295364409295599243708592170413154601353492244180770521761904219991048318834463430695883185528639736697672038574855553863518391477036715110099674120626070029368071864588507464998150979173119938327775557495804839037946477493425114899531243627632548118157419152533717033527480657788595258363749130855307057334003074790548124039234965760695316633005289191714737125612801433296719247478549214138710922285726699545482459590915709911131833692648106642591584376297503816177531473237686056403322095578305081328643333938799323755204045843987943206511591623290741167861351068608251430794216302448127482881661699752043665297451564232612799150047261537259024193716199698705729668711668780219512324285057749805698786854898069411032559424316078178755457273145440626880441041070057612332866502676455499815143140821256662212771318089163797203406743319553940304104342611551893669010188472724347971154209580858779007076469995684999331489666455576473221330890481534674832697247084508641842010363952337516450378821607001222551846391062710947042132835157403719369465858855659884267995757220156015822607182382718708493318433257739021950408681774733265000655321245560501681750123579072237781028584836996292206753673096795117997571382901342219799000991603512381639839265606585687977039513941005900028589367927615540791097317018030111247951645399660981743446471702827712896558616705071345184354556429939504577269969023733281846501496576125861070992277516892742814661405082381391718591370747140526876477807967030001351425342394181040921837762863928063817248876272264550426724246264565481399918257812876661185733400950389290238949328015325018351376406345669463597318062664601738598132911879340274380767127322372217600907851970320506231183422863545745420730782044888926460966431005569835823229730722390686229541007200784207492664825883628782804544714167026283987487049037410984578084718536044792418411374582049869450206032603054817165525929027184227020200607280297961455477387829743793753793714600757214164867733002309699162555522455081578443774006195003568033280988035092479099600133609504042033858668827728880913473545941246752510392284064175614269765102997140309729335765428945043575764600630533668244988795491758446016172155613637228127869944908519449674345601635667544430042193239117561353418994960315539749394208984239872681378301956853982604424067244413862893180795005268920356173734210511022001821550342599226700143395697829122579533984927799723173844548760910885373788669532961445822798909189616205271126535771285474464504485128845189933402850317066636186819615323337887082114812485215996867511945645353886488658371980788740836593040528286263201319588454667418742717555474714067227283641304188552237097488097931659115265793741994713453472167222365883454959040631978547955709135744201796823886106150847517433027649738610119949576550324277571457341424638734682469512939818173837170635610099247218421524332815754717590592628369123577120303078471420470864692734001915975374323765725913592777397491108855399667452153424801653522632628259335190327862274639901175537374419949291190317772784091577226879883904243297176565066343086975873464880439148726425159687476955391902945071943715223301350947599889075702998289013566891817587465595067478326429096675778626593364870738560134135992489543104631030105152387790489659703235900005235942371062003180052605395418931726163282792021258438967728523618426074245660985840856829893266208025641439429123139913093331973076760903068070303496806151279578144456962789031581263090317486323960678876070148486705048988630158316215812058097697393304289494337179672089009790749281820889434241321749751640835985067045019635080154221308683171680586207390918126760111971409689639262211222336114145435675754639767909221675488822667126892275473183018297946740106839420860407925348160876660673576620607869561398326324910098545129492178054405239874487506553295436666663323848055494146912443286862620953469364026652364510830636020038584712314901237800885861663886664037261861104184164762848328994619546644964574100598992926845409455249637216629608698090694436374898973794559439398319388042871273260650237171222354212338715842360646671508633160501934706412868825604764849157308513106947125238798194779906659600021617550073864973362454340202426588355562068457015273907149392062018566784732635172665371530739930909777262427955323073226419334624503441705410144574816650713177729283373844051728129986957284078999546020736820833921529569989008973577842644627932396462353275362649526800263288417055403930469643817499645963826721382687845711212152018834336020370558443936087594727702137950199165211726354206698360895581512728461536361881462428407957230404541814443743800244004901844016562865210786197331742154460181739218769939660594660097645754049283069174051300777798662259674794090900635766955846704949129708100422407975780274947351564436476410950669248485991836905540107078065324268018728803513279281288214849467478242252524041181300151837793432559784256860190221466741430095240140586164393418786570843044569785835671202765553123307821397475171650972169646259511294345202011398387514688325476518164785108538566348708750299170106594235100957781773541770609610261994624610500888252351511704941032714387557647685030403573280595787317292956936439670957576527017768689994789443300527574148041747705715393530882044893427542638428910671226224420121495469824687608667989501276200649105380748618597495468787537693724352539590461132879669522203676221676558794127326415469699078813972657428050095836592481500681971156910746065540102360720908397403096070876323655801875095824565086903192044301802109900402180888499010214967047278460411949929069162193589205232071032328240248355566036166681008124566300546471149743551131361375753606860528834829376400536895582943551723708280117777943724302599064136618457460350374649079450358993756621567725752438358293450249527209357349824269014054391615569281126951055793616121770031717738872787084773046678966961032928937125845413939618406214617822827539243886309462224075438332524270306806456592935334877800182522762362039888303836245127155630806064487368398693437142087840823649087835685466720736134018392876786669147885577560196809651938726484518306876624854636623736708448809751558332840403087350133199191068446499775738256002217746755084920569659442278898032936704322916984070916433434440853533187371989508529264728464451724232981091242024242834872219481026524643060492036211829242203315269844262403626460542698119462180176715957530176323712623761190329992619462499253524706274684636758111059498325698398938498072647678794635789271200193133930127086986549238267387516822327651562170746960908658300114548304672891085791982969710951407258827206337028419605799794054890882524487181922804686575180569749194852782907189869437145123297418894262452393391235161673913856757373741072521676382551864350147875461788933220878223532987103902648717702044024968413632544854219182063267992380144537981599110049347875784114241614524873797813968867367078614798140630121002411499135853816496220505528640082121156651133804628879443407616840076861097579153941007348301117135913332282117411731577520631564087311851063706109278220205554162815990398690400347489429275883276786917798730095735998015716235923717408582503276885699380916408072932782162482082843702995567664859240766906335811103593071739334558526349192875095566873168001657529373285672191848557063995050724961482959280574541440859384657065435620761748314560566614271100663227416582533989057819446778744268209887031531759452398266060708520728642907172237478316934125989972038238967383222273888591001128321446452402747964465214537659401847614154320238794218871558421707468093637652441985994269131403170271544502776987476892925168405622878449626534493272685293263745145099173946585804273914332827451152280674423225854345890282140375796773428962447984685903329376946545087073330248616208730979586350950869414439202042837126084831029015178611553759133067775351583486123986251646552058847585653213847455072456213431535495170693207962560927650914087836366655977963132334119101739514363928745433867002633665948011748060836599878790163649235236403229404173283054070556779205967400342970428725454400379221937977924313555550197757987939044031923584131696827513511406521944049317920211993675148588152249963814509740939428154904949485371672244129334596312004428467994372518050985335278678232178097446898913921785204083006336337301902794216684106724247892636368678950391959681255979889062820687594724849700047535415521903994763338712904900674337091484703399722525915527504169968229609138222674185839512128136169041966909278689472545768791609516822444561640509963531312693846440804282449699705251604893179933015653917878969596659038377480783278662561658727302207256995185432510788846818579911969550071634887955760343422516602767886940558266754918350704386564563179124260836457284576114762218735669185381126876443054543784859328556087301900754171726024722674421359281504671008403025699886449594714074454556698911682560137086670187722309261054332681614524202230114566682719442602994548288402635083752143389570069445464226680308795930460337336492038662240282352845001354210059273251485623958164886912543540590015185648253061760351737082353356064651676975361329492222650105704489746565294426585927304314917555422298929383931726476110521478210451443381694968536447411568381546680210390088041687541819669733311634893091997287251344200103655730129648730788425651094324689373407361437405477154375707195224784640885548205130769250189813204678678324164899086003032115635014891825261842850652975188661474873068504910395672869609486825232850621232273030238498549143886163146469818333577416472508917723150726829962230973842215106880395389282378601811317668391999920688608836818111455331460571683841823609202224481926084231311895278730681105745859677092343454193167257567034739717418965420931257194840865430501274360804010165076580788321374723171451875801500178358182532106443580887399649787734652827030674144122081948916891478650583562186591809113927708945920000577897648740882274177983478698955834511397675813222132599389376859502651311912447852022150287894946221555666922800022448488377783305763449054334367703771620529179667102119763111083560945917824011921354320863984240556049754357649807439717026442697413688043700800553746448214496367728722112393550844680631093639621495626877322528987040379834798050512120974337225142309484166961943457664027760596926885493099203561229653649818402101650951074640985870436318458689744051189543854351594137972053137735863949524951001614333758063058755259103798818171726091129646512037167438439456720459783947598711647582348485267224292787568350724695159990426368809280936883057447152143107934934864877678073749454888490104799485885652670946111510651672063003792279736740551813870259686906375722697282437810329365323935782356735573928802954882534029500057641298702894089680863468340547301441441922340501707043099053786940286598834004174890400327905519559429204734343052012265957400585729862255891198519046553424672166042268969190953157725087646073697126134044061376360888754351640654468884402559305304371718892179517525085241473134781864764173137881409153493808206582071698903804966981442925965623023182294584191801155460966448962200622292711012129887875539558898060281674895220318018861726508504554914315138389190179363145917592286837343171212521670916427386624428154694835089469450012772636098006575978699737693696193358277080659366447311080562473930057977944090634488716982142665662459375875068709592380527983459616643143859921890028292991236329003530825719818032971390436278190743755448559354762801944593522599086820695841217607994463735207305980971756897787778134639359082890009174776556443357730767897096316244941718352689584773452163716630024395441819889466722960431016111770537610718766539755990222155224477159150048892997488730145680329045172496285474145210246024256162890039867407041764708500948864045279255117821119790562867645261798836347151483464630036912431630613279286347883268372163639712975422342297987424273691074165355097343764474417044505622338085794649917685026742493955401419088454566526050824163480121264464431908552357342770038040399757490581358886710909202036387262924272338318902102043248176814336754107130030242456993902614267152564407602847104903296777105010488848720004735337876446376099039935917017401136835502351961084198699392252577350922358466784294253302539986624836184140729168586036401490074459389793985801971584324585712370408390690290580750314063554001044073054394552540571279554154478077604034481945114234109736183180040473814920631157589653283793718065568983946374224300828190591599268266572420844485469509770021247065643085082522290140237231357174650168986130359595618544771609094200099824172031814888278640569192213308935330631122969923092111352984797433596800027219731952007517186951423205339073146243464337058963205527152279596210788312129915437911647166025669857998300213959660946852566044930649771794309285479267433339752936005306736874514732495940845139961591374071634209441955039765861030369887152894740055658755233356694593400809203201768643387624403872325325555076174050389263703080524077522131940345405521891122376873526951245582242894176500739336800418742312738917556308594427208379345796060073030880749183016863099569487695910098262291704300809887946607398317246485757118390470284054986747663423221952993231271778369953949283605923112437765954903800194235817309833006074781382684905548020082166496395986116584976421455653962731562250881631140905052817125310686814012286512603310511426189248051452790551934267238670400327352499789956359777422281241576211650549646271341283403547716339417691757484530868100487358204165844222982455641754722679599117811535733999453820222482351462356429292501669141265604859298645217238608074909227818415537521042965758757467582283246802554688977672449185935386800480658026135892269179885313993264429233066846082191170623145661203258554430268679708981597083103628706361689447619438789487718392384140308262126179169017000051290904956002417244152083906101340533150750112848474704214836080236761838061475315905356931759784370675682829352865510405571771128296776158096592274216786075197038626241262034551974774574093018870616055468814123712470891392301564289737738152744983182412642900349534207324519109428761958348504657097021482513767735842699649016935758008371847512228587474597190888888837014785219080047498107307198171175573296214218957789740671418828375696337951868769753912083065894356109107205071966450778284065420233465185612029896864802208772098534065556750859547928178165467430839384181466312127154172731474678538968205948173008617902061439402520341857996496269050276431502954980096905544160387336972142537927956748202731969912731947110025830616538702820032205601314646129380936836230433884546697253865016031614558713101757347262651374977360935907339404258187344691190048131834569422167175811291522638441824402367773511294643916371145249901338017488500986477207313069259304117955908116754706638166083113534341853874562152737743361675030684881170829036420106535822347307906323307422164374140634188020831465925869095624369324752766762828512099910675101253649017913115178479590577000125700813504036743502453433333376146349611314181651099452785244850784665818428583992857048762279249725429371342753930954732151095960632581716183407494087494694382345803997705145006404243822262517299698560094896648184667993366286167113145744308118685596042670209920536030661504584035830097349251407120198468918341924956802747100812053891983929133740540716547548945555665959082666610994560235329876562170088546128419077090542752308815045891524585682314380755116119713412667035796027655633264885978319798491271895553238574952659603672444761042619932710107694556836170576872255140531774733300014643810690835542517714389630831215898057050806089970408382567811590318225428226235275333701692763005849591315158606131621882289881385436590005075800992393513613743588157178987467788917489950247517453182170049017820698785912683620169396602523208467237050219793009941703055595534279274218117518624794011792347994814337150023885287808189334025726351086390699229929949994506099626947678847981894080199641240324221908704602883402621588724989603793783245644086448728513001961252730254839459296378121641730077260297791856978505549604089287913254945220140990674555975995618134848373607618877323020712295128504563823704681534858129570002055421035505085341946751820820347819912665383847132039332346371052165621152456479894728154801128334898125370139118780707107219265866679138441572472644466307533231001934990250617173539492167780882106715842003933218257683373562894475179472967288123082639997377734561620026866691009485376335228874167161947517639897546179692671087914000083768667312921101560691684215235801680631046156423594872295930632020085180997640111510959774738030230878069945158429427514087803038035054948786528792443844744049964669086954728517052358953677766252152769332213911368263541419034552748704127430776614968020053600877767371244213874372397312984163850709823545032781113874282691006277189534059429842349777239359976696869285349223458655570408315206884022757691237014771913774596394816083972198099488770079640379771601198407408566436653527576464744163926968935670436980837405090406028836821509644433438380880852674677450610577932476326306513872269205468617530879621283036416662602369122885085947085581224890072208333613311825625393416997116666699972215317071532194705649205066184507068988243472065629761269097440368256292539745429395633832706732579290644640184145828201481377754996950516557163665488838185052561167310295123490158133973771947173037078680129157272789159275903508405483407634353532769886398868609147619373820193589769529405298324395242546686134301263325944987316952317095820253501033647237978764017918492640990025380123822910532225287451442454084217721212268600229166210677396719611732250040062191912091721504565668186100428647750151354406874660670200443439324542797139939315682624979232374920199024010971639812401344793496407610033240405507949006775014887648863197259709605625415946426380189608543435507282825339172822051913967220092720104758667060575869365000209501733408297113380189017737960932205648689322953163085780776761192878837971286795005793861659868057051950098767469949327683581608314609618604442556400461749800753323206276830008778915089081278502843562347479266257767868985038232709145004040666642340168963788969093805209385941386312308878696796278728856661791542995774853433272074051917218364763252738203540077675886707856232879065895361488358036927802437837833324071131276091884774219922608230639963182981190769382304764509774981219410529717646196574245144834976017061142126736515131867242759562289525937503374087475310805953292144837719068496355989989687006431036909816655492200191279991636959541522300071211442561481746552428693023042363439886054340907369229553070518071082889413423380204379999940979177555498753381323982171088075104951692599827171469676976796216822983332234143300289187958501283602937483099420478386274356674036442380619654811861790145702327284424605760161258549655145490310772253731060117161228742503557536072567863804533665439881457132759107886496849137991001249954349269149788395528417529963070405341257336287759703677663960200756091734553248410778454973195381980055730276219307164751260098308516109326040990807304623942975836448390196116218160535829337812658407647450291100383887830734911774638503525955995494379563974164537389842357146606235484781310783731617872888668213052642775973266427336816675726243409898395611276239812799263017577469218081121964875044283584331299111111355442051555195653088407548852989743148216955412940703457444855721338359964708992262727493079571707532659341131379544403812989279925412546651909973316817007035149880036603013900454035968783297106401093495707063478164154474416258379910410137696724340809460087847838091106095668294296433433447142141574175953904524167633099903239587126634124698005990299181624805517302716395297996935876150530004944117977498289873672487453583997531428177217114673813888138448411753592413125794098576301275216383852113426197616464216353076826113424786507280948560197715399200564043815843837703914607346388335851342828103093307977623471417112266748771172423332316654015738956840829158412955388965366859877453657772734921659447904801798453041738013605772838558139300177773067868120817293278381233472161768466279472212731569805142480556512251390531904073253770130107968103434488580108423092005038726756299659429560302824126840634200021999151027250762177751947687892983818221168134643541855513394713016858177000685031326870321894318903010733721427779458603704436258571867159423390455317818253070849025751625954100651534379988963987675959444956131416964054172681348064900618223674481088415773830836438790534011561862613201704989552623699090448745918558820248195677136066322197898645627661793272216034666105884870354222614151374188564176775374629251734160417937704323013760123070445871834849730374797063298795751440745240123352743461090862567801888302534172366915034112360063441293658165514105810441779995251590867995649071764708897997434594890789353452538009818809573124523504659196441244355237304819271841216127982118545280142624553839272007895228293833057312987462389699570013934418743774962800259310489490903447231520116518533667805774986522266530542115999477160759357000248092168572081148166332267167311232668417647971007630079715648962128192878597998673983874548657871802290061050849339637083148847158499625723909854827547854858675415377069351436830585380998755518047963028361957207756945742493219925227054469181877673367718031953777402861991199886134115911136603465871162372270013426238363935491098315644082203547482419724473594645129729149426364606798337808263895970986858406988759782763591891680678265326116204182651122211571559697329163883293650763116465620709434550038679137233766313897067122597702789995638104837336034978128120310509063085489214030527351365527597794094554695308370227364138817586107774164696643865613029820780310217825214090388142464567537580721706259958916822088646599479741812649554445249568552203172147448634789246970949794116655989626619389226023117208610477085147930069001613146066849009707244237263363546070776372303493129565201749395912081840190430944922442746677369589873084147334926182556233162032039549073927311140417251679095210494593905868974136961240360883942503914610529163751195321531948190703194348254751060593856260091064593927974461579641136774973092441756643301468443558345734253429894488911059913460216989336878750118101218120668600210343223090222234385497685445698942266797039465813454312989660754903894597735427982536846932900592091671446908898142946551961123342519875485576301797663779113440811810568337987288044534645001095396344377178816732387754474893324179608517529112343140787168710139211165847758214548519445219452573681195863804350121085829784133604713521002459674792495383999359752024327582741133392031642790667889323293467672931356631900189879723245501481696733419709910097081527077416775570832704996907828170800541311980163363874686588598878844187495403761248728396475454459887756296792938702864421288623523498030901394497673237355129691042067057399850519062990634593619046763602707971879388343995478492269541021918227175229510059918354210332426478185609780787899634277330595342350043911911793888405230410946301407901212303881654499430657287649359471833412789148103370299975911070363705175011041378400517220538684156685388402640602675698653431049837468238514774163643400773179062721566637006734028561568097095487564327020915327496554573274042718350355366000860417884324728929854082538440446689387010602694592222676632706566526449609968530772231827217065837401361459433420846048789687183923279637580024111935724884713027357530288493026111703303974487234189327468772303475925423863708339271210209539099801345844144270127240460335366248572166590130142098234470926740519927899812047258091748950536708602682583799634466850645990781763023471972838504181165876974240763002399885635265393071688224491711273153638354003400761783145426865170663410840300378668093747543172138772776806055921742016762099312309776578384878162475261571424776875723563162988145682031305994793266544070270104893218568259729265821441578580281512580417301228032376423403722895343304346489202469104474048447993454180728651097229696292039748083613696571882527486307522496316888267816196568218048710961715415451335966643686592583881174616351587005681140991179759067550388638558346451672989176283158286262027973711008596426354669609427831648932244015978503961044196091257271497828415266774099420329447276537229280726515014186311457396140984004106957770108051127858595703306736353223255351483390261951482055880424740277528077395480638853563805291439293212942612677675141423172235376890106567944903630772001455104814024693407010673643065200943324728407949851818475971414728062656416303298571430929291883881267008731270039373387428536136262162257375398247777721594408256564982919461415385079150893818486007290457598228748853934417476088727062913765759746052695433253055754147433129205822093858173670367971736041161865296571508987113912205921069346877744804912625218440253559503302079469070434178044069536486016434372299434152976394477018839483012462527034443273810733517787208456801826281600184367839509229394197491120200431889664745669510250199223265518896975369027001046257490746519391208735869561687414274468219250390385061019308141580146178293444672280503533560840855692413967324762722198664668966425678964629295779100968634620283942858430550329249555310884022348525688846070916084625825320784658136222029223941325017862830417251093395419726178689485881022767868397141233841711679459551927935765791824309472769824771085978577046340771840036128717828415464180034034318441275357031894643253377980333379707252155265941286516234487827799434651499185204067600251253122095672932940683019071228343678077856040256527828947279105492291196803048690395309138241882233443243549639680323536572650805240584061924002346611469656656470441067389789235898035110785445481700448338552243169870840584254625691644490846454333537608255739418575934140985330685666693366427376889423513276555011690148790629220482955302958451843057956110364303790240745503887194909733889231702057021893172013425490979822115310044343752173617377366260792235251815382519191820759405475890637718346719748032020962739430493196042813080083315524799832894333157358879889330183574650839484799627524612567877344901914154553717680063529229253644867474949433293400974096913309905864259422762224211810434966976652170014200652095188441047836491821022475432861379234330315976389401878314720959093438682191821762859902584592691166026446728995392202652321591807729385967078700940308850921214108337835852624818960946168301921775650355749122938025843693087174842097771686809904608967287004680810689957557749109118046766327430698503461455368579375163096959910780358493141910167685085872966156301242789970907995695192400237868004482390682391062791953176865885323562723072190460775105901499021599873372701849826556067316230689788135516792894561378021876034025058611400681358497419706321044559512974933188159891773405720395558767250781796797076337001061718784429790071661360093995021112913355547746822188187498212554845302079745340568378247380535132862171265901977737571401584098286615752442641534292552602132172945532706162216767914305630047431107377185436204116548221225080391220941404346757503356470199458573779839263860710177737956891961238143280576769976760467068454799703042011887887653891718575945117422843934932819300573531047551325709224639811943910365692347691162316979982276570706365512483612063660570798565537485136586968164622691782738414152686246954960544803191466429834195949756162116718030398931146576282359965396160283214229335012850297185846654672115540795218794735563247935392634300379121992568034681374005388929176000309858883241598909759561471391353551339655834644711777034386741096329286989476047234960618282511345294084221836571269421261732069608218653858625741986034108604567308375650432909319132754535283934963638691013967970345820568051660923904205601510545329375282560564054586266619664318256996342300706376002865843485220049875317308947769947642082716710808531381307073098954373546237439294525775672093019448903548582633387874363763186240042596447612942840278564074618722194838711927101320187706178262491075166259299544884554393131371500217854975152730187738151481551872787197902175305088193254511611089018701930661199100725388469777699761075051360492465215063232121017416931279519787409127542764987828534683834724674509453731340124178568841535914695730005469672001089865138952331806129665624054172181694701144244879747420847374784876566670317914810654868716386895461040373075678735131202841422268382612919688472005328602974192140304527687554975607460679288694957329099866475936984162092874469111242240087601411027428726164086320644674434795899741813642060892079648103792591467648104330510029185917296445784568581014097299400991730396165513391695014863905994389528234988237628121529029531189043888478214176188353277422751657257004927365975901258193460746463193708434941754809810376442281510100955561836238142379134472556766773442527351285424330997444032809243418353493155801800747260443689141988449866568868134872049527534854898996552558464063599441317712113205872337394910369226667339770213712945986390526579137082171492794108998548502471506404643885074686578532504061131874248848345933501356838235640928574550386879249305100943407722779136364973999849551566836800078103731328819905170239812712731541036288082084591814908191565641747365396714185586178107356810106855694287825376983004951733743659110538410969570172797860366721834809842958036065254933179063346848724039844660295601920028354158132558752120449122224448205611436903798110174387531177927681956766036949156606551861573363458034859663581361219317465713178193801767325673796657696199627638238335089848118005764393375231056181819713747749247778225068394904187270645541465155189686635227755684760414771306816796559084771439827980567619510109867985362527632422670661512843721629177522315779938094377852346410528382733220136955692599724665639689154478702329080539431899573761679336129551589534579680850126415340053910268333783971956961702466561074212346614921048954037293041160891025888501625510135875371418499713201153436909145742482543514687939346600412428913353539000471264110880041483595852305238375613055035059110661366699342171833458953670783960106988832271476911928485485771903603609856913707899630198887988560022927730300081966997776784732964158131161461577476165753329715352165293351439378906602054138663801620988341480290060286991757059112332186424464562590309476471305750970612288636007067104763125891810873211206807613325024336917210217731951531414757551904715638779652769832084471346458820595563440828701221871925773575756304679851631956133445114482067899376252317602237771512950178067294811264927172060113518646452471072200894531830071322387954113410852844317612619862202199530074361545199880342240690902085104730817628536561907076089487919483694558401079370179997847759799288835677805732949868544340431359435992792496682778745291234391536047437776556923000529865414589185831720596208700774950494062993606770831671442549937298695006366164169426682036151890979471210946584426284400127406593652883898646080801261493346997455755234218818110266306742351008796211643446458474336102358670659272448703570310943655000867034152618480967091217575075284907424886846842864185054553371782646046820534930340065422851140506123915080673739756500707911171703004804864459554304396088397497019491100567432074524352184833836998108376039348911546064469962564396324929173994041849387294772103965579587806522817767409076206502252220112985166054894702544124642884097387025820220612066580165365085735537012134326742592630388887560336037463115789141606854733619844469216729218344606211706067141710651425446490063604974590526899864126662202500882272653826607615228996339781760209486788551334076087723691790910159747804159557385159439708721838902882599465303110073965947240053533785951481914123630156972107652043538698000434899014624856723927493254375528128041703100992204155471928672686610980412501722437906211378759440450701151523988888429578656790957927042317807687540627582173369071897228100988653625675002430557838680692902778052719441804851737515706197464491683539819204597259749468306745824399470312762799863929771567379728675806103592470765952209036128007798620979316504219749645477478279231228371141573447523080020867900044073187456792674974279275188102500830786457624334773893601432604888986721605131738010372538908387197989151867130253493666676507448137062370085020669157714667523336055492492925203310182760613978694345504928448079000408762269040674147831605504627899765183089258982668738400084973869677998115925482277237465854242321330144866327566280146923569801935261847699375215431244592592617353539491658399934058600179362397860812979908811346328336594723522705912004818164996852603097569942453866567383774559931251937923179657403151641328212469752465092189820367722854605063039297797105109345038415877683908028809712444370903944654414924856838722186616628032409060455850735739947800695498850866024739903498312215394035830938561134136697458879528923639744710836441200067047009014689773144457013345361368080193773640957694515941407636654663140506724403057843113198753130544796670030568264875184251576741332091217375311798337954301907231752084733464534689504936346070365863268704180740690285910549595373819782120394483603297473342070561532964905365828369006351878834109596908736238067297843920025665816636421264293914798213437093797452014232861352744687130831201166378913119557923382215200622959788599120077970320752292256641521390404732441493760900145712866127180555929281857848872643042656584562074204380286074550055232883541768388738767466031048781091545634462538514272076172152271647100766210093410629458875114278018007720929281475312301915354277288172265103440194426719274912852679997607151462824408545956341728819590417755958410266972738800994863036703328369305115388368479888301281533461513324882611670878631759004662925357737211598576659746876233627172877818969719576661248183447355564245251342202960215023580215983307844179629837850572122143861293109617571674389656868374660002514577427586946002608638226546997365209970886488668724758302193842562780768529395188755507918514772160138281332842847517210281650166301241574951165016969987074383913157426911247741537745474102496723696489504598664538005515957741120760632203380733763336021927131329403835266259725178783195000244104687425040925752742272982928350021983580792289563701101613470774062330332750628229531892361358857082345513707649795894022457232163417180652436307886518756591937298106474637560278121118780983822964503166915164198309300510892280960479382810439280312393374823831170001202345463627856195699172282404555001540112097838517547985126601301477688800685666410128842622972230000083063539392525301693802335355556882257316660123282782117664422020467200087119459827251217651876822864064795850754789803768158750156864254041037705607983010888013899247841064757427137658758552051287963282857511525412508575771111809428835587751422674621429530833777550131028360649034476349522092879804106034019044481235109518915197517233836752112435168021132861624569843740972225952986091278652218214788708940737135954084861082026796576380556561076786382411933505162012098846964634462733027597005409730714332916354847341220221993868832485706553138994216331630136021481971727262051795328483427221381579863709036306830901463397645814922492695455251343419940617110722962123990616742003298451184276682027416477074574816863194531100402365112839409190798218661801044490903109359280470391169469885224416847974812169198426562540284935532429823239368422088555773266941383598833772714932787267805611850301184751924318806754436018393333663130442985967534207821850115674107174362070045465479555596375796603061468482031770725294024593363889938976499598780220924396634912135945584755523875067419094405910425905671145522220293112583276319039598822697029160672922469012115296091352066192479683020951385116915043361102449528920137466177790397643783929071885118887696575627303871483383793205103874443005955244404933224654384863228640136962302817342927375953575352595383535937983175022729078724975735088604314644346710617401001794294354907381715486469432734813252780372131202063819072248631976347506839950376669686003868175822782387374522390378198686415097487625574927158105146904756277216990547931878689323015610439450279243159446226368882463618676693837342288021769547905276133714097933173086354228129648571044564457894114949382496572320636003440341084470638079627851014736203437857227380107369066199882602968945697527557285304123221783101998777431406157989323645916436547316081122057947879256947582369090928052478164172299806866292124216233781719126577758356985499830684954225450017082030628369363521946580125158058271436264211573887648670305402249692211652921300266043183845169048582657062292441267797281710614783960876018572810580508671854323639828441210691779921908096448922906960314373762876067068612726116732983333901119815734707199703576786349832963064859229958820379978724707915242827740955950099906988370062808000776981788709890710747875255055044843133923904175352239776473197573086598001538263608795334845624144804806970028589468114800382097499889597719577635749149107606548458327291168151827754684566410255019938077802186983363920563709302417324226445255701095263633785937889303967684176577003487957560248398814674211981603241168834950900881460113221382828936729336426427795908340601083987571714358213102692546716815225102275800843155325799462276998428967440744260814595453970579331427393368806087438103491560613858797345345146809719060316378975776621355062662854782015674662251033368986172550148349838394731064390381918393507344547398064160619840953914265221875707723142325502729010569201388070745369711263435469635557807804108636508846192958833598298980590355025020851048841112152162413478092794979206282424851278419776795996506536356518106323396483165874734309157728840495924562090500173625730422308567051600139189108682357320872629636719722940072162390152339513678570462678888314545570905887446293252719529350925504795303049881216600552799703453933485909889920880868239109677060528030138051339517350483440148312315348153488651396434999125957108853670230095236092503416903634719278412443186087237598310793184204347501041940665637678769298910547417621915193759646632551364611362046457179564420283651917371409923588507473035175433744573645537088050897122931696970547803376397192394236441702329375287634485395826249003376508757207061429261965502704234806872802500862080376058228943354933133515592012262177919005530954587840412833260479380283848053402418479873291460598727023928291652411408947003253027931245384651813175969689206738423777206763064372860941081654599886818604102549947263362637309207088848451635741669916381131271970056094179843202115955088105312519340757863485817312912752583957981988964204888749132309577074763871969512012086999322399296774272560623844142753785134084773190567829115649014404118848435746722606719293107567271075018584388548322341683331351678370148776643685811299755902062899026113990268941182269759077278382194703739726856282279398336176687077542717512162682731665404264982836120071217797963249701127817021835833276165173408398533416238513008548154864224263238599212264696642489988500948471343464713374130308417269354113567816407936361411452380537169435138908893439890138696641457591226146126591472785546330475326661375997768805096862495752296153202903899702201000379847186993434726015085228530567743472271517109730538071846922816254493766487470625754838442833450019308076735990465860825100657750810617400092058755737468435322303474314635850625321167132864007464097571256329051189112391023969360038165817915235349898910408535560596197089724368247251591345013392922922027473419336405661362693015420722481922075628384432814217989953313425622486216859052496194209542804596034877574679949570920096207656471060737196202150342463083969508806879501431667603060480787839920529782827983875493432630333527580670854564153893258413477929999156363930347756273234693305294422050643600395114637096648178832058014594523256612543108237010237259918383910772138560583205450196289127638628041899860280947177705639694457461562778718904731613398577945883949336327119703186427375289777083228870892764273045894512611510134941022411860166865239710871087693897238546655243087950967267137438174238015559950865871800733608515158969417622629336538704274045753669702467941084857720349763230716616175061169676560596462908989560490196415472248309965465275332691623264923377309216754571036497859198792049981903708178291140845056027242430542814941771807081708302156511766979664753053753024876203054223040908593808195707106937352997291411260572582074984609555964696957085352733930351031988474965551481936409725750875173132620196456579419383079286795219593525370949880040340498369092963336075069078292548517566467983236835352371302776529575134822355158713161493660432481196599746463254860901287421889901772879415042428730870614993005392889723427691664843824435747496974049383244320907201855321292900506667081426716667742486705017298854572926510376040418181804623631008492163100727978808109781346467218545877169858850681561996752475341050766864949920206417282651286581679475861885005668587752892662729878355653255932882777988345549626484161409204405672682639303367125744904026488977457610550008811597907602440367004886063163966225935997164390112790328835141075569350286627659020182965600009575423753515302205235751213413393155622986736958692189532874435760223733328123904343296575110606850326858662173619158907631713508630227205523086911924687971333116450171923223836128598506631972739066351895199911962735590807000109834114643756143338010190822132037640036601217771674683895121544509532494538335614095574106460812985326800835316915484895653846154699599574225818566948633919545216165232674357123910783394279992520045422059881374372624361460814040702937037366703285632790993397360773676324906525000490489031787957416049759303035194364467555552293829996827352861217853531286427929020925860068319196659797561374406798276493224355920912898027687478415156699226728032411235995953704532191236920923364400129715207850291414226241579142174167887795714877492216585501719345244115686284043277025595987813358979450180785022726596084968325132208236306028202071672370322838178101951753795994282431563948775707894189750442970333401905993675675093289225412648108218000579036757175228981458280032134381286862691333322569507730945473794690051196728997869742056515916576573804479480387363580434945692461763221379320256536879286767106402745074208236009608728315327967363060683506108089061895547336272898867119922840966248722558397576382215417613829546528995926696524975518491873940792713207196740137800759057463443836366277861077079064271138494799525244942349249175894107146545799235951386322451950472389063732978483623475812228465703629912302170452919610933781453737949371510675876030243511958451265395478735234150184658845890038768225290845471489144941432755523575217291068128234821996361835194916667963996739314435261376185579357145636229482025554801411291326253728561429623490893146285330055549396438513174354680310043268814953518699127554123176190429402819371152364239853362902064136337376601039473560196598715340173922783108046524553404207931951563754264191943300860382006413561868485916000552548779291832301619459143745011485584605701151412578594081502651321981571686959406277896958233575665732013818750590379174910567245831032533300671601730431409325828953406968025308691636976001513508049867889411480564483084165537344440138291531600248558186830696250275214377758792569388263442060209840209274045412462488725243296170310339953524763921994610239868000135243695283595914578591590500535359839369839522179951300372335881964012098160370275527854009809197508009035263202964861561461672352254377193646832440598855912157694041051517190554503481992339190715110492103169811372481926855929432671082420523851029411016801764954154516760076170311642325413008434105974081810844118362023445219621419019312399900968160604257339471594626987890098824097612465525686361159058059852571444602354044771808904931917384620002448842531811603226410148703023289086439713005427260294396690118347900084584148075196747606640576286484065491398020804667421498236986582051203225205983638797721311161498738050603311774564438789897256051159131492681237892670571597324531465516994039728987165216140595752425216619501510326079883165650813536198160212466285194502269270723444452693062980429091218155339893250432048438470609942768413402949292416451211591495783755017201322583420552803962753028729661896074617682074480876300193261441068621311730199408238278794950076041392477587627460399161778776392623090841523460691629717786546700311315487026287362253934888480613844512316137883021444824882845442803356961641253319991399876530722257065350477028919160269823115362380825864766789896814828132888216200007485173064868542375575597249449389919445143990137805566200344385496350087496401302080702766496957795013753315758156128324185091962483051312089895629573181700009267765016524425197344654045247183162683437000519265832237971690228606142964917054537752459830074834650046459254827715980065363766443679514451935807315543171449203670724261577169811577884940881368642060318046027396076480689725789907031045660599419077136210988100803109985156297126150973963993983215405913844776481470789278668110952464940627266625614731690431628984589543281843634009381354616424174228559655118711671906390154862206371259760854143435394302780131868104292598122475904657845860966898420679682841631296970768974876618607867271354476295483371958542322200927052712531081430528582734967051989270626726069033893267985602992839191984582618117545435915307610522710381764575449284797538211485658906084453108126718583524674150142962328648472365314668245673889378520396355702535114938728028956710049807477843354750822644430233359459199193439804888262917152489335364474719829200256449255693648175712316298448465219256917292301885216867601768281428031861213391835623483759509844847245366627021795053521601787193118866748661732457009169440179402498184141446682584511657686757198126660726515763435702461268179992750042613392755425884902929930337351733374761203081603817703036783186613209321622904285286581352660243863997172562911439287414693837116615343591882947075938317893824487111470870267066571622513895355068437614932630417590941252907425468239625100163912109224634596035958042754060373683527100559364870896293699829109452382550698197386905294379499437895041212021759662101838707643322148279493770736168244034028352766505765042137943860283685633021882470174507203789728108884186366723731281123503695607795105752426920260675947316097068570378730322550838324077807703573800673837384367312831721493073353533816766203156330512873270527072576152894300965918316755920937187724003655641464296081806899709401823388973219750589869440532502804245052595682730846902966336616252769139807193199889297022604539927961843772091991112024307772894882189476805196420634264954153853063920620332296259607214630137654956239284604321201235618833698215830971643076318751243246527540153363427826689657871195960814949408760645423698597606314395002172968055599078029701562994694831020925496394418381537946318093305310851503164123298983844845195836833206532954493512898494923708514134700917488939330199503176957362034245903908931970141650257903328763553873769078182478695417740846194491069196907164123684681665476035152281993611245534294370019624152580890373497042681018232196733983072209578495975077110522195495812055204263950589410664875536119544264603100370411477086650461427845536048087128497217093041485182735559369094035956786282322160336801959178572289879698852268513113408635604025232194909427270801371437117820343554974017956959096451162846070338847450345063962729035242149304109846882688997369285929135375705812610970989637875377403930730411683692683756456185125439402655015504963240105725239972833210011583080506536208741640043395598947247219863503590776980539290085901653651104683651269314433561254549026237695182200352827393531187299834715425876923307046411540261346947481278083313319152306542879483333450550801333578701457837995220867034135270727819954869558100189984318047311292200896863873113224855689533654195186982282813135522302285743272902592941142678150682820607924315686072116674499479851931825288966666887746105264140453638368274032842718448164699854118176113519803076930958417592926945776339231759364569320279662488975700745831989437369406575935932725799583893737575436305808393786267237717080959524355057888477205148939637853805452157857914634150163029904406151386273965440075181605598168775034873271735754582854425441211826403740815511969366729263416710353647921692780916701627188059086370184243643854624719727725955582812257633918680251346320815386869095978282060397442274557015892811518558785716570708375096587789032009987678228410467066844634747968078835850801848566250836300218216019607687993942687872422665596318290970879486666555717104675406446463762801687354848850237989725593180382653688063040084994078827157196671931967284514906533317123064623737825873426037682113147653017310215912574189067280795572075026270781939579475325496163370075714992008185042884346072309608392781113941678958582109661723875045178673050847827258314498975471208087383589461289030691498957279088038317255676599759110927945075870903649328198195209411108615312604980845754785425367789562226688279283970641103740630508020680408346865929031325580760862842184941727239332497265263349743054468552296341890539055401587105561329768303584757674337697407973227194236506171868414103845752194033458228058156297639135810042647112236261078817890724307501785406842668977771750933565218316178962149148135201406952503336144242476512526348400206476901638254423074556182143265002814997915357786331249473999611893412424961859402628596107079470721186772959891374133763782620814232821216327455860366954139310735138251083038537775580193056342865801019314488377025256581336514124225378038885789405075418261693035875878777267208927460489548972679158247173815807864804751660037964909816329829507117684761766674085168992875757460329815104961390008108387082049083187997304655665597546256570698118809659215703472228065632692715797772693385832276173636116509080758139698273600339694207058176263278367387647892951304101149785205051891757467852912525731629369864165233099776997441116298134233859475774844463427531270203927222381079773121483338475707011934384512481993353607774446247362993444802903530810787431078004425760362774229231301266473496858336582869284237569686545086681424295473623066912893669170738902542091375791584886354481467579723154501090450059886344490347232857207627664799877401872108052237159111800299198039338868673818736847249288317132288064153657532136052092023068206215940405150384191591715211064987471421139297806967259882108597236398734673555463391479709561406168931518085823162201372550890408223594505087615868217662844814958218960498151957799457754365950871860801646933703660556982487766063045129914386663828437885753459785417418069747021095975452999889321284390484386507205960161261223344793931571341183670886904226573962478727861279538736548063812139676679355692777540304320603948028885730492889755787319502116918796291552760835535388440651464246067112308584247797831828065619237971221282828727502606725496511218351591983755607898780229071194051320410986748447215559456778393445706796562436370125093962723267957538305540307330159647839178063738569235475220456512418445442935814937486229264038579336872296077482322066912517365518108347146004348745458829668339161996830431087983648422508533779861474719848758032096247122499678745118214289082281108832201260234967708436334884115998330476791187988943676256797408444501173313221215595422211052016468686939271604354098321646069616596301248528986587339425222215066616752705613273907171893034732313908280962489791628710135511064385405611851922115188111994091649181852959053564095836127646701821928324241599218791513399980264656408025394218187440891709935392052086516267078914215315508269587987660406325139750213886802052970658690322866753086584185582771056825978356151771529040718198593197904962579666828944936065016537320916385242844940353959651416460473011755960556501029004357195153474541267434095417337964995400947314760403934498341030549212308240836078681240074400474595746672875484243667697337394943748507784442088547336061910326890842532298607573208026117162971058233753535282825649351289686804847114477116690185032351521121507419886617479487110647991035307051131792730600531798489802333368473575740920096365126106562098857406990994213861584116084295290132822043566062212833454173692706180394860486920105770187468630471522918278061003572502469224391644857894603705384554802746395551937816288771409884466651380856049943791660731819287944292288004019588666839913061975395835647268318195070994212531362065541477400441941252803058387583058217157403519657837454485155563304012974535413108066506222790040763971326097529435008822013047215602957556218273993977309603356816323070693630059549389241706309151450632005022277307243533466391757722922744982814559912451202478372586072491874350461608938298227495295464543098036329134153997836458924570892917541475812322017975767316516709566823316649070967655308259050928500143720847055720470497412614687813217291906498648807541024602396817536646508564364339433824073666519285055803249772818190717203855995400980434503884615817539124834386394547299599273754639543027677226872812773911288851907321288920510091480771092997299042162275448647085265684876705629057574048805703451910699269943859706120123615270571752790885282154986210501228397674943943661898296010280304453340856363739031180703731983321787982610905019129319614903567835523907917540674718891313669342197409391167344817807958216240671321372681345949721416459075243597844005359153225588143243789238913435193008522070004320618543636191800120974191393755919993278880260285394914165440234153670480406746496899205061087412971149101076635424566363693335754968081488064736202031300955450067167225223626247762004092557653581204958210166053255756921808357499084118144049586071685966793663881494238654703300689277069555835277620787387617907044740617302920602892530414124020426687447851834213788922554159111771535420825276766878035440561651806550833372240827940417565830931808883340566561555508275950073353134670846424770540397084081518144501507351748995154052563814741193464311515507042647995209873105563997060722446611622362441881539049765739006687949205641841194100096792992570497517073378599101203092203450711462382829698828940252692940211378826000191094000355515911954383187989008129740875548241356987215116138160146124890824072672514157760578782316916000607886160775461638429752576178130128754723261526668556913740585599484068606960649414007582732311259977950658612553285933319560607896712779550717257841384452442324215692547540485260500147311565987446892668837453625832565911430376968446429186748441609113356595303169012942617663845986214085637954977361545411017505258858312039446192569032333005840628551764620261610733968268043035003271855991274257743592698111621140227836166601585134315327799023377051989569629353084537208332869666975023105140460016968991287366053758068892858162978799939665460857866645141179368347330217065261049823539857903847592836732460786680154149031335316790385723921781827251356400251830080862154555639354609341587672890876294961624589949095144823002302133749801251346467072686107339754028118555691437255635245109174508431487078113151834361891700362428586485229834930566645948096438216157601586279245011705525170111029711869408342065166710457489883974053115960368904798735793892381889190609867977346131623222461541473755841558584120584807263349706291777152103835085486314660753372770687917290991469290787952212509769670310301459679869784207477564421453615070930828916437376123767035596195391395296850707432900633185916557689320915987941333326957678225204138149840556882214821788832352987814710985675898491579454609109080471492179658519688745216346366535994111078049100004527173920783372705123947150350734563866054383883397801836864047615911529177457916699774671277130631003923888681261360848965871836156740039899237373579385164460075840145254179028475333149587505301316033662574413166592672424155206020586743306915586053496923446078227123455348027642083897131960805717082519531295695975810006207770478941804144815325816138759656716500702117790332033846644721492273263797676621827401287660721240586056935699983645063751923369338045839510418774491776980417450276972823186976415782393344001340937149559366927598947283903039133069034170865514539359849455380886702129427971554689584721481461242456518307682042921595833190334501373125083388500871486797720392520052561911981171239808701752205220688999188497530412582670810553823632862831584757907486488643127603809084355740642500268244768721031150697182378520746780468233356563742453800654649429565500845614008444754932426560438291297068488224829535797543817838977695633688162237707481084789707488252712748992764634734223193051998372548567934699082526065582892929195971966525456820426195576769890417504258913795859668338014114175137574585986681849802605117744459128589299877153263623236123760993963084981699235509145977246355852150771852976656662359005631438645832910237012890026958633776532345558573595974079886659947502956402481831348948028683690562757617067142497501514374954900188869767591960611064613029619949925823693989272570951474347552446240529840967136143580126073237154316312538463287556560469712748171924279216836581369307290766794818436679255835163023965031803204379138054739365667276799080322959862797362298786706395495458945854123051593581253002553318105810222749998456594096263597629110354739840887456057996247922155180875959937904509518345059465905083570784674156228354079928630238717787145772404439038122916931902692439106366701826849132755867356599422378941343927033220716661512684811927253556551804897665836096709012039386154354953821304126016927322570198543159551603337939751405652871847282337417963656523884361870155993128181070365230548197376391083515524753901427601710468009309680235822312765445718755777817795039533975163827399484164845544348411700218500551410028404168614675945299061318450662403121904481175916023174932108460974274634762473377606220430298506925600096464093954676641861633436918918864485770339113312605940541655451019798742865417877563649907462564635721927688565424808790446914509073185146102746346326380993343240788295007391146870600890144581759880302032378956116216420091176256207702139956589220063274301038678340656751401344442979300725592649824401744978535722784957628002995635931320476948338745608410729485188232471067191997558501593732442485643951663972747799878343709949504099377676841812999045325511483804942829533816027221983535895286692884757230833555755220720340119317714737743018805339402458481533534909773085085810971338299352605215285503213016004349489336708349068540061384097641501634236081087063060420841506878144687495513539038292306478285191570421994467672492644291239761938172464812779931315756170248352489828221718833964761378594452610795549611694912588817699336717988642605997588966069758883654343219699208959947543648548815562885774896901097964220394307954152629220812113829454405135842277731874977381793830402016712040915193700461530935187480252478479080553799874887695335473620487505752254131541500236893177136186884109544818968194995523256067955587631035941972573125461077784432497792206404853267723032020495934606936798196614317732136485970651466247358920373246682322831116453207934728976422380514720831679199802594393155684857329522611520432882431878537112967811302655720120373672525449635537787154848851898475629263158804794419115101202249914950487568149500732254594921914521599347353226599926576178281636705851606138700912561370300583386863944769739742928357399468996792187775640725937984623681690271609578033127810521983563622961051228033565248510629197462878075118243591325198272382240427526060004373607126165413837800754570700150720454372833419119306875055361353308057250893736866664179727053505502359539924520487816908805375038463418322904962845456258796519365808853045431847384139020692548228223729284568229632836896060885839102050509551434818529328536211254479621508642335389432287118233691755935712145793648066777802381469252945160639115942819591032198235639265450562186369431836077811586422269218626474629705322005373915433385149917571543095417954567203661397218165431730494399767788066397048955608894063494590361367117811728290290696267636782010721415507426467659475230829322305768248902860535492118220155507273017019416569210542566793253173504427478245168132581362607027599951910736463408979017277291142060151447093553443544293115521749754191802157712068607940694888766495577705676895977871930339417058525517077886594373468722865762536007726414365913289253639127573193886539187779217154729831618127415280110109022968330215596309272712053064268474209243092645764155370786324161893739030524212638365435289906205670706878499754781446295107729406588185124211782058677307202162030848673224495892671611553770093290357889440941309482647116135585510490636650883951135049764412985224480377357862095790886339547361730967814600829690889634508437530548439899091173253316786722685859622623735164480713502106366072036418013720188372724134793492817681482076084043435960559011494272322749340964219925990922263681915109355561904096796708124785098539684131443943712304326016718561649354618902285635099612583351625752114926356010741922172527881476889492149942926219428891881929829979303218510353405305683787889878710232205440782333093373251359420475896542612066567916454699534791202056230768517220976337202671991229062230382036225070710907399433569083033236180687769971900076322222556199709898786875966263897022297806009988976785372990490394745446346466273053581992054283669124978516354959239328823243721764351315040638781633618154437823270503200385353437998926491375892862215243799332044066605752253432973419918843369965537124579115304666769565011909564497964877320806674741442763631172068478320321208875919407970208406465418570893870394554243363325183735702983282521996512168612231726216406934286397269477549784058689249844584315152221975065491251307303771415920142351080621978208151558699383409855255437546369486731710779231236953419383240380975348335468702519951009343573592027970428318771688789933493042256163427259348418306499960265602248880508652625476017223271934188166238204668235838570127213651469002124513536031889093846101270190505076321124224334610540887019369887639944376709392366666577404402386472829712853101967644584944492241443615800332441125683270739153308861361516851983463993986112444432680941646736293604102713170745905919273068719090402875314588200892941548311330590779230681731712106351114268417407540820993276409336669005848808584767976595156281948878653655723111818789415245452259236502376688891869820554291417550410667448227335237384923176042085363217032995638688080619414634361692617838392352180143386770128419871856605033361595125714757898785082664279525896309080557437237935303740694374924842190835770464114580769298892276708911681759161731738877856296886677048133061337520327024743522111117940466501453407309793148589612428464336483043986957284234125569325070620245533320179794136884749446600724208752961853586366850714587679011007395401951580265259917676797907858398613064000558641520199009784846627025426603667721930943031717500404167949215107203519834908978110556242173986838181064777566390555399536127702742868437106855800332495309299463662605346123724977338860789927405666420234528947970787055160910699231456811825514612510248459729644790593685159810283219175247303894854314859753971404432956899198695229606501818268823011912021800622504166468206398611902124217499660398936957588579662884527276154383306294972921810298942681527957517139548032133183179638700407458383247262596836363326309561226366682638880663229572404352495221011374374343685862002659818553876205662398687165387742645602989702298529309215743419894556976949370144294225711384483068657362491425854278962012480786754700142284981500699812050229116588792132622902063144361405516187186392774976392808436597040871589430628237986368221871797805975011293047957784528738007989697210340866763533116909721710681303459655433707010820922193371433990876411703624838820251681954545752513685977552665880061386752227688149668533891582700838423766426550418282783131313398460738592167400229629033364915751036808124067101293396644236033136039061679301540071746381184529343249526468632630826666775449383609681427302596798556244700648121089153186355954001627218394306407522130787202803187819868299969633048237977259787478576408516491096811509444335104151091844613712515796632298708133335631194677129698473902774518841527756123958819867359626299095458125739344346224181065984093658462156100557301719045554155510578895608873513707811468085557726505287075448718629768768333207870698505042035907893871624146923983743569772282284571935559261552048396285733952521814391217684899848479242557911015754075035434319488504779672994469878574137791651603090277469015994053487358443705034351297100710117777412478759472809138040132375243906143230170572487484517946660172918533740719079930301118984014415368634935854847088119909621074522385970485082980713913096315767915705965585773976269568329897710502290768236743361549371583456706927014859624180454404752227890684406811796316451011419633622802243046445078816127460354618098333849483101004618557612275006839335575885105668424305524224829082731332052639673213785437011231614840045428317630131674597931004788704249200983208385767450572942912659779999419340016753030445768924011100141275208096599645331125556966171300040170721887330555020716536888902119384564408775277461226806616150288657109196615354678288842777705783415524385122701539536705677476737292640354725878051624391138722643827155527227022406047152244600114821575528440683407424668340351053113785529780040984352306453751174642314284418709166616451837166540771111562535463024872075983537724837103478927249858075765038900505317675769405310417195798710862596383052994445507426097060367526174571962329999841460369495379986655943206117291459688549176297974661001832561908866843852691380079179455801913901505082352602929836993476787079250758205478680666455823493301346531354193181367104706268700854409855266594630561933870850855407302841510195242557857834039771433717880009845093998884207485540111012144228849138926369307081015316520154958862776534467367768299072389704682079854290158824666665013993574793878310335239805683185796263832231064229963863533961632268741186293835833119672989244482259567108682185696655865989429664512354315553015972689299334320974429082739161850030170115567777111249513441726051269290068745679803976411515330559400607673160240737481554297344404666324852986151111487816762322880442029439077488747420218640848012437480307067141005058015029022378038260297901321848740262366815818665886598820214000046492394877753443013805028640656218647037004548962462166220207149905638530006092258676298530464557140195295007342319050026172728434475195797443884882084611994939506017789443831431632323432026078899670716019484760992345769568377354528141381768977123800958715740314129559657445287787785656322683097165130896316315283768503981282209734913557488926205275775013335420812199039821761281968461917759751192095989175493501560771449544853065775682133705881858215189776392872330775068566853696304473103500735024520397994483015564895167343145510871561139632180799406262578029006275508461892971013639006811833651101160559746840335336147240608940077024290096039885491325307391411343785784519597237361013752195241739228979848861719810195526240413345155259036309201512084910151707442968993744696940168771796967823329310685264960978956145733645177100360819405614501116619193612642871182024795147359932061644028318446640039745492507713198790843687463486473122493176507598573933870440208512851390962812669975584728748720927356362643802721479943930812024759697051653845194100494677879275356053338712453963123592292441976503857840095603916497736170260832139814945605018867553360609882216129733295997875742000160260481213296738339217703113141169329471092887610633524037643979903070391770561547119535499719601128269337385769670523265456318640766622350848905189707442095060236198356550453981153898119635668570505172419938045527538522000157119846200293097771427579981917840726547586088965127077167278152146002771589397820829538265271415217405555794499691865603120483206956604175844726002583825166486303964503009794396575877683254886292854354543975534031992537147786963411085673158571873028932600518070188968273240529033946118282289429515354878023058542275213644686737382961095390364584135699070673502710019660697357980442651638990382493350431186076121508661552511952509764893502136486262610091308558425914486699567104467698729786549252990581557460828887870948624760151111486425437238015012096482498801969801346099891614035673842824930013249078079352955433749123726920266293293428616271765678942756785424963207370117283862858043823385772224973184004500787702196424221645062490003553734524935500122408024264594861336909492164176328241869238834070860720248656510354632666469188175169385473224279842000669899626345393832174794870100368468430266718303531232612642880847880118900732397630892076476551241454445440871854835262109777011458802568677752258706218306017375155613492269605405248178701638156837278614607369893602672838873458395169821757656936315691408943905611515682647252193675935721311875156635891747156633138802253532269925626710625499922734952425952866529212205046140313910153940356100223573278882833444462976921734766133452430635290866055777042448371838183369988974772261197331480774684110009918585924033898159226804227220331190984510099804948529143995921060270721922823429274190409294312569751943145689807248208449872048125211745433416330152197296411523266432985526159187398018771024552196504158963191032853840065612841403039827357652849324640104518870183088023789995829404736187165285503505996085599650023752678198869221931551222288210788165006082106301676908249080250276796395837689847459573491448467266918691589565420370831995934760571353601757491741724034639227276531892199031225390923388500440193204613629941693685223095331340690074636522611979493922658704063083466211482591561055340312710348605458598978324421975107300336399034915722756111328851781034895710303906173015169165265581160661994206045446152061517165201469571101705361178607758486126265444574657405735695382341155882528995652514098559088332648148592311178320849806726579033878829280399143348228022690595192997015366202639483485655626238627351087807381241589176859672467412540242273597678705680560936679043288507057736516276342335124020659629327210893412046592224756713877801735734185502251484879662251953328812240900126586963041466583815717933123165913501028266034417188093408744535017211259862523434545886850205916858973871023697241741536779370957956355668049963237310988017212909755343347255570401710523446669836380816731208258622894130016912560844417650407561962397590202688863206084254902218447199139317403726544961373794558560405357397889446152210681047115157805534425481296427606002733448430904558016138092762364758014059160727740563362550918485419814043035929987435891904962705619213539023211975756868465835418339812934357674342148084569222156269552108175701925845413636863611589899628301695399840105984575623504587539690120024266854203996448019972854978191529106749158994916815312709719083913699526537928719441733627737049520692245969830986251834537233116197522230233453170454827752185925699042066621950008680567798580061995393156473593354502391141349658218725394963218868098124471446269232091487828816938950310454302245646916891694587374516553905130994797476766136064515392683228419088848616449155508237618150193103908961518423195230991939940452872869140904225748757152067012311798624824468964750767983816367438423825571389865051762255101046998291940208206701090437947051962784090010150742151115811536822302721935040235742053756920512864237422148391066263869451604900535298624453661200706671033446709240234979257690870439753229891918161550596475452718603135314438446501872410965437217732386929973545822184180845768733981584693059554862490404172168566636206723798197538898228744592376008890161991876756598564033471093072281492789354924082406043174671809168436563086686846442971359641577410278696456051827217472538616379518377034830132165824270131980831781604190123531035762797005080171461972105670074562831531351591637846258925024691876952287536602506344348862521801416634409291643508934940192492535320760909076626431845876217691123121113332916759853652474435567079312848139727922400777313861589730116929123835276263294592672745976571603986705334853425602006595352432932705550937299951151923558701216698143138877974381683959741162953887102202929659739134229337754133865385509666530763385411496809107636488344029216546290339131253039879636258371145866821955282505483668203032156832736822542792362820640165390195360272426608056230216444995204953070434314311956199753372814400729993424058265075060399870431415424988593339938654893892836109963552403966971957438739244874982247400998705900845831775374063219279270041753739434502269968289306423440715001154627073969707830574019012833950334231547429422491805926229716979394559413675815227711534627314456923084342855597269634297948615427728354559318056131651377350992864891377400525149506655580699887589818560532368410277856837037986877645828155116236913726529430027003595622333979792064838882806708087661897404505722417497890462562248659310962534997646627693842186143194390746135911776557063291108437188152995589876424130671083859767893092862741516949118419814780669998396761934558669630511902160189138016320795573738719101328558781784416687366830701833287042011181643403459062035338957673974294579031477583808543551418728369826929069927427493848910904741843635854758492341747738949425509074759144186332406401417579042141728752392125398150491259353790064051490605466491440785613212410826965257713353499667250593935939727244235580041118055126419122206043466045269482487919562695027821180004730870119800078250972656094097660667978880089926923308127528406493180160368273885117220104045814122468496524824546280492919400012278248892494940780950243103107546660669030624715900146576008982640628821885576279283853663651035209001202751670519014392750873695705148313693744878207795702082854368311701277856697468950188566114156326665540211178985213079801326150936482603732750372671661713328513152534908383410679737828270223650013624652195372348250190312990913385942362891246073302555945948296983211612739568010265872578317237770051246324127175953122975818587502837689101830425759169640711481766635747040105872809973947205492257923657968647848937551273733168873368376330037030985005498916914252289832157860050882542353246873013926332230557537803248783362783097722165113898679913883331509038822038642141920821321654725820602017193307690684738805497989160593202752513773367367808528637816136533904393821557459323309090625408798347631988653807138049201873643709484885660240983787610017393863032410998113131701694815565151456817039940483556837320876301778352385299437004888710709350749584734273438338839800072110384252957594938993079979997400440885372232947936235342361204468468116441835520266920256598134191002668963427666258393174087626728207293657315961912421842514306428177634687103496741025206659493220193554584835709824356231103445566033482095667549196930142616184808378579037713945548775938646048085133266037524008975478254079809414730556510910708467204601711854548595366458640687327910101498942913452319174344297298220569375787234465494048470391313481311109024472133538695834987425788898090459984239019714102865565344165432320065997860403709465992530073227224945621993284122933386303748682076761150478802295645285879839066732847016017248903443120225131727023924626540352896121343958240162584948794749138862906493338554802418399786909907217858202267869300151352944034755762505921807739075320534939525213793285597461380022095610684318807147896535885899219902180833613327008973464163116026444427000534554364920348659472318772772737204831423459534403834822091496336832184642697067462055476625470154382958318134090507065649496424052467300134753905722496557399724263195220695118900161916748640368878390372015805131224118184330110961299692302015359781791244267473614795925128856746028142780438999581173808905790302118618671672820959441251021053494477235602886192238463585882143880524086496305548586864544788368313941780332889957553200608734787081452615196001789309381376755675832203935535923853904331128898391633126609212519122557870971712095409079210663796961770968031430192001242401870499766852875130140542788938017376244841028731967122310305338165980464589654941765116378903739339397965822329617120957968341496445332146370451183299985931180944590904563608726365455979309595064257633113907733271798820999416133018329810805323424428627689412914868772952587059411285964005399995792989450175018356172774426335114525582590211079986355898451164619387559590927017644346301727380411286366358371257784324416344597638564311368493363797258803552447213646773732280661306288755109822116785288407465505345111721825356927575515484956692223317621156848717299939354113358809761806403574295309266779237017096376026393914556672462595216017677471020531108788224483125928705444568732042941765125738442415271648511928332608232907761215734019882276039291235637324647132643742161886926369022775341057231825244522235863786263919247980063889263686365753591005039727956456392650598284535936439323220887746902273093656261807959493704478188506015372110210907179449806616787580239541772085794668760552242191116081360860352748716793117426750350616694742118909790111875740998969820414627439638669046532822848722966550216179165161937231615607096643984514430168253997158831840427717169524730787179004090174436128036919502780590412013032675507503126096574725786288513892542394816436083787455175158638884234617570301679516246971056854470841711041128271818607705300058254535639761780981953844306403441894569437715725030317977819173252828964657341164397014717624971473471858712828250283654448037295744941724226254292759113229968634249643065982531707640084190966402586894503858140004124534852412663562914419233335940423800061447793197738681135941905405523678667108072962297981172822495774532574372760999800037421860558133480818216227418431373571739542902195136889722785934481884731141382896794878046559900200993000358639429806802678780730729341576551414514397656437420622776825493754116845703366000282459253812198529305196434257205743678072481253396925760108028694181108348696227039525865869621251471407596119814787463169024359418579320951054722481997002439682459504521827499758049951115295442413095199841038033920163883539990491923137430255769795174647548789901436191316013904532198044845737092701054755266619021127721216925115412909446037252586261482004637381673718343380739355415727381331498791727255320488949633473707868657950777420760574648207579275152847035889056023609421188027752049762460467281552716856979654970869235374212469851448335212821928851500921289365631464207480892677937122460329084150772530510999782617055117238673842015069288259630546179092059556757576404221184240077198503550355003843265505249248078828495420252536085735259405222024084658873149969432150292724146857432211845961806241263667091976639063169855938572800188098207881089395272087854056075176916606724673392792497192921631242004608085547918188017301676910423003933487101019842792151773815117600971981004108387795982263996659976086387719869750249687177064951771301292290376412301010716423790952072313550194444747741405975260479821276417071647433793291919976160208041950216979569098381308116256251548561179047956907039972797434780758867982789599405312783646016281099807077157099550920295018649940840660575286151356697308184281265544501241867214873523564082138883235459757479078421907327750638183640516383483445767619494670700064335985446792588452413070242270603414150751000045408735972101183744361358550587227022710952260555183528396446188082574599717995603977018874402402770349432331814431332231691154341576431974076619874299478783128577141238957729828447304385897646672727733427509363216944425312171665338690372420051667222953182548083162329662869245967184692869879185617796104029717655017523602542006075817219193178681555918362684283964718649156924371882628007627036607491307221850051225345019932795466816730025221365091714617189857438222326040306006287660691776431483617431473174714602784853417755248981238668259811089684047713437225570438473555775844548230575210067220167624111795161194141992919653880554967258085104630941234390678845254189080592177372515947124231776196394366595422693219124547844553184812681134615956169545229895415819197422886401018182926806549150061905414076199137529209886791919021584101943856518650838409792617987428712209872847140182353534425287280402590896520840075440012533451511762964726720929684695160417760838335729301615584165871832708714649331263545203619109304585678052987023498920483523676126803609099724263077218680957761342904024996514141862620645513977169561172954360446811195678265193161481996534598381493970098717145285595148597637996416615488392943492937908983803544315855917123684907890800290565196893384026585095996189208274983564993525475195894402324371969245937201940470959629074513809853548489575615630792812463775772248196263927402791982321800497811740367981824093313766858897798965121811216817340717522323002019521934055658684657309534856187259342979654413800531796394902649574083940604104187458108790175044643969020630060717647616643148614120044209508589365028982226209912136667717567693127916350080993106064765412283795518344564583013612188851279661332268615083504096226201430317440889762483733342984817950083959138024563058392801482189307694600632001506457838108318278239612875107257014800610673510334327505237172084466447606058013665438151081289827693453071004460123950358406580251719036346785797215262002873110481306242832512555081203710023061321945449602077577818381385603935151816778185154845876936417812549720320338865271951574237130594767711966943580677734378301372040943039633181161166595545984109495798973293620936517062772112051542631982365550303022499600037102587705931608930252401684699429880570365655568503075136715679857814063520076058555188960447323326922474474299156884770717669112916374023463590188775068726648031778372831382310187883658542347636485978028269590408086830286142010529422460431683402207246172375537599938191251623045799327854309178262073429703109670832719142179106525967067397477552923969197007869458374303262938132648657570486343370902458742787941828777915579029221686553921847940919611480512434805670985261075286149280241706188677967695712230047295231502342229938799280725931652496748172417530322260433958135394170087449302434880826323356806225243208348703381586348675385129653996940912340690254214742574431050644867013273420961568715379576752438159599041059305196724873479634740619533850890321294873330223790773859436435798839439862096687875150215981452455608584905663340088001899164322082832452211567875898999907550750156321844910619499210301176374389121405819170032153295524351700924064857986980105646118643944938354951649360392066797773379764720117504450609807697574923892364597447812872085746605317616864416282965475693387059500362178812630856695174613530500538775879032037898426089342592568467144069584466328137083244610458194710888357109912813157718886817318519464174277558095768768572403354411848477145144632621588928275817113250964498071544614408446129061488477146144510173535399113339677447351067639848192851784018297941898917990875606083272805627433722634323503093994231621403169441826279821152642087271534160024308955038263429859898941357679202127620666910015296011268126358580245411224258077690937851686434771412536271070960053950010985572613088706023121347632936946503964372365967591625518004818460767116562260030112973795377413481314981319432465852253780643213366085318473839325860150227748194714446285769723209414456132142613280820609771011952590433647020650653613780883998479432917829004160443924124424283146457331431969124618020564104640205138374482615286009257980544684109238897050578291348257201860202345246144123263319134066245495641365171513959480316924560029704832542725010258401095461575665270727999420667427738394663250777061773635893755430482848265465361459732432909562700987023581019284159522914980360651353812015953689743056445703760896479692110578662160734404792801641720951920887215410952532832198260575678778610161278641846265003251840639692820967034118066587914298271352545651554978094642555096833269445920376995794370836335039557601113463062533170173706520607369703249545911220337839782962610682916882683727773466536742103484677585765338227563118912145783173021719342374042665458995465992216588414863478636493402960561702461424831270265826167665611004262504219557573055683549112433871032773628577892570135048303890915302874843554702017743593892086626825510865547761435706005503167970521527273969002792322895421318362635654151173553007496958389348621309924053408929690487237371156506498023386478559718433182507179731833181920097968703341593520493578817101101009892126507859190478571491524834835078828503614681639770144537133650632402986644937026030505418703968130448005628522156128962762358171438258730785090822810016244373618443536734255259631764588937209045510393910665621717377181813937419740061329084175004033146439302477695827958387198593827483633880741446261299920989381251515813099436072313236326474809972484983148948379622475034716634972392827811641625872595089852261610914695961224723184903000238519802281809923526856548848883645727966246260532340194171071557021838652290274728749356675030754937794134483855841797586089255660332775313890496586434154271938083450911592751431274801238341149587500971147582629302427561698868748935262110303353798446535332226231057271403758327364949692836669984701042349192020436396709367285755072406437831884533313442290987784954797492792146497843264252943338929888057364135019357075269515507406421450083586741448986167619389943381309668252398316942804732858107237215250482415029309994371103838879594854097799641730367788083980841528947718875068297067075384580832656547546062191810519267837833298064918547956137300248133836387383786830535360012237260565103832332937280718031276992161973278621814654837752879590926015544406790455850825035206418140896558137374170354189621465299400056989828557785393575613163203318126200077946487737410856379822634456774470218213175170009102367933522169213054663191313424872667129338559884442771023487875231065991746846282461865124021556952443528404253711899422834109994161635675122494575638833543655363456916628167536002005372947676931722305313289919311879085044657941103835265176200507615131598484714108846375017067930643724784166898872401102028913270764232670479256617929142235553739175634601626419303547960438713740205875950793653107895039832306347926431622907319290016129359195889644716226177108329931867998606562145788595227269252560450242018334002862604552590946293417629472974362745490649665484848700667074712108648814990540146916905822595936892605095361585278098571042545347607128877935654573333639905649329234321036703351786279161927889003437750440987058695721915603824369057211519436205790003693175503729462733787309108109468007759341409683051903833844912932620556897067384674178574177562055200812738468847574521158117532054337710578584252626952065748163598581531409826288903102896602174124308648543171183495874656186710160926073500818289768435045836943165865137311339417272998481296502380013964090133170589447778549799991419119154464414379356102202213564476503049602030187709041463711280032356436841050752978215708826022277031827024229638459132034869288012394218652815681816019625546667816430425729207508122396860629320286430902842723835086693857710058893885270662147946525032023228227626145333548534317830032657489262078711088833366260495851511757156947378171620348387894146411149045792720982119969978505156581687188650860094110109170697565846756533510741152484322583251035802476747921339597039400755851351591385107433302327468433030185466596128073304856505340864894540310242071604089849594602202668711936363525946842801463684040833029865319023629809265555950165788686319211703686624381997135605663296337407088840200492325087573894657397315392542603055755404704361010964695859231756421063455083105493055562707882546862219739179830137805076766132719152035164269292283782580393677582717443179011539037287347804574067722339440594417437181873442148821056192253814758496875340654658965875012415881850559285262958746325037498979284439479906293287812337276195013668726638459797771116856665186762734328385287274587363941452148522276214954691369007591749975927367980605267493525395681798392229949929748489743393071153102526620612787727723074592909239481053317707482476993452844767625940573456114371970417891289163758927562106735052215004344560858662419829614211443065699367352319670765848460616132813740507958818104808857830663046613883588382314915000705771295858137687747979372072263732871377292171047756893112540013200658399708823708409931495498048206255128030522563586827569383415032776779844090560242191059590214401180266685944988490505476709349477603264978376417689347917043901781229629676239299143857751154244567451310164285190787473780304852527679617255096266924492435812184064145870599217829479714427655151775254413456351308491835590226393030581046774824865168739954505011189485374779155894689777357150268339866434361142720610355382501654550193751965137410475903355410885807392488123064121633261914293905634805819325039312958059691181656356060914619552768565724844929777673884248315501587051657162239999477114947408556483768794129039108910504266234892380350964999809810862518133542971038227616518500708059095469888901026707359121321449348006194004326998946088112456311313054477109929833431445700343677092649351545448981337008254623343709864910777585930630668240694966844455624303196170448262443059835392885535846483649688022348423953463116691451745723535761733149687998579816992485930628721136216926975087878146831023895200023635445043732566362464943586780156810315680956702148744313903130722853544551342568554187698011205401077424778946092430492215565106403368747532453626868081557368120657421206642926602630787734748714678710674076659812002776340241801802960589244145567735391635716016304382206832588271712975468270802250692277647465866075811660862397578807781538016833316682789910977779748891814697929699867979966965839631942302326285183881999785270454570722154874503911202101920967534737044444904417738960252271224607502068678031806803820277390872754172032055256838132489130318515922425630156751797035948282255777910675680485856579296214631108991150639889566234153794369799780917970050918833268740398267148339047054365160509573704541377102006933462198469348811295523255476371839060109053036185959204962791886902015930466076861703420691901592795409565194973265607687777948140880739468177403164924812708532723018985794454960574076468242716017807596053452709309965091263066749728326983173016122723861367064138180770288811423818424573579102922910948921084687429087336247631942956970378757699629554108063179487204333129080042990430436056114854287629528744064029262089602108538312487451957571498608860091054905165810208155317379177287584996632115355172923853780620571180743277712541733318607871949067234673376721116440520419504422245805152856167704756017977519754536072459065957335036743705892246163500428123856371076346045392108659813625103860169715540199329306487861573879197061825856708630488184433741772478752259029005043873418092189349326842774775289789230051369214366042449817557745660865013966393919455346213987765752553841581092158714535954842417862377527648054825480077671835613070924608724336876073053166828445449121913546444053671907591535291304405870614221888979640705244485047744716450738827981973400068762457130995989963674961521539507973808899607796073462616981154851331142002091898166540250366771006340562961043081955970939726838562749037364684779489702674489238702825563142541782652839477422215699367704178248404809079931474933061851269013076688685570817220739834053176473241121871974819982067482911588104436645952333243642390704862972316090787020565939380361947154497217485109186691829875972887428269900632650239313401010408343269372345622866019351673613779098145301165361162128205779246267073733941678816020061640786502221704118278259981189265434086429601012951789677987034677208840902015421699578468163543563579760093535816785541669936204551730739204998788243521414247712885070113802670416768032558229630459471951311674471574749584659614671778001369838187552622089150638925847906009017862224454489444248943735365266942366913372518164058544070518125571364923375183888633252404338806144856183814192288705956501602216613551834274792784291071231475256701817254825213762869204363809771072728102856142640761229502699809291013518134399585827880061161093196767770221180862862881107526868434124246576565041440552306982947460804652330856190357500410615651851418661848488615495436417994271523601998856627368821665684222486766057833415441243611191714154740475159402947281744953237644241288013185391020414822457313967087009617358572514126581215601331352215152920293807465808569624959393120314553135803484232316923182694628205511291651286439333641120705527398419775015688713079401681355084046035537015088617578936071692208802455379899652319323922301731531778525605580843775290442617781180953515266440849568714095766074399840388925129107170679378995524400660553297107035114051861625286572549868890596227734831115945592948054155107739704100241935506993818425065930022545569662434025306379895680683157605593936351813640551219390805788257842499790167332565616619487203189559440778412880543134272094525470534602465863019352779190662119385965334810324371750962948479500006839243497024121210624482642644220464913618052295257896252736181327730394311550097986704999817961844193727892812502304994997683099420094773174547777496888766267439430927234998688327127915842787940934989570659483316037713903898011409458413573907720603013303106576611575052445137399611973405052625095710976409430592619159787161760251451011975934317253441159446481728842031756388133699924861621016020224611241276735629335499591103447800154272957612645304584816150053068615020884060521191772388405902785497797116388497774004066758146697366397927997666286805482297068814645637328205845746204623551353919473437250746511151516071228729669102157121994009473282524396255195500335626157214734986617255994744997661396039612322983931420896296154285108071304512105240429268874424935052184567098734779795705369862389790376077840549410182849727175144193990607651714724238100847553182572734419502994619420524491819088451804976195857791964513616714580660289098693375463024605289737725963875934483140554934754848710226835528988303550163750235008251036680498320895004389503023948243803873827907429859809333829744226623107819761968869014306392916798300012000198287308738387591370103324724764884514509430309438768093477063643016676631683758624646903701278899668543622299051527117609936718976720112533439783416397290183970555786939274365606538257465775920490003152688178923740687474969118131456814641635139199056745676689746529003389912033231027585353540104127475567992317610390827472494806563342231484347586669326567179748372715876410168847989558575461219682480023061146054929978645868957195198614820425047137001789574403024006680843349262184274243694296816677751206144562001625014455236005792912729397717882385020745447128439823753626424852374550215229084276563057919396644291332076185504372607518449023454500907615387917199140106109676146348021879762693707727659516141977781888954323696590475326251540230338326950431082029571498742785830862459422622856824163230418214290748800384579272800324397438877043854082731870071315766609407313718326512991921252048601641574066990771160572609823885169319925537524842199551553052678722614479141755966813088596753847038477504679267068489448035519212371023690538437375249243926848377600061244189839553799281898625605602936564468515087005316190751431626472140112822545376915083146439178504616008272901502322637490309480841443481683053205580230282340336790061341746279827040281515770440666700877794696522842915492538715595794485865629803295856221112683365923430912004443120755866245693385620842244688113288786532011549321317552122034574565148561625759000868090215865313047894978643573851671812501252657536146920477874131433995010295150866468607605048484793296446151159917788460184225614156790507833824512580899413195600402654348642194574655719038519851036462436748315972445358229306429296531327158866212849682814677626491724461268091595474857347221060354790137148217954362316230358383782015721762450016447282217067337758542618174107943691014940895671645909936566253532633049239898152662568414060315509105038939747923481423849082652785290103009711379413728828385554085215517411648782384188117694214745519482548436666297028919431037808946102168926666360361527640320314046452256932781719161845890033458115360255443537443720521726073805651878444797462056029191000300868155999581339734359488688821927744455414767632089159030014106192548301777652072997090094634366732564831798195404333655020676449626001383194757110775497454221183913343685052783972511479991211522057417142332730983321230553608933877581934107327952295443805618197847951693527334753409700581393387095374738682159499491649999227238766159929336397256412332456171060875999824654301265418865795891891680584240882928469277847328638796967401681083822979973627482481370030119519813012129683644892221247478520411034276436991382724140807680843048695339120280452068069037031338127970884032170308425320223579311008008701131171033768702250193293225115429568661259229446685927451984526602680727849796556178015313788560028011895986734361482915505361385306405205899257596809552180438098639471982027088689734965910739695752872095093873956643346339510086465796496993290875301134006104973662201812431430190206916549136414834147480743864885676342485246631245985960466966436282440165920046835343301197052692056182874000605339692721729900216044324946206741920123495506649453807411031837040272711593358215517268382677491438811160497418180808756135896950731849118871999971768573153740934040953951242351628405011507503929244731886213486248949291071584400085183937375111906037156505965165696099728459541344379921437243913734826663737993320533608443936419891689954843107453913777272833725003100607147104497985814017611112654636360270631420103734695829286869427545738993905478039831971550604370043152464103239112502877839288315820387799312253605882697718669151381272204421091599078752530465795023363928029108228393778734535039367950952884816668135920573389435241238637120908723435515063908723866830764754756092863399681656952847835213808519998447527683480966660483783756847681533322862058744984272748624313768012491608692282829115170731209321592872743161675507314309639764013302796105462042795325308496008530809631180584975609459408128983184249587535152615570622535545953597445401136609157349894368073344218858162944851715696045042597910815823210625898587203719168062043748371353055913855446353281605981938164689392807443091539699399504312901132522568868941001242192846066199641819708712842168599876484213179581473246640166918915755177616564821157032048941753240850711589071308104318322699913210281542669911022475227796809221261637895917011471193084875019156439411922653010131652141642579333376479854355360636042128597530880647522158906981797129181836134190872289299999288001111224039440649868919828849841164206819975061940941943947054162692295495111327343450766671080241790459162415449704990669988934005160289740287387777935153946558185325299330268955651366772527657392031985101907784822611885841592997116826128099493874154731010200131733657658527826442917030273288362947804788681337748461580038866070963451419564230206557570658266374831182051704724601378536364111795825320410015577824970526969230922476710711488192681653441385589926599592633652032197733881559444295174650945148389054354419655084713279465999947044490861946466030679518027112118570578682528153311382105018422581539527772707248398808509574724179041910101827886668638887289898712105147442130718701681521502393806340384509593573853925375534937761719361513882367689119862275163235293347845072730963041481107623362706400919302398894052162837363535376597427889868286512925654017567328080890779727391883578999768600400609979871700880147056143903165256345222595505611537251744280927551103555037618762409675213415283393950653334311751631252705344675182140593954220615951323957536045361333828372553048371868714448176429704751006530469776749183212866059434557300568455230268782298093938605356302168793931902141152547529154906342333626819053368735499525917741186568362267613689348392003779119766892241102683527577779269290178979213525986248217194012932171960101673273899811740353567786094025192631031134209436882782582994625198211524254319918388638057612221072424841593484425400305269403530975671721291953625657494546819916494788819027501186825471383276935503516710680719303063291720333005378241200391243552891965110412260286419648783350569877690633979100761627717042018106085040350482468740611338859661461186413482620626680943729907274482226764148302083287571683430099431200846777997215195455818837700123339906816669398046629603405639162054968726675581363226588251287494980774334004230784553380608569259446190522968136511869031908825072681855161197748054059360174771931228854983650677194231248735020472259969456434343896913908433490917025070636272671485977830191185817536810449626864363066375406907952533779661440096314941513123018474943939073284016432705018339498885170107627131996376977712851959689691585318620257844735122239398459507350332358052528230575634471453381414652657922955925688257394822966653810723918722280205956469877634938010304396517739557113210286679692725174926621878589831059638808092720234026305256159456541423444626660362194739356211077119756138826052463839966507824647734348320945383969857428112878541006030035763252137992913190066186780085573809214224417738934763461662311611745287829794509175613099222396762400102273643580344645688049617050080410776054181747226250133140148391381296826990715340573087014055203322116725999445614013934341082414847532223198851375878422650893499442677908995345824866123322992038517428229953455833768020539934705748582689144839128940293188889555324704618293425240261790770835489889262213655371517709978963624502448669946683836728818706088430696774689379874747730523341395376164634581688075950022586617377083648016497224911936384057906605081815754696090403244661551242942243730490221481005481539673069395889940172230532170424511830761579484693936182619684237640639786844415920850012982507281345233028681383368360778130979005741163123251507543533556643766442579083421591347821176952548194341459893962019801138956100131886933132428940842957942774019198703018482576771988895374777906909400270449216324404933532342132075312356379131671287552786909428959316945870139277123313133278083114900508533551495949362881619240842194967434785590448836119254248659267101701350315310923149583560486318480717868599713027997443603234305578375146317621630306966212942691441967811773938198885626832293648956637716222331131825609050434422205108740976211513106201266908140850737946597941451071320910927002297992661555623922364375579292511232619966558063291928607628090345606704579696117220292274076220782372851930744568707924553176356606001206490048910823380817454115915057827823637821179153128559242060742626200984023250562547661867861245967176700025094548206603511935442279049263794340382063526619176513730658257883944360612495425286750735670561175501794233797215190186863121238909270893393016627858444058193003143122671175059745701408229849375609166403909195875918752636775255163715025157636429294470249764491964596222195930859519533422883190561213624327324575420984194704760001566090752200964255694164552752100702707947135670349777322619022112384008934411647614558830932144674096100541816699066949165579139660471447620201118024950408623709748092077017440244849900984454650479978689544868244255443091456615603683647023869385041542609491073332898590006937633000272431538082261213233136011311560804979070226540893108922253611611200400444200409021833261624905357390554996047161346892176569094855802421127053380999406262184789261633867563113104265893221602740913419487998421949620973235431742003244933006390255362807370444965481807207038273721901950924611371661301206026528639024248729079135597819523175169083707599718652301084158486004102494474345220650971386225045657829466810632619906266880505262244100792757139241067675627373699000171366291138536213078735196096225373104537380931530523234864686346656201950153428470096472052988544366472689141100209078473681757185752132076186129228065556621550047460669408110265061748300587782638894864698814512706769037705980762448807818261753339232124922919153166847895161516661973367889716234019720336609275383831611703336839933989749888436710071242707502697005991871714506535772144094253255964173447997772449673094412959456083629338007553430069423628685213776601622479742040903477557098665427502749843349350609574375131975655822016542797787634264709099574288601477647435318037427528497045907055839575236230994867618412125932635785228943164540413375509292475055577584090474617044725646916611280159558517279975649336127708848963830811638726282215839700716502008009182956705228923994187739239231160577177899703014622327260385713761478289359971345899545895566954204042177086342922898699176061403807237935879083263244261069329931654570159257605120768984028231599076203128000513711522126069320247067390492464947399531150082036054793954290896528491706726949745346631250531105946246010737821365141296542854671295108391076434948299963341728059581410728563977008914361453460310572756704023025816364600146209277664246868260774620083299039088945591177216215677997228124342138607727748581070960804616061486367061957005104210492854482740679505890512234775714099659834113063745916331700201620706781312630226937760933953335315105459814857440329632940475138848593477984849803966270410123029878428338712814110957210224526434598541512925456471492635109962331385439853698237696069791788141392067162421577236134235406410561797524796163888614367809442619890562153869360431867749615877958936441740706941047014175754450465009106196082108109546213670617319549180988319121075818385466309254484474525438757559389145775922560929371836831888737843341135301695725128713191987863219524084363837360443774164070393368766214719576710007415834075521319930532589152372236939438982124037312560697824267850095096320925856124183187513519738549191186863576914525296667741797728858636006627271710597363644516511384907569408509859787061414268318938686756506502672391752371124147108703655226685145232660904418151921486039619325848335327968805918088881963197604537289978970583381191507819789134052041031289730979029021991814411837952093076063185287399490033319036556873671001732781651876318233988786055376441639894194755770081979574203078133135744129899909217186809116121555259883073185006936816759564639376365664172694417099984832218455203769308588931950868453896853683972112962987093291036538443703391502920310149668793669403983534607019040356413594070931441994454175009237198449858861116207865472192127037091096095216058765202724958753652773682125921717269731146933299678958360974248194069493287628707792640857374103739678118070960641105183130563856935956776962158460191424793078882579366955462400541684253753651001167975633886850018654131417839947855328728313336312725178871987962426419362697548720439236346233497148294475129193156371928641113029868407930041457206609485716010916758561765823773435575248979160067833222726203866335152969187185188600003725201166671068178918446509719201724030627025045856610462343463668281253156672157938197453991377396433840637064787798653955102834677972137855223125080505015518908695011716561875395675178920910701504608454751213070587672675865116898643038381688657616093592313193979474402690458331051512763374881720383642819645860123319948526910959235616603109313767651516309614567221101431574140828991733794362305417771038462646636739020758980642431536592986542145247434235319755828590980664878505460893345512215286285261960912679770234907228949599235343646823710743333077162243166821187781283277812330148584891495725493613161842297404372954023796267841157433872625072468892461017911046991279733250606607844247948364163581676914186766751197083030476826186977585174841970690094261063673480240959336443435554170496975224440635591137700277886125913535199354003349139356156960561836565692092638761696424240298593349020242607593674539953174043579571715988839117860976215830189239330020033047745733574357385401354688681208994490947395243096341921790132122783789739263782519701892025539938206371219617068158360582338241061821044925952767813892227042150552857271066255156735987884001176574293699236952647355334766095642093355498395579406030626425111310875337466133383909983746457600809645381917447949859453090972162326876188824510626563882092220554331259251634798556856265608653019134059334024879574102963950451396911157579957026766155462707866778885562579482070985633823701699689155523683810008583085458717697623177648949951029337994788657430969833640547641796487976763608694679164310006475046035621183974332540981103741477270054164771126373563793260539258453091568870538886176604859705542853129109472472002872559459106411923965003440661850227462503166450966766002299576728586736272838154723623862722594364067886190105799253669833295841267258887019708634992197426123559474274105096169770909673588833702421841461279148339408056832324786892259576601636576573478803271880105274834199879626066046386574704521924445542407323930588137719181474030694036761356334368341259428022081614281318161628652799853656876137686939756910975166262629437042820614599302399027763947880797091053624764995007793288088267168385678246847367068586505453161291778513399125043904554299738859049800150264879369736468551348542444480608305243317955910264010555123303236970303229932960682839573824469069211535649835913309258660227345266631105000512144091879091747295059361871143379998295206593342047183282699148038187809759003239949478939064869697489555457970985824839835421383341208963762970454060943487836162294083571778915541537185881697938557006193907551834644322691404479381090310088361845209768828578606007268566305609141010122171952554580359081541677099001220417895245590698764051752853195338139685335316385700075282791437360440075526354844864582983128054020129691526910618077487799697229351432684207589308246938119863718054414864834984718524355531822948381997690089552526982737832328377678437655702164854227131585433392155022713931538053986246889118344068239722895992213037617740776392145319528318731054916800070619845377251302377404815627724917092651396626856798101865538149950315467321127918748125690627532865531265479372166290961143827205758006746675803643631775357287755885659448920315670977425443130638326460264515295284246782225401543181139580309849264852294945091529752600952037073651090794415579464945950266963441540819253000978464150396104578622806051372581547954914726373158660267516965019727228812652087065081042650161334078071248447463984180555681917534532768524460068497664142566219895281035402600561427852208041050778804366736702846841082098313481483039614404890496695016849209579072965606097336917618424365412311827388119062856549581227780123206056099997383159137451240454894611430642380817722599833870272833209263493685659828811311668864384230871169827821824088144140571924103339423328502120956370640744154409653985958270468125189375783343300629236053200014742789459715348300443161411614098488346427053803050568629911312462416280907488803051845056398556919749859509509027123728559326118394291441303505240732588740354305734998220673317582860854082422917526651638182842220305926178681544429584502906230282075614674740102273635125960018416179736222443780075580276599360179052897331621828496446295241481408897540803087829785314050498531322276266786781859302937997042194334172750548626658041850776907650260435691673430344641919529585703769420517053087653866918089761158002073781009976472066984862998990419707810027876374182580009090231132935157846676084253573494710833248954758517117654102671265248792687072033766643076433869585386547464669158912230805301452280856592278303196611621153500940945726945795214098150587059143158920716305848547364535430447982995968791585552308953416753473662388470520285435422793661908486624682636654109842043609719759331099284842582468894154247112347647885291441800919346070701037902682321777870881725322595618418898051220907996280844295767820801726848061970700704144742626808990897693790962062679263645227249328088589797013483309674318342274295065134956404754943375129448099517030548380765359909431598507678383557388374121211176526598455285860590357962283521275045882303109188435333572936255759237789090938971726084497014581634304326311320692502941874445510140594345479461911107506941692628878232972948059361213939090482261294784990915061395680501549986017587997980487716496446612700301279088978936839678244027297350677676665781564533577089701756923601489257314987434254357422214696965880813221165700245909132812628108489723139630856668773074446479219314629702907563463962408246369590974846147015671179539455013964251858582415193500455610113539956332102565084556794275319862879424835301811386168585136024404366772222605956892840376298830468365709182987568743992532347386232902921319267153444600054894430640054187213120685367372973536593818439270794854300039426801470952827944915513943167131913171378770466158621118524457570108235232378905999100954592579589524047497419108039246728195265327741791652574670506398129646370066455513990559521450274458297216851625116191265400659197918959555819521152488929284395018803078552436744112006146788281293590567920627230430267035075194463621434616531597813547046586242716970551315464148514410098813186995940371848454426889198991422223718847941919651260371282535957350335241442500646875113496184831864598954106180990423882691276383934021663391592755153343662320834438524854125402118442930284260603777152787427758504919137863845314151320094960932443557335839473088232263659652018464199803760260283709095052483321953033529755774164275991151603898123475550020656303894130290590524881436641608538020533584534796195558124407552366530888353754584031173516283729374582310905573989396669418882911479822834592100031629760540744903085391740152176450436683789399699348443650990535598369657706867894648125414468939897774654430110506518152510514713400967301634814468495877940511861079009162745402273750645616794021922050547087406802868550241655069276441141994796174059274551357496140477768167776291310798843885691958637443340980313394198777268354119073309417649980419489105050693590032093958868809058980406667936941160657444444441250210079762676704070736182847164306613502769642269234074358284627280630829905131276783310259811541726000913638755345988903005361453255346629497151761773184832187423159932173810106374604007217270507601810493423351943364217235485345456797250687991248871614354088655446462422312566545606253662649285841206549915582364180546900820335657221214992148856802693697842518352696195529626207768040934207233422253708860513481206211931677141666168145218778808441757144058135751767401278080047422138534469154423375415543547489994779335340705234805359826576788355598024316049441998971540338175624648090896852151060336560589063739551740346753079004950908035500455559883681188019606619712482429904185663771892954535608846201401031599096495882355846922573815118299190951649877671285664947669600841837021100089328994300376259433548460773701934745305334272115689435505005390785417260687810670523396018547747488106397098258332881684438324073085726446493248426714359292891329993750511945909600056097488510629206478584086148264083921775867989827895293009946364859258754444646325866479365912619534309876230163869708666157531584945924567793201472238965849919403117586467987024479468062163225859527385174898347485202630164761813553180769715584206692600296377854182151344812445104396318977852570907254765101634285936943631100392128714426610230744538103433465699662214195139325779601144700470558709110943075575655762352491649419652866285952629216651813099951018226044759223165722125624539833875491078292508202635119763758238907204045328340633344222717853645367082514350533060604985882146694694876423488084256646144368140709108941419239854710345893829892022847180233238801945626128019231715656679192105219973505508451725580147279689100219569131176360818824761639741972040173392129220205791086253372896014665077911243932230978237436237693303216350645991188121884520491043375100277986016130410182133258885395534454256081032243578013093524300945470279304728095026328602352349808045977552373005930720957483364188888635094314900192319059307915095871570913626655088185015716438015185378830415233043646137082803513261046010733238714458378678121559875406679025896233290057062119296866426420921777396321327561682260113977982079700342495441721968271760478885956012271937209425245513571389076679027110043985721274541879979866780604708228792039403792781889668720112136925120261742132231497461493808511245384658883036377214473756507852482840828341180803460038610515973259253088418600047262225307094612557988929789706652977427338810267975787958850615925877522523542561050047032016808307052314889037462467162663266296224457855981629965893051378927669206904602964872351877016820706726517989177785132320223807198762646556475163887339553055764763027872431960350203358653342728240129662950905947274259686088802026982379392186034551630258230432242492651881686234429445478434960322507807075811253219758722330464645525444936251795780564919956430104849362189489957225827834490600097943353391218133935610070030369053590042263298581265392396344569010126364804864981410961526174096300958658034455598585957566995748955711834489151031529497088784572373479017234537801760781759238465922846769234126512580687700668170685253397939580931921893979718076712063756824110424505813716715486884189863496630280064355156694274802901252836086085432147706345826216553059857475148452132088580313088583460137641489824242091054574325873086873133025449951078635087594195792215637304591610475194875584074207982912361644681213800350977519207519945320710132432689676337379041967790761996131599658213161367683372561850696745813756092340100657133439408094887355176310342429332796848667267014722375531993829198974953689601075423976265867997986474762824143795004632110820718658044458862131832497800812803961767302101534918379052265445934220053485569252080107323860475808025586162289407617679157114916940619445665717498357275106610406577612108871543578327830611864413276606606072329371175348424097336098870477600869977621565194127728816875668844753445513342755739530110776552157493976201776241104438425093208167754306474110422988720442984701796328075606841159944118307009198942861521418745630261123023932947123308641635210446750052667852786316302665387343118245603400808432382748579423757791261723723568916112261303671560688972344611514345681713302458448535761253526152711014446802768711310635907714208519175857043827178133855746467230357034731033960905200905643567592415080105601891444434118584255416126156628900364719143991517278082618292394341914048338701641641903942173529810226171141405579761078407070961285813047390947035432202129115556049564595509235790130542466231057913565035250749772027485228623344912445182478367869530252017373086440258617774450625643046793211987905066753108460146442144665053775294989429387591468692058876355996504456606578914703920908565054625362142801693265577760726241933481898298359897364142114741056594895615642552488814346932057828219070546711962063490295611503544444690391409626275416908078634299860891252144783527337166121661759930175391981353099905547923010906933682083138757640116028321633247535835168135991105707762825142895690326442951164654322504310722403438274479807264616198741813255519356705805723107716790993418081946738328010633324105394637636742525679491756008618249823688473655314553641461233377250530698975616063548684827154082255315322885603967727400335065283934687167648244136979112830459762331249024840463071184667624510053399292896834261571150822296491842992173087605874180162403065369568978396268765173391553179606572671423049835364805170487549327786948244329075475085243010954824438472026925792212738359356959304164576381850201696422377064114723390020106348607242409308831424763766098625485322572704707859227823624688148771938320791676728502084542368456561593762841613765973448896733589658136530603092789145154928298174189932112631812948473967986913543458780145538722779185095708264601699814469231520630469132078650020901547492864820966081208284388300457326502186193923045193724554519443013424165457984413785152723977290642258716706147637374546835765741166257827653536263810413209995013639533491764581184146468678179754607148234994002436295152190067440354100799111576325831142360224251961932063331963458784132154589977082580833129686684297433083172800050255597557147869532052572752989906465333369047900326685850250361939762218323035399157635652708091980321355861390525280967157058367399537233394346884082798413352081156880311975573181453204739950165975127224971311657977660565793382825767366797874573450406185735939636564453162811166127767432245330909344880164272196882757194629949874282518955166767232161533447427047298205932610356762827381343240989922625088113780984734069405416508790590303793991387983046807460459708749138429879560074675433478561345470512619667896253916476322686343317588667346083505244099257181433303469125923293910419365275539079338440954593095058084723277386519385370749050775895467817745398446976160277367046693596262914858648274593242176857308954145540616455807451660245296083727494555390983648904041760399863602278737947201013738816865973256775540454406728193196705592047834600645107780719341911680816519179166976866869013107297478150269405014891789600212931671706754896417819989079010523602775560051694675596415326598058458904129410870649402154705701548568093144243427587794464956232080180426862105053725161789502710821863669891596180619987837020102400768877926734795895578501533874062949654327919508257107482789385891966318322292027950998188146826214877901141363258449467291195919326218342698915980828859160752804447491860873391396371499586768324283561541070439089330288076028466914188487420521454494413017053654082022865039107766310831747004632034332045975874705710884717172385911137944433806597675276986144937272966509911580260917827461057994180732945094332533216172379060498663878489033206829658087105164122430470473913717672693305812426699658695189650530811344845200171056928658724079271327734554763899603480362962881114117764333734894362390886284328751627352627228654013193914648643725452837559537068597180746502075532938605661367338046213865365038434214072120054878692900539034079621140573690078059271526441861035169116697794721868012678085180696729599260854931832222140658639401552690975369464998102189162224371840837486534123055485491813363649934892445179474222783966413709692073329037096438918225988468327855189384005671764506214352197192802952553240338708552287418147340535803339584364311551505319174349822377225673317482632176203837032299934621054713996225055350056495608090397861370913710447575314877896137033162274745910669192892591326031547787173964132043224494828641898798406014427924278738332107588377320141684578125091024434184232196100568148950751875228739174593126172288204479557079064104653175705225045482659557685297673112982427953714979947805356114635025480195768188272175620553916630380510086114943150843890202087335397517429015452638149281609335194045788899556830654894954108617013512593750353538917314025888702073434921956310123184788288370578843235632285490828408348375424228774439677428421463217255719354421866743685427766007824515650094392987345008086689583255722043682970626156156035905221925129487897851496323928639283575019150949847916648953026966414235142358335036812807129017680203730277201726327509542645423455049286918082844514568934497054550499090010204876544537088904551501422435775165919465385275820180445610487113616873301841345565620391351062635212765149296942524755080119572115311827066650025690491622581914465577475051373835894169539630378855894521658234733351205390549424926600765600275530973614668502227087075556775258548029485458672570279045612347493295355091870038277272955119150691426925235338387025412043950249381094729272202026777174589505543865459306828040937656205277941339075915519534529514134872676921129812385438001072417195372196508681831576388406847658306745395355658705335305902889712386037762229211766506299687679809623391736857944514445325082184346697962547354915551204824063799579367522577180637057650068557504630314783591776572457485230103568829499868148895231909744987235337287483499270814136202810566199839777327246348971713906252883997986618545291289570080608908209198879835574714663862122135987996995880637008786072407710420132921439595415386915455146380614806971940482132755291927778839212039243483617112651955722726649072996456820531918215780952737944155022604879981004572589884770386000272959879199548926004591522322361559648577653465175744998352789164040008965211840514226051351269884986972615799053475293528966854464073534004221598217792580387733130683116558829641522790838523167127738303385362626817090075481193089911472228682284903200940072580674831073033373793213500527775844440567061590089510062014814590054000926298396267363777478029044466660481412148094661328323227884662610752988917375520552097097454837804213004953725700101800665048930373885290565255475556534259244483961413781217754431285730855425711182451594489022253948925667159369724005443655072586370168874922825425999476295673321537646231443987606665485052304678534257323814584462901428868547501948890272622260462727533587359443422549904140398763448996741607259406698023272340894606470763408548129021378704985666205473733588520425772564054510150909292672644898367743169732778960889248723114262946374458645643641678640973390816665100187651917296262370831814470002211196209239857106399490140160404723364489574287918077383329562934582941800440153160911245413638288692774939976284575829363646686445644137234855322804052316176931405838753259783194899243172766828501698913004443044960479755559319490284794150654261238125871704863901392939294623966008507689287599948341361945243063014704824504418544670997633049542942547007468414902191864380237753927629586539029439747377422397602594545108202245311249903132112371928450472818649765878113545092386151110302368257044057331830061808931293629477171898521714933223236475738985614793775968554808323061564554016607994700568168900329695052775547236927905711733085945660037583239021711415688906510076292142585417701954612425096216035252722283254569922386806527153690062312637286378707497042977238265696871809458438399115502458274765562644580535664595367702752328804361749994473034783553758983995621717819576801471729304314833397769462511411769953883247620261139095457890168274654178861007112041806787706623209628526838760994076945637491012904978851628819436122615557650060687582846859793507788536223442510280766551521083772827669914187305393278323643030215973196724667316633597853157390010449011599423086637533960602823867790169201529285168457737919408399525655707848564621314205367119061526217221279632963386024056984057780622942927314844668166954569459511905119940554113049857213350321623455361416038354530271708731023368095238843690145382473268560826928641637017243874031588456648553337692416342822247605661247394649510072808002256018776011942527480507989901156977866678782265905177087177282909606565365581294903622539358740730586212782131543835288214290283253876365570944257876819438558093402039708995442141923978926825385810703704448672077384378972531214504874240308527455814604177408850457973124906844537017625387364319228631251055610334396845773126048824141276037092421325094506223207824961666595837189980360282725419805984843348357267503543016577669170756010147084936312813682548578555376380201804657838308654624699228079329409074850810777332721846743875938945542523712758920214800400993909663936437704717730322364373994052447210102673347571927386695291637470690957203152245173052703869806895180022447683302800070686589188996100464323765147176154804913702544780215703429136751453867139603071313803145051938273879594476875929409036563878617195044611490203155251829216097019535106465486993728022965595496569171718576196660684873644183949858249096627483643350614225519616430552344103699024007721294176931189333843332436158820041678263681535031384839665567784951970350623327587182148815593108318345338862732570787860339851903939484461766115405181137344434949989537623536079607943879234858968811885151070951675154209604600502882409706792879516136127509859048200172961350423149971821709725767796992229472808795089352244931620231554403803872372520756340434758823495995284733186151817052448252891513331724145752053951225242642805338423057544860367401248402804339292707472078216058372143625069008470318517648466315739292818930977010081967835669352383786770769482401729722480316766234921199050312614786046208076622014146341595776256070790700362595029655905404049646938900948397810797510070484660474294480342223225276293453812069408159103327971498239775178576647554686128037276219288715763437104762396399118941960951520863795381710471583677785782134133624153426683761021999697802535817424987647133565657746528791572246736610553901689353127907056490286847022414792658960762469239357944846309788045062258516431567373989512682488204439400064222172660511771932072417657884226733199162441556954227983783315900419545901079876410200799022532575621313730649480503572697842210994038303687546898178537224567767362324702456238367120044411207145379769137952909611927581621537387473606304714888172140213588537286747699060678487692935295249189853732630627786677061700326446341617070054823610316698840486010473190398092373537398182342073232661892694141494326354798997230696906267674945690235804605641630320169028444004029701483140213365574676542942566636877393316662449809653179345030830561102781045147235542678391486653785165260996729293663612072630108624262484076217773055552928938022669927544165844469117519324426694506451087583140351034167501470842599617578902930233741622761867238290179969275490787849247343367188325213452992982879793457085914958799037346767144043500220812439200326070968685209761804807260300445062279159879955058458285415771270607535614629326172012755423862832707270752885504907192637915418691630625113883475104560281023004187170883281720332980930334635075902992210502735956249274757474977466619789185790516446813771468106999868776467619573176453519522411319308155938886193760031115558889720837320329930528542963430328412696340685790943827215779703574034898058528614918839607599078472051158910973685460623592699566761077890007567213598849009255843261162182069782231017049167863100418627943013447760486394071411655449354855211180148090429580948402367742565873817718770638944705931635004503096989777852646136821906628279890488465342529152937247130979059007065591044979185821834052957089085764960359487190375990386116234800496743614423672171201034667068329994585929407616958052530468290202850364404387973800254412261401889035478016824324341982128270678781441254156509135456868917995865129474881751867502188271990678101358956143449101531651770059871108194920297307482848135350449571493087016749617913928674810867106625438022915826310297678877599472117949132944577696374453132072283977103317076956685243556065205704536068785580140985232050591073446042833581727015750958007124488084497768040763438523545279737757406195121397660634181608592297239861383414300565283364345784707614942215967126764012646227697678075418124948534137322266127886903447469075128754586722536247837494352459063048498281636370275116561917835351102040315964282995672985690425547862093601049460027418907169613491620183207353377311123839792352434744086911570421735038120475849215836447816868233766879818592633418085986662688064661745614880423441939618086004460866348948902358461645473275943129075060862299056332891349833267364962168389307140520784869305244652869919860594858046445575219674970084970940547443287756387266955954553669824588009784514251046564111479471049842710483828123009410780629024128322580883707207361559513517951983141442732654682747818382099197723860053449809095977007427358222619836100200219908820662590522705689391341684777669826395349519107239383461940626500339985847059992822389695777557683771585482373787136007595440228528898438865255969771540296231205084047855670186285352573496736246661556015225853408887128792538194469080505182644722434325598319955983153684058543788431900053951761276865260216516470762988505671918594013246817554743943913492784633247583274142818122645004482846482360609215698521997517955461220676856879541495704457175713057014899698852993484121038521056779189248145536104536832916231119047973008553265838544935558961098787207264801386450845523531930721441199579800565742316679962034190209478361537124575134052457086028266024379101559284701146946779617439079909257397088102019888941704803713968618336178699778774865247649937098044881760837606384829785808529623003199382064994397477179951813436747977394805465324141236449902798587249829487920554879735637127997741825764576741350424009911833627901790169934289433853747130414324493422415054909404780613856209848491654352764804292365842772677618775410606098437985670949126080089540503324387198665851985893893757029583912843631318637118797064089937348735218451234175944963583487131226748585838345861550000358083405090860353480186551553718639179781987122782793548616197270188278386100378860114198707646956986714526885881814525328202898486079754534112403177601442723584311408851485637144904078442812263503411559242958361998954135473935576644770287024315330746403728375152541569393925660854407079808625899178007411199175745642745507208435247108239467953429893376218152698600655691388840722081822738127180145604954738002430533728732540777259867262285428773266041318585423409345563027094411047198966718070104952464266827123862679442469489094432971763678064441398756606525291688774134932586837813595159998058835569174322128911480117006904919585692026530343401613425238629597256660435560820284746271033115850628661439441662056873989592007289358691855933368048566437659478525316791406042849697460427386369890481731635031921887041702438529780863928743845946850240484458526504828893279793390615675033895748150031350259701864554257566133148161499436618717382729785310827653095158711504244637605168442137438143217587033497359895832065928744367217930500237328123339822826474195881151194038941274478672419848549654784499203342981868201207081167867208128685873972904245165281167107932890599809219753469909047057742143192304225112650741977672668885416648363094370356663322709819552137265775124379247790072173228452398967681039255934153462704642881878838951079574289527027481881080063861168245666730432300580809905403522466132705871001379360252013377533346529326426574612659970417180427399223087635228483393634544618560682903668110179530096642023179139549818749768831132799911521636611792588684787092361283537813574853224012580482738878353135404881324937105445639646571007569048100795435172755811689091748664684956421230425108377498584541031648400524586209356297065421724808759903382224159978694148230941738820488603018926987593437621926728866826149251069720186848142735733426252470576778986583699082576910765105174841861719090900178981957799207803099163382394422220338307449130751689917476818252506358205330305495309248859996148994834377300079729856633742389278674221173192275450025390758697777199427968285723747298495474241172035931851526012752803360885194428933218392995290672929929641383376690641042581740053145031169618577752858026412417943758884855624699096010872025930427315712594175376190277671385339262853225942672381529208447192228523846352821279324464300230462416912778950077221877220565521964576755762779613992734982454842210017583782863462658166304088232435113503712158515341283602627092503156457882853310638010494103554981758436822353348361302832180798163927601066592538680085324595504106889185756201080388830482042454252162859599607858931980306843280708103173265040035155385161410680412820356070296903561070241201472677824423762552800110156478535012904348634880262585510169932754964690474974123373944172166353950311651268672131425932141906593556834950838253495180627939788155948335439464723434418301202317821967420368950396959790010243057363005363158409215186319534051897319145483525467197758704339430382298066310856798563555988143172523429070178977723091619626235697931950160187851480561645269820745150369387084324690767303488682197325285184848408594224785545974818456997591433202847445992419092130959600943266760414926377398702709889806442011252754503435235607596798332734869056727062505398249038864147525652344262423274298102100514389056300946200729149171591665215320972966887871888905256533064616815322902810018000548491729301204736959230253255339190462694735318905841068514049978016477961692614211349190704891815484491552933575629648638340623193832909393742435391354400675904389799730226469918046788965466016986071013789890926597303159952551350482772851843714475780997164400760967342457020467957146983325591507234709603641666371261503275337371763823319475023341413831576225512816347386081527769062331963716927551509318662430369512930404196863234197153599627708993253664473796325041612575247268603162829110952778830009726474254860042975170540643864748505950339535943572726782388764735532785660454723905776904992476121311087043617927617207919358980233433357838642313055047982791944200835521485836242768478940254894879631791275911317354460487876476331722859363414141708948645503148431618754097631822828683255781724086881402177370754712250848921441039370799546731104550736648785008257236302995228693678332321023869602434723245214593346608903219390535108454177859383065058509730913426491920825766382880842935926361132424409205833233429632236085398530292332037561825098233951492465407830334082396897930248409645408393549169508209993247008982643474038944806947838152172963357815210206796302286123531049374066509730421251509313666960110728598573715853103236624213544528598347910415946471053777041615565321215276791530765234959312069513936453054320316041558601818781277832469892855659927787970961090794230321728396408189196384405507120174457308940988817647318860594821268118105203206270101109188562709740673315865484414837745803095181269592278718260863539231740551697767084068906982467381585732812698319915705395731590640313504963016928608350855004288212582100723315197225220920668681859271243576315039572566743713899046162741372975054421105698900004832006445655470822154934744756139462228885342536741434839206021989301102856109706141724865469879731162357988158782066544210319202319744562579560966512955186007560435001450326312184691100030908944664702734598826488528523835829295987181732714475237201886378519208038311705342887738038685739689683416806533921716729500373261121694294948232523497550589925230401040536571754295240220132758910044290849934555170112437822816030551737640307817848283995478283258543208450141047976487246066603477090055079394003853778496059426328343142092692909376318143205159993209728990300359183929549054265517780591741777917201158285822675343524898098981821059879571730297769350479489583888787845930281978015074212160541541327041261450451970391737904058402106454791838126277360350988728151006477850694413269494704596512814673351540981427379041411182595152410584504847886982045153322030303351931336214804238746100526556801016170993506929005637880465068461008298658262182647656694300149569390157196604081846625067093942081318057819319696458956986470688712737648799951598506214063023126310286075160431313135731053467019239856373538869294767075533335280366925490389408995894347792410669463102250100919690055944488644512825142352475537662356996760433826350688045620306532323929185569104384389061193766190584624171003631191298527806637608370707037392623043817717373143990163876727190516090761729055364670979742453604503581653570206685792666034396769217484953083864633822725386955886746334652068624908392020926426000735103529581193955457441284894089811183253375880345392410021441642752378627337382111384588755819307536521254212446774342417900051704488526147503172536078980085367927890406357696049666664685313305086246993872479445203991442973403020839317664728461850114404964488484425103775832919153795304962813275907376059463478979401007308845337265870939298285158450200084839556255558498248055801041062645521368015175129926528822149305979236039647359473245129533695282327941127055114448152027596036468283595293704168175398349942808626177726298636765424250366547431241033854949516158705851418371597691988372345173955450711758828689999746093702017574678943837815726710512014316275752547022725407090242673106725210765489872334235281648158041594663321201654290730924752858117575807249336957931945630816847606308144277173888984667741325207040874214221511521997861916758452651193515886931140038229094069526655907707321657650493594902057632455327079344100179641343760453918640348384716723918044332389870754989919312084397393947495384459869961092292952603228967697232341237346788075465987773753498922046702592310856656545930489493799589931192190977533047287126617665550871103320073309227962525282969068379621920282205103577128514430370454749997239941221153904540699854249148061257591606906653634532186010026363312685395152638301529141255001454822552289555385637664981491759151618036983433208185573634001937298091612277599439186471193207128920381728480643553410521171883807838920068242507049313420621111916738736851023029950225507610922515590197499793601953423186491662313322092163656741283713452530761115534743318904232525063436435566010716047050475847346681544092614887501408445129985745819318501182832183147662750426908851831040253683908964361305107103396412637218518326752005537357606467832854607461038560013740620587272757339275391147368835929178017282937154603730466552244171982623028734314998956701947365675167461266818509514197301269927453491547441291345766618054959614156330276316740438021827532423831684811562158391413507471615218389960018444483525197044327848996885008863203887316232675371363241764752095375228941120878014331627294704251704790823930931586868698260607097668643156261521407286214294295951848353990274314035966507227724928974263402033757265025768432146933581141354721468162638601818423981098125799955961156918201264664983707297184893908819641060448846318068998688990972868286441225078176996956765855253091635979688515306993599394832331415114274045785497778729302557998421849545015677576568490875564528722878381161838484243422998542315712552888961921365909190245678160637815933227483175304340019925108891504829787024756301312426137938288982851773340990023485198801821639016105639830152402011013498571775315971084199539852163702559827588377495824980185311781959163811840580382982990524814210126629804872003501792064658079203067067476877149440667324123273771478337944671725801753387626194433467183860942445712261925855290549457733829283956272596071511885732626920159466386737466517615380645467492359289865501174066794871319260715634732284311817619296340488459215610039692796757698452690466689362388249718305084859211469247475603657520571291976018156200169629196060127446735448476006212306417144358112988722581103725177820734189992413287656776161808580555294105646986644241179259029197816258833621508152461386580411305940045537809614050188959900332857071526406377892813708620856131058102842471471662954836013648943783189449586652069564378732539127647601552349847794233208471586472132509933818517152472332692439674026010313166101340894263408695099710953482112476558974436497029110427788999146013822486227041964108997996822725227565190014222832742433245710232009710741263668133396820513539839933107245711527876770921585680593006742213687396963276326086365667461704262011639257009610446124870961589701194011931112158961340658906899108731824035460558612879661462385350462868324572353750616982432978914322156814041347320128562871884416654437833287930942010419597950835280983203096012414655507414498236244877198819050635407341702546370079788581518791331267360614453650841891062842097336372555110797773065261467888642271446959228128724262538517393530696411536668432879234087937290470041416074010217332762576427666692934753257478134622899431300089284859294933976539710784016014964542483877296049122212616429035592930220169765687108580142145694800134140228708530598704119900501514948162063038187168671581542695290128524037968676435884968327958183135840756516189960358312029157463149444297835021279002224259117634798317122646063165308943867740121954968152078306939923421196318423112959258208113005579780343186619016133974785008765855989210071082617215605338126811429340559779151974634397122713077121388355263570936475309500007742170907755203208067718790992996104114001524874772473462454743575988681763142732109745112507054775835921268751971068579751676373058541989754063469239334693240845629930805522860004957516863947421644826379787080497149925231205589062611711711750466571204346994090482673944131387056188732444855193373877401531458086960324701331868167909275530341057209881015393332324262715041168009197410141574908354527342470391402173387456147982636383730880122359680345950850215964449429653988068092600817838344780654519829835856317310095052622717181393278884417349340165328511559680100208659503449577229273348528560581568418984831573703239202068238394335253638016306841862280203064490115500503355149327765988284945159629881236950904690488228812348220310456141353022262104188412467618765399647149577709337370838500398049903830789651504444727577728522632227415302473027491468342214489901643295452954625764798911569571637178643131703399970982040299372392176789861111200298612633591022251022908131453484465939208522767160382196453913350065117160366375503734579982419436157965921750200793152260423677204192604089021301838366528987828459640140262614908936700591595551625651699151563558328600771247509096375383669937991751740184847966503254510725414709903112898584354879232426087650660181362132887286439873591467443653911126504453116295667715679044335570122879300122888589047963626395328807759061252020234143405244896899574493718930975680142678058837706467730534743524538915810823515451127292876341796688181263745580615354553497768327347584878528819347722381078920866714114996977104898048457269467138752163080992593598555273429154221460788977338607665182446563088144134141076837805335580436756770305729926731613147717770576345587059164947000644317005272006754572688274197151504326873275872529989736445163433886685102611063954847601339673273032542725921418015777111298716111366768371634748435168498361193221027176450844807444485433663997011028666670251215665329685976900022981778795017795327418127017029230507596128019762405427249943188140891603625691064508422546854680880042335094492863805089866456534551994413154352634452551408051529610261599126512957423565370642525541912845496603645114663637009583974178839609986797374659371429738375359241331922959334461505591548375419555869057980549601373427457018165862067958902082421766613535461170596584376705249335918373832149128878407077513458260217692036140147907617480955874015975190906013703774633628427848338047248961232501284558513297241077091887903385404071922263189416216516527867507914228664974125768319262960820533167943363777543304321739711985593287833120097337981254247335086336119643943698588615259984495248851945231792760523040939490914992006721022298470076091130343054274068362504361588117222488783322728756026455523534379737807139623418112977421004653726608343227568590797652772349831604430982658530729496884240143513979177334387350421321975182453040177003463219283517624435690197304327673996036587361904464595238660547038763311368460129778211089353069155488835603815783624954980488313061947427700280762457867036869175581223116354332779776401207426994118649275820019008878919853752185041190872005906005016994461809525836844244866668369988527637709392978503109965711601766449129050468340870978469731929764696713871805803092058953265233692485783885686187303198744267848208879177656466217758522140044874853783568117958623595702006405180668935068755527998688080950480548561267235789698488489474622798546992817396257225366213677046023712195954772426252875153159773244466071640084609986423938128454110939203202794805769064196933367650570923312794260176785471927685764956487677203332110779082952448935785563493928231428647044208391071640909493438681465361702551960226236178611571647393574749055389122061825974150810287853979729661167442959467478616393982857943071017212379238209058548846732269360203452508320235282386972318266488035205240283033264073405241080885635151100605243840192836066067722269499689303600631026822649511739799677809369342666348532683069950838710659705272808971142768855868830127217734146036362538533049145357070754480083649895878292307034932039477698982883570410642556049462501461471689238479666913539696148217554842868625893487750612248199865459937719298858525719953862769434529292434411364047952331737690254393837288337931636162257126463803206124979893978886201945782164404218935814334132755169639867228851646248883296793201366273915900366901919250021563690319630320657279560616930097456600563727885722800963777988645526594066766431621939227137103775544942839484768873007731451740494080283353022819411105262556597117156791213416659779417872443164990781832193059958199808345683192383666895393418429629456926457905261062592865807869937541196088524822193509080768861738877477439013242692591789895161958615368462716076447548747453550332990938339058895771545282867891202225350275355034100838036016368500238385813538968943066880616566710740341806612438054633606475166340376656410675472065347094523177324901844003561969403422096323075665761181557844916250779311738406075113581485078613683524817659579010560608217098687951542427475376554516559289069754828283040790545918764782818705119237552721798489368958339300031956802204674444592587432562586893576706385929490850813061349128498080628212371488469066110324394194186920359517583502313568107718256068006079929399543019831505440258358177072023978471484737291448376385382506825865023608548994741599129392206702207599443454830180094154596166499360206762245255477114763381940077019786922670319220899147363562293481076253406431410357203551700248667204755390453710450918008354110152727458424097052345146193714949111188940541276500237066339725859967861038267839172088813097572691599792730443353771752073753112271162656692247536603801296727956282647438654507167569608471388008475238203755473249122269598510369083823390049383317553605656712632145496702630282959520087870344758427117393611037989909907953530394307267528943633755846751016366918744418402888173769536867596107971615665166193689555143192704412895383099601269335869190562033415963364454572705213343521744287773222677026498139586838104652521956313247807622893698601066428735369605485369768027108206840645473363001750746771781504380664102558850237221090168538198155887235222247189481527373404419197913637871601759823872332786695509864554836103395673908196776528635202815525876645137966863636411933144699498072687306282547388401015406568485846606226690330190494246012872669449283864097227366902516993171017135631132064713423874486015147172668871279772034513283885511228716515835002425908426826570622615586060582737427581363012094485233832890385057706834338557227740326737965560452256709557471275429094782530705022692760619736490609090565545168529016087972841803025071535363135039659576950152657156331069493198084153858063541466091217178698518133438456921069970011029890863698233299181418307308622713999388123544673916946698463954255283217882261763359149287572929647281981310506843777898567079945966254315366142531423299097113709326777533349513667986108829391245012065512563051960790774823947671999641019636723722092604211180299453587440315617038498110430679514084758082563468237361526585439057532550706045888836108956411326391546648462953958589594158492341497373120617132982861596347571833760182366079469675925571548641930260696493331518202981037091415451413062518889912100533254695130494712263252145577540098557283522124362689015575541750525363618040678146267844599666920456030834022838456350829996788745540745267642608245348459047033780764301287540586032887701614084282612950706957560960661924544162455841931749417705781096440989126902016312474144943044691909033623847688125562156670141251177439934824638404611209415852989844859443808668322642515292600794171335618574527793164893074053682815588355808589815304804239719111871606488436340870572105099130217500168004858857004336038951094954980802419295107551256253353960460661102043553520666281638134372350482696063516894423506539168496444925744127907541813766894933509192988312222188281759569954524455844795928436486852730825379744529118632696434111516591220124597400563752518129392142266390959819988263734559408915143993080971962900273828998080516805325322730923960445344164117717450004497709015261797323944638605807467139251989078030326012892574232148183273171176330251652001624848656093323652287322687987042556513234796273503456716407233488232775176994266511382045768026141331048959378959089403992906733966281076126911031902511913586894513832655448554964135428807606150653048583640058662306206197924982306364840865743176716447149739980526202218082391965829553539447621442683483844052757632207162036270640101495012488141661597902540704814975696836873131281283437417018707286189976281432770035908609691321950847797050247263053013273327514510481196430366683984303865738180340551115453211611262860533463697644086541062145471859804160422318816460769193732027020448701942723681859768153367380544336640844302489368393741491666001966970402850808649114375642464650279410617697771614242028274632879012073755644835271674411194301204623910675170607885258368998238610101178886868648363119900925786999038118904989737349269554252944059880672080153900036103528033430330519827054465660480934830395549520604302968447685880386537084156218868057921882572720373393910551339364278657006270439988279246590426073950850677632520347581130395194609684643626878934802017276987358218605987567572962385022823658681461189958815003443966450737597854292389180981447835670865516324943373211301665560028324808532946495716868145611646678378343559398862760577058422001039185451480499865913640682105200319984245204390983469449959602655765489932381571039083991153518017657742991268364284803910263284169965156202351989389692830159677783391941496586414695078184263941392408747397260849448279895111442903797549467551697535626357523915284259307052313089741688550143692337469184618136233391468672063296154182765509424785021089487826663171348128282650172473513216082391547579597754883230504135935174441118368055754089359764458087643964892819585195220419856875541037438830898309033074172869535641604490491541446865485681836512673344383457703609367835130884053587138493365825882567302500907587492261818302180559209689691641591819910952262410550618790174233537428745181424609862944951394957892886406760220309893280349056938336178776818841722263409404217050960747428424709045597459871786974168022875567481130995893163782418421720476135470560269788078419361656895429168214462330360101139414095867974717373519865885111374904580279843670143040520363690082450689863342369983168394655855121301389836194282518349924602414776807980719139490444468029282859759450441465526660228153091407672519574732494052275102621771638901089672811438758488641748903913143000413856644482349645655949473895846224008457903089544231198478084826226173085583537152292331159743386115713291866573022456583757006817301832138705107342122597417201253568771552084039473744685637955201178245665161218502962625610162479415282798811861070354816144381554072241354432869895298023463730237684039494770871523447913488522212815954424631085520231881656097488975630023341916139239526326076083649863107218023269111055672203787664996837849465398695175695975851270073769625377236744225914400749758326218045780385909521163149234169712818387435157029336872895224325506436391026758702599770413857527182934136713804253342303810565405799122923303740274427938004754224156448970344361026729549116658275030927174632935727693804461500013028035418633305096577935386317711534296181611242099715543374268333763591652098208499945492111944222791889388128960076526037142786065363293136144352026649353753359106637260895432834499346823278381174990199834027768823407844805912521762945379346120682367079782165433647186310942913361088179485140405345078282795022152260320837077533052870349864289527750953653618933240477653083155042257823306111455602588988415239466440970704849421689699632176242988177267643785975854820057601019028944621129718294998903683814937033618730903942332324714215921824315108390617160505998519321406847577619690306658367121073316912669642734964542670384601242035224308671060634094354735171376198530519735911542979663170430049114165130822986495351889122158069795401513903763200589693008834724566637120516058217378781784268814698602874699522452242320966749420481688250402649064226312118372313491526786962079693246667696127497761439245562634978766725350191079134050726209697693367093224323438856838559630599847857399952397383988033926177384061710905355095383189693430468866967150785406167677569802160146854771761522158017895778104121926495793965390302281070883295307248747135885935355654852103633570654589169672129887272402998445622280399256
