PREME/G/MU688031
04872899681814744553499705212001483799000232742809938045715983106696806502920769349143621295145649800104624338796540443849025430525323530523585678200579789580631569404371504182152779843953738586644576915359543324474122392298199491583551665520301840362350206349879722857126157771271302709496917117841409769381252640565063350764171805413753776431741259700251668439237215097686171419300369422791900729704730676412750684712436869096089270556577622284298139720185663507124719227540827620570966599040420024252274367379442220691996219941654938356941093873757668156761808493207784185286787003307560227135969157140801289813021611060524105653267375256754057152138208754353386221048905478908348576900627915208240485908574484757808535526466040666732339302990577754153755710133777145011495857066392525652304459407688897391768552664534951442372199318220770464984426853760927249698290830647589582814092541590168099944220053182828885215975561678694504608166490313193609599267809431272852025140682005124369164894422239475217913920684202111735499460222390774211385667363077542504377938014710878851986670534943048705785388061572300631055239057437460650339672930867881408260775839233389397698967096754642873394130808370121146179007169102554709094150417315914096801530210495976373948126230664128066641051543923962564652065422813942127288638532925483473469659894099122253209257186899244254331383616859981766071599137487461554980579806966640312408248743195570771409774376516767474656897827518890195117815851542003759453227630977221784865590191271243968564230657271238564017521310677757835491202462431587114160316344768953734880407038066926111486002797375634234051779073982307605011081373829669312756927481221462271763266359486308157868352629801788743144682119841938829189979948687847285411119663358444113837733817980229086667594290476440012764661013133840429111092269844949467310147637940428274933191718899557242088794628055267924159704302974309517136247623719684230150159492919505833790933558098417168880649211225865472748148777099996469462230614304281782193901255584440765769667711142784651566868114096376661066677563211746389336784405863972498073328800081505412193234502408934457205591581313729309236611625986316296815994252320831263555104371819015143357506310879206149636809852314752106266380101709470625701740881717881646236344253927754092401956990413410395099770394593473178833999793745095122936617528509644319611838887325735600426374268473953259662650045608174193069849103095672156156978688369889775057744804298961614122326843824459077709844015476380708940136332663644219260903657247363088362223044088172393132916789511117203534312473037871625506671871299225441684691796283766325186790899529910101603084870763152782111978385872717586506416887090346919666310116747847125807077709137716626176962475616895699169919578995369605624968186292391583149854456808156421554609444745454405274124458110463241305977616758883474769012170818574773604207425323086858707642227633719168215917432679036260511094811979724410602230125537352119340317412262719749661805461877248389401108617214282652994081951503687303270288262621278149176486821784825143752622360774955675614867413512690882327930088537589195341224993843477694519020908622617190038980496687209853034384666688031852257217315191616898048508691119528443433197171496383870121698298620097041675318001581610416043213471990802159791582098558203771148842796802058612064981387575091252322579172503322413029975333319219085078239397854155601613053479934373158975380746559841059145701918396580488421991959473869846282483210775040530500631301802678252063917488504720809406892805658218991355605267986968213077405077461207831428437757283479457514665357295009461945339964266025783792231284204209184823554164996583769447366003882368229456153185502905896722271468054032287887388333691036682643709270952940727864922236672862369357455423229451871110484442143758059433034911348577899259707478908330779466466170153723089118118805263204247110294115308056094358048056375501872985586052230410690303537773031008350438602070837115260420247327243732042852154223617129560835759525688713698120927504511363159623091543107629598650721361028707584626053140207180242613611161903956177169252955722314265341196337087734533111298519007224244687563155417128012965356202033312813796294831617259578774703476791430012305125418463472339036245736689816151492788664416173546268715926187925811317854538221235389131739800515832575652989440163972124418443045796909393852268119519279700230132066016136681258682166063161202498797145570444437251653501287432480478485080581530241615807844394896838428867142515135292415836250031931139897055045285790441407146081065084017769515712140324126740328976150567620884430429887124657694503449506802393437109768415267588987761714603135508997855264729375943833281527131385311494021955924491237875378143560796492629056306721893836312971311803012949655509184099548164842708938454738236792741481624751503102692028516100975723380690188305282732369425952396096934532871969365146492593878109230960794386969893479933540151163005083308608884407063505395585056511974284220809468180484234420488121315232312767506261263666654763888101490916933571418452460522874156440408440368598975959823355519764098631568029683461960017209140086745306912864475259726004850849437031423813103891348393603224912214815384942024039705560165068690436038909488798561380709922353861266001166175883051376271341378390972424560737700603114881600438744613585620224449426639620112030028456991792642386980843343140830273898445627442988686682745522034609392037308813989214369038396754707249373544269560164104309519738852344321354767580817838955971034003694154043134230911073680325705854047392846531073357003602320087179138885603509427355202954778510125416011595071647887798205041524231160664948925140176392880434897119448075002784807848093536317413885805823030462025423544447154626763813212966350355912971856225957601214535312251689511947479922580359250394555261750194896866228204420065301436831083817712725130116150204805035658432397732316988606337456501123087942190324273634013271294516635992302073087005520797061407274364214461760824379287848515444895555622832885660756748696945917182267753824822606176493046580004218203877637264972952676698726457896274451327619798807461899499778068464619760213362070203674066106886339719100780366295977248004056758518942611035452606290835950486224746294525018982054120677161444292464145740913587541636361406872180138771110166224319455304346110948897017657923033713295771030015544849736270136467201505821549415315351369195658327751524177606787779154155439732658369993556662583804700076983433933130368574687156775960320608094387710400712690038057801539258767293781168110893659067777424258094710778548630616459401459310116326742015465548010096153451728342246193581915760571129816591560763290148377703112383590092593135679390391169215115680016858800449520979676053859647444343141295035534911977533173393135089046047561847791821735204782964175251353295924743495196504217516430826784979448168864821615229842675604987615343634717871370762042019531113994320912485405798621861255773627015167386837296611762516933645528052688725469862956022226735218237957745288109828812613079262275050080127440816644491942815087333553134316892033968112564012338581808325890726866938062295630261260246196527235115628737262359813648115538647005524672616733412693207921884990757817179573383510901327848823449288726983560069112175104195763612953272798301811132821814355448406721120153706228938148325170607476786063765739107087492453833450706786520390119257181009899205097546187371208345588313889542829294442861936461348365520062629678827903523355432891876443007565915697486052002957296834025656979567622199831915666767328181714933960677431181600155397347450590062831602670877438242110029275536345302565840673342388023541038443702501749496645969987902315332471251092843099366911704484614652139402941563996313542176910165450410179563606131572691556867793093577872864660752548072300509194812328355263770058210996916337886507866860715181185175504772534417290409307534942355145966525251954200999392069565859209953642395675141605209117474820514736358002929748811429309086154958055266929323295273711340064682384902367114507012873980990443040431481686033571266716475436550999532085427943842143202424535622515425593204468623306288801924695775427326478222462817860696171965286701422115078916753896200322132717806753983123805116690373166902946149082988785926329591544854868590243356325533615584889485846183790181365673109715084920653426751728231014936235723358003323990490376552726642517950280661534922968679099938978260796789993943313435576725294027701314258700141881877575078821608912333078901260170880594552364446220434344416655282179333192387073806408242453262491809362281569266838305169991121056709111823857436590670203270792352838094505982321656997229789251357333077762530645906156155168502434037763021963349363972963493461773945019214945415715306848184690205022396618773243676249196483007310001058745350818087966259128236830606781716049368773781382332362271400730708220860765278987544132770841558793657669224879797317026387851932585681997874455669919363136843410047179097976748727006919026143967659034566214219609869683617876136586832824404777654070233933177428066094322167354439880403461002315684005889745894756074103386652825728499621112124157163047695815366482444218749813668777757159598378117559267855783867477296465030687607843734429356953838935863985357847596844950820978452050300748320755625599779653797849539824849221745459116680907835531953137433422037025716634063559833838237773435811698106540484453929561464489676774968439687422765615056194003573526928431888290794057438158530980525317020352721541779837714368769015488421797519830510998084323247412402640241856193163100269300066774652096076232203422437118518932258381528912545576477588784388736083377377615604131219470911918794615566295113986159856238908360536979653452259936246752936467146431152689496286528735858054434423083043244339348282655105160583768058346992876352277710645796416737745820914634287805510993597454957432923829308837632098051092401605440866389191749887448473493757924654582631698016625828012304652163930976840768372362426052787613342642886685210842761324929731202817065199492166450569624727956979848594691416270501052167768605834667717830933264637361908371658122596035136314697838772746908497373293579154990337087373286117538454755912787799526068910124077227506359564385238999779151394587530467691638783326470548551461876114092631775045692933819018006039900528668116617126432131012104361332627164975307189366420537147923848412328907190473611786170702064588988035075905043800297986498125662553766387896393085326458003506758679813699925742757826680694650867096602448440557020254089592042953095815048016992043619667402123008777840207631105910464725289043071463522825645844394330533541073579105529038159667231814176862178076305831253011884214335734601619478451511406489399828547022813786837179503351514728949048565584419692063696752170587604728698028486520607310386724982572419420341104728059505403813438923497152875763507209496958050652844970675775440889737880149642793080063129679692830510153115126746384769584123450586669227830508435430056284561453679221090833333312413957216096570048622660614921151972036821947722139143363573438855409758784260963038976631531782686689571894163296694619107410461246584410385405987754090007609761870479076102984320266388929500320770443726958704186695410166532704759436412165025981925924750329989307712953648774543024739750007860631475692308208244285438109691735573675125818730509417679120527351252999673978406969791511530223933041998678424578916117138146724412790611265075431877334691730088398923991147816605210988028413576810106050209611370743283061443309828180691198257067450964023537089324675339198452615704876842839348289699956192899408796619344419102632923840242508002088948917376160141402583563698006010091342025058898402051731017137292012192369181784539171483151930351042783738816800476207538228982734591349544465354731775405246524094904953517992261358935159150357227176918445061688055598081717070993161022475172311634668252953272357380063562168430205126715652499197649830400592811255189136627640465256407923066418032202982646689301760968110118808272043973034781614467143723806094900693541050320899122816813850141155182164872695287478096333059251287270830770646179863186293760402932950191498599170078043097878738257317252253594213150721865326897792516038456180164363319280434830983280067754308531368333629260336545008135653844390242071021155901535311863666692524743355960726150607048113085080046563095959484712636381740159474594547607507224674659116712317322716911301110669281451554044422569412259441133726210161733512777731319977429662169382000815835067023700045970242898525643835221114057841617652852459596682605033244968527216570162119539704797897474760061482681076275131971187355951706711333775337078216613385919646617691389966649103900437312955659268709525862582611664128917595137269189094515000778386833244862391828616065390679705555860021720167196792340668903982962767612331320550390646419822400430191430607631146080924423114668674320518483305400363881225358123288603828552704380082890589333800385327303497507944206624703453317868985937388304409481366388886682774742153290007067390863086606767261768816473330856908702754454930458991739364142254762566540742466238874113404317647896843956898827021429163875869833026799137945899106873344146968761596827079408949740376422036926653111251671246754398098325352442669775712774384308188802567046859873272808695057317063753770262100067118851826462197553173031586768147506504750528838254156380627780538001041177901322545709647535035263121651992510838678697339451721107817363026498911567461452719752120205966038338622956774270293527531657383301256835891892486285471499496521427496218189357405292997732809555163317654007344273630750658046744487603084185394013994939072183511437643307207428966831104089671980193376634579233141720761623260079143248899104763638573562988090099493499763288232252696508654280444457995458016233981304133750597341817981243924277217638071407929227614253396520719462605196045149535055436515376866634261382940344925099463935865041636204721634742345769166744088777650504372260957362767806255982360516661468063934545123561909424279681942755620417173091696037330342059510727224505021113863242478602334560459044384332809707548473149121696359711529725137329712821023318446429682241699420478939297521778217043504724905189818295315396213859479702377999364843366607821025539128971193947162853468800026998104154070200693925620178225908409334124194381238070461927673708631452677755445432585299024253755733297579474689693340069840689268682283470789502881354006549896808569722330695968879034319360596568550270569018585304322830199724906338522651689514259423668819214143598731362189103115095168724234677046893785871986657224449575134204068390613816427064727558527137843912824086963867777582341272045592767420440515411281106838645360851401786013654600049015759590719283003671851732265810404788538847477818696032054972416713156793194218036787608645796592161000398778336309291154620820787261965618660488469334132445139383030113467120224384942458643593520387150481838215761788597133603668391647688627345122195012364043959402455357792829232838735889566326124561676822891927363731563067028223024549067502838893904021741481961699145263473215767536831375059807237212917901474167864229996989479877530159707720276426879293668184651532071809340264476421021358260004986063071823492787347076250961782807063479757780141310528374111067413285372543399731852611414040819686621324010650747876024022270779301413213965476584558243484242438954730533827294176707889050170279156910784364525741376977146850647385282947307461970837216002881436558790462583390601703784655310794924872744900447781943783215513607875616901362633228611808407239685313980248220459689671892079453316523612469676199610210646862470430057592593665578709880132789813570289253607152263710967012311278991336069900716756143118088308739535321069031788714361985291032619856482315456705137126938449071046121049165045305503599100364414719379275167212754197808994218446335267839268627353549742631139512881305685354550490538858932362752429463483261937886737000920056590433027371848660393154990059716579331415517632423531328182036265283010014238784185388728628580120289425998184885158138563666176681214553853778963275987634589623889629856759452868469349875778423445316252459365965089016338052701667967871017513226280904098221695127600679561323279872513439268266832066646371603099409520953193391653345137658442455466306018694515447843932142836235104744985870277069900678455849594249963831945941760917278158961906834439619733704839477233927621646910273730216909204034965540006209821388641404019367686521455275983140579202462127892592834788208223489400446542690872288270283772228662189942392145984189760859284612662628796593064108078028247684459416222493855061884672325962801722263027859440904511030870032269232692615746241758113899842815281143523212641896133530425608914049632336850462570170973504206101862582578583949883017611058363946145179912898806800757135503064026410878528003876336244313594939477764252241703423739334415693394447257338800167145434728009926691861126436600574546293808900385614285273613555100022540423268914094504478718778431491262241142272382885671245301194110178186304818573454471488350687161787237215150071097339988083708494630444179150082814257717767155596221084531737992473658926433361503896987849173071364296480887261615270247553900096296182690398144031549618354414739906769401988877169404781330743928367098449177753128971324233016739020709121983136837080645374026592334647534322923620052789789441469477757313539243817541366066558179652470924043129939600252404627981943919792508683205230267350458296604324381245839628014624138407259354897070536488802125237357324759110808274483190453438481243296810332085979243062048904884913127676420257921380085139274706178624290585043000875443981443517260712988171723628054034195515235622767114795773553527475910481752201186697461979633829350253665182835335391039868391941931176193230138993004989724907086307215437073024595197179045266431650489448126459958018378998803514117816434966427783571628943773809975864840013232109285458645496281633596877320246850286084384116029903987705709847498449908123039789080721792668752900095476293147289216919155086411707165385601642210971156602628459116341298219977876389616590750871890078479677271875877814399817360208763627410455096659393336606573643806344100529678495657842676014714840161711510735229381782143971919535934624599656371733071406228288340636737847609112599328478751589654468910676003699644613651347407469174522566863406789254098446682801040730040536919449825371236931520986421047520336243228521293755656193711609008378909171564264993265032244555308221603049339593676017065565997041276106610792793136113390992049782213443983995682890136324789352493197596596089809621494222676037916321322111298520056350145280721265636639075367062465949694656188920692692034646947706729571415294532429236442330088197335368391811231910874628679755727218815207263160217358436672824255513721291057340224209899160903935152107835186449177955530356005997150989272799217385471027991414731941005607041918523138307037064977127564448407951277869101545956494156059179518339645513382180043085072288702558172899595303807943690644337941609338249795161272062096915109539751560266043365503939851601429481932303701837726653650084627151885224526364164891876803704325632836818251549071007093793061649882664282108372374103147899892405192869009408042287312662206548784632239141183158411968352232565754372073614843294776705308391234928374936009181915730726699683428941905940948181244929389358893092347679562764003009064998885363506975960512304854495683143698915235889461262465497572322722936030601765118788805661001376248421633426447086146830284616147233872338532000961835180560118449897847687656818419856933293199875439449777478288966003571573263582383850737054326129206912173882842338248507289561312953420776888251968291718284011285317939883037408335883574681332428836638609478568583951038713284539603405068375246355012583527968413288353083760768186057732860631197745414319068652960228185361430552285276448933160887002155370497290987391235878278772932881897122261852718411352128640258295195576281868316887014723193991501057294145785050909096193338593508440873102658540516768415999998754923671976134391394646249497001988905215231305448771812221045604326949121403327013826727993672184214010332233253098980064918881573869958024614454132765459787978524216459841666531028331581429829358321620295165959999286935356854386701437172540206189022217843435431889516112108858938292141551495671292473322614852508196226007718837220592546938390620008960264602000180307399260366781939589098841567971161788648155525456700761836312213290826396158402998517011902377641630460951026957428350153102832329599297780057549065261903002772320516893291704593596978139458594102720300135815855106498570249447877228878784941986133429976678935287896510080844225120253835024476787360263931394836081754329013379389366931446747807977187507702577792865668831865832495889300585224130078108786456692540247582089994768410673244663679592320753381287739477019919828345436575881005360230207494888346819385527069048791506676666775099074809618221745989776933885017625390286152237421914680011481038726402664821395528129119883991628787590521363168667358612378188673863665246565501417218776241241822934390207253381117154542434869893145607606579094757113490188245835761620747038846005673589246710523523662813294079058134763014526001003931990238985883027695910261341825716879297005517794199300310755117814152395146311610986583622057933994909296154256441917460276693669073629755230472956540176883852868772661621802839339820319752443132107532319291557081056669610069950724383972860185996265064135107904663253410751764228918551155034343259953776610544287762566778946114471098995196028969349386357779237057302193828579907725771887577701038191681749778945744568349414426406215866614031681790801203147423652647271599100314127270741764967717218335895695857628918723092667871031746381309608944429721698757747710683182367286484504476073594238445284019771677229065763157253364241044345367187820467073266160218518912665262981901532836413953144698903905033568570421227674385598781590443964283161633485363494714162773676405570519774337202196426858908951147522965210160508569491150967806232419277112142600318684314117875715701456473392345097492986717208660499143790515660041334545022818270429476893791652806291902922444230275815385475445079446237361938938977755019670167348442139193346058833209634758330730233113809552319251299232273468540465324633759924719991954899923928389112286159564317621045740640849292269198714057874319581691632143803603269305090642959421816615353685724751962011307295968542291442580846624057481045711522815765684533196156993179073067121590233441463680632907188083113453407612813826082984190310781221978229639786111222517736093296466664249737766702003832756325835307274263307279334876165145157126969140358630917980407182501800731365317801141286705566477911259687729600037921638733975100324897022296629421326180455282678330469758127661710601656783554428641760080577551819373589729797801289177867878032855792846286345668356375018800836167392484391242081039614878338360409064442273284392651647561817215331692140688944845141795057138870451659547132853095694443000084280566714079160308840355046284902185303462952644615348402970946691195117456739758925701037233213027202607439258400894404791716429668776109555070506239858709325958180462852306425845605663130621165916921645056067825969919791866776174247694831226581462057090067540650206153345706431778009173160816194726228553302858663780229381788486711655566628622986142725990759502177967812663360487468219209831242025314609720905547779169191408980451044922558707732219901581900239154915375074836416269723937351506505983991769550630337832289441461734233660476937489265509331880725173869581771743374570471328521876586611174995368838761487321129715774375950606908281183168481929368602254472028086006412859382756822452204625537333361219999488489944379617322300626049855735081927393532855782703512549609709329342103611871507802545517599939424557547170980989310584595833827234890239840145481235013141812535668674860137051678609590040602515578453796213748430871021374320107133980714855519283897250912908844192518171218437218559524081079291964218797399185600670082419128120068970430695789293276964823729671265745530849038528972868294591987527316829795380133452638979591452803202343758513254479299570923036284609537223842714942656649276599516965457191940447207895502820578269504168503812685467288244462358020053811113475669310562132768998583764176893264389097452758369123767723742840042269093897077506114754031715029310716737482202271893271565774094541640648912152081087821544494995655902684319277080844117991344187936154848388721661365605983121095758952479225124310602751792707414140286512186590966499403768963161540878882141581635694915340015371533628966484922784024031686341147759223032747147248386022273419794287872197035784406903952257899461245163875036816829062780553195134460703760940906915984730903784202970295482369517176047042000107683047869491087193385011026453191189348294600362449096576006686022391853928594790858102324199755643159979630949978090704161556912392636389440409003923416519081200020572166084904118629873298239299943484869676663314532129338079816319971195110773752557792898355574676223954035323755699213437837552641491192691658892336804366341583666005388984025157814894716237082017681728687309396118936297334734190271534343257070817349408287616995797980282522468410051532393103570473996972034201022944286139259760534667746920636323809001810498736414576750165238074780683201164582762920768561787596586920358855628955173508372844226628978793340761110570087663010947052100200524641384102643050750712886244675784742132340296639948483760753225564923797951949646981069444057466485414043258015468625893814908132501583004243996457073023188230789696211792234093459958309446286114239736768224064443116184788232513011579350383825190834393951301307860323887110028859914784941497723630004090743827837033867855718222728064184756654659675895701165314491774451078394018216570139498450142921804970367297816187443608952850308541954662964616759241136742251891859208572942394037533752635216426552079620222926962768175548319090950685051122184504116190181977659722611896037783168392611717923569692070526016626612172304053571496683963715537171678229692216242673591355907655857044133428998847653778857431496127212703967386903722980777849243687311893592007721313619481301204565665737540599329485146665851870537994501909609266837952904702374366709113114476909928528829899246203843659640782535898620055454592166657082821630084134687226800878364509636000742773027644873248913853327685525949182512582016578279075602853985546551230730848058601629829746454074184022721126156052827626228268747394196545918236558258379724364846865733345731756219655995954544591296568135359906339266010154081671002133516680682872889370404560195020271768445562381848310504379382937107727249300532989610261089180715112921926284165535134917402490343823050440190206132260593468912342258142033860521222102709161388551321052657137307961984680413884646425600666536380775013883642419272494782552857310279640107495034179041758761911873514325384219775221401973369000885148796311153981009257426077746664065620583720274447582177703277386124656915026669545718944904845716737544985721716448214647347880235050977516256880079542524706453019671768085374163033568502303980112729101690542015696980054883567311358958825640888801937872365056963766374322636178840015267938168760789778896458554423752988964030242761664782679019729892481216664943277123789709383028590454526182663645123652510721625118178489041957878146502435670453799205131421057243348855435924983982616832672974849621831131944010628101665882443410825480324550079209679344519541319164259768285305546599325106560855605426761656416482054695701031979827892741079712708267410575213947387356529865980339349143764774785015153722650018118870037057891117753919710003009793410550680079075315465578348499688776548578978219911736176218296136824787819159399043453938291816938800612305796288407504485770635644127179552369832686004004817721412196253153077907179338927846491806910478198507036391720110969442110520437973423801981270131227903725826338624590046033531803870430190936376959182541737555641163190459007447985729021138858041556109665964283042342539178162062301903820712217271039375924309259918982777427775421483015181792278352310896460324146417897460955740920929176808280178321392649149551534746663821238242889812153071560460737053597658506296218867011063673489526745091372876213815404002151229628503030380554823602940536933959166710687241065375848614317717082473614225425344191884965532270594936903461428658348525438584054225277416685200151978710871326769334794181227374735064975825303452274215177132548701014919223813006573182787538763536717120526415965275588402990070432254553143541497609794198827442688900683591472515857980947885130344829270156421356080151010637665509902833446977051310198076150975948936897181856294147227944856059432952681009733417071147963962448602074888793992535475399185951743349592291491241444568197766685651081196248607396070382285943304967316254228215615927555188444990969867072799329524436722040203364660648364604055838283885716168215544125926496397824035480766837794746597684951751772643696733844030494141231030507443070683702478399744260287528085492362686221368862130552660046537317039965737241244453398127798566177216344763291088560189930820745811161587283454812178238186907891807587127545868686805927589452687725180421870739878738628288563556341995635171927143746878792661035679730355008151588039139695009808256385780134970679831338464585560317988173838533607954425540648430430803652704686910533171557618972307800969342295502167077027241931513059056479405299820655782608077708767677428431638049378316300090202374524324198061086199838399322811517995733581331686414487434750090669502514658934284662541251808126673678560964074471633960491650237448157091888529313944661625854966621849761074621102427071604747732223366172335775615813083016687301925600685432668621374675220613448183964923872353305433117888103782997789952996003131817204026662531728712184214149449829729605771862405746734916662534234969118415846429026720171486850563101582607853722488597714901681553325246474207298422931709367929427230718102585386066791950646404792723259173377999276090747100978023052817548297997608932485078620491988510287781065159061384907794925824129806400071932813288021387516696269407023688082326049260797510015832973420719467288650629428464658063603591825626503785201722709677983321430126594133233762400074589010276551523749476572168577301239661174461986152325792309400144080609192962880534805928328983100374818051996944021317620261686002072958729650767027810481141225256289541695946888363962040478105023659791166696562250979283400913212897382763613076734100639899253107763374308720620096190510217261174194953952093368297517073225696794588155899249194898797231822343768079776253922784091938085791979988945846165097175240534692383492762353891776748933159547262604271522578135141105425523695924208392515027825918497966959354086279287504683101749288074130753504343055791495409297563258823943542808336891390537807809483288321795203151724978946784829501671367777998102402654754961966339837127090530390395094546513980976085493249421935887145745679682054477085879236810058430580160518938570048806585963004593566980115866178684994402205706045262440129713634857266359401006244894035642436759105810228078897220247199669296160579618838013896977916286498769207438445335128066131297684319888336614398705758865986791452639929989532561689994014770495217854330507966769281234798272104148089804487510124296462602885502566911408884311806221421029349825592818964072221551496063424503145015363937007092858872291337129706375939948304545066480180780010758639089577374456700891595454260511293325482478466178054700169672606538322185135708167628866817050874095921162710255624156314092814963245806659393029560404167941778052981398779310220423006585554025267477033363485243327218287552820665249593412145721615857949282035420246145341012056827003721540573004141331482447470773536354133726934108626981371079462380834673296943713375536705070908102383369213661203926854827155158954081104268637049612007100097405723527228083974003467570073054692102885255043486231461077517086694128696973576594290036869402741546295147538768092498185145082495521484586565730275866451524249151230741342342244364845243023623502037902123976657934250221606302281395908420632653244925159248976863025165215946763181877341451953315113990408990895483070358968495689313174870579826451015691461985680526691717109932333798502933036465942101484763387472097380046037385630209771859919033397257224178211520640198322667573657742977720002174132537044262775036696618172649973213864264730040109806031061418751470876746147018146924302956588825096116095286710577303444534344996199368197988035347604240796625596251427926532486307632245196005677976325795328705816745179311152800923468965974876737398929391179998644265328157639895629253409348765819455750892700893552223828046125584835118536252111956652118026334667789753186066506725797560608595365606797807660737657514177298336772848410080359061591509104870049328496708688167387811088390840726992432570157649996992764875767271114497837486181334944469839819139992513646353782959974692839228492881027010808287583914034493504306989845579491889648158143050455325982820633772892710924784828774307070172542771856483923303518286598158467915055702882437496878461763572702431548621511021690903824582553737452509169900017391496107075760914810022347393707647307659052468775730730761178028240692664324804701300587402130481277977031507832940441163519035322553536284797960813032439473347551241393089397207050333613380155483818252998661397743580953945130796680493081467614228878739792922135667745801658743289169408149147342197099352501483256243363978106591351142192801886488850726241335056785197069093174065244340766520630103762006987316682437102085601160292713691853520930404320735358491205043856345211192524211292718060052035772419525498173674687728429571633285922342038551135970415654772767863914882017719482990386636590929990733544464566728401266870522130603172702436206308855484472154103145980027342668749047723732233323991888201410990016697516199753494354073227663410943280076518803819946346419091655382744214144363537439166652307967383279341079626069192688807292589485075251103433263972984498394412070202806749782184780814340718868044756242532134087915787937633398082575801025897804081812960888832864763465112441518865193035234243551777567683166767762478808585204683087298276955493801149445841070063572979564268220441515050489998466767112082877181380955754814083878989390480507128950673213664628114732561207553537076889313893911973132096849013671252326175555735854828721615067323825294929256794153120248680497994793370390672942939132744339053369931859732323695311088149836927740291936982227800909406701379892015762079624685279522817945443888619230646406713426084511119087445333310838738297117772417644924910488206285406108232446253960156850551494064000214112744624655063979227727634706801187321648399808655427919302801542217879028943641524365626540635451103927490514248516048138192943226230029663050525332321763160682273334823709801603502727093091062794153065766770754750639689298714349448903230548852583348630433001856432400300558102133516615617495738069730180409503933700410749658669718949455628482326471313708898602921018684037682070904267726604307767125689601918609569873525632839172409884609241981113728292010476745176872685774131499403420707294382578905208888581963211352817922578869115645193414567869533437391369202004616292171059090277502213487794090178584491245677085973095848692976496060386417319352991903076563472678671487223465525400281621616203286031290129264992346718525486965318374259484727067910888092094699436870385712591634927239791202378180284268133225257072801537036208926529110586798242481429398038959738825704334098417927205890820458269224243506369856395706726690993421017077668756603382432699172373168860616720630455838262534672726846833313333836663543365841613088477240075785007308666878684015380889723884260112985179308497939210726676250600753758938192845041870766260890681507400105346209482342575762384964670560537810284546095780150454994094266015518456268733082171627579829189921303265015453407906764028224103306214557791152636023665315205478500943961556553660649219867605392913051368507213535157490156280188982367675045658079431358471065412863608721389263478321708896926525804973881305043912531007529947635933829115549117622830172625428275342791056635506168348908305729540438446234427363197090925973511667634927976516168469283783675900041228743252629879623538427747363352435247338565585032281112134426464565491813606147233249021331712628169839509311251144342067284956213020916844556257015393446153509509825307975928411572337341192747730114860221435217802686016318321523381528194659881648120142153413644285228424429309610438549599731270958290020217361609446107589123010145436345006640966681288347072499452408939143305068315431285425599655763306654353614954046796491816831856286314020671900536835156049968821351476717613133919387089819776568122037798241017405242251303258846037382625141753947058078340242395147465547643984157087408591047316568265331295211480305040041053131446599431754533383253936656132153340883145759958540667484777893078017662459624539162138120195311890619380359326511666143589244680630102785476383754436591260830557490152322275316232156372229057707488927660855715342700505488178997666410300005245540349053086417234406555020230047207869897606948542781369391797366966030178316237996844918589906505038589049330363651315569322662526817105630302175558312791556252379677037794839188301806850149488797969053846504785503996873219161551075945079881342198085956884717523837186239715884298168988180256560839255551187339713268772723053801570389575625298504987338118147575197322465602051173136837239328803309660375444075723735033401636910145318658832105270950652161516237655604565578115681035918935824899667233553504682310890098272447540300027727137138568027923312352329835428191637950657623766441885574283808385746805794493554929183585547129160443577317924372514028946300488755126774050114727597934704706331546121701218948636818947063598691463223653666491783233211990306330269166885623684408864405016044526830271934711895826136469836638577372476118144521039456896696371807091666795023422752768947601865757931843612451269410180992664542030061114464885894391523756986698927695309076985021783520189915954990708208785458417590592452251659006031388594760668873405329482005739331240297341158658301697435598725494325722638474888041704829155686828438442877457901031536616841835286169903572631182278600329261944123522625781184624177290781807845025209742648417423930521275220958548878850677990482889947838001148275536522745489234177889149983175803427062026827381120041453326776430448151260345493268510630272997869259813585206009886552556012838675268921426957601560636978999650038682657036296842960626283210172261094898467603431028867511104056456975745089645261119514772009008080866062296062315202213907058014680030083085860584332515538865412435463827438260063548499258763184617768599910632681458462080638008358213094950369403214363360051047449333386588629488139191562433210589577798915768710100386670694818698343400382716774427550069322439458949668200612669816614040307769285998250650995265629999483163809591374999895382838125187011807738741111283994652584187014596970842033995640434058515337040043850828747767368060396833603450621140218507523223204584695607453685043715652822774415808037075621142273117389104784388360286311081730910918630203144131917174219707049470732371780338891530076503709615122114336706517904422958917284030596204811118207977066071349899470670315971443983937901093617453827257498549986919596488255573433884172497624004814357448857187179343063717573916216320222453283187313749361945177777326024966196049232639010303122680959530957730043504262158999403154808698272290223144696842634397702261837041317604328244686385118717983935337130782098965189905222623416850420584464945841321715950519261220936697808506694992404522886033077024384060691383983894331674464823261355356462841370766253065779303245699109081046234966489482100285724726779079862581545989263806182547381701573941392060574384364564443852859177295474730319902959539086944509659017634332536255018656095785588017532158641871126864298019732317844537697247857814142415133568845064321453113024212031688020887974069797521551968777246159332594639036541850230659036050659658943541682201363605968601173854494410313674882055047533020928481484971368905280262897882480747003901588038880525353875712038670100815096274831822238176470373007336736074443275417191921794650459451223030217529906792654075932642283477710012173556988853591124296158045113575901815554844268638611379133678232013217689193077525310067078103084799433057746874199429509076344559345416581282081045015025807725042652820050101063787982559583473988198114116892036798849633960539757481920625613668356891940479747471965829638048035054202163216929192331658555257776270013662704021131513416870431243318653850065150791396182025031023549928560558519389202663503812110940564728242618858618468425731503745308142255791748659911448578905604104275171684155169553937349380376739023774790404504666713253792485955410343913315619179094273048004915994989525340967462610723537999898311708647552644367263908355953556499752720246970535824750149639449488447186157520898601713676842237042268966225092532794894828877103617963066720346366097836308477958555120755976343684025654698771055717435381384534590707622636525380061665481548125929806077273516028609480915571691001684748142544198204763890706703825462537314131961980306433952366993062897040264289138892753884230996933457032306118906887112124201409615092199981306093457189705252137957307424018598361130069194288963359587547944891985493350662631425761569050766904908002402122088933905097025673711404459786058066202690971907297844157946303444309247898962013624440824048491787946524633182477067362962710829462462410514753715966654274310624452481831603119382619300959709797956062672219544420507370538663868495235786467118563194215872664648573540020988948982914465373056063703336596367060800312587767864306635366018499769577643658174444894014247281830816702465177519137685323730877960155422428589399732088881820262607166243638261491117012751804014163639907100747083565354185212198409850415240207450501946342028368748572216375152890899999288942127732348896863362862339300610631558621154481515661167070256210588356315892728763535553844911371248512557480840130761814824596032081263364659141365924672135556552728456030159633990399979722813959967438094516087218126199416420428985819136406065833842538017813648166860532922016200595043066246322544712501419672894548368615632305675031116978665895379265534514515476605520669439703425036837583468398055610692321927424083686645155332173117373051331908296330495360131394161017964901817614587288587991273625695047989981724665527577967335671473331958456036862875115428202970674488284286554587698790312330248075200563351579688514736869936244019771858960548639098065110216416637018720470922792942823457872821409137553505383550246060766325501666227849686964539166067754015636769742550021868532089398670344273503321931838597554621015363716941703426028904967729300703246949458556768698481295018872862980078535457127477339210653423755854898009504035952953767029272535925936835379474371880327316260453168942693013640361446406227659057694221975429973406914451496909026221806733340548203857316905781234277445305981584874811580600573694050491168037616471495240617285629938412132012173856006838452042581617538042973466927665101519115535225595845968509402758945939452241917193048192424691066865789375507938338371572085899589778178622140934350386193743970926849366520955379152769429544878769090094786597256220058614792953409509745319651217116262015965924802577851589548536861291523498793690339891194347251519130201327786733419101651319341019083240960108884188439830739297203187146343736701404388037480821261025089988111101916768961944373825179771258024720723823301456989294379620739208740227638008383753173582439524089322584490534806390466281806718463279521523629536449594841702531303182743302173308349425764028868462091135104931726853842917328246714057579689622470351595973183844750249367648985651786419151644105195898806775933049975990661978307152900357820775624434199766170925728933144140175961149749060618397306369116465676789892371328436524688344906021736898967080723173324681847897816859452004579172578231294603000438548202549032210821538694375573413762264259711050325612135143702551270214642517052546052212876660761702749705278375140236721528354455673664132322304523312945120195544028083419686897047797544368714160249034817671157886368229009362734455503043271178066051641180586969144273298139907292793884444882826239760468218556961473920403255833806500149576900355803979076414327858194776411382246840519670050660642654774799819015496985474563746995292311256575198117482014401203616495595651145689902168266967093156134393346916562988792950986497809550075989828500224659580002573520130040736893697991722690464325334308003132545641230740308988740086123496352881133082201795334455393761518844145314318319638522520897204475375719310795651779134885941639873875937644153946331833783359280185989804623332647418289293213486347127648467570698077513233636292199943840257308241725491461928085719960137950066831736829427120249054652360497918615003151865209706388940118859605605033699540420504735703194119663577862390323441804448749635766682557127587635129819636316371274712769524505922587370895920718157960396094308558744657742593113304149398948567330966661099494837337472658067400428949844040442747534135790450849355486166029851846599699159941259499500838298196313263810324685083912149653765890580942886221956953831352126566727996138766253942544169532747172641942222333663973383586980843552001352203864284451745593553749225888970025224215984171085674503107888419159906497612669473290738281807948384401601558171817398584508115469264528746394942384929085351579062105818166385038658837361613646625177196775257243240569540389924637885362328757420125082174499738516860496679090576856311168945972437308656969418515785511666594496961557922126521555023035648215734489810476072853631979034107848852107974688670257744234964983386148531262831078463914565563131538240122883231122181373568392873647907398778105443022827252661997492984461411747227213992948354050630306411651080660885786687776762095304959404144596897089249568421781697564984420913469969676086410990478741813464396625005586049078548930992622317574102556192671049315053994406991941261129198239078606199543310589580701436091369355970439361815190413370303609628437763915898544359550686339907285435174537329291478744903386990731030495353018935354455380343173177372497620715592816613355590059035852424400533831534459991325322468562210015812429509743077625283005156784507589205702908976949642034744703078087744534501617893486667985316161736140023052541747619740927428535056836295837312718763651532837000870691667645149768156601631929953492841760076759631980277736284458971651465090448868064398789807990938646275431600806077992235864750189076784090250725083000639870108671966072936142186152544464013837672912754661265132059295611966597682919618744566973930924058224966233073832355683326245269136608131260409472099809382800556120256819516356341311924293821739199622217822729399858810165605150894435241459225849779241280335738955129863768745746812554626663042174221487086658242284784331138257468985869088997911482502241972979505378484229265081140544536945168506065780963897266160018756002375874252327784229206747128321642963837561508396727183252531701834032694187283302043183448225142259172533321720676498604068061654117707852718883443844328772177458734776720476495647887847640277600390531709179455551472535649703068382962711886904337713598709622457087350164496107703789066985495687953560519682115753243558644067731935447572556459895842295034881421973411486205434470513202213611710046464150269935289769467186626006771166831553196620453968632127301192544261109421876518395642420451990659525793511986931250546971241571463679910145412865725640967113623601914667833965635001368271442147801194538698505570118432921048242549027943898789362023784121009823088536611828160974685641978341175000697169641909492563338723017221748538639364782572569764323028047947878877680303390486680045559096456657365868505983762276594677532896665125843462428328907434963504490449756832639330232422070908081048620670463948475899380412987469239481584603649267101019408613779119503264308473446620213461398837915259847509930175825443287970457909905755838084986319308323064362371827699202096125557115307708492302157999133780777853099321963472857022297016758763134957160629392868275327277581596716423037627998820929146667411747345483529214596313477238536362129386810496667177262093815452157574433652377928466365681441105058185954678354685610491278649647507097270294469719935301651895933845831063081457273381651525436018841696944130977494818084678717326548735917623218447299314773132862265470721788900729069372814287438058266378089105779729841122231273414977189850302571795836252534048726232526434910237846374141015966160764965010485778245968515242709144039290420086480800116757254888170234036778877517781873510974105435419259588079588159376981491097877586928880092928732229326272981786894167214617698802110301313758964275356557809214478729786915743765182056358446047663959417648360108704777599114043330792109435337929440738962404534815925241148762775315995655545440461816688967739610848993441843609730788306328259480380771225508076081033700165256779134173089920405092260042014526865686745795413279159006798814329873311613080153730579953839369104607640849883070332643496353391295455264577408596216311118710468625265320293424264329456396487778493129191372876941019488934012935806644232279137876586698261733530645672805460408647518409657329683981506742146083155586815293751599572984294448792651409952662785170150291278012121465797559890530122291445171697493781938156909732119557352303526211207959815416415575988966257295258657417752443673595760121418043467096193528728097577373617008804000105577181318865806495068617532832516431267145870678327530343461621738071415568454324422487323247678988759803235119673310514548825970651860242763605407242589671323415467097142589563749228192017050391968731209062932931026526930680695313713965656015157564885335262071112356497353841191946881613578812730233834009064682210875336551636690584049458074972019500464955959293589526854354291849742439574620337187855014510469108861776440924752480637658274219146300617602121669442257355600601385707482620131774878642979728798211302566901831859727785122034045257641818572125853950161371749958993790969793274584337284965501880380988005098281242821710864509357145171302914234842638507501192074582693697862916148065665495771315944821827170665191822883517763494147149620900155776354889814936445145494019094401617916877864462511342918354554286270679104230977628289897715593456822294399065413685177105466975286271575287358243021753800692419771138611361706680320975762231527575972107698501547924032139539539438450231047980980817406987510414779771594172477220434296634292382040517240634229118395326647475237835807074950232937478137822832458755209946214131524291429303015241154335360327818134279640934175803324951532130243440197571753244615071928116642404012803959193822419065973160096862328747346543400679809906123738782012183227303508202666947888989576396679473127041586865270533168031763220797622077413529349191498747256049096040103832589808986326464292900639606612919470922961400900056070649658254128695777087116548548724078097333117886411694776333588615183322313050828693706839410892769249299004740561502539571854506017404205280861342435279427857709608175456952208845336853496543797947437946241286565128062156660581663305739501911530291621143116864810814742843274043853855139938349662537610055510384639921134028991415067593120486341945191006355617963878664688111697076405865604121796323843980498868476586769102287291596318810610807401631769495864880948021136152075520571226952239213542706894305858453152599209822086344687524207506637148479493049141776334360033639298043623210697893112291266454066495655533110018654256296632009689731308864595325256764149751628887886885794258769137991967144721131127541795563180121113437250868780695742879572923211429785833854235833493646864707486914465484019597919027159369276269295501029419058502853645812027401203581440754145391396584029873515538016476694137920959266852143287850223383924316610697937769498302477491360868635157635783385497318924878061064284409436270638642706477092579110807744856840180207103896145165733046454928916958554749201295257785823382928950973018833721046167081198276323605272570089405410402930900391167675188691837820224260810591770722859512698529758196617092888082746409740020133730822143112875340228426758305575877386982470110369951547719061989062850540236357072515689515595713681934814878443674642912603071781766852946035638048983382519834153965613849425068708870621785808498128612595952271577517106922432251278400212890146860204588952000409061217290444198732490766519285118236715178663175699191748717767084709913926873544291603580202459942558958260769755331480117050908015976761235758544294239369839210181849528178580882243900603180424359719368498375996799722546086640093076458129113007395446817176308100255915490413832317641614271330612387123234484766915278043502414574270097508023794955908039825242401750268473166995487348742309315792002880642745418051439822302434233265779240331404155575126214096548609857753212493579423202845082024195244793013035318528756922227122129391381336048770065305466638094811322402117446220713619875935374342612727410609577345349370009754879579940498033194364566944916777724079968669775129876523689360138154753153378778199028380848269064600395861506398612717738896007184325814444490691464623140601082118754740246489462672557813438983881403421395519819382914673210288992039864057153179197764758023272227353249237351639454959521785115532714286424296502256178606864699525895714884232578360766336700139257360176841311697254420377800902329963964101330375274374224314316820760598900526644113149165215232541880543780077764822516912845929098129802986815804151794320925764605096563676369503301065811971309357663544365683421224298861200677087842080824611641735423538717123965321629944361390854375475081373425321864394714801328914569841916646870006392567055221306482311476894876523768442854802191042469032303356758757061359990992406832309417552063782557988160342726660593872922965438578015790227468938499145134969859437540856358204826972061681474324317942827417434211003771970918317189715632725849336141975090148184416805462991840242807854506263354091104056393025302687485048627201027531363468544337286106343736725626231799143291902378838458185612088664021329441355691597553010005533024554060048084360457317489559323451514697207764202994988486469581107351773061225169693587289648697953887265630515651654945132517645662386600924226588638121579588920123020394372224854808347608142814865156216429657481231778404125125719681439858157369424314726750710257207943174310027000196273383381245846779322897377525468096766696063402868802535160025187828115226946211279513215247161948264556503593221812480806007131173298810478853395664891978946748715358595051964523069411819869264052968623116522669737919031287570621012389428005353568812926331135247778132906290681951984590879434930015401903987789603579629245393021909169767770706320667252038441272227618257809796697948398543068659262562583963941478199155219951284378434769016824629746335836228770500045547438688715647314475733884639749513919678629866216644366215366363806663126771583746431863058266904585713078445633190943038567074158113519590532667387681786140452485778529851211450941540645316857788293462102073857064078941278409269727696532027029953992240923967679558605993029154961681251498302418099173526326407928037279564148699365998824798559405560880441017416616588155161747283106981231410769746503412595035628231920230154317256360795762999073863029733221289084753650406898860892343229919919035354514702250200214642409087703006229953874900168454872317088429147830991551957152685256654802999587498094442381122376344393197486826709591636855872880251709023429779403752096152422672096117516828789429526721317278017515794442404671765292606338093638721189793075674523113267515356841510993098575475025833427917186640714934726344663236827863058365056430243409245827195025727303333197680750676594472108150901992175021825032462448194978953576556492680994275730470421054725148726186569343830067733935595996476389871678222615201819627694965265003297749226838696244097610218161200577425178659434391313857186927088715666233247909486875587882571863392101073246875393211285512078343236501174015504830784094150476451248740217777140389179788238467552645019107407654899468979292544328530083582545319007086462903435340789211642544293113830957683687280844253125310846926189073577339046746970455841990157567069808152668991061400910669851430477205689583340575978154883911171415383093636099462834970203012809277601673643028706622658317582129492224243220099958097363831766183754372630149304870627233008503568466424123298916760302338552715707565400684542466856240179908141504857104525840854671373165089288767053994557802762707799292213419155972997013371626860734499168547532079587886199993647715711199200894199113375888394527206434545253540537560423652386082407018188655257453741288016693306530489761335813815223050400000260672032450984730005881624045630858527375967292422049234295028928205782216201844190535677556583049337586688273394673819640055556077758145812430402025501568797477754202886401940816184522096481025848107613957568598773834201992362133247484558263197641212718505571198202750246910446018613206404375199735048845438711285391059241310866656480010756454419274120954391659539197452017880175954069342916157241636710098411002625547123466005416373633662106629675289537209669968683784880951870623937217052963837955954106832304710227075013422269539717959401157144248300893300909324391855628476511538645279199681815992629267773077322988455844435189764862692782301333119733570812650116266075025473978486096702751204298930643649948436696564893067967466614919173878480721188549893498300809653632617586536368342445009308184772580068665007748115879527126743415324022502126846418386959303654513946801353531506645756642127617542553522002921349527212707285356033968941693927373559140962352701143799834341581193869577241752194847383440237463819328787361093012052414806911424673736457757685034443897082286735189698188442253107048498352709081507521711725283559742763177139813301692922089288587948640243106044709164526519260542179564958164356060474364697286407759769733543853858738074349963818821636556257609714388475739326655960138398074619842091264390200366274822490726323550546360309616702684210003581684873676814767181906701672793128946004800613212577523665654323411635130732686099905309261572262417244200385555143932325282522621759925522477863730502939772238570159396138649068841970351658114366430824723846402307843339820561076135539762369070174118445869429160122320866643880589739722813232236765297397690683464282107734007827173469924524662786240422505768242784781302681980140610554080022786105984174245628052202243696313715295780754524153349152380760008608005702497111873590272622017470398479882859742995447218068852361171938497645986470224726297819075787428679294234427762901853743689797205403923685458059376092342543693899113574163164957001735719429519116367954813368400770075805344041502064840299323065332819265336444585718396305139211162755743743878724277064636399804981437551386249841997943608924753383532431712184745175957253291908012377064325766394953081058493859650777156069571867733134533649610627553373431982800404886474413677701292000235738216982555826851605015558270584086978124054864851932368088179211073772800709696579410937340106415426497196997846076626813556311640006680275854096915912723139653707499822946220536037896356133464219750402639183486949040573648554912233116194816647694017876001211426044663075438031658659363951925881214791103698252055436906115513593763894074168382314871655525988136998283242099041325043692272215332204547634443930523912755794630753352921011980190050265299408654217603749905525230718025489527967538692227976300781867554603323284931821069261741879830325461728435156183958927312014315618946308158186243279591260261990802896761262871256013737533501756756276892926163866462374198119258319386916060056666554331380141617304077380288494877638720585341498499234567181039219779980731502604928788343089209308489868126132135034916486282656755800907092110421037765217807324464587985097155760409859761619193603240185472410723903136698309712929530812543176449826980007730504224928582396740086474226149141049946335183867002905921332971702338515303072525244931127241030868550538327921619661605731588006040805929700945539081954181034550467590157009198110448238100006585882641306207061379939644575166155459142483565828632147541676400316149099450317844231652339055000815980793686337065510052802756057309767015696860221324059458450307579661166634834297621544994281176864310548708802805351628578118537271637526109233539395648118321778139893046228171376676211888344800674301285179159124239277294041845584785858219888783436220666666488794016475146128173413091407544432067647019998175005542568230761897663881117483617185475061049732951016699844403221855561125927110772126079050474075295185036233102035358749558413580217619891357500499656843376288755560602334307539250498505653521940697580189186359620449791826307059327712615232008399601528788270961117933337723734482139999502793849567524432593335494502679410565872394650397793116455324754658006228053228229197086378863954898171331395745023498015579868832854984535949644459835951928679905550513241341216761202668621010268216142957799482113856425415972179630492682357689787361864529138594932886340500465246334061457270867976321311235950087271487881469124924131505271582344833099828573705181637351543626756692813774469071081235100492829653514428637970627730661388891579046831852667252400607654139518882695706443909966491631497587458739122455215264453309968308992028381075815276112768946661382103712542082637896739755513706996835464731047152476124844140804380569993802667183159822049558330390682169737783869220479054962056456295033025467089644103391299525787242975941832055796147102843298550711855441104013104246603868107061322212122591288270888450620537245492974365349738704663367440626594805520396622253749862802348253444674856885751530253830464999215614582171889485863488770814669008775902445072092207513178336401585038041060103819900116183236930660553826417369093137391721278227259228994395731977772643032921067886928881298434851887076311733885214882727085772369926122299289230391705550745373290128885933411066328493333085628917381428975136172082459387072180267166349343427909288158232474129431897948475412034563600066729416686838585699753436150293298154660296252418041251727925347881425707405114534544573529301940206908361243271248981428499969845500020361296769784017301449803854533753545385660886727479117968988937347045235898511168391798558467408000886300416973803354980503338574496797486016313260774693790235328177733546477770454158304371073833552238896108622986260265191289242284887967689194235238541922039242774414562040682025361569582428950195548872347351101521113296618497468722655548074914906769174789515625253079722532519647485809030131210887788802387058197381878338385475161049359293592674843841994368071837623821599921963507511252262893034281753490583794528019031903559710712974550497208454335393897907866179332712798471039287460595081711939410374425159540821494666488534701341394862102709398670126532368154822380869086029126642167454967433281944892969094633811953244959074144586828994014938080143731236054022618043840410369076067285303634396094315116966251666870824931947760898068073123063354144006319108043944639567266091726052254335501266395499506195852930595995255081921092297496060091999763510624041803425474620201640965498155874699765477824799464666092379238226690952640795874604633055764587108432799012307985179137181560030355635511582557149285576442268049038084210109345600801141709114964125778082274676702583585956784120651903916088258782686386399263347385238634594088114522586547601189915179349534537989169404588091123546983688409759123108637626565116823250254533434962556062121593849237308709636595387613166402732833722439379291261369705811283458742614142127418443880379043272877604895497800972210986918736460907766181626971664974464976979832335768706914344349269124731303965236678109352549089683012302804211013020176291846182142875271708974735465867531533059889535087332417250719223712842823707163732141942858135438036532872408621046413189123909980458999276570209270509642578585485189923326192507580987786635945012842412869824951652388423576597891185593731059643942427860971864024891382322223197478157616566411569438942101012601843205250264428179846770608380020451204714134529158267730738806030393202736785569305663680441754033373576097457383878383303151987904037773308327778184696868309654523814837148791642026924963138397662215399117763041418877832839594420626913313468288548620357886822732202868916069515607862745617483729073488023307093117182107262379015710719063711240881890834587825550484355105436197300636220888380955421602600784125409681838369717450191609947465675287053526838215115751917435813634880870800655978212782486306590278699144059793882937696335934420082630269764119188821177099712880728865885051374422688181719347286427500612020546683347229303088758739983208085132738306749955762045018841541382804470473825563766579917315739706359104267341241596448475206540301433579251779588278003238410702788221454830719460675783539244526393375653161240915549965365178767834189416847015354926838821187674106377622254574373049663009894079523127079588062725775348633346698074339739242174510093912794637140604154520714954611357331161953581685104720209615575718624191038465547953227587435098352088640993803950924181076075175960526467185044046728044765913372168672469166827080194341387465699176301376450507439707282548224324898350222331221877288189915247214770797615352977551994380038196422823780841636070982723435053273365373435200890563993361974234416706005409888440475587512008425037707580375493172201482249944734578087338768675258316006276298487330436848451509285809349469154502703425517233765043530906448626730033069355687872238536923935343806193018423715749012882463611424917300512770139205747060143077163195901261291077693430112346184763608676576235904748741395593968289198452185727741784660679648747033067859646601121698595183617245248837841584561354951717803778538681749366033134149757163186430145622032969124371556316604103460378410001131220534988398771311355986310813593537407404968265826936957869020594137615128801157907882286216388762322114705977289540767744720686179245147642923672069411900354423295415767018861322821495066389271138289861972033968531213951297970696865011379690857843350357515543242321524814601536618299567853268195272630681966298702497056897667188178362913317515670541720266341408617420911012707338807844372993010028990516899770814188301481733252459968273962698646985501294417253960622786364323714857351353198430627377620274942451328916615208138891176438798380800722406788872945943392541403507689370127535120832814015228085626169185312308326276405743964063286528285916691112818100246733019676561679238614507724385983661816247123389786477878330687239478724722805445713178559000731486949709842645775518749062221911078251990925483428893019376850330655538213562064004670793926769574569415947964183547005159868238880577351007100825957754078394583837659916832391615986481191955264334843284635843318210927585930689764755939586045275492101781256447483796919199244852648308879521225188074329389117329407267993323881702907728073338103520252707679012780728159025280476655464706805870230505822719256108737459316401304175638219274311606548927820219994326327010644953069305197670975170641025998945410728264486164932014215376533684804976353404146120678443995240385489626821223086413543034488015574720435527933673995534600808136957955039523648684672959478885664108999928258559328930000879005853735191323442210826241815773081934827187338907465362260486720893162348470894640642235613664383099051501951969158022917951606451488714304537550178615392579307823763769474764965811032343910641886491218487384106433235868531887509178028163018560330439188858557063571961082747533584013140968138427008096664633839720512318042814497614844828814118405712027106597880108340252007624585480668291796787307664479560519148710225744743911056766351240628552787272136562672470413279473183907108485265986062403908575195524794065802923854435563540295505644483303189675728740900514880146384534737704321332960945704301252442019271198332236882725115669549484295740132624482757795763681631439994694201816707122947779310377122137846018220133639692111688903232683582621096711868900565346398052867845807336937886148960158536719245188448870393519762406373029611065485058076755033626331262971398251926576182165326564893760575195820558915188804362578957774370763431767741244917501429528715402974878565599022612232594777712015861811194202419009734029131045114050463573325639393066441483111830558664110797848990293700744369609834368136786629149301730783085910319566977716593787866488586780793412053153808637269937643306201944204023982470405573432904533554082362005243577026192474664261999195852540869743195889731738889374349052806224344405438124889314933584933372527304780448353092684207315944520059509859775052929293698003992940034253877687068828496578284125175694532891240027150554433394189093004139898689551814864797613451685484429497710935127708962956256871666057729863317190617979884139289954940283131110470620915463884469218926593570046857351231204220439017848549514012205191755319134472147491415301910532676167793847489803764908884335865917043850999262905006406082554126051809561657288058891042140261136330224600602391231735308780340780638866163098078260795683447997254828165268724298206467221602915760011162724607375882473166954880609454774699093497991382401098565870858498891350895681169680782455828888897749873267572845011948135655532461212526015529863000719269709829171880351087222656705178546393091648537739456804351261327729948955593701058633767046056521858624975985191601027447916066240976153089853363760494155940549572096759268884564433789017802291741785793515430582409024571094360749712621799048191587305945352226837492680557357411216882874679080940300954363526629303900275278298394540353579426831002407169371227366999064991652350864696404017966076744800620818646251683253716975648818630950084667103558359789724950722370436360429200377733577576925012789472391923335127061584353692726941790569377951881303267069029647874411877853591495044704115181715950585664916883978036684005748184785283520081873461666115189316600433247341244442768497947457872093495720453172113066460272077786184020238971924106369761389163767094026620801060921619447959572306866872077589534714052575412026639045266120387526290184674067928575563207907212302164990287309338746772465235263656547906090077448795831669833184559239374785219254276792587822764844856075038959272224824545513795715593902169129724051080056465566663867729943646707498870428845854714803796986803701299887426915782143775193038715797341815949191492430360708500434460306448653455284570097232185542716460837681966586939593646062222913587721650134500589932976619748228650985756863709224120179307369283343103866934773616035245819602109642896484374586951328219665573160071495221223716070120552245190301887814370293847756767593018768983178282669412579946659974578106886144299965738444050440016331002262944278526680567715754449630823556532540221283181876582402975395753806679757981073196485152339765836158725835039536794623219313554508767753029727079630168921040427006021278401209547085186348486460512082046589982434863525512481096760359535368728817527776799830267842480203021384431500762791473434806401366574651262642812800348807665375540116217767779486733901754826228406355189864559495193622964473847836720035544413451371462100542091563352277234654019429142485369623105247925945479112119874657536864409683659434464861216456968166160049880784980412511173913838309423973111542271939490448085946854632863814510685926249234282254279617597250283902434272611418929801487691682044012181057174347635974257791893516591575757387193994673762611658670991686618985182846766168615008013936575982903373849112175475175416875796910557621774743183853827606010829957783812205729528739475318134604862770554221329729890569653947200492357493276186588271897970201623292552264007594283222021710856793494554606214336745697822108631986543425238398177474635688075960181869568421243468475717702851285453036079005021375564528190584473719880903117364164693718043973322203848586674872443355448516283899286979605534382654013116840624281968010562066254759815840858442209678984697388185458583738677260718980253475494072150377831923134898762656362529915416695063475065764565133944460909359813861186471031678702479475391817660667798075517864594500018817999238555186560986924476914980544987572233774865114392118967581979659971587384741828432148196619066562623399359121622836573990353873611765845085586945393535712892312032907168816142837735644364730943978717688727113957100513213893236469408711007977011892065659729954977451311992758958554707949406042128959846245536534131723401226855420849107249430408057142510560775178664570414063746655859671576311726441104017619375593858308872743677721596088919795955961481013169069472952914318401790061138693916318448651896342688624055078077422139036179412725851730048133162426339386589967567403195815547736830317415557812073250403988230982918164205427600363566710347958499724459931623883974191609955655306236093593733582370586568192284137141597105728483203793885272736382085728667955123063122853117978969187934828498515132743214978685670845025798137207864620351426129319165854945722034451128498598806125273241731643858180903148618687230580346350943185204422139622813463844341896810641235139190588291856063736495509173374491882140840574775081361193202452491878185981538207973026470598676339795538553471112986126231305438687508550396656704707315178862935468985059811770168287961971251559754259989731608102804439835706731144686394439618216498655805542193987373593026949605803062082752097291703768745467423833845945122215848361033909415958811376944016849504190915959660475511722824273331661703287673242401648021837873684317642091125946404744244878165670917256935347253942608495881607482128236171346615034479096680795016391684359172004940336753410632444608522803490656706548491419544977175114463315604098104476453309456271901882209000802794121394158263626906086336091521279098538560030727072755222145263159658514186815534244433870768635600278736968408805783191916175447871091220957106006847495820833067058886661661385975000388850103485779012523243722536665623154626525589625022053624393951427368157320028409680434600052713712452559504026592589631119465903742291928794800490599751197241482818953560303509206291227329876366576918554316684825468216504924560131731164902023970200479672917985989226148181145713807933612887392676401663629737459711996948593025488819306720047647173426177157388473320697804841488337747752630310385286355185430922654292783711746620993737328902768259509311141112979186296272400317957098108250699913999965191718447595376500266531813066685459482599503524882097364633173048889014490261476516898932795390881512642824888301949533158652980394426364013362666730189165386254365312289273820431383124624747588386858243976849046269954856640299653364326261352287498925484399888739026255306782487392729506651601109594693122944733533207722707749969322065337268118605856585692854758277778949202750720246336604429679684410507282676811550783492317284809383032422120220333505928527640076510847314858145292188798942345265794122694344148829570706529023718851414604785757422167170444288078770227457294994548531413749177039585959684639687315118066595444281761589944929660929030895835790544662924080903832437852797570566719902886860934313438734250372637526465373438815501960698530729662444458299401596077294400051756268420038386877076341799057809006207603198568506383928560197924381191021569539114359865933136429486319318006377845395974317034662194007747651992389134926516150555917385351144252870665736165713173842825290034700792050614313347672989083209671836847868330054778310868125963024982018041581958228302490482701195780944142810021002981181526104659871568318360888218139685399405863321695278150804867279341406526880102134580566572938464479287565010097654137665929796003630409852826457424871648926365873675147376191671690427074714245090041766985976750758526687216449700595037384392557489274568495757168736638892494720381455423369551313482949647444450216348378105481535908711382900439350983539405730337443044979105899030994410083093527717141309866768782966782939280600536061687011821725857566734750401715033638800356462663327706932000400879766422469827551382373604494700141483815035277494965463844434501448917761926209104833916330587339799644994594024621534100279708512603058959062676517984618161358884362722628780530099943843303820759177244258649272728592088390762205382639436534636695480427104484872770667027833393635468098231301777894119042970757571301461837610162392946263602209899502327296771390892129675911759520639564075055657267930824354823382956796449939440374327668316504401423760060812189052229951200972486964920564370125213006348031959552899634324772550830994765647856739675973825434920412059630115528623205083412702295190787434454866266078827966894793795562365562368215833969014144970862245680521800653044088975154283247763043248289755618396116408639593134726328075095925088312848209394719404032085780482289338820409516456296641058472955785148853668004494477628815049093496664084843854881375074785631063725208817577230171296881430607551011747238444219367252370390855882444097444913780748702124917830902396887997635605136605915735472266443267034390899061565300764237257652400505230067663846857039885274460898244079966394828928221981564081845369988443831281319821813368662328559467325991247001507394661776650086663598487830781540561583446047766172271245585488058773553284415047598212035799407678438581283078345399872795113969048180897582563061803882240045789903551244179576227236053359036488768588148331910114811771816901989404100982489365757817745672343266720052285988168131473404552283638192146248339518756977934857084051325404291666612421926767127171919188208975495627650009877404370965884672065987052861844738057728069502416896183749145568247294048114333065665006714621243525324391854237056808912677888337744741975634910041010807476210164773428766341674128698545942900887188785558508449369311409021452350154677072470350157645218529187450637501003158027476333549560723356786741364766217663859395142377877478230750003903110745946667499067675209193419373267730536250327919952566042460795159349499792530235400354608181396662252114610448526278946005278094943855823818917366585115095867985755346241406692876747095434792438224323159112738118000394599646891759368998547320377847111408279574324919705049961033863129979877344481478744910848590744417343701982760730417523024558232042196688027744192782384800299091213995439461706000085287783304128171285600199597738395671954747815758026240173298096336007595586470536546801623491995466648914377369040986726266080537077153533407537182405223978717973250837287569977966684275110613492036625898525683117647549000430523062055170644350473899058582045786917360606477031566626698710281571960012477538275272810623889697826266013134977272796589014894851625294182602589615645539691843956826458896198257129906002859261441050894227781162362204967077756972058995580913805622879408232690359948362801633767716424231154932358436576294813146812553546812472098053780538536051654922917059379132463333149912449872569512615425667113969556420854029737845889567496018738962806558370884482105780022258785343817468064158637515927098301391115715979001101835630882926023504310772057496934371033122326325135647383167876517183961414248575707432695150026323422206202631390208215107912709675401853139284422950090092136281175774044262643209666164044109212324503177996365454838282838864310169120578084639959307426147328241612491240578134816602863027643201639519412827272712664668314227001928612775403321834750112516988476384970156578175141158259988409449737940356548684522929935501607405694616624125538898394844824008697317756008748053936648025644116529173293915583750871348997855493032802640700176833149376304313174992684825896467381042467153270053192467195532161366308897284945924386314400592355281874694707843297298139773993405399808589113906245949166067794006530668015921027428912441333990759250598342713037909974263151773529256786608097590761254495086119479304330121036622626909801623990026931663880841051988286579370648699399849670512209244226155422057191269929963371080860727631137667600980987262688553608533201718340987166968486412338787311690128308553227018672187026272903619737615320195912156826357794465580515537910013129262894307952180739438300221254246756361664274254283012418160515666152128649022948455985868565368305715586713241736482027404069665439803529755528899127165587103078577145589388939849850688421179221701320807407829029129573167461919633663517063203433986806220174993680639424844666838938639535738563084627587490203125283761995478088425226609401012184095596833713081115367917027128781860530791918509040909595519108976134987143634468812503724255587604860806820192080279946725821605588742573850860991161323853959983675701089441940566780416999891139568663560811926552320581865136303472827197864286426147271352575778178599488275917244605472656176889893444921528352558724783179201944677417125742044373219172304329348111473019882270343727168754292800357041293058067570063541671488695944361237346348401790680794926865805395282870322141600712826750356137270270299545500079372255910555554020203357499737335787547920179696666736342577472741168271408886073414609687079037521758793915831477125466385072752471945720294520629442267603450879938833841764541868356522185529194096227494837043838335671713508074221493412356970135774984138984779234472400394285441083607913614943593682805223307102895165540416020060065298203842556876408395758663697339749166433202584587729450382988860860297978387831573526396703209451591885814783760956768337472822165312922912589018896032366465845346579934440076870660029277756843392976873091183671758967041419580309206386532347988073777624595873782818930077213312934526772329586847953082426751383990084739759973685015742365654630731782251041050691885585572714844352821462382860799309988082286663087631256393378405805776653781797070957982548778148671803856398712074099091096569963907107394892727232904045978943871431036479360363548868590657306076872584495221050412890328023378543910062982635103518560431787295516998136951189266887442258212156323854363347151197246223269240966515631540943407812348868689051463372342857435950654650284495347272721986478989647105900317645081312400514941751988534607848764347761118974975468459276935149239852508480030866558643806005648899935757193113771461123585158240614190442340578027528867334999645307333414418182041569157491113782490558590558129531329767010636732551412829900459659322647688023596125358045280664615626145756557492867547330713856085169824378188977703209784809068303644912539225780189892820336893895966073462397272924991715538598886991603961178101680924851531098318971395721319443978946709738971824120552604532237029824578950836927337286748611892240287911803387270157340339851821504257049022485604978761839485177722184506426507878024339151648837013062316428982937621489552137117982377149152331799197933336974104919208273575372853996677221461486156501985124314228671187098232324496249920307850053128569617725137107219821678603336515891548351547611626916887052412562826866487839285545891712488012776407687119872691298250274600032063524947483349159780975288706508569195161623040456893029021486976689830866938543613198231532418770048925082017355801791610315609820823399192144646078137206583844458176179212447832822503878930047639176199528282202541562841367850157821225655602029239274465129173028722710936722680030061982321318009678863486694435599867885789283231224131903194462175020364533506288817251817287856130709223166999223571173710335440611200588321792097339628995630043352541155310864104045842290881970834791252535317454623591073022650562686788564917502223988494845876064831753547173712880858206126113329684215499003102580513309095277760390036337037998320292331876503806885294427491326846104798239735807375906644795507508195332867589556628204422940504706770452440789506348750674401511514664353133991023118758049796947285445268261865427723052001551564559941671816078062077657530936067129174022486428693084662805523220223433911888386268120445706170034064112231408892097675871313981110480419678446855924581440445283218146518165442264126818794910530770321118618346859896403431855051859400667782524548338631847739684639604539752906179908826968173500719657314903409900199463497964866413955722321389363638313717242788545025544077298572626022793536624224010895406802801211207355981185366806190187991090490508572832007264295121531007024864170467353685028510784786018609168245949605070577206768813534657100249336015761174368718432372267588608093157920965120764489226330523992580517310731462966726311963741239429492578057231256206402971737801288252494113287080968227848081737850787440664627307452332028181857012542742926503602673437727083071986862461823957576283748522565566607813160248716318449341463469635171095179644839324706676978264150622903675607117129230784354318640107473878374461751955617941626198388417319244067326797025155823614419496920771421447567259846599762463518811556045269054864146867910389501306316495639709343166472557378040339506864390311389622452575602424047278150369718218551066555126008050568708866631490641342248255723301682674288718867944296852070803748098342363502129543293085097932229209966185992540563047809313030716320678403726171326303824432869133160958123988422489966968761893155467899925013243537231843467307825203916069654410712467890604316629835400057449346906608781597090858961368976319046121675280808894836528507305915822184626079831779413821302174924825454480076135057622419331805926485600240253095025930296474631483655189018912744148155437281630781848930424023601989637773834515278272398082309131653192014076870004933597841908156913052701452124315060335406571506417742896275492502154812951315696312359322255614454329198368641480929080528131291351748321337006884979414815260206706024164950719293040430377416263314361550880101317759589432615382571846694081363245662834728399740846269820259845924168279842953000660116034027162188107291744629586749386458449622594591261371033028064189138675851859625349885067155592154589524413746907094768057217898438726062721214154748060946663340849543130454012438710432985056062338297942260861348856945041606529864011534814230212717555883179375920567251156486410766685140245987624065965919909728088123186628840945352460838642051440220781526848140776969267842349400512718657822337490738820623501654222045601729049757290860393445562635034877126966406160688475420980537404625146801502597452309616030148857219302499473855331598688202545567571537687565401955226276294752880745848140223775242560597139004653703666002625906904720272484439671262175891500889069917604108032299221285178714521437250656217362152631173821897284503193210037639718084125357962346040262269260442592353945735591717466011620558245165105908236344268224695902641938032031974375937468653264419986788913851144870790783163455531249239902647705608762812868314663729257076695972129522378391057961859061826749470918508158163302119671353139395525655809235925277292706245757529812863213230420329390652519198144203213019885579984709810006056556068174777833214747175970190816950420508785871415828314699913361233110642278134617785117036403490115597523567671059137335597841921838633217342832465982451215662832711712782626888962407341218619141331544415296862768210045282462796464156753518404483014934268424505195972280560153969556001270885687944891161058475793708350290111908094827192926996226746303078538909630961207893663585763259871974294050993940013045342005029305969971270318990117597826774687532115524589506863340307434965314086630193715195072861469064610134499591714502227844450268114302044169232089824729080197158618045825720798205189613591984639732246340268332782310870518849962220953996088981049320136434519824574686087868652370540902601319353925334852207990663804374409976166392130691108280581268928321877807805049060409076974754217088830322117077562672812828932252058561150555841774168304277827202504172037054092515060646965193014426783341980791870987108529661124799465824890752185963938004034573859105334659392839503939416081481557818822244231136993314230173712791405362825721689180212948244998601157305770287432684329076288938649073964821032929831647716744428078680082117899816536513222070522134710005249072042867431930710992474743070338247328457476426135921641993792907078821339418461348580858098376664171537254064969180373282143832527990837817733092775968357690038722552754145330719923175340453112481440116963063523879714742206340827820581233932938349032116149431009807077702101690665686281622071253674541855328633813548083507605767156627186204154196837769397527375934664402727210182441382869483073025422899159099018190086953565273870933933833516281598820921939200459264333828870303807318865214889401739491553682617207441638501444404456331755987054347416904840142105956678731897670633212846308143645628466324238885082358517721111955854555226400328910951797430946663273323979529279142816220804031780734240235235954382270177214884262755879665832963485908096588983427030064737299556706754099292714637523373653085192879629058407719950380733507965097237482014132634868055560739274986061055908513187927309771940297410844124250056745340748962737234296789953577651358283693262617036360362541491167730858558349801067546683172589814686572995290974270514451837126285118899557117580330082151620361950724531134336824594471379844900697811799590061361224638655294890126792085826580962699045014272465580189238974440806220547522946242932049484918738914378905868007899173890567849515075067695440577531500569199142564087297974538560118412084327987147534106409137164837538921327587400841559880937827745879111232539954415098865057401120885040538344053696015490689722356526315133166333393879761331369485114224840122000807008431884372845589922281621686993612359154609464837310547632473027142144510143661335382336897956984643698003266060523169932753748265896481367130083709301225924357361785481163728024253294056867351055184044398642260282398418013408713592313776813036773824294157349360987561614149958203386708423901472146982649599957128264052393259827060031964332305925190842301960214156159663555819357270444785644370439754088980217875140213854586014327054624767859864229708164461003412385158978898206574671857008464691597493690419299156023409341900708817767509032800050539173133509353418371672213242515915237536705359085644908585202971024911843062308691568167138429852543714380655915533633857545861564363110387764577955204538948816039283302035510792572242577753516476548536701192379841920935189255285872072868966952164921653190857049594823097307239741566105338896132478756401978858268952183494954128484494143803344933764072599971502601006966578894823972165208723499951742474734741791362150536428824452408798866424561602328549829853056240338543462783677496643466451587105122054660303524548580313992376935129978246849970607002945219578775555471132924206383478746128539200528823110243841290241677929520777225334163777959046221398654121303759675068407577493700061836799724946714072728927396274766589549023840684093984036602885573931655309888552687043675519251500383192541546350451988484026117953409424993422450022516220082126957430853846899110852784470530154901419769667699881183225857960659272521373831877002285276930035319518418334487614359085792721510369466443589484141363642777866875498089050243423460895895500774773652551274644142984801222179211129744131942453696440748024256753650367170423730109332009644761457588780685999919951924697181177530539670200190971850860585762887730122864047911713025326151118238335071923104749611228341306414577944607189610380204520587189985488380971909133618943633671308980397931393264405898991513807137793460370935636068523345060129025241560575169247275225406601639564561479898122122417123431208327123785795313667588058961662931130557134601174592325632953675105984934996624588558071485832486476862163684178813553062108359880452344666552054889885666416172517728163427945884717827013225288941362895064567865358958227357183439996016468144300105913330627127650253066270432567283111503536117390400211506420315470330205602163242197070032530793428845591953910587346172753316839703049990215120701699722702765165533220146054664923202956325835958123339080756510161317753347049777266475396997162008387218491822728286340572474844592956559167659973823507541717442199544127797292170862922046400488435086904481440248631337439917177323083326262103303296548365920359068267401696562145814800931833422287684267350581887434265388021229160016043921465307453523408526665883276201201240358001226078700111573490527376530119344551137668102344351460310918009923785392673856430291577351992774291111388118536559028604095173062517841121360318638482849634471198811915973248587477915410298812533711190952721307977534208715291074961323713963261069484253674859166266600100991434589636631538594166127542955601087222518640783526044013691596271395354991174701218443582249660979225850716512924572674393152688324602720160031423898247205503038806602790161140407166717068037213200353492175597895821470062077844545897719336166365814025032689937460737826543778358137152279987485193065322849639136877176025245608861567799604226552918235804099940724411951376559331021258697072702731553933466562961190781122616441472182882156735051911052529930621213635126360442640194645422254079447528016436172485842049403114120638660495667044212722698525182331189934139448720350539227768161113447621661473087457327092178592709832922659529849592943933570676550893583859938013282770507200254838786278163184284863517444744386193307656446073265897301519804084574079506236528112370580755591277147351968183201659390221225279775697081733436625636066879569496458654034549082685299478784846351408514665777707179629700283026688239211380068944788228684895441183468238732518751063733075988037142224977529847821556258059580738445252711949762700940217753857131997462811937863905833497285680140705812158295331004006347847681058881368796314515914223303640486792117496207573788960419502841803035601514515958847657081705570479635692431001372785981420259627161453554638180432948861177157392795490478979124737901286228402458231396124782776086542863728170030608543755902888993453116514538755300389505834174748999142570316843158357280055657703813118581796404634036250817957317627633112530284687059407914995321259575064055117827120159077003468266887691852147077786800330730590479789787173439757322583983348971890996448660692494297441096266018760197194431115358881771731860061668418440627210784665376731026226089430153528522041908739699718292964141435976722575078165849867292766209270178583934272465759153737407791822584082183160000960626891966873159203066757797633180988922331326697133841812940927457886797793822905045373128723530720359248379050642650562402788194842329223373802323611037121406023716372638989248689363572443397921588541323575080469302705899134746457716196662508401369929347886174749394507427166480685674763229698572703427577833721064647913900019601687689256209286895472830682963205567323948631557087037339197050535570559609949997647760353788192091530609631092717175994021748769830310308249741030737635703034151866767592961693584119148518910272341176207147588807900364456409385988932401733714516381262089435657211989691027422176105916961161778260204099496304978742362224267244898356202957110114842594263642012031413641086934074503195632145834526074270145148716249367842332910017213072470862938168041217007494156061676177052124479781113353511847191539951141968900491773629325410639068022597257110487798258066116282346184032702810427851218806700112128865072718770494548210906824562633031589548631321671837809341509525452274111943832690738511032702898058285119726625211231813047127108187615589795609856298758433139716327716825064034124482123572027272461867265059692041752758289601002727992007132470160560381498769317512408675823674455516895253109961269680542206193066458314140926080627429378214708047963063078906498020021701653016486221579397091949150323634198671774240525573569952157104113327631855390195928976976181155994692610010109491565517503420683662759571023508219482452635536596264370113739909987645086753649076403345941533975150503075232650082818681353887456219844020074991011241110196479533848700672336650016370871870493223035309713075927277543554203361838065828220805626345273225856328413758136666093831311637308234521911296248034548168068281354094927383757887971322170346585371852819721798859629133500335352168578076413082057708633577511941628585590962621328569735049664849114694718797349336364573848564462688975511965665385541580547815317088838257653004354725348759928839584597160889976439304775618575184137650572016444985961451886036255716270468093850504330682202783733299070021612611837789339943769186830626707885227841881642447201857171915344679500161712588776179971247866431201771390175751358337383206377476314468909778513343247371759820137547615073251619897571878170926495139382697713337204139360980109364959585818427759932239913443106149910485559309034306204249458549188236214389358480127408040303191093302884542177999039579181915965259931087216387402150116242247673969904195722964710376762044840603317442838154978634070636018165746582723108753840100268869854288408457591210409521678948467608316709826043604905174223040852600269222082130771939290438585715398100197520649887297545816184351069387247986587131658288166182993120148081600672336785789439624300643860023938803866981311062868080808924970208179650774941957784515873710022623548691696270721678583168197487197316188977021834018146962213526944649285948264415722347211439850545726086267458105493297657797668674074260090920788309309066578247766953752646296155938672220659002298822007617389446823341147582926570810980197738319546827145574714382768299567935687420263727415087881260871940972526793519380681339022424284874052493983964504047524904844963194704703949409324756863374254798474912925676435645269142458349862628303594799010936615941809047586178027591710008823891492947695110028604127595927203446496338804789327966035846277307382794913369560589071757133746632918471720935576874771035749419192711769121524456231279945600372457702298076668794334430838045153806537527902425823199753931439614639354485401434250071618851095247031621591358058440195262239406068674076033904477992040492278196307693552982408941930138929831348559098695419465690746441907494581209292371490706824591346995090904569985543035311115303949582385899923183320613335951217816987250862337468399200390712889959832499531070805712226275300173274782687372302828785987928524489266419856710755609879190114453972939734585774402556024478758824020629004329321514192376586744174215887315227984381889739509834329835745912063398481599461783498717905446687536430976868277656376062514980239737345386619685463939113516603575219911834493647200196553300678471571088090792085275601280434924398112799968491065278830921153100357466525469689509572659026399340973111772334590216028074874728530097401366683057051432206660884922169913586488957906151311795694201739668354302113031116922648743047954920072031577351419330750179818572662951074286913123226521663968322539372334641341277683634185771432377206619564537835506738332145818290513954203540418912245581270590687805943376510706618295935756430199157795154057692172196416208137055303933389714706756244178792570479938852059367043551485711995906520259184596364646358740076956280659061806954420054109518694698682415567726452832612062565157715268053607835953987734309353344299266870610551124992988182704489419966931972555730466297327715168252563833338165283882888063948400451771124501558066626311239739138386705501273207181904285936090438877942669534831264949167770679873716957071836937990218422792511138216773357472238673017081864816052438555751915894214179859175953926181944552389628351431659826553100917319926774841399770285807770671627496641603126710882699350081391164075325961746299301444328461872080000244719851752153043023955859662374477451068267076727738629396240123248463580956399611986901454623581131323135518767670318415665491591672949913129783449575076157675416724075981580270541269448936074754300473061686337243713347531761490852884920803104255935323863297814987286971775238137738163655659927081360139866985874278847454891914893804120088726408751636122695464488228063561466197421525903856648758972272523839917886775108971719043103247327973998965500805727783980390348101458676045435085376254066772466923937502906966722589238901153036681272300857354015057028983280490355376815889651651092481187977484885369826838385789836671481839231980533025035396334874411729419117580288746044357214442222411262840061993020933970317185817858087199533512176570156893899265242587425457724235686682845150750343222041624620826830477140463972914925922636675594157036226538685071958074624203812995431504795407504467422991722879176147564440046486268721250969216433896125144951972783138873720568095752832032433681790188469132467481519371801474675789348476113615760067317171176221507344650625962436175695492652360514307311296954431253917957801132044223567784505813977114083068440358541200253984183784011312900727210230125987436532874731997619885793208601385607188005112201948734877394813621465915162489377255205190809496611661608258104540346937070517341214546585258944651303891408047289834620532090472211283203122033468523499402293489046746988007597742924730215138894899469368379678525102452746183218617003438837285057986222384412722122976508249716992452413574594836617614100859441723913007806489331707496491817844811843638835261738009727573546387359807344373027575857583787876734839271520912768050763294522826480028887472639734761527899185636656279339721709621719455637653506493168825182855441023258450444892312942375861787236447085176536030003190119455982669829758360657110714058477266458092062483649554134704891610467625312372415533423569829254234216481632783105029315998168691780885051613017516890980251496958166876860577398589405440777538813474783526304519470781784757920937102219197487168387759555126639698016860100281419212457274118592712230587324400465536846924844245124013874000807172937373358323316160625205080330079515014161872085794966130363787783732155593435832371413908138313485907568568670846226898405302286872951201224977875477904302665490790690569790880314241540203893588590828198524825869699711968413299450654563109994644934245718001080303767785003067395294083916709141824383634953607548970647711788847444380522125358088360676645329182920096540950648196930882658317996991891846186050157010677277401247610213750135340117114326230470469787891907599685228346194078079434721136813936696145204585439896011616243692011055303724662765376144125791341408238454864276358456255891518046726860979352995098813808210183528517997999805932305334892969605824931919153777248769189258441721352763436394612998320953935451328911367523255568767594319109283495205973238535676603491075631603457978663889354939162996366813143372418485130992619130600283431363064713486020358733082608936316323919154555663682186459205172985778488931443043531646479882002546538510163225932767974744675879189436953723809511455196709340273254087588389449326622343097552235097508384816699320875933725273925700725729145869090339801418802109604430859907736950512150163134313062303968325452145668597023546297513775989781710905687970811548954017282016645013424977527285307226175405746020592325420684287217862471046199647217727231718322276586682316246430565720297749379753961515095713777016434861331065891626114146964136940710830408665602134913952861281427650803792021198613030011612001601941774945692808829919129764404555121983919048026887659069578719759892904812886530808649997314485203380566440630887373599463862388219625494140739130053165874487969001062808552127380310015706962096271065055687920217729434718776928944609512333032589785457798703389480399396539910036150692793100387123677058886927909813953046593201652156919765236096773557273463152252985218745534265811234029918685329010827648194927920424988572635099047566987084703031618924255664113472811259259508853890198972530310686130125034998871293775934279871949707085495874820602958071653110085689270773888969337110368442901069573674568447524893005970628433079368863518199572613086449389696715018733570991673450556751327734549128534783176519899110491188887839554349199827667790930995907465550158145827504863628074884032961228617911252863217728329472953229608651936674624462904790169525876365364399917519945205218346306117827229019384567710697391872537720137248888726822098274887155115739410508038798905482978946985218264216604174723522132539631015679653016085020890636828724651992722136257545560661054552043085513100947507778807392878668174534096769280804686757491536581042621306388939369691850164474640601044310854854034575442898264133612011791116463135614474401628546402116591018406626063037764480997964559865805232431154159451119005109473067978296239824330661226466407055760353977061069273582501352083899841709740344202455462229118442293113704420229742651746152821769853740239356445614070224890143520844720490466744675225648990713131420675002258786146723536015139420543706835355760366995691087649955306217460035306381537815143601227891973427445798636323691589020056018832948104927841503295782527100847685610362986926341318642825659251927488133332790837949011302573158403767122424528304623786322427528963842608379615114826796394331032942110778889195251149434982507601589179576866684717141962423251792851427813933711068831407741606613165754691211845925687668078593722253299769659473340485675408363190860732390757733996793981663064634217263089755151836899356922962170754221823881840453862048055084788211389267089993207783694094359677420336612075680765712169505522180862227653955883502431103688149207524088819639501551409154948554020572892036088935136107146821836819565463704209525708817702756481993157910189862766125796866100852655367934846580042885681015074517620815403293485733094636548441051560407088485529121729049932601163816154160481610133967550758918492899512851513430914560338476221191093812204708097132505768371318520672442562264525143533653057341563221754918413457399260781922366977564458447166043606557063472315176279039177285374670420306563663393369706779420190391360390714782333996496593944239306613657029658625045073067609965195500887173372134094692820859043695102525053386770862036975015152148434352177080957192135310172148317412064498487815904470972189869271164333579903974208154510509390111727586309987579852285047248346875959006741724126748557147529399827420769722928844887324676067362604602174381648924776989440822735640997609954382837558677867484485287252977093958616518580457605661591181064812191092683431499585522722785139697623035218721404441273631259516497604769344443616517109996643037815497399198368298347872994321611423365854659213084992867482792550222821211243888315286486849830161569076474485471130175028012713530092454056950933654566322456504757656358883154417549608137576428164906274209202925979829939257112716500172633434638491440234446771734805429687673341318634426242963985889129598427207632381059549400242986120786985709478408881653690674117475452507876043939412324765284173078978909288100816178606704953499955504412253505849860031270353935885151201040964795087100374613822033961252768302656397027004387710315486788832252898085243344956598182912174205207553947750670435551859586211727899454393685737896485473631503590294948740526870333864510687678873358904675763693545603554972865088846263834084118285783373056178145172428392863929889679262059070230463724029886581063135811815397278268739258711477202099740451314525878512628814576839362000619588973057477748535647663727759051867261279049387217780584127211540792016741368384245123886870822168355039049832955099531325040485912975602634765708559173036984353022173836786215144121026078920039428332519020526641272608445999491516372032875157448278930335524891187475201295168324092029057551744008931292979954301067555016982054391927270490908843373800773279690650396970941365401290783280238751443351369646353582037181975552954129771397015166001683649098866089813965935091419614814731969768041138605711990237780969122319665449624695471798080402392441382872814334205284002373066531726485466713761999432525082198768299939228808706730359697547061253830708013455627565944717096166866469124544393961522023736726906180925763031572945524917741982617970834478325251145478468228097309448877554638482339173439777353294083811240417050765016186686561398559893180877984670122383297988703273994331512983668702739579323286428534630989547115010762173047096003242346372474965384864399868790211388284096313659072384968097832936662111115803994647690451888506959920544817934999394262999156937798665699731537888906832490942986628226731481738074094921980116449757940219743061277520001400669280801063016775802312738544686112708489364927232078009464895207774017986362906750839431893736222027192581445606244251917817072040474811964117657728334136685876990853330512296784143199466782297715757036553711847613716337841208122357707448479455792415391140600821468314623531794861988965129393272025027429169262324719144995563930773357229844533666392627143978015487928837908927680539469022263202623630211858539647715384802812476399928275359056271144629671458870469137354519152567269280829857039289877482025400887086418339379497366893985525003064225780534180579769764462044558940445756454931926515455119580067556648890100519405707878531586687837710659076419617557159346444363429847369396888561908312799506565138280508785993660208064693360034863903090584750353821945772858893580284599577125282032842190752861430770121024346440564757022923354329649209888253550337267199430670754044394751317664893785888260825380480261493286842406279847387011347527838651212577160318616979531225575999414593848151115265047953423910942947236529774941827447173951271873644107258003102698818446680346369231868377580982928672399766694063391944806837964146831080145466798357024570788599991509035725609826946842011784686389517401219162267498524425266741996867805820558710541358978161928856523314020151703978157823314925572982219134884903976004687323981114990167882260578897669981271694707326452066875480143949944261331282594757040566745638360046982725555228775094513415069126715477969599319692671692388937563864084385807476396923274413700500410103945042266209504957785374028514669098627219154815445711768682005473230995694370993561413652843953533696041890084360929207228912058031758181523872452111621036141139155363431624004242443647395594633198822363992632280246166628368665155903329017249724998683108119794518984879051178428926836297502072920986657635515295703706639014541726808937992121981718815036858215680156958780806568101553173458560945951689207575115879598966946782657442962400434562014832985702591033655973036633748147177535105054136445246694570897665942852375905376943222474169624854574644905395877933715798137234059559900384565723559625799772360232301974132828778481903521678270448776049499940757898463735167108100216686399633788477662188706236934696695739269443731955192899872211910170302966089222535591140067518616716806750989839485503925211561658653324378927449716921623189763585279447687291662967031667113483633523213894294130040408009373368134402064348823016082672667346455674221206669780663498883881915518381654795225589767445441931800212245575942328472782204122133125952584928445301574897445057410634143914720518540007679940818907955086418150791266746274218028523891667226656162759502460235462163795571170227192327496551939646124800536937215477336989803034838081245626517732200264839570047443021213816761761066094683369595201520466662964183477698116645740879969781242197621660515119074450961358657309088534494042695306822813095630730618303781884839394124200159750304264934220509210828181509707059928495777580988000051238434962288333084510383072504456299984865548892687988515112203686889843660500535804258096665208328960802285523798054474818159626574810184268990737349904262184182495968715304310824832746855659442153326191338062664640178871787515956509371042590477520890298002466393190108562546094060936121677535267152090127962943819368772654682242060964770567302324507341285140861802133492184669978755686519226950264174715485717757187633048899938643876847511782807948797475194254679839641600172328259837542593457261295937211315386079050951067505223383341093267720633006510517349751939671779106480806493869817282345448161279183434952280827675850307088940580261634115240701665951021951774329703236251457848299312075650277413263445174147254316804933208008484860380024508262630966012258410182285057999224130316359682521259767412010795406860607788460772972486862227453692868741066018950632391073841889000652195986510757445229678061055636977358502798515419742055180687861153380128310246938022123757441440226293088187917058385085184238757156006980038921855461377881376811274555269710730861073487530992860625250640804627265353406708249139501487611774597321843068460392438244181308966656231248059055922272860547556840781929008987652656785254027613338015657428852988411142889027049739171051330441038209348199942141724307291965659756584055970948764837987016116241240595311185126370114234035498118914550659909977601379625711792916212200022214322174697418139341484459700866476619359234872992021645253985587131230800249778561894754809060227622273825949057211294014406464397944269922122541037659473488919197416797579007641606439254426423968572192139169533908236383738033654896984056385858342137350989987142543042647588526041491441994110050917853719685234648765370219717319144680524395599579878621524723575693960467391166880557573367430879349007825495944328456362844885529438754726456883487338851182083062154383769161793333820258054066110127604731978724631535458370929430144460574980441844620149739643938527126181458574398719480204084861385394196692955033535283127981937227863439272742185850210424544787482168211039063523110841575657599965506438883014246497716711239945368040779046561265822951833671194408654222256760463620484443730365592685850940995022149273287659109710566701882640553796720635866391032039675726632727815247373192227885123835392331507006677171834257469305012742221913111054879800875448110766425263032980634905847996795668660399683029391347326819553757079438529511601061968692786183311111292029987203809086706881400250115044971471148575320320404948995965692391962427558837827267331991874371707290741350186531618425335730109170301214749707863454965438347243433718433060886661404340601192734055771461855925026666975016752217330460776701482134058630962431856482158456970015843968386986517442902937515809727720818369427499053190627593240841439610379588844326450943993527834936415278604244450469515086797261504602733914479150621134970890438328855649909197767524114920959586780490768356410525596776247864948014386523846141486946115241960473785053534762840932687710116047748223071024021194022992803389097570549052042515372483955264266898841302541139125821628936058708961679200103062365879404978206372791428523270820683778057978202327399301340796331645747274957708999863481847085466791529310529408310458452513808118622959224128475860977666721552548003183788304241642142745060483075349799108024457544535415554659312752374789325187966215764398440170338154787500875766047558592526954470322546075949159890099852448465414049047228923691533550460755221501098930526491171668942156014058319640929629225741879401692850516488578874006281901380335696778662904001077056621924150836324636270178263423753160089335407076424495364868506079574030658399905831096280905420240542494552446093647105479310578742677875723090072627775935703502446286468118587498431018714903843697679726986066195332193900765430570446830299405619768787848038137481732570216712027010543834972240367286389638099043298888064210624641894399534283735883775713699101300738467785709719736470503436224086961792060431293115376009910967908576593336605505053979423746851386572814843615746386394952191229525980353676518191154312003048215972570316627364981348803166214740490105148138162935672917304254913114193841415063675689459766087429457850185094577977896283254815559601024172802526806360620755168995201504024604195085468809054735499668431689736012588100713663282000994117187193327711191494158189707187819072407918972190992988280242657609418688657610345787630687216861516387592661172652125851535012367345429399208066241884589877668493455343818241804549037942433695655282814479599348872166713493400785100548220833508788418710061383642576074867555546125032484708554892541579312982583408862354535007212208073178942436016663833284892704884232230338551591963948742366642537823261890358555034308455360225542773485366012783764626179521462592987038765647819705050951310759871992535443405001371375253594728414784841363218844371408591829445451063686408718049005885746416060043141169879071157657666602599953353127477482175882915041530899455677082089132004029414546375780888208753032085938720608052910182565746227943598124589792712267021320162057314196052502942585366500162853817212158579684354507780970509586441742606569083468456570266142376344758388511421620331246086303604959110455270618557329727574569374275343098034665889541726421324499254356779055448023670817921933675847965488167774972931857370561098016863725482138596715120078451182543353550128150622904797398864631240336019714956323701306592032767566979159932358422742780074851187536948258641536138940557926745496088914096958749335810206837281560770536572967574570637332870494568165573549858654794643336600247232276792812342441383486890627524081259210591136540003200343255107602862505605289968514259196836648471227122095818762256275817191124124508197699363217867108354787188537871866517071033600927714980785483655988020478862614271817028442400385279596162439185347897035716611149014640862081148026943697551120944007965497292869334638151512522569512464811479389266928072126163537018389382699579764123459997333801983857946260698469729274561059449747189122682049811019061931850929864140143997378396361343712727983978639248076669621205996572949512694895707641805433533200945893289416256662449430797267099692622215280102331952160893855001016912056706788632058280292814101281787337266535786632109998465039837143518837049276460074799884864097810384508849550957903699433405529571969272398340690200509690724077157405816811321983650326259798605628691211797639795209820335058716984005304328365768812805452986462637066394488331914549276195213245376113391673885408594893100440067264504336253504078082172271745850802069658264421104450520929223291367221316883292941359541739194138853474813489439670562831502412831234106867701508799640398250645546756706312561068549981811454866477573321648416877399853507306747413402642715294060200341354828654101291063114820522833123854316456254823523949750255062812832608292804867455447544236998666508628753647672102174934906446345623417217746903646733703199723443124579322035669773518151825209897611668499324396672970703755759425480972468281297529744088682983576374431634197783825065039303781460083913558919827666424812312889976304853206546984840740123459753440210292732859918136867538242461572273895363872360507858479112275680778947661561319393385809869359842628160952715715800488311754795226260369556682707536878498729324569979971994409210323723044324594341103883534408349466391186579873762379621527417194576291276581177786916588884886158847751060976797597667371740275001873568231210625492260005643252855240418120866248842669907050901853268715857675241542860715013036366592536837276080697693125020401272884789377763221149251813450228569649671199310088304634986172809805408149861686597415785202938295699401000611546710544124643379798237169705439234607889120277342718910495850569085781185494383143613848718094966604967473282609034857316419257306585413743424747975461627284404732452762383460559986673249837884371526114222975790725988074606507808376218618482018905293617574972998878782094961285583034365160403169952859939146890325224485369172391697714301510688190982100956963569785025254796526713824114656789657610341185541510957224227748324493887393410197738889018442229645016940848359792291635507188538838055560512759959944414173539318586561636180496860801675951037229966652505260700447239757910477069488003611870292360720828875402670759485618735982437689461760886459216475411733075280819019346236580027668791625484655662728627142078663081661529488807988909494713106331457481475041948257789224949905437621134146177080658658592846062087796227876131326614790954917764671734658917968883260896634690046710126889605667701607775081131527445661100481796892106149306697599596330435771698875157836274744462675613860122063533844038161186771890714840411201074720864253632247323916595023927208526673148191448186125373709408574216098361712175533746557704204349592257678738383237712858778381061026499007449130729843258670871111531132889208116682161991931031035961264082264436804455635957473988698029022341706849651230923796806089713501956066553724226767323878731432584521720982526167762832333497013605672030173606189790794992751179927808598403593924117538580721007932682557441263462421459975493241846992408464306415254288069255562829053821252580558247910391872087390101570572041155860421086750740347846888808928742270265433164175475713574045477059523716469390368594554774410547661289518699128459469601987020483079303446065114780479612760639435494239994758458963397064423235700761801401327239311762095834359048123071652787076945428359923924561963490727998781019422755222062283286643866205324524169326831560666531417481099826026594473410453100956531984962218647639393734104093294147672639970506614728517312834144668768038031813974421824089713478020709696974371784192341735308692886892893482625219504126555246980236935889250034769889348988437547164888593971678091057852165888632464847051472351197826335014446594544719151198056137744888691380424501533117908902413167588265513012776707608882284805464092280019523828286926927725347887719198650750148968200445950477876529614500073763072291500093234311832805978594700467754118773063861375888313523547792183128324723543247884430029321376624618553762510228518698101687821782518645437702971830672907644973313005370887732824936974080372986326605001298202641472831812241875985350510082138146938687600020875799079699830338008605277082628966740977240242736271193527004606101361672451513917236528945646342125982739643134165486320897090038163615720184442116656672721873095108548644499168430727007608183422605083716187249663469211533558968923109060911215192266349454014711782445642389246193874905745011622963872727287436256176850398526670776078498765048691669316036302244605921882249324754055390397182763313347251752950406219474655317814401111366884563246895126789700760501696770886690047374967177621484839744507970237898565109602362334434975493706330055544087951300300360405246973899927432560434607495142022121478164673429292023137271404475479572441721344740767071190918994350167212970971784111865965155017212463475204558077587177876662831534500814821996092163597762089293253470968554437718478509184276578642274284963976395981647061609912110821648204928375659896701301614538359399967570570751835650758027456729483344734402377551970143561944927491654066394580507619462677745975405063861004629176831408168611571975384322879620797957040592684065949421979027381524382878331411823934906897804491412141830256516126368080888838069607401870695451144877635683656978327555400228775079556342746372088678733532213822659324668117355328872557042226104635825537894851515262087434851019860440561739137378518317448648779562193201476296500692062181579472618227961878426886318597444245081573517051945210294930885374787243640651243420283347705448301965056821192909015088016795277739917284567278069367542643506798061766294802980087280273613446144435447487273024118705068154499211104478627398801968278645540906353956374390348463538815723551874701212952882096235542141607669237543402858800540444977268313373389960800177258966254354894011366101849791509943171813003582834224254144707045045284501172956596572553839953949516367154989370432935450044768490212480141226753596748658842605379123145758824483434500291609056669543473491425213474565143134629855969277787965331533989141439358147247128431828117149279469408415675073080205275439293285369792439351125366507069696450198470999807876829002302245730759702640300558388186677148536950896453089446243230317482546572339634915950669430463340284582391320219174087847111219241856280250314636632938738302671317103194258907995631148840484379633857618069838106828458344994677262874900946401592925277781584617339623598877595610058094121985177702025646991748358656935663953539813410710804107263565579436373027790125111630134001125191652293974651689858084314977146234948157571252457332343645629938058037409049492083496991537568133230988749781366762191849183998955205198512772875690674382180366404290177487938530646510711032004658465270563973567853799080077757682379487419724218954411093967600777862287921827064345718244518103723335201832933895413318107270802319749803519941918284817481219006890509878346629823953150207682651451926840174482722342453454503002286529322905376180980317510685021891120116916741135101760579329069437101088786067710946719639911766947600556351216543817084650990415114910815636256148763214387902987010720268140695201351812825940870684813446164570072184846515047483548978516676727526653160474889066135237081703085255366651973427994108190239203210531881302412352615479071864001738013128317127681832658155953476869282146030988306755398596890982363831009947256372110032992796600249005488243761564678101730239118646142208579945426288633468332091221184643031827445401287760427490670861735751857719685729931962217106354701739906050103781423608267194892221201303902345150376354412539846199384537369363741798019808478226658302614483474235661983130102918255508939100323053547025710208075242470410473626873115944440788844440581619248471180173159937794605797000299535799170962633157749682907091628456312153471724762791228908256198191410588253955793025839249176191099625755349545947156769959464744319045668465843843146034497793990619694145234811069269792047667810097720475172499040873917003856041219980227006716269100951655144661362886002509158295846763399333605271935297034321113195879159321455184307217092761310061622312071398935759134073765666070542039946966447371305611083492550310414063099107865875744784852248701289326187966653156071748697400162188363242627512067292999817680989348684563901689336964529748508469613981396982842206816772982631133048407913122132372497738785553049898172031737696432754271933337622618078859855961491494657334645726491549191598420530356616235067348935910029016793190180833298731804032223145659221284011021473164647279559468092712656864715427892398339247755208668187872483310110688520693063549210518739157648613449562378140935419055803995992518681713697838394099774162293749990407653044221646758652372673927071410110442001962284617278266766217521579657857337437007767639916485831692408701392088170408512142935706922291877037557475691000579326470703175690005640535973122838100026054535900721371863415900010864120692742325304453380613005040547405247325021540365891202181542632313470702329448372105205627670076228757890653687955262987007103648948765421135411531515250070336366111068477836193491111235763139612582964987130551936462118860041835826713191115971640961810292443951913743543536751412469309830386063453384824793711934024824141804235899456243116202464218754035282594418319955938656064978934754162023662786596029521151644854591489164558385930797680784937198472807501234490191182317584225843270726993885529807095324274757191985274617313035277856524867561792692884151508789390914217588794166094459792326784912016761984133830760108451895590816809844322350365061965962446359341090460504162308137344307082982512132594186632713465879511566922805173883637287186776584804587317949427735833176667849751542663935334013665596020925813636491135323383943156512783532149205618305116521512353435328347633005433332992430876598482620481283596817453023190725657365026362339070820177852824156858418582999741520421043731976352061111084649004203432403824883149718464190020039820371395972368388562464560904121492346858051146316631565874358415321475987446197675527000539131374486272931453395378544230261768629169601324092846214051314385640616973601730207480171417650662482678588005626375032576143532252877705179847362505819325544276505684952839874446575464595583922824312763962233018303817487513715213617637737921377401671963181076516912329124239771820656743768036097969015650164496521978719827020228019059761466932480987567953581009516745698567005974273918541134806805151754645452925431263209467820288935663478710065215232664870416649043867126514036776159103127384742316831582783837779368745621917891353275194575737658286138394072188381016458102413919445932375120731281053291855503179329241509037073657023628724702545091779658193218349007381271213988360137801734302635517416161036405716129588288309397179439999537937805877672892189769925726116315167018378106723657296216107834486849781372310252379823274798174707533878581301738953698140020353356689133786362326291152034612531435721582076931060484482366890118539358490513472602459185647799521609444732357908780368727665087730725932534200111012835981275008328986732157019168973867283532606876976037598929093747963813486158422929809205374345234093186596400902885273755421247240397840475738017482055287769299861939845278569661496402818027728412337667891124147798297137063458082136953850300075629819322828083036064997730661792988713565032942236169483510241505923215823648278243548014901068262165436560817861223504432567680383812392377290509569304259681473465051458642334938980400521537758314983147543976544691298105723075898669977489445498511629263180725675777606839096548839689244906612332105233046418129286949672605609379970499360515759737459781691901709143261600339543404060931455898188983592100568794440990725116945582721550737882955538485544074815511391311779980065150698408635785265531246674403871876438522447854689134655656627775063933128066288070267101898195331091657295715482485430215390318243025181632193057877013723997955896439670680346341984594400705765075108704417342815687992494301359638521577463421450745498857827386893841292124583566115735856673731566625271621629225990634522588602898680584018089634850039746437157216026661248054377227284374977350092180503726449842512412388262489145789540132142912604116494956592540811156195075787011390139439524032441768172956575480840875359847257843114901056050054647297950224220584844866422971958567359252961899185328127478149361725438488371371491050178159756531904622493462233233873008120041408133054950291198919569145610583807945165607025259828308873190456501589415455672192419991372560560804458577615404542470385734110087133853405685211025794260180807297236088228756297267171116969451451985588300115982361753957799466282208523212181222629916754897835573060406402743620803550514849589426205642780734026856233034241132190468573088421878562186317161288745884781247160110539994101255416873520236106288077133054191156268092799497963542446831014102073440612090649421031661651399908085463353511504361437730060567051304040863631577893890222511601063001979546946359361355015558133550825563533152131070216113314214213293872632869792029709509136430799954886763222353583625602187153040758039997679743902431748789263059867498993207014052454604229939666074101726663466247108096507721313479924746819077801145342153760391231577002632475681428954884764977859043361057335622419541655387946281336692602654809953262566999705304443813357550341299171842354582558842038870671359385821230455361720786610363837924431272635609247247819344447526750570749842946779898923955935159762539034804137033115061114724176306920412259832844042018666022215327406353849557704099759117723271445089086942198623852543447564888396507005975608526124660700654867227730978552866088590983213595411289106442048368361510877806144150234929142160084956051944892317830038321794692989458340162155636889088763207256054662332145739143515305762873114516627480920555906692683626659940632950697737088741874089670759324615069840185076468354259313595948849057082950320719675564441088408544507219748701493427468479897882869240209142402247243556567147130663514473394500130928723073814832355232999931078756239622779825174053024890667730751928720320174454121111850716866731869736449008428074096020875408986879189286917939906383750435582949623164389090800993154463140074429530632919528998328313169113680113221865889550439982570632520978335072664490385517721274037323109721676417304716605372423265998922091794942585396474002492030792552328746580226774973944693351483629843884251676684400284763315055301899676479391961995102131457033585008075165958504972509538959014150990238557010619309875032413347890880090809823516882348876590225230971191233647998842939912972400050640023655553922185417613816940463309840488651873796907522347845630971805623880755765482394328952115678975147159752986184338889409384066914052834417129436770699266212556781425522772578177820122397174293805600158830632106471072542756574470804142555658109424363178594721380828298129425759333609021823315245884405725338323391000194181120284957020433767987033894295108168865500016118271293351579105173979604166906452862184110120987635310302140292488285593187790425722018096491727383232524210917470161069230233709051005820551311051436218529775387425107430096850259453884447400554521620747564008501167189484045551956162425913849423449544985191789902721438835366533329403724315839884104246122412543128779951257501099584104749404015506678605380793956914596044441644285091044006007503822773221397661141183937145423900784178131350088049836518179127963624557639592040753117796650052396894219662014116458100338590184803335357889622835388184374137889893313331103741211483929283797792000960248970881514814612487242117366142888086363694496716995643898009515986542337415306900219567844346161022143355944690540982797458878384199610672993382703069894490932896944566401367750405535717376405783924715974077031928093889717834249400484635700382396340986800912611526669045465528251519707150868969971548363816309714742067066971785134562170286658113622457228510065771820472086942989056327600921767332205378232484183371415822041170537676823014860372475604020484118845008541511098396423920164272595611880745133588040765705087884251043491213953814783921258426033721349133358253424932033443869166809722593100255019581952230720276665392057655791158057268894850241806452425135876415284744324849934465845990856820966992644882789790420691260787915584191382567819667723869838884112304320050325032858709031127495579135051539438439530007874955070506945755884108231458636633579195693232099995999467511371382031604523397688822215171308223192782592279661324976773398400014397137463797460038122886423675302952413193452057831378438107358915194724868601395474853153214316633732689073911420360001373408456028245080059281435663589235519191638473195143398122347299410362050370156864527020296292504491145003912883709916869327744796320989353591529173112311387534378635308103694629557256446439628511308867751065888750688707411475314674298951770871595254212325782334826887914582345051434122744920403113468275917342151326834992156851857822056444568183263418966148838638829002011740048313185600459636050681153626295036340695697673358475179498450161376700737628561028073001832021006821470172728749225004082628285268657006077183286621825236433429027142812059754158389372504794259251474358524207711623571582009230306589465397328161382030319411579095806791056998529717081372079069151201071668441125009578622292237215941494217395804235184957444342682432816516258829501565836360295973821533004400329635000795228250619769663909194602610439654564558082178707047724733395150240705284590661356432165941885582116083776078332135778591514891254568530082464325352616023578438772618950129652395662903501428506826891514297419084130642021684540617746762245250490698949857670252135782520102963174355174678021707788852127245351993238106504878925087379204244555787423875672987015059456260985646656510715506014694233505580272001533492054039826719875391678336851180675673901385222254066753564362941004807224393547615290746525773773367660291587081353961715121553696433903244993048380932173956001929076365625093065067566111646493568518996038245661801427134553171460738391427325660321645515651776656379951595593430383789356603630422060787499746804791612539413068118466227307652478342349621618046701898474038676254070627751520335932180159236778485572292387930273075370379676274827875426726605756989902270510756924050213873046557328483435212665811678245152355226192889005191775477629457296646351234447705247363560092157685803570307882711246521844217597792298287895922306228373730555818644402704438492841039695250569505940160475712876765440508986099005532762911846376882977495944953567110801234876903185290979170201165169527728121467739492361331161083223143589556380992880673873520011642023852717597457328489549387616251950687747876995429717030810929623885553560048899863205836645940222067488806926254771977224385721689162098155561886398367928783134373822077175001743265692130953387630062513781146938249574713524493470307271915044238728107596418995217918249009833252718282295078578036270920904610000107549593169802598035440637960312744096277412361224643323061858129494499438063714338980669060323967054711349771846920551097442200813334853202383547078215154231069553069904681360801403254705402688622827543454327824586283605092160351081997278329924543499848932931783375875541401778095706689889672524270003167618340179166253562956320263887072353122681842219944956193161677470870400111255956451647539257298699340990024653195029314341819387906924091186698372985752396076960937979023856210002860323972469416036661266443882440944931268911331390680138555164287980237250312024741321049475640163291554271057499244718445336828946694509475498191175272461098470230962759902763821514515083944026838655465698174230852636852945464137419811603975994312885339128151978108939331514029700865326239379410859505304954986551405752578229742206258181598556057273997583212551194775780917269526144888296060834187785786305051356685802710267633610359797691743469388985452667628168983794696984174666453274819050853619604145263556140880290325556432915888923418597962162651131830588022443167641516801563890922127711477034984848743679059880186652359377014274747506274469478873004656235260388550378342752861570426592800163627730250376758029371222229449355406524523132554491321657329207536763991063589206464978850079563074488028974681566237429555430943350185713593084952369817377462784490906589730335831888964471985978912342564020174714516243374929926344614243231085165450726679535751575487851101791321570547441078756968283912737674982399354307382420111824248979440871643193584991939824299926428718910461703526558152382028062643633408950840958814689951958269427213542436520291718997059687368772581866408789832580266255658438377955619839255812489569252480450498190309071657561872696596040964467690344661530666203662711586826225170485160875648688786716509185404483593593181705134090272175505656535995080470109454286704352944212471743414940172599917243537167758669302948802898435597751996407048324153548119379677586804929490254159530363623320546978732878164403697116788144502355003475124806064779287804939458026081258752347153755571236678779161630286202972024085544837762103161123925526030553529051610685278838414977144251496403861029417787961661727547556761490102513891794825109759117253982133155825985910989974788953052390022482386843784954083983742475189537070281322448081433044853040818832667632820353555766572727640645590435432649380531940729159838748774356828762534555422771756815931752940436056222781678679121288498444598291113815979572373993148401942900728306484217748191793621629009918000373803977794416220777092172872760919073899830912091950715306294175968950690761667127979562734290196935366186309255612593285824623471802821598628770169748076551401282157727611073819023091824139010940800721389252048397496325730371577951914990898354472480933984981826372975603898758700767751827203944554452853102461052109084541950387734883127576034237134194854538029297946319674501202192953219239732258681745489121354793514677585251595322661442034946978685769866498458542577495391689256222755315093817165753791415696038323906462782675689250684564461706768614292346662599574524084546707832344906006139662176965187820081148011104914673925309241274904731802438102521779305295249508883738689393297443265030069017275640034422666763204440018007496940010260376337098418192427938570264372539136469772058474682667387316062002065636532306395493966542326974647946617087440003593090322631876524065021137139351610284905812529139508627517661055553908049887582573926338197230394456238179821381172194221878184437438584067987335858843368411412434569141241151169794110169983473630794298591742380806533373043550596897393785319173147225588380354873630840047597655860984234679126689065634155208912855408127013185601241481392422271147026853199732321485525639777484000252306575620275894355435651074532399267652081107310354754144391658549740736385571418737642813542496923935800377661587468880826871810847675079505536909811970585043569494575382787627656037109238516396066740289020565069519776703462822149150071291303615821826397040067272998392006056448777185170645070199889609459934744622082250572143510985953696670383578978740278827358280413045728617051132044173525372896130213013229221790941634118418476188240009937107134282671958967812688381426231340152624068796053075808479203136376946600065897604367163958428687652719814245252630093055241795462280719126338748565442300850245731329503157486234113420251111894581969039851540099565643740070771889792983699930343121994285192200465839767867923153870024140693776278495643987384107047833937921853756846197283707684061423729165099582645703300746000710367039889541508110317847998442925141050795663748655818810461478365546408423093587395307528786407861345744324005244025456766063450832840118286694884858036392353201911105114009284445952000066178606501800837420661488493096713763863512110927960152282901091990879423192422254109390317847226871007711577738281182546178373516489605184007689939350034577747433233218899527854957216544508406183743039738427530347178642429539312466893719048946941876324148594359100697322910122963890931495043351609399799862549612769473238572124718220808903680546985617416165840776353052791573926865453397093637176719072204739899717408356436938751182387442764935762334758146959165997772046451156694534955260241459465738417188566126242361348810919506271569484583358340951992352906830181438395492510311824423490280868687661449692686081818589233385597697865619254974620430983181534934483293684000883967337890049903617185615319526155102408191343591521915876741942901370954001882249684851484141433861856981711762256847317563369274296166867734019908505662534546292945457558232778968999479246601065287070450780435230562379352146559283112681617403459756295415552799960957441738346731393783217774176310868298520257450706934689098358844033695333012052678805142920697700255684418887532646295064894020403147357979503077679754367038064542356616989147786053995015974919625347954487892873985558571171885966955898667172966475357987609018929819301049680060273536517279854776614554477735369231564381525272583732687572397431779545411894360528216334226440875871753967417761125387555264185726580743529868725874003773488003594911109326929848932413098587267219516038382213815249143686705182822069346516676484744199807064811579803086383761428540944910514887157499941352078377612408292536674448825462325783874165624553802660080870688510633471426963739234982509986850937950681998406835751907561813353684769549346357908562645975691994452146511077026105845642614375999996242361648806279240707494636143954580390664524327584365748736291326128204976137997534239870578013245679119734495001759885893376902208804905620584955316756208261101003366842770004249765352643361990255301854796169359655886870624137050824860712737459659636971943990748458361915464088438342421176247117131377028912684136513472138342944579475911546083223366394447744059460139196734039443115392596974117708674056351361114578080702073487805096906389279654155635433859844706213213203691842693493382578636014815496612779498850936720958359330857539114125806060163638854475502018400626535758705286421650832233086248309049421540249328819585063241387518967565705817394576624885932954229469230262216699502077908950778049462362087642195398772528338123749759189694368916298890472078051183277436281793812175163869109047879022929529660547749203086257595850311462536492246730935067953479517501927569851327446185852160164802607715667837133407514962186350852848698094442857814663157574925764175048125291241014924245723138568395680915871895571886151182766190714705856510356360620334718892486304519436933562546422287969181595976783496753384153639164180212812582373154581945364292103274842943781921956897440597332351980200027131769680385344159498949666414794009296767914633457108670021832498376018733851159285814563724588241580760308364803356760518731333549816750824293157741602506787046607475849761298183290205433616905854293841899166939598072190367683280222235898827218215728450889240276601602506942867981528445554018618306301509427383509098743385924787921766536868709774857464247520152597541883633381257806542198286331089878095949219138360737946703596127419891267556733255975900176441308308697478489051727202808579384211693844090043715545025194652619708299148978766883892909777509211087274524266427463962677407466659323248812204477783809056770216472256020702777690417522531407733858642937168939387230099337171889324343345713409048222241686321545647751029364381126485856757630802135575508758449630526624813158532584235376741378305841740071520303754813002989659965572315665984980229978793295158143894824439408229288781647272427034569793762149652491355952996835175286890110412843193711951615760319935575593503319667597351568261463369506829903466911214918664627030290723436661497774284375897530635760034629987933015089797746177327117392693168358394547727909951134112912869499565841138086171113674007115203830365001471113008747930896457919035778580374859741876153367978387308804043746493950435674510574140242007656422777586593812548672914753020414605597018547898601276162936580134540371662557748301171692740844153257191774779282563630051221271972945915803286758453167235975229641125920164039210300881260264507488214933644409059875835888440306964085814152592235896873778401319904318477597037901422154344064316908322105086962646042557315470057051074646040547227286204037105428821787996042472015868607961504752816088509930912453654727993688831653850790697205959124619935921473458968020378900057156087192913978792646617035291523589264188385176447833653733657035465639530864831779772244419025498240758684681958378131996851603519749248466185917937115621303480824352993136245606748121189084309206499180154488807796790360923736740147952719460404334682214611329957782835506753207162219869048684603607126814871262666316160311387226528294360811835410835745382269088329255785640628669777043240531429430105180949959030364310450787632175092539981300452890348761872192111834590529154365544512645797558830490591914353910886054538132547100736959514702624212925432109859716834886008747418428131346033958910692736006126005377810141520897811928323834586844055466909039346604408636539872380974156522935043146395272559913208158810023079780699807620859185007974216684487859736678892831433158937507568287042463166788757065733337211400657798787738331483700599939718784571930439188724011315074210357345513112778651348459312612365054989027601728062588898454510219510466414759816371495604854803420187449141785041723221223376315869735156324921822374067885970707753280918364358943672785897606143338082072071181727633128592567829832880381906794977330701889736416053385952948660095647498852975189272551096378272688789925700796336079759128401559163572548692862919877024766394626580016146654857511391440509236039091005964989107278117495292784082931965640514173002220840413063485151874674529071422899011060660561850030134957474384796674181972441006057914628387836868957835048896262550707771243307499996548034636153088483488577804777530063557502603363970608740531975190904304603981825502956088205933246316300592202812436854858020414793402350659450569484055925186077997275961254064001720318855873323452388332618465576605886171596136306359744286351511009588870593273703890771337058865746611101263202253970771376843838785438370707998971022929809116180565957686433825554368556974191401154288104059759803225686722897138752141451193128596780873678407372913746698513242861675690421621325752025808923653239324757843757306952011939253528186729419289567864732335451341386299596965208616981037487095702184601870827348235292035428269876221722024595505170190150765616251432861456720957450105107293191960548190532335013563831832851202243884296314946084927124648873517652925449243763115778042337544955170078363033923218620245128203882133142603461764276087773303794350349981524532739944241919136060849872925674571888753492811438592342195411727950936717622300835041531857361432697622459394652703306097503261703720180355968050920402009702690106964682037339469659740400220713220224354729732327288716248421793331098189091747667945514352788879098714399611139208191493048600173732142637752367540819543047713002486331613192413872419809997237499138008268151467478794282548708422821379331087948414115385802326427007232142907305686875745118232564678114621672604840066115258078817222779064417819569230262864540782448332920572844484713260045607668418952989965091423212722567483226385812119597497586634490679833649517636883243593546931854933619680895107654305699909837066213922044123090026993602921874806002453415239441981112630337548222191905296166592509469778216307261691867038458330718431149903166198503341804309164375923402519504737511334799109092571411117686970085165943210088528620365117841936359403232350946900937373370885008311330142302219764141518011312564740063167541024795534575587249828815767865551066952624145132619453145853326125586089537181136038589428847861791866665396176733079333755974893239021287897760829581147661084316124918491994753023744870954384729860892877635986663775064423539961402894125133890158607679368186716224927745764916719174507557978720698498615584811007292365801325652415690701089398528498971828738088131169602840823059804234964981089687979571841597929508822082742907473272050659415725869678544268807924241057896291835707984538234191803797477790689297790449723445252793598052798302942997991830272768134231943328279172115324629789939246815739889212424863331842159805451482276970470942832298566399419289184927860897344664766310931684119732717794597112951285103535334037025021854936130348986594136830967707066251102841706305898043549548755946521385980775811392795399797511298259515413887405858837522641396765854861251022797656050970234125946743423445759132944054835890524977436783778154800900816097878320524935493646821202898059280350116808824643926626564672280092872624572839387935519726804920577902418899163270465269831114758030224677681783340712736492540586022936238452227191681642273381109830770391410538469544027941860104966443728355037166471884057286869885003351159541351474308636967183518972053966678802344731852813656339132281958346486247163857552497669501129372548304800337699935314097634573611523620787263963847822108026085237006591545820080584238038026784368839154835843528175299108073686700239795900451748068560676519508439375258749100320089131622095093488594920592279768062881419373505356736757569591896524153924146393906490143477273937967482000927885923254672393697134596267144883737308207731132578050378690782016098547984978287743705316708244560560985864510342230194745565113218393478920690224652105611054423100112154541900882263346032181028681788858121403262946461984501999472528749142697127335042582452591307405787163343901105206125323351960019810553279531358132328839580126007179075568231940375548874306973191499459140474019732104693725053351625851878789210605241156262231420115650547380141732677717303093634198659007986177594428510901005839147388599564973722243361756077014987684392120856514761401316206696132703002819694517381250606211332109699736234395657402874717960991156234933723954938961279629081117081374668394838007949982862769196322038637104679608658454971929770721292727835877259495137160193267770253176454739633329043607506358517635165411077652032804354966415023996859565951788910392868706063583301753331319867892258397966448846806496235369056560709243833654773138298495791965968194277998864462179627598288718379644617839134064284975547443974259809277847356128602168102162160528643711405398468044584454103267608792789822820410146115308185593666585191397750373918557593776587143114772555638516449532258145744694745632419368313561092730709824357334913157279893558748827896328580136182751257066040821379980394290415776628120635044359269965438763088692060276028292417772262464984547432634214119180347500337446412070545967841609394130483580970559943048152409741055529994901449077291882511157779880067570619244752015406304183629250458728518671659734476444138062092840565653740704290078638843471374285891002981938095205165724149658410762946343104969327262092479520463131754228700743645088879148553901022975911191122055959304633633415589367948770045521595719945897071773550326158552395461502348281902622910208372252149747110547766025018020292966781628753378941579766209203029768718755903419630828927399926216050929363549909375896179988311681601886766097936352106714462620266079804309145811661791513305249741596237563658180763080787608710241141543363576123749491403587023826795257904869969587477347631237087557875822071702691589414905968594954713743381755793338678225824989256887990835686100449506960529684515653181876705454017364609825845324671052747524480686955509375652407605160193239714517697619050016967044492822372718242811839841736579766142330191961214205146608408706249957146118344472422504465075298071539379130324163531252448831128703932827686200254749628189016652609272716414375711131303436229265002914814783745100810842970278176413154169515332430785449281856066394448442731460241864590492033260823543124411089995846302434205638782784464412626726610150048251540045631102450286655630255707954900982531254697319917941033872758740356461058682966637444964885376353745382230986297952662554327713415119424006174928144095130082489957132327862024663561458341997958941943740174668991072584920479846990407838759538905732168906673300249981919683158754253580617992948378434060665532614500695889851935020475480382771427568327397651179462994181123512254428339488166118166211576510810393621101464352397278978082657869296835643262807215047268498071808564755114186081478592642590579301535055829585176086967396029830129851981748356605660874119851534781724363281909245912448234723396117338600762606283875037452631961698668002819608637908401216339631142947060104608749899696659695180294173572290174774747075212731181416478403964314443041227804850109049210939820859730659365924528127009605803388045330631111896474769114372187711003856481770917685503984557571507753136458392637531045520901970593606036576368688549375786049784606023761191875167268026678056896528197178366021001788595868459867761768610028641523132896702032842557518229472311372348780605255784138638252713434324710778498836562811086475655848491244146553396748098714617445479773895542736656987356360680295778427419880226868084335985617840459053209120370216091885413442205492650024911086330993590148513481086616680791410021514275061347533967929613364669865299510224555825791886286501523408364446387150100796285884947482267862140536450817083943083780221504793207584087250436918610010936026879492546118313026902269884673542964713831269002901802200514231625486449728045489834456500705811236932948209709102297287873399477923442768383538660442623741425075750740408433255633034186277059890155775793425850060525554734683065950496826422632667100769272605238514842906671822449173241097914763675466069382966761164762376697369671903352665334645169788650081641056966191231654182524984876529573574524013416135019987301399505614377259309989295920005788632366554502597759080417976020396662163984919070487447608350310433503655164306544091339640842567300281601300227724947552615230848688310359240154946942554397264419888416128810952488181330153802850166755115279602458417968681810105207848823186150879955064205628340846208280363549521327996838262473118784523075439594009722664411631604223492914531404278267628555042858310031608295121433744798512762452569774002874847222754581126725800056729050512710001929417753163464269688040268322449031990377027038435050028207687580275496923205609071135147500189769084209838607673981350907057686769348714061529725134325651332969899551221563646787313280087951333163003335936245878994197612380367160557268430015702639802276962407852461280498761604514811256149473676838671242241957962793167867562392873867180242062853300510398386516291781234943622854538265507114386999262715355643866855078935722336318553479803493528579615248733249529010840230747117563921865236645341623484387459057755518745416251432399812145821658091716247294451110852925345831610154050733190342135133486134570439623642341448814704121386163026240489286456496847093562668332580600872692627631990880413849594954466819365340292333061296812297354677866287167936340645959474636515152194499237354138895795661878457120355066172049955612450452289215607982540194333338022194498355288495899143845948329401294768952244012786805057863406660019969873766857346936064262016335420273443748107001663522980711339846957239505463821236108043123850621679203921008681712392533629658855912425390633281621579988426354247725850855068858048269125876632743454157377316192492732902774967071414028300491362452434719833289162302887847178626513039999752407727462671086126940351866611337620585062084354578906026338436895812187672530318157148000982669097035615416426571413049984327208420028904367484064041068045170817317013689468600470334722385033698685629042843320981714548224436971632648407981309978470748674920369568452447457023261263353189561776584705622982447125132536711219468531243386301205220990846639518257822634675824754786481208635631647851402229358821799012636658821542157670697900403148816655191519544752036057939079092828057425516388583050444510476015712584944564914731754936943512070272605961076215868762806835623405993072722999563500994678991413234579666134235834370348437986286153005419788252054052250495460850903018865943367908612133276159772451987236588444702626244613194390495837397971450174532823212338351879763804706943644161807393850368272004782057154310362883097277051361921590969330133987535635479420898170837546035890506515774073385757395281786982032642761214934082722474370889113808584495182155175064501809359769585352333352050759470920163555842280862162189884110737542442884334118530653829303143553868679893841016488259362002832788156335846155063042273930754246318909351719443156570680196715626061484554503364605307427761959031564351668176468954018684307694665910605043177560843719733363030406848692766255404470333438825926377195541042763780133390545389637504910343570510744243060978401979121610052040064513549710414923056170809308856399225279797536217998867087856716042640116678802737133819745027266131033657008286201850655624006125531788669305542889264263912394694725009551859044330366174363703153775880865766235860842508227774534536837507947831579546159419932632331290856056266524794271777308220667094537603530418653126695000531139755050214007195088086044910802725434911167047892115487054268741295195621549268580009433263745005634404424928369251752968883908889175801167940397758888071301282595528059909580863309830317453976089932329022343752564545116185646396860465008865503655762238074066076965966058880100754313266309820630496246187525570025164471574210709242045880628220679813345056293981196918811409910943589211824333866337624918328370539657025063513678530490837270605905048886605970763341731590054175212162473631534475174741762779131426965342316266645507139687208419785623081290022563519448892691615578647390305700044443360390722455750592173693285384983314885387154184023750554553984644434980971662665994760550798386923970119527834542315124523924527454110984444521179452793191367298935879320035313577948296637046934057676724719871095392398117694803708925272895769302443650094992244684511248185153345128222839594525669754262767439467324352982484777373561928198322603793819480284790230752099927827444691960018888383599949914932841569273158482573417130128893351644906473704674293246745388154184537484809372405615202506206857572641211469442165530180875464840187027204058692466366777049326274545680362705435633538378500459608552871571952341505290562647324049085184700817562045265785843253008702183821206968212163169911763121949972027336401334543303603042797738353951083694483691800601915536182982385814535570846957558058100088781232961671993636712079931513672204661774640369727040278115291839165818065688771112968020626253122599601715459174711600394062525349898941814209454578775988545677108094245744240755520200716637440178990177857783200155850863794214437630706687605850700388801678565553080671997507823032428959993677585294501959312981346816822426891862109869760804286900182713292360029321051304693617123731246925407446018340761720893953430997754038847948143344973454175843143908666060359534377076622179575352789832377535718786919540657369469877388976448741302212611394708699751414676899196446174443897099756909323877526334180101425431106649984637644511802339602059251606323723466249486412848616945598797742373958180860866867110889673604349183137226926903175735808668047310452080822896349323657529905434017170920745543011189664307827187221505401388731776104934917467634682221034913292980523276516666567316822154741732774987494503319054563095316473854214350311576672284377589295783601171378379243072826372022797712856151661983366845438277895376125096966457760248180780019673941509748228584750662158959777565839060434544485175593740356817757630888835732149768745044727149600018155569359799699697502580104705992863377051781523023136480758486141946040762716396576197641982693893917431026394637532004781224913682807669164600707911614597352613491393412963973684356534883257786982541345559901376440776487940959919350537924051284128971554454597865030508125896409189057527763422490164188382484808968083430378400222298359720047024609866505507791317107638676300650477471884012022721901882160687662832300264626587780065666676729205690111142315147272712551381515261245459972687710749224070146669685851854245857695646303517227914392577354746051168296147908614786330012736671226060965199673506445446672977401675175052371311628704921001015201844642856575040096303612599695846871166579066395551860217606677804136355107942673328739178949150464848214197377907688323718838298799108464536016289197619445201299147957522721788817106745068995543512781161765183291331263556615318626183184098641259346405095869763859484436083369160291102228160133589254661641852052849919304796511892295898248613967894493102974565674807895150560730265500528789214747927567690171660526715961362910037098187703316641534391908252591930423336956214549898739344703118785451292577483811465123306274101817310119487397814128686835777625753252353221400660910612014467627247079814125028261150118563263263251847366406598216209263695983244788311374062061539989028487579628628911234912932923979246455943490937700218711919441637475805072102365397401830827920207346324520275559460567453362060680449264361615171816858557934731001462720187343893437809315008363630511611917717513886763039645995825470566219248094891760203362553405111884132110237054477416154789980091814660022896626321221729903031718296265933787399714117285174530015720738422674660036458692362703392692131674403015534604082246413530703856893689463315558668446587787182532570615297169405060217548088535761068241905505818794304403317953759841514755897353703910920689980980342397670098550080049496223420790785920975053469656120303825104077038352011095251949927351794621475758241776915890697070770024809714686519443630351138111752438590748857798152940817693110082328828175396654691677163187303905337537363486738505342795736931100836588906602480180595879719422388775625658818303524468691318224911429677092214375352610410681881637749553502657519311712111895269705985646966085614581193174641246555247408553736664035696357646792201227967329135983603459473367425193287241164107555263281515608852271182641108113860462073799313905001006255617777488205950957192320478454726150981531795117946898223399333749732299226080261048760939937681356650800725942658356552501055547604253060927837975158989540794563765444350254673231561297663195547146738696775026735322200950322749336165089173174307579529889851399857351292646143714487752006167558279416059587920897550226446281332524300987143779319827401084768850486412698169735950309050051707056179181858686834951865656278872994148746609721794353170512172019992498437741729525323028125603423301613544102800794222299469999680757066055024619835621895759179039044447165198503503034629746916325118859716585618929736569589122248784524666281227962932233159022396683072809183291869732088420225295065817176769257543020785615416734227828474881551190136269761843952981328931522528587918680784102332048905392194390719057391830804832919557532817714383334035157186451533875528256597169438517933498301748549906958278178140643384539003636462503946969558888554677848997712445822973842367205836574161709476416401473084183296663187527876790135949674053214490647576076353792476584959374972073089408931468963825234259028774251131604713889221646261563050134315497351664240614875555940039670652637430019341749240736339301140183446159458924488631963245911137596224071591173491667460397864656506290538240027494034429145336443508696916349582941375950295999421618592252729651848208791786358552450424339634518185115298541452492070764653308135462955204535794986687364906838480754173598166677330644119267608958050387403580929068551117867616673643109239051911143508284340571082636024625383526024425408080522600709036707525893448805990863670634249980119088911733136869507837168928513451743299993325211520648600010246887871801380368408514494366771126327722370383740504978106933920512704638333372447054547654949209441228902127563092785693364529625029871943316569858721871836814878487288157447349162751737627647915429912388089166215089219417197850245712238307299574827695593632115984101980775112262521195133238170481466983500260595539898875550076047861138685181437276327920732615313786121231095516932623976867477808444423940797287469568707069102752430486144121050244883061785754240316114236313876553110471645514951321445096464755569838187033244754926349953811038446585038487655080283284742413949986532048591286685580405483614731601278602725010262524248616423290010858465763763410640823867538836347585728417482980851673259957137931299842741219046224127531784164263410279483512297824561818049469100163132011480121387604839466294862074263140686726286046142558334582186042635852486981687845949148080924209297827609079204714739133458067679768327099027915175914731311199902254740955633659394851405312275541967095162552919802586223587804618293733373585000050116883984813907783806272878925211418096564870569845128945281783917462395022837794273002234279936621512819153373308762951947202582599568085596289393002471160305832124985470319909485626853053141194197989827454397918165526330308182623163772914797321135357622570843200779311825682598609790844369546639695175050964827587071256065241606768400508792263789948793915048828243538295979169571892426688714491806334978458055009013245419455681732982237412214990829604518916850614053840403895207986845083818865434902677158506923669660479782984285496954172642972086183243414878115804881354650801798782069944188169309311843707077570545851595124072305046429369535158725481586240704380156553317754046894232548042596557999536796022795656045397993247311523741636336787315607692922400079441122760875898794907987788357663195737819239355077708618393033981927215422406664317646868664087681868987788791901003928293338980542405509227391544716617442183361203268317313404799839247360855273573834468716067381656184262597332770725547506585735896622903151666280633924135456157640507279266756545889634165893596591907496806681932236313888444163815835473860350657475782425115227101139262998021371921345802734753463582002545458877392198443513441270654180192286802692344459687203838924396478626000568612208847568754913779437112518574980736356645658324486839820269649327097570041419649604823136590451329040999703368687245057492300303474073220413335364595135865583020851053061584251452223272806867109515184985209055411389569049441561639827546408184144038018307002868031699739555201018926712609846124360673940470013176218340873295961249391336519215714972194337887988084443689633863637809763361050903133932275914639172203932363684218268712088598307371909250362490324699372212908244018667133235978993716822121227801359825234793444506576501163646604488277825456059954850686364650336489531298511242490802576949910215693258961484010123589279455340312728652755303072761231528228541934551045865343938804225328502108610948733868169170331166919999398860512209354546228622349903557742841333803825159793820276867171206019444347518496998009729600968932719112659492605898549524784895299713571119414424837940860324992729010432236661643903865906211619225193919435767347925392126001634949723113804336733908855575328275768635003145920216608926905959657756986397045451928180128381227208709578168967470886846621780216708066319354090433320433338846725858441003170427596311791917825195935421618529249872923608558998910242377366863005253554275946094289322509713962338936718189771325970433255075880431840979146882536858715984336826585202822712026287479174962748597259912031334757327619382398589667646962514744900173409622682203651162147999186617591562943551731748376107364095526654754411621527811310322400418946854862048991391435235421511545106017985214703572233088851554451154813675322777524328322346016652387363024422730386486039187715536740378540039828906706182354281746396343897215282171405521849957385816762005258948639351013653836745786805522019668937651939151187762879960966155446538500750022809034804898386294068592817002284444907386138060088922191699793121966433335215540426531633526291157858748425934085291779791635134661006541553777508537363254274793545431545274942133516563746238078339721838998093104391133974260452658710734652695342041358108908768198460295242422891101990350690616607177885689079583235767473074496046757676287855127882511172840877837578925820995653979956754165974842127038334712742718854456801009647655412257953608560902930753145120223258239017633541915276297763588347678218335408720566057252575288602013910004540277358588077902758330047354830489181482372649128122855715607180851939081509652583227740940097257971724714087476025510867017691726238026910784573617903981108260210603310717721010576658917880124301374625180629343753401313296951842763197789796298854445443878881418844794634661144179476518753788258423490298769651499598200124369547339347897911882558024914680550633060880612664005957777687199178824873475206000485870206695632288478786907912021962693453779878444889068132136097244744126682362687577542134244984686413397118426178997987681439708399107063897247753622957981522023767957926969718452703434028336719023900923144801643027083337314231351847690604803822377278915626429712282553144214537787094792696481814606353806215097119238122352948151410037557282355504246134922415522747965205628144355722408528782766405081370711114178538965948273665414112781583613173828073215738131428301862830305254691446703638181384347099625199780156693884623048226388587304341117837118182035432699166770626531263712082215983589093679951364369427063500812416929387081051074460724755494455283892190885275657197573377539880655576182212716417245173447423829365977241593985333464255777126556703339263444744168042318346132356854905376696738422207462609736587078261497271559123659814914141860260294952993828382640935393934346223083026995371603278844658902258815776394521262795528080333599256552716112213945737451389055199721729694313773361255467943607950982292006311145994180285475057076430831105731890499865452793332171413538299766916539272424360776658913703425570709915724013203251927222535780384996862093926285836078166615321907893196529511491005392507905387553008967062297472154808160195223480859728996620301181681366086768612207037835013308182663208376177219163469137260449389516225399143593484072509115529965594173575689820594109371968190888617535314536568033406067315486185035162572597783089887690165809704702612064615216089500908108622776469127840205607284835041998259338439467648604264694009434873141418392437421785775437344125069403341583321817779208728540525798942093832334244228569462200959012902346046492686179432179980713244579467429363634838108475861412986951299213095520776832060462790820913112128325082322235523370473269471326919952159394549497335841740451708586780927430610150635444746591778393175548455971443386767827611226993740367464868419213220072403700033500561424766501193829161678586324816404651178198032041268638973191703260226530285027177999372092601314296857142308176746458790456912190547281707772843289348429351683972086772048153076366245525419898847351453492958297487106544780057104313537884514842276730676344100791925767082121281733215246244885211567301605263896994697831886698719436709575678214856638996903889105058841689187331182438595632936498598439887773641212054084089411250715575489238032240549553342178793317339566964531306885068609764875859464180907950921021748236567609635813014719268319603002110956267436963915980399556851752943354584656101448258276985321883876159676984935357319538886468647002373433099179565035544491519572038011726667047317224402812624231945492743782535794867027062313178587835263022883606623043045175837991283039939962934194375213232440803473220247679157246772318224251631762595121381943840261980153493170107026275121695080682344345366318913782012457199927597608465181289322527075407581222235316051099502630205437445437206915092228718278366551644590602758807145194937435034665821864001983179510424324986152873237136112152949602175248862038371560469666888926178606990422535753716113793199594131659666048798398021981378047234849455748169979241003016417190695855971778358433183062358553678368973257966194966613315289752730152973952183570636612910544655795498648048755068774926411538002906120758858299803382227869565949020481912036697422632555657329883082390102233523525872172492651002240078949625499932895619503023500420249402197805251431096399848786170531495200894179124947215291226167027004910501931429491779773702884864189393472119988199325461485183954263155061514966091754174052753110056295144130979243306723105242718137932086628549868371063698956143742069484427011782221962272033842490090327799924692224541064889934927984981197368211553632853338184288984192915166460970362791993948009604599374591652350478130346289467455383140995517465450065937357395545950687414073823079374612813445511988395677488470369122606454866816511358421521121103374343640466428134538472500946017030936281560941513139907614289468877945220005941453925189283691231765464760547780814599504987346869345262038843433496828852962006044470067423546252163883420830213683429779430448568069391455285604412472987648727983869701740049426031335537433429424978765397613431364626923174164315176133535195473388171769845556996671980469226816419818332462657320404583895368435097721439043868588001491579979792982382492198069671711526085506000305629404596990855416179471271290426326579859200445305204647212067763102238265361301947817965315290333605936819833763397760245875820648016393031159379603780559248893844299645374506600358004796542340182190726185472990357640205042187925524445061814467003476917491461643988379665919010146202884768056155631434494372438519147908514356247881021116292623335620174935285152861061402558125949253894275668363776830141719504745304516374440015734361981001255187119978048419775615824381184892782719841971605987106726712567491087508764637475508891834154303606557295811861106816713193885649715727039976176706915012324313783249059500031716595166573400125792621082385858772232546517427555886877285136026349125640739440533997225048617572601856907254733037783707153070634302625198662623379948183272907631024752064743855746047505235377425792021813380505482638365864752979096129978929409678763349994587189538695697333081269765928016212631602199424171087514889736713024699184056577832208057628939747322982807593139192615810921328780436851473153121269698237856343174562242355722982647915211911110381570757291050224629820319271831528752692996089171553374485804116667539940458560020166327279653058168503336884475550630433571039929168190544143988875815945552260489727222837958907330434668022118783062763851783379047259082670238532410541854442967270304544180461364157576054602653217538926514969551905893108072503597186517940858235318477805687746806307859989327390931100488051261617140346617488074884451168935008933041454223451937549731767300590320019066676949083703054219280602349846097674607505504727870438699115563044804835535973513099163381771566832155384008632308619073197263176706616037425947018040861701377954353553254862101870817425744178154754256054706326771401237269829234979122360544426277439884582864660562000150281274458059596959595293930945724684782966169881456907685378493999051268254891541426098009839485542336938090483375210926144299066899089137181963694519361879513334932197921649194284527826232497271445287220346566141404385522320206676869543881735271895841082584429369417039400192252813190165276704746981362534262801475084156583374844124149166621945496221357112613353551833467606235305193494801267922751437372949379839326960962297299553810821197747886133598296611401839244242174336531485303966155691800363549314990239634909590154439305920114095910045613670046905572165202422293991491114145826543159769670852766198474240640536480779746821451759955243664000303765747257456388829635620805414632760050717623222727946279529382739812071030631234658113565245174129502426080874326178188587717648478197086981063122617645178327028901427739966367086990993939364900963931313025947216301092920757789506606400690453003155722309977079423415951361153159622748177969802432598006406554477661131157109059973361179356456817295384554493771350606956599604047322092961608514660320618032465811575849845637812169911079640120348232646141163202863534533529446260238020838913868399822160117806272796723938871123533281267462029243913670333197580091372443235705259169220738910218627798211221435767003363394476116505390775826160549539666954305841048895278417435267452021620273572653126428578648433289033067880026107097452491588950193031345917599742903399064996043427940095186823874991469448774106066687372699182542193873398110780531974796097260534409935386965667652175395331402297127676805945794941015015030569507507888988182125072953251469849665041230524075917496993043839290298149630994009816533953353018415854599205263705602977782915154823032077507511940260786927377337916479588249994656432376533284493366062616789952792588066850540646369077990725520341053268262881945816213941783642698863523369080069105291397042530514799950043419708651739356560434835279458693608353491283347758847780574216334435092595260908695689390923407666526901122673910466702929528955837311245796085837966729519465859303663430144131713925285043080086943317044283616446457275876097698537942468606453911290033284488377724089852004593997904840655455074398587106444413951257729039446205955134216014678659290811898712232635430176480562127095774551911845132378058459281724128932732932983962394285787184292156063145959596607289685453170315366502381218411480142411310454545885933220131964761928573825910225556152350895309898484255445530317553589562258130303338646841276645522138491399616444034957528440871327889768829337930191180720098034806118974776284077041257366300023238704682617304082451079537995157288578564197105537637959995699191298685925601674667545219562725334699329465324188497275701555154178427903632756769095261427365319016751125394893228004111802309643972267020693992927985857981428697139457216406272664713715348628162824091018298455551569648850130061656006636336413633719189861844669615971663519488327798720049136093685765205651238518154376458385458031039390971766360470185999181373823490301327682044091584761030660583308327123066853184856880823158021389486025696460991385606085334631111174728302345166073670695901848364058041753780077614702467255349367740628599178635529636884138529933382666316475579535084063846084245072177009715844947129490996160979365493633293104930410238892855703379695660351911973507025476069672921632930922515682701107798274824764534161754909401705494035011004115304789511184112964416601077000395419827531249891504800135460449892345859537227487672422783829531030656685152052848700331630807465122459562396035382212266661484679485768228315575187265313120223782869973241400677270716920803082203983246958029730074442172357285113871068895383838443161534655022146643009795093922408287869504541509113682503588093431822785438317015489595858126065768828583737245233308905018548756988216352080635866484558465940689757221984052667136720974410911455075473900177595178934053728121911192199361757050602745670527326497706426377646223969052868388758006268365552426247038447923597234036596746010163621953327341420636663336140290200275800236814452702961872829598741167161431672758321417523721842237305985394780548290427615149161978185021170708140557624087643544656693766696732962784757049239086187049799871412457637292353455152098858840289327539290659841470644725485497756840874537212542992444392346001279160585131695198796785996476867828489856941051237360673875475239592232155796415390030060656224857535253415827895627645438367725659954414596507290999223144392050016024678477796007028373709362779867139078976057625777286479769894660083601947849124441382074716325575460790227294494322795446484339345784027434697733761416104864420071692275404957517375333345813905081129436500168542501761533135600912191530121771942395522556282512549466735323926473977753895994845915033071679839776495329682418227842487278234439942288634679644675561488001082549860546122074238851844802433708667584199783927049710985010859578178283989377620525778347931663935835444367349167765075708437919133542502814149846067950589040967076652888354198164474538770872132369930845955172097127270694581793375444321467306180859776141598593571430877531446437548745241615204126534429199566163219450363502600189706208473419761069060784098699888664631129344335670878989694729791150494995418317150919730988712335945673528430535970865000198231196947519278377636200158254716669359149947310802867170011144908366800539112404942674784396468231548106729839566937777907246539691349069483730757769966975852551044737251901178025538591059963799138006126051945139606448046799165628295699273554016509098852241264548449579889008464980436852997022092863292816272239181348326291909355379311264095918316291499933604310267204500593666535392311518552895766996342209917659708532892851511871250793895975563090518042012084559977555578785953589996159042096246505679346558992752567551766429625732368870845710395106949378430101728612120822130495324246407606091062176159282104550878714534156265703117520433072350306402544194064547229061439613432610764461343257079847739691837677789107044033158452837201690605083077039965249155785019581527027528412766684833520278286741890306689398307053335308357068705277139797537116808674702783331597879250754147378029569437823481849810584243734352522615639397175233121967181407652934944117868836629164006374864207271937467446984056009287894847591238604528533799735655657099237479344437094675371454499146457650011262319614481963468436263847834338018619997864259094785092659712397465101447012705285018981284202639204423665153054312849952001146809323578935330790916768698676551533916284971501870607614809011562115215287103175645192303802249770062052251146842582299181056437673558973552141028576285822473223677729609028216596448988922205308190151199312025125976465427468222055341559106767750320011204958324300186056259438162025755722922256484103968311819039380696832676851291621259740821588130513417691135175509556909282668564316485644795481990068327798516804339962738255172127129552947956017089816321414191675427205028568130240210393602038788008805110078320087158143611251397057595688135491315975005473429987321755313433100669761783659064560875260944804845193326473662752286829414630354368872452900722566676225964211164725202803635851432738735384449521790691799435872118203257131941795814275636534230536590310597471874550673998064366892630477204511480790181502841792226760497955721248327317716204750806107465507005067257803956711901342018057566373605846759956065782986859580003945047895647290787976604838421681208794467368704199871676270658357017899481271118156513542162164133907883535270598099601244325213189433050595786368399111652979325401484259049375700639744560799655264838930584660494079598753372739525091944263029900284235239448234727238874320868113808339731464459652780154542021615071554326483439338443038515420705189141558827599305312331675571156221411471849244626807579943492162237510890621060646037252617074399944566959917690407198307437833509507400944643415698237754192762090601505215618592248871683464618061241574994180658710756746872826334831480417478276263463993015286494074398325876379785591495653316945736555858089356336100720929058995738287877993236037053974110251295648779886474668634595376184597486470824574186935248599156915458291909657447556518173130923282675477282888018825784997709208074449865962381002904210415629067024031608772574208594848666801519410659542096748291201077578122457875664948936643708050804675818382423549663690471551393739576553046575330189766205835724670435041795443716944784377437684659299747985428608110735349971584710868524619861733921985491339887783157787137807784249161606937200146163063511029261453868167131697969032520853805655598691418324999359518505668044159791384162178241575504053839304572978708390090040399190572062269880116573277564074459142103942776788270895303540595576554368126009067191367644065085820591113416810656296190623315454045694981415364894041321074554175660430255700380121334096577740887979329331961353127738930743450835261025349956298616083353232299221852036369848118723032681298450425065440441804937225761698179731894101513874137558241350154741984478798188253987451744347232384369870731346678509111821556700031043421617262019006796612008197951838851343964933023702936493302584717364943508532769939484556499776900655032317898298974762144121497435033903587468573810756310571790479849945222297440376164207713637842554971195349658089775616870500225644937898759676374600757233945802187364577161865245790202132726691649509892605276631308181350737601567720412597417182561701287687968282034326186732993909113561802069990701404397185817288536237687028490215865256976216962289659810018910756793024638782166953875690597561018402346864168032989779710568998837431521036535341674620893609088208101899005994991888904466402079691202317373423532236699228020865172199140789204625747450584763294060738581484040051315200976049410657113979493550295986347606006997146186457833952621127166744679653616910285924761915018623950215658384836099193599271264222209112386387802248210735489242654876545361088471954200948644421772364211159126135901170740309494758756602727629234252248805618111673585065014178214383232776870708519638155154704637089818936523796035856563700397439443667791111805970678074823805658151041935656777666859060416485951245618891734718717826136086507414869580917198078787440806080227513340266657143906627328993587519230383491870715732040503779018380757618241046684060429468528225868077903376627201868301348941555572554230945516678823487559657978535736337395559713091330724640520919475686671497148675591623589002147559739256915852443956164562191477038867372417357360874340570054860320964660246108452586128118082103206965237421274685834816348941170961744292626429866309858122433558631869951211085502547285661421783506042564915185928841809198568874480771143669770464136844827778315507969628871183843012311544037094653250028517501648242961173879284091354818380333079806851408756978171983799295111235963194214694071549813150034742663372946518556569029780013026631674488170056660170710073555383648443632039130185472423510882290787729901769407795869287043019718352445852687110315341235716391330408064041399609301587483901169982570730166653635378736563324159927207111497227659465294828503582205188506138619588469027819139996561191160097645620674778863944999454633953880156670371718275452169541917625055374971547775232165743363915732555471964105465577196476253963029426015469005895111047337400518573922411970767421403342560930774226868289657905281978984319036888321205524927464117893813959061300501451525305021561740172610431965736843123204581494560126423149594074576720107716739107294711005179199269679660159403736176258622516918532323344326599989570410192923409740845644832873524424946351109116566746087904839487835719050981994978322666749838013096374566918644103205902198566588474913698607231930487718613020718834962837073103495994073325511597967229061994651829052575953719754580182150274746283960700469675778392128382139241774970646718369266266955467938961157785025820222002186154850973573885719711269024823534341253379474711652996773778948436476823980304325828463455031431528264273857386666496352442134906957571936426692764190097021170775134392125320736053454855405235472859474331850646051480327594287138615126257531879728922396578624822418259085267146559047942544494543008464637471958468172571114204747884478145307741154348304545983937956680288193999953096605917858985544440988725292079128775121062696710601431493665608570856805164157053756539131290711177551667811519342953993175748240221387641883321543092733950396673697586932592052629185391526276729761688991854566037437511250463260172193143456116727022635038080862899813275744419360519992737010314660185350202819880794773513246900579216295440083344680111015472169482825392319303571099956029506888374360483980354719105055265179600150203835242669297845012410819040575537907074172766108793184410101722501483629846309193100631174439760028718228307944595237611521942077434859559858096450731867111440571182449406416160979544351999059667026343444643502784898099999983894083697328247404075820518692199628721880607867510610185968587089261442093729143655986897666145769477346747949414329613749086862505338203449958875829288079464032805424925829898387770935867634090705860563460940347581231008107138051962242423904909843051995497117899402799694381169270280291475689534263551481701631879441501739438053286220481090199473849310468194479048164808502438796320790094686393296218827077158615278814515732032183002530229314089219115855935129983451401353303689440293591532859655220590040812197627381052584189661784143345839108126415003572396514200587110842212386811503514061814263075793999275241385906338967812891704614105517181664852452316591274034854902675660558821533295073396259691085650744738242052780425135295261709439803094321720596621171931379280505080893284393243161964911161273289830881890414611725899015178812859119110751760160768891535759531002875432962060313601952974013299792823150912227330870928319896145532516206899458603329147695281649963677730106921302163324152554208504581598792731821644743907604833907806813750377004828842922894439213740209449219053101116488544350152953191082455662233438410747516262678002591230616029454158804868051366934623166091294933565466771297808656094131710941523234272035176473327548847817340132407759416545873426772023060717549760222255999131202768800650168872127476940516411239679121258143307485816887266223831331860501943341123214827729232935810641236236330524288460605937936398917836760752573443555516846632942093782612927897493888021791150041239935675966864864233118958445022985734635349696547757038341338404967175579130717123515467752822744013123518168025622107312554087254533735399193562299558066749220444807380572509773827288537831638391583575712428788526899719003004662867989791856561256858193973262838074294834919024575275780358284959758880021914960115947882490005949373787836918898730292621501613164834716663524173942640476533223727174844775372853500140328870878993394052794543259879786343480332731688099575168396583041996268886406839891619050075372742287976581167891093715951143189950647757979559454835760297031600752197151875206723501422457977692174904481519555377409342804018809093471133599504638250703047363196234874810742653420003748349571080790933017726670782658789752777264353417514581090709200971649547493470924656345596069502833608535172821570303686653472725281247435468726842194927409838895472273640101817450010113332825333071802729363768630287156149647414333731335052457812624573957725293821549466954695166288033119260548628103258241366060166846097523758524818483598310964535555725438953411685442113496900042454440927546077501930712440767614612252546774544100430490610179579792697984779152341817106793005851943453189857539403122800535514865593318490659367614146956444992952676996992235154450568227374204309086818451947270714674630656198364884288345160779523542593045688837332311540963257305891069589510307085044449879677297506826408394213563445236890721545417210695835085913358157442115717597304659027230392762926089308672364211376942048033964531039801661008688660744419734353610819877919681758149967880199189601588906524951694644414927794230160799956621144506353854986736421437090846163649357560444633154715145817568142004414768136062800638917755663661961423425478154516313980128782770526980376426431781136933470907388429930237028341320631152953212049667733421877535028702849366149837919803033522946299869741602501536326099929854471876109128076478973344392085499504139398943505863724012446519466955656643702134601110114398823106003111722912791949987180203030411631790847257722961699248570497475708442766199459201576878225620435646790234526455054039167934111124904440466733106076530516864698861094286153564912558964716489379549996793892418999412930226010086709565993827647146874940753464404300538972952017661073923652677744000579812499381881495597387979098352534171048749337669164388006558099805901025980285599059430064452857200942546366165886538559393624676486605000534824155629724661667654868556938945835877139447213866707608410003423483881848922257884833011217121494535263478509318011427591283001165499179733215540939319638951095487698707199081060429661265012074835072421181564206754251689557927170257927533100688919022893262306313153818783351952180522048551552754422705916152861854912404918107063112796649299262466578634768250444019672982015920809112963837511928582634995092351017680907083587009880529032100050749850628105374308139833145403735868632017187135972766380266229299781868657785841057930025970061284495136512340248434491206678613624511270699907242383527578874444901468837205887086363196399736298043632095465895798644564930722296619196459683122378808931671898215352925895052097670707681590684189882760525453369498371429347527985707204663539412507566037521341219921789573850948688476211652507085758514432779592128581529744730752476630002826666045063943057002137413113761147087270043300904993809064442561592906636274362712326111363346899899665922215299219908710151609582314930387517574776268124854313495373882912820516539905345572830424439010278571641887931817339195006653856993763952391147879736608424057413520578197860036146881465281152945337037897010243830055435796365317154940411373880364433108062063142650195381345675853335753271889040093206875341532620447407588890075559817837237900487239734201117974425126398054477278011232146837418014866475967656987481185095139495609917975201073361008448705478407463383904545523880966905163430084406110069106472438807680718368589528337487257014823442223207829133363827696918182768636705780967520070206005955945641234286956474053505913687522737244793473356472490094184435483735977249441545017717969649925016906259318572243871872318089442673324953043539074272380608942012451975523361646847127828882275543096016187040496676574858064121274805464610361704130539167942799570858396742513183427825256999479392864935923438885209018557362186851086825075141194830842807345229643741265092161924636962139304545241760939878535035189969135692481388053941279885511817526797032121435002041881270740809546486027667404529612569610361042116150998059202558247579306985964784761349243300217453392368275797737710999788925073422660721578120896990392750282353421863094482077865239631472050272878563586869599463525520487472848269103553486934675580220840728448458869883635381243701810243053985824666826970877251308670527579684375531772481967811218211133651203510143803361259026721470622798345662404934777802048183475116322181364387987571392922122010504359999812840128321031070671687197032032966131014230361475051435128778042766480744341931056550156276450777089074323160812780634364375091588604357070114660765925057061280542764058089678247575781231737663186009420322167170496805184765951250569753291470572082359358270222450378409940061027285748867347316916661697501475021109313528174201545837364471641418273217462391012095487807550324005240818363303078056540422075002869263592556950632388997860102404262805061867541470110282275302900334043104286483097705977091099481567602843312048608630335050493401006683436593586622904184072921565928719662051148917631169605082699731511272794302211552041844120399920650505238890395842266132505627562385098847791532060928153039482473371960139986506284794606149169904725243198611556744580430575860111336333000627749712028105010240202711310780296778375474946742548314597653950991861383418842815942716112923900658249915260041458103613153137681720299531804723216677289293813042841928607686474193837640177101939325218211087217440373412731797571951762514800528930055687258026188677364695767571538610656251566339991050036920549997857748712110584370021869502653781978083176293902790214088949705059235639741646803415806167311129681614768908025039272232323235208630477372844865309173726867850343277709104022679266378207609557706708185717076613293293170213585288215751793795187086126470143257785181845393092495618344701356884891323029965616286687208884657091572761232395576807889612055919247420314893521781914386178887930774293186412669673510312807955692731228251921437187890746357152126770364871854797010250798570822360564296638327207987140444868416025370951801992943317085818007936974911811236816923428129324368085207352164955601545186933359968455034972885303373063310445714133795557721059326705217832363708158200103707547007126306319907363433794815616808850272774743946845624456664875644811944408382292783196970021020354274512481136218676487196731697352777636855392288635235632775473970174282917414506363410941349197870949304232327259899403098261357751656029245576023539761095511026116394057924929135520597486076414494327372014639038083719845958166635410141071626538525047214628609768130237802626720441087538836065912298136443774324261837049552615562745616854040921442804346914178575003884869577154619879911080500792600868601023225137719551819419400685543418311853321515765536821820153268510512492165541201333291370222446994437813805043459905623017091064783303812671002538959213262011725035019195843397327264761758315439804542857384084190113775077470880878330457563542675470300643062103710187850750556049105838238680587033465356159337750158060000746372800196743399909435742654022930198567034515285833928516424257874355974046332283651712296270956354928344194701954484400367666760674495177754660339096409269474271092607030234132809555334013745239450486906886843996804441470527149265667909910879102404994647944908490293803028957772856589241921161402260450328710627601842837590342844972748592272807771214136616615197278958713919876301001684736787283094412128584232818431730560774219945711017340602381669720864196782606051213231646823748438989833829461194481178007061274956341143995349943188846181680078958501552190978795320638228826313889252915555743211687240533656846541188520094765948582649591584798685183070557095148007255376409970304440056627798341440020563048822441588661302829958702005828009123194618413464111056942587155272874669145292909045318419094160256468217019784459925903531599846274274854997500727764611550731196988002502493128806268944094213268364790606409314758402212236003214944702955035714595421494977626481884169535598857566324283932649822681217178594836797254398475632874027697559153547326501504616933640232194512377543802554562809078080537082539276662577636941034591239491081838803929986066931743104834892877883758072128984921747418024140589589813949601836672872769975434186100549793741793355279459241354287135687883185097802083479405477908145279964485578291392514002096576769843995711359932395783564341309018017414172694684090633584742157404100309738024953691257611747159696047380417496005526886598603465662340966751847430332812933704688193302295553154771740531223932966610119183360735874422511677831809496529201583270669413261369021640565132908958898516491198992672605098000816725817606191245431520795827704205831671008320475863302819759796218621985788096785702877270016412963350672454312209569382246185445618168376168102950169675575213984312260688281228720854369660044840590756827523771362794802748625335236497137139815882722932667782940253558471441451090688978175843291296567520479565131850927830383711495262067813863852094504354059744011889835780200255102807449379331899329381624667157700853700116879404902712273640032999801942383667303093845130372176888798300653713818305457790387253026581278360601344444941003801473253771752449710711980813260730991332951316864077032373333398115938777071873289648632307983524366811209976757582944717895019442281207909917713670614153106152961490085005795773250911175260982007572229330845096183598779635871503697508936483487971958293559900090613978101715286545628668440938587627195703223337914424695353921219811327636715380724987032933815691469506167150628366795264940614219134762074741319323505209983353170073167965801346007107175102102670181161732008930298352931786103111268737126940372210387848089416467392999503057114018061902728463043510582915503378822453609013441812797422195425666977994061024540567904872737639367456404564224598568027191382948509513237797285848328578948871366162742898603850414432696886215199548924222737278921204057229516325610552553339956742929936513189372193853807182440223077467789342078521799103722603737907400602816751769724731835691698068256012654433488220521956041865667773021382868308363920739907473835191356467983187170407134180432232729015118850362124789177636319918803660622897152746076573739949106755135139417407904916288295805750349594760040355792905941632026908747859596495863304086295955939179650103642043433867526962567562523511840524242946274979500120843506823807664806890304195611002028247222278365077377341415353660327377804261489143269708573395763069740497706039898941426865055149714213487514027182660469953598844669883340801533015502333067628331409232311125909092125864877179810905642447799313695818516285422989936429542082196332908946789323624840052482682986631724860646945102453522125014697940388510795332209903996965794957358650217278634033945296197618002298134394116658441941201113301740646458754644100446688613905463241833511928156846414234880738426385253047659959795897026886674193123596977913864077162898642782306601593970078693745072692937977350646143481078606085089792321375778081630961379603982802894278790741512103954527308958631295906024509073024681117535818021946815237407719710255727935923131483989744039305751796818490706843259459191402262292159532274247078592119278850921232838137828311529694169207727113653735301680793456586334573149870405535226092024790917427001545547024831488274657992511133408587184243904922828793001446571517448796816305550885206203245349921806816436805053027767357647164946150136926772544998447109453405955332710439013999219512268329227293229861091069218228503971621814886868066959216915714716611590653319727790321407021146640623460484158101904143038364585674715726596453004159366433556037600469991856631006284546077099337516691427697517281020982360548838009202568969281380915543495632249417690733059017120102096579031106991283117566899654791072742045923912203686188112193951616235943987127313475432624206747631804062941999221334592201417948589092229557092548749763382525203731243651274764452170121896506115266382143140399303508924650865652758257469363186755486910506160168733218521934480457337907065752083518278181107785075935827972455361805710802348604059962141193070789938770273622332592213363766607446616775600000955569143959609783412126198048580393171412195401991801287169293457847665744123597593949927616779694904051275363706592273133344217909924800567005914095324022804172715069149831404806587435220420019241165713053442651034735024252156112594972246514000046654250164524457625401832841836381866367894388612850048814319478675626764749794716429887235181077246992177247055252228452684668866429042187329604792929145309378267747459025565793450488609393983557653653444553913488778640450472829346161212336944579595070633925298217041079129738391721073528267981804425556657620330038986176931078239109206043974929892442017709030774119480751857596191840989682393972224554804955927631153036175788041348052341660050149810185715842180990305677042578030618984766198520173907970760226142143677762323957920410992883600902627753447396983320222815049775018285658135768899127358719720522402613155742274148972245015734743940529414923451515956141941881585989634322304118867096439623701282525993382395586164196139865091795484517599801130521240176465692066444003594065980365411528388294886537075434599376441534357129427183348355149656554689931164461627214280518117393175078579543472936392101695284639254840996215173625213774863686054314797637402051886196160213782958748858972489032089790703704891942591982816741967037813184832752167363679053184522875348578442717160251763861673952150252152863326403756728070016229079100365090291170736813559754370587905212988080544406897738442650649963844942118592560069524414099331577339666566146677451458547999050778043010383550406743097797123434132554046897072759692846482930218767287830641372443579718044849089048587642909115352502339637261850892499986230387713135574160860874979429389403545175662934034728938713568119412305441412710999904761185301910307280028639963972489758650284404585864439915844744528921237942366665443696030914062297380126281841760120949704548311878486298388811324634919574283564591451769260420616389101465505984482492737876408644471489534842138387309505682703489445161364488312462842808965136083711312760416110865675249082984699668504562458293077105421891373950279690910476821241062854988415065237183243032445933503916217753880320399341892009350015584855765415851854066825266900277190331363480551808743780197925280073910136169139905097580760772969949408551690318096226142109633903514010843171468818735270060412574487575767021342339368090119162305785439760228704212047107137578654953693779490804358791439642125097873591829995529384943588837902239195645163668862428040571286640804384640860119893349420377816680892424899714539337202864548824722723906680094396165486636136200196842050398511263130846521913687565032140501837754089380079223577147856639566261972052309258144968540881811852811824519158568726894157633044132831589782427797921020527124423576833116085331763418407383257052064458975892767410088292099267365594215887809564125383698453972692246601419746236599194019691295663299161848547120229213300816961061161138875357296564953615685620379303697356864574168081844939855416400563808298277099600615669301273128278526090958971838045665204803289366779476163514891794672051345645133828429759831593512211689104186789240072859321637834883238096211374164661591934034936253508835422308399877976689292912965028308141154922862824211095870483653915679020136528156092573469468603539670746175921197250483949213381392115468658126017158994784032311177459313956325822137558002887342396450443239764309302912885208980622896578363899626547617219648656131165473788438754976592554040969992031241057489955742247326019908995359692648362562576322669173431157304575514978761310468977080167747314108848899970538217718607151522716482835808483690235857916571821931731684676760775087260838188665047781226120099946207480348597588326402081161704462441615560814559023878943156727392751706636987166793118047778837171685195991226164262074494511237432375456120933180283010084036003500484744470260636605455846940082329041532877876815989408593030441267276652317440652171579366670004613954311821528212508740095914985136749335975491790474894840610081099891817353142876617238916962501963843013809126514536278162724495880953048776635926777887254408816256334450474124962411180768591487888286739266382373621325068454697309740026618861908361552075885792953584200176424429407086476328090560920995264059960585694795682235728623255956777281956794160124901962409707974222568587389285503662122122936281515029978949307119361406821284867626435414443631929168303542769330234090053710211412925255732950529889234457889963849689909052378000174312917025275252070312379497790651429289250551660243666480961934080537663846718311997153375390599981828020186575583125951470394985933049552572790438443904280669460109867701565931300386218282740143935375352438809798270553896214342032400172265337077306315367174400416549751011620676000402935469929390280821853342127854005348693796166857229664660781886005591504752988239759872071753431488471660764272953704860470779715995514824567770224668674233457094289307901995770933112432309204913527816054165069968032444348247590376812377129757520899506775050813191641852942487564202489175452531988761770982072111710681660780312168019413986345183811778000777289437252688166493028313649406778117494467024751315914357959203187270869892738634884543231209781554112574243183613917651339783734151232407342976146650220257234794168777564494954114856036710256555437591347699908888097051798468996855263188131530286843894389827998595289244851654220672023939949984799480123021451570359322085435732894801170441377579863218001733413331146273054289261702480256312716576034867960309723552959719346820270445032979928858798300354146016098489691784625346356759722943561729358429125730681534079844795258106751726915275409984246519675098314889698124011931504503405226429455362216534266401368732459608019151546478684363797593848795181321857780823773563370690765779331786345192010246695354614788840066633443178802866416889393038125020554428371989052825102245513024245245327667912663037906225462488190562020139199217033514562050712581696620345199348587622347303969636732638216332127008864778508637526175756248334169908860667193393171523803969062492211552037525382695698899150495649630299866700536268287895997522802522472497173442274816074600779897759777971230759917084313399819474727448914949350579255093985653670926797328669978107926245736084199216165462323146860747442491736627082339147697996384815591452687839394583579084347701443742757953408058628501400702906115627609820736808359439810268451900846397253119232081844625335808577064489534451984053192432444950634920718275183528008993447025596290867367954848574327597566947803247440711344805297559945141508067707748804026908682116935982307880983799535511709119096202301691381513495825866483013749482310954777415278488983424661260338580771519093236830753605320821730842372600911778868612728954017494204754601865778800698325594741730765888221954604810272401880655068101904128777288695441319453338846501848927940630971899566277375553055088081522380082797351865593740397186855241515460525491356720585510380440147921029612431600064659268836009226762846596580130769885136414027548278470079134120727244784900554815038215485982753675164941673151660482008932769644001992019009875749793943544168136472241050523077478473099084167286452295828229739505272128445405184996367474337847735310541975281502415289597439322240042083252700477895306252084678168621506467621187047819279085867303281860704778612008255616658361871069541184045605617110494484609091140570058521705974435536531749430029861545931238070253426329742962819968820057129321395627097815222465588040620302204286039057481634874195136509955668345449381413001540929628623416623862858241787524916046308674084741983750913271619463327320743999602168036789289394673905314902420246098756936501684067600103406782726250364018705826877149153315946757804848958980323633891285386119604033306629201514353591316070843069407939645376587108879609416072298250569899207438803583976202323025602392193010657393337254292465167850822860696418272429348171875625931312621163409469733515218001232422656255800570268644727196350905530237026603224230598412415578946809624521302645653951525560924111463118826482715638903531014749417519977210933035939895596128547527611169564288921406514725859391458282037613660309502444715215795819206236279531345777019833052170602420753948747128229799877183596211282874280564888169020317165671705568957311803583926894925067489343231866068595806429969368703294224559924693484795699355652857830024468325790663463852012636791453787859563552323814309644069666007091283200255625742215000722934951094091828645422433744167705652603311502710539536006129484178641568150832991197200289887085283818627692568820591075923074527245981683785373354717862626726958093193233433906045170012053742843239467881934767874268472438677346707583003796001540367249987818134167605453190287434241070056576217103638770850118466094518323078512331773459830370354761668915128689724781694177222573301064379540332134726519952644132108907824709105754241626052076630094791497298159008926311323841124981600395176591999242857463196198421865913629378723453791396896191677604764290010538473388400882757214522021879153558191822642122908159140481346640998105677609751928687449518957520177362447034377289408027638469524077844290277471127956146584248799475398695524459871865724325110548897488834628074955297028423368871653427068674058264073191445790577436658136374947933983610425564002645107288383085045414632924119736382816938607751983850674322724129270252444518786842710106356223499463072742780494108115580686770388068346110943131476104415163057420446921901585375088329527855887025201599293800614911979766960952398381346015262781847743017288068429717889658496069143755355601508986748323923177914555487539335442590799336665832556803873532389525199677617980627357705201631147460383602437883859540885769522143980862206866651424730707595818661224279740097978030509108544571800133084023056803538468803601589915394808973498781122676647801903207958709809983805065826326539359314822185384656252701090255682824563139488302734561298205156174908353965184544022730489341809090987419697042380974474230677599709521583695544852321680177601615136633333200484145969051728328371831846589815514970245116297008197835267328064608668692818412294872491582459499380102374399409035684311005118814225788986771405310860547056029574010833701930098716431032396144226065957333665935763549917860105649298369041037241893166738840056876861775014918076730840213254273284141955461152785527269404276389887564401304237733745599931834596457876579462169895045171247315872084936437984591319638142203577856844032311678000120397406137004418011918345448165328446058355748236803790697025155443034476543168103096305550577493431167150511785176466892014308643637430747355759325621422218908922535473488184322984309353703797118987635013606495782675757466042945637856591266465172472076205239231847322481560822873283986132557684478791135958008020819490492469056865296835171218685990329106102706202464661914649473217559439320964817410631831641128544953363191821323110311720784341624515436789202321016025619349736901677294930755494433700271550537432134614463354867057089358976883314242905160504145437039438316652779724052461912496655791337292074104323338625097841730536007629394465634754256006006657464251038305034886057677170353761600296718990742209107874313090191651042629251502432785574693792622763308062895258278229192352933572344368501200011221817984480587571249948946096366399757500309665507283655965040539395137200220031382709714623235220507691955333658692637481994077042189712096794808283256449758440915071392945201382858861912572898900228577721625635598289626633021755886069000324339779800394532913889892814656033521083670150939007673366438487110159118297408986611283647722145268318742922103115541770070308247064708460285846104986688274809490523221950796448328975721767058634780892720687673884231170523384973823991694432067043759602930801631769098329674575642648061581167717850548233259570723382027428974031716391762782011332336594318351527633231497090708491993807839863743475719172605482808247307781913909530988653885662511555973859902803747153517985899807784469028764827900461730297010450993126491297217347832268066606470396663074635979474701148181368799624454227303644598471563943210313981711173390249306626098114614076250356187313270691624856420223825495342245756914089906390084171462784251329040445962606316871840949819761667110159674726686879551025537097367025810643235541943441837494745802005981656950824412060452313260610606897202622387484715357700886150349577194531480033562991263658146720438202219386029849834008027540655344228135845297100555600680025964839231200047026890784375909544800651977174112269780288320428022233719503145642941557807736189470805238397492938773238233776393953103212234720550516996163188005322279003564570298232687151223936231596146282771407547050166760294357629489701975181776220896066753197537628769014016112953188180057288337538175654471526706829994842995372289113914604967287006167743267343627592349766907236476407815103949507220012609035237041668169687340300854588075784235797731247590825728434089943161960493542565207196721017108841419374976707125629196047294004711720447947740626794299305370779804788320456447830849423267434079014498112986756549676970021181827592248856780974984733135896082550626863445123805535518841518292849576764669256994257362483091970307339524638855642850082017792259528957728282126026752383493798907190041561317351375214025112126694013807711336565486529689468646879432293409850117817418938291212457392375696430002533690601152094989984160881085895928765324156273599667761698985493770908291567082980233348516907348397618032601950852679747196541705546913425616346618756160743191291370374904956195782173840994654040579026097805342822679934871340255534870353251633716580660827654124411844500583544759526146381943842617151847934468139726228103117253373436826017234228502589502643191714763897271232037778632286024916013128493438164305695129729310862182156014846492413856161827825864427587744236384987988320594568219792971779026545472799224997826215393342155821861903748843091590526705262640259251790782119656559422200884472020682550286801030568162536682448286338928587355748478525546656976291127928551144971540778805822755706281382160011523425387521906280772759991229532001725584488903229723440315667209333169899916820963819352250830558264658891800411128476160268315461026124684623574953435717538434055130908110204830565145077196123470680094920984853898893439655292736442765641235747798043032076927759058671021852313651390815187155627473665084354213985926609310213282612172992217323141482896881561671564994518081701895876113710138367346295599900257315161762722467753525713977864051610578042700131458370803009232857896425352965693133601355933651748336659091989758500470003703186099475025173840254412903480016159800421667908413782712807508493165287006676729698069718439603156271348398006395084186329078760131401599114724763176305138495724156608416367709911740369819308707875865982869441906702124556274628838158521123822907509522342116663599693907131775755701856897031936179169387398318261182629160968354742166226090029560846581766467018947585287966052395206763980456106901581348711022385128308051041459933190771220471523739593570357418099358917424735561776743511369081065408221120402845860637191233896425297557982752050309679836424788195210508537228287543417063763884125334695690007980250247370854531131753671101137955429713224974009213776014368133396792393090340333620559047679374060034581771706892796607295310321108447335849353784742675677425618883101318605631415310030356260123023583585874547019623627146836569806560188918989583254177463430901159875653189460937112969297759289406849363082954630885518838318556834639336302493200161089107994154188607051214733932131332886861503800484823454044841400352499115323085930914288467380745993767762189145703778615629965152792054510742616228784388724929101047038911619377163864715328795658639828673690864930660516665262435847988688293001299979449251352939530149584866033450918478561150008885775113589284600539515232042071202179116253701821457379189890647815682724754082396719663321862778903229341198322839327981175880201558085147843213860128058225125230753412323374606937580245100142011840472248675386276258954822865252265030903149326857545298162679163639329117902796540578195400781053375761593649291418642927611871842115083547308853581990290354261943168531328921414457008103002516668015293536554509891165336261150984367916462866454431803900727299640217146165642225760771501210528005569299031680648628588142007083471742588406412184685798119776630874091292554848983715545220434882581909368946845605617576711979229894602093737239281605073509667620454721568412938308069260710275272263555544853184553466839160139900217390599523374695277893108607156040864690289514013268794819304195631545031711551357876224704284017884775392114559216155856952962361738779197598352766713973180556724864779219387003119947517582378034387561183686285591805090010470421217222712437643640750490443729392266448433516099586043804738847401623080367748222871211978143739112310322989402456010271047082133857055004026803735806154363630706901244785738225717252801623180338837268981076775064359260658157234650831450963151409759557652793157431210002458573448852135269850755125033126257854094424722842351322712021157920998158251058160112979049618701779334404811802775605664465492931257531971331677651297491465154523131046580763788048736818323608024328171890281787238985890971997017164177293607611970348905647017428550842203697056560430288590588892600457484736830202901319144324251891959002897332755714382406637621291509545684006175883565389114304322691773120113120445149467762673487125863332785321949947229167518964520245965855906074159644827851312234932725804201041878036091241406325811204498363995865724224878887282893519544533452566692130459734082907966962826952741793149581918115131716549720709870979004642277305897215776598418009807812338588918091478670835744500488089582456877261129830691225391894932454964101432038069373824427382589086558080876618243656766257841894731222054471203821914737265127231894886921670470259920411567983580163710231261315066753151745572418359491269753413836244155537980281595935823254648893875215333531550580373108971775502436448674843098706704313508138992518894619054486129041343700114998654631934339232966205410162938814456423671931638553329768832274827636443711900151361643022926377301516310362166327055308965838705480171237576259811725148083954448562886999743071209075027582970284158925278482206429972451275001286212742848628311183563094996619503270397753285557081754345312930390138965913698704818348095469415740020032266532254578569293232889149881590895610996724602521888023048371185928675510524196881395901064696376848610739502547378958882156721736736356790414388746774131860105053970084973997486813882033080245236022239161999569464928224681496465443126871707213138267074058225529698961803904225485499141597998771334946458959336078528648066900965890311808127738742371177262676430166452532616941340390389038232137467839222379196256205462730961214241622615715688032989727996353967459181283168696990423224994261429868919111019881303878025790988831788579696304404592138954310750853557559138989409681489430742063630519163451487573438670727441939981746117390653170124840716560058512096003516614289830679052514644707593284227482595221099699191661437957236187743393408349866814241170404614109247158270487846720814091511237125564929867058150390796809353881686926107426001122690006916540207701738646079462383072243898454439107768005586588796172104534309642879437253066530276403225994900627879589171373314475331863319274073865615021363670301808033333405826693254085511156140789890531288842597135391747570975480463760575042396096583907090142606724492426491343014173786079387323172612121727519238397703700551035333487088800565120381127052759827336521625423629077674074372344653836291335151060045169509743201170308708403063193188788904753210984301824151921827107398317240085232359576385166308505936213221796804165352614289085017561679520009514468345319960059863882204407091824585466202039267793594007715268935145890440000030012427558167038673184302216708013444806574598541979123908323282303493339008842329881714666218170092050388749912807568131301051277952594665672417883484310120505550671522568486078636543558101073063439974985408925522317379910937563330049999000323611090508750864828125858001368682735539973807502788808484164465137313038905136082325344789953410490860330968305008012551793724288147032497929210689929532400649606624352789777295102305632317773937111099996400649368040573957357428749503218042980812133824164754831877950652490663574603048492533764103589948102275484869376869285249747451639306164483151778588596383448874763025399791673325314834996786286383967866603876594255306344597682026795528906603314037156441916256172976250608753146142560078595826508896509687709350098017116615946243232085055007189418901795272527240319960641214237576614700829938397382728700830617704921737657182740426509640687616069706476076831226756769685288076323642984709444116732399773764434785274198894261071473575248438937546370228563137207736280588731702693179980660806747283502579494386928194063060199909619756814099093075613635593811433657251291170069558851808216630259139173900826698744471166100113347081174195938033421874371249023157414020306842703242678661739287734214082404974355575687686144848314362027797497702922485478526910120797587511449256844245476731345434135630108075611965213901555861026310507543169624831083655426929204856914915762989859311379189341495283289240571061200148046095703581467968136861242352782862062907137924152831412872229016703110233647080624285588710448802209549589179410479267716017672885919792507373781600431378585834979240833040462600053836981173774775072829362750253320660420202233310113436942481047652053161537609452036812439145932025284001194495694320403310247580406932376025841516720997396850262220062970791848973982505194724686736044472944850558907447039807355810943094620991649172590168629743923767407869105432875006168212074318115217049080414626905239107876084877324142577065839602998716219063480631857833591054210301322514922445015705283377196339646203140847630031530263805829401835213885339006781856813478849955627070188633498373453207298426482378035001389866026635129412298258393304657340902504706527149924713528616341846527213219233768945046592513869315274422834378828845661441913361533924777846753804933629168721623288312394702357671997368162835583716840226027322815233869360011023101198508602369213281403929737214579082729537415314562607990461588937813846147500753912539268673965577322551140450976798041697728954073640417292047872276540273211985101072333537382460317639522250613351329895758134087743584110474117067857673113243321273672742636612626249362814568129865977663131132090337929546716018687626864013521771593858862712687158119499685060567891126400369665663282428989074418715731393607043614365203213570834775512201068564820358799803176320808766071040412670377500242462107836076120295082118803643638201010784283464245886988884268418332284294640498068720721914094258501926174015471938105971314721685242281813172473267418909581546212150259437502966056953109476778959688857112378617536960618280482939466192210703404811768799166568149267428525532357344147139366651978240451864816203407884868330800105922293729952719459810755539755580427762942744475660585266661771346475265419098437171137706081650446399566272018355084041666286029332052982759804727869082484218156898421952480238275354625724823101282838836595634925685091380239530931660099899721814041831105368794063230943052423808973944228324065194424808645224224539111704805929413333385426964922253872295384479028018901755048740573291581587604295983416754269587918507442881295606288212503620089042266998038964010131723538013034600066389448992765830615152164160683189417131349641291136598306783807688933177799653996060252205659415136109595798872062564351427930766785230813119535574939303759365386163051821008542930533080193748811543418883380435072175712809906327684506267720909048493137152888672621414662784932052379329398780534738194059734717850320839066618703355006841081259551445767412481711393132893572975213556929382699822230060154000833574952302461558563118902793416942193160179337314644651236485059322318032016958158040708674929965494151782842816702592227497594687779443858660699962506672811002781570062373618319524319370997545474296318529355458943597713973909352746525879078068950158851907274694881813695797085819537041220356006552457690213543282737357673609545836483403003584238981620989643597777550187287042211177449134683862365242084586092653597810281943557130467197970747949165467187233031313446008236388481927846203089295600438512408199642254775041145111672435876175587460887522096064303616950727597704298466819164639748837734634784077850762873997731700438455267455290045945150461258313187664336574541664274675710096016303316654947683863150660097044226672265660063345835787684701090122756765465666974117783508654941070163200642387619113483054562593886812842472500746584557041174339351641994813263009288375616736450873752253297722531062716561950881874659347320225329442896737229067695357975679740134134334548068508446935823946691184171738179518468295514585144727922927276853379702609027267192643133602825249196245183081703295362376366703166578120886971127946819351057395357369335113030794891593315320527356742224178064407554723363869175476361333072174641310192423069719247767006693160414656584391115296973293915580013361271569046407446986271735060021829688765205182662597566811554497160772988770751437284139361004357533422905566880307203733732524092231351417129473606411881942596072893374503554684820255677517157972343416543469827656980647009627224039907399049441499624649423235633382175098286246399051706719989118791383880105736476421268925450237708599758648088755781723070553033693227742433426525551307698950208355809652389663071639778409376782447460481852450852469504612224851446250024169121888355284181564763085192742940667909495258153533257753879363329960777678582081769409659949505681501511783801634852999488640548916522547277817970626847094505703683729476476748850521275468295633807279300772304735990618680510370129703279247902247535025453057399281833435680023601062148610316803830453885272628909832294211767844089905097824972422043036711021956996552923409127794396271431336257839859662820387803628525782061257934875985856821524336201588755751314535052708863267820678508398052406144737322541668076064174604020105693240827387048895910633830178517738820590861100866078882767479513998524362307478599434434065130829975058565691821276209581984652518017961852919251236802135395753430676791124183832526832517258777058984903505017091056570826419603677874084793856834522614393094202302914682073566630092704856009793133559032009655528494223623797961193226557687410469298120138722395115477382876136427838182718672593492233070607249012663389388964506816478965452663849054575620109988255698468392010254388638646801963992885947786560157139260006538281896785915006448863259569044487779983247168967548716980896456068620100951910650606236856365256808641368278613444720847128171656260013038522393747932532665452787951464609122073381374519343485561554990883212607229477117146710077610404962687983314857242065202455942362660861390255922935026042954440573010733126286734064990709568527662615112286615687778427361741463469529253639667472301146588926918959902786797037295177364660997079250808505509246818427781846741776483474473634920539018243296794212526387099687742042758951187612934873734838282944349909210960626870974846376386629853481966932685581816640366457376340109886073054565882550993424694027582749898818563696671987603392500157113813063402565417326576746802429141241328358550012322422961015339758948284374813339999907493952468160381558047487616558902346567001734875453638387569323799497185067964411619340808395426429584460892910841108254747912379375142406891128918095492827364360930426954211908362640996866421377863105070109550159545291161841114479240547566272368181315022519441312083010924187650212841195863498472518688186384004564047952818404117598699786828667870156963854830538403941781324382790097114957785780970238897149026582826045826405453238924828698695115130560588381123019622518301022536086860950169779109481370722007452955318817684714547839067085835744422062447808712943755099741850659961063300875107199622316567010889108906421472434655532728793197168146885128567741706067844359488688180839137218346179308803730226637410377818856736960215998705195514171677979370045272075235938872308109614191111385969194697502222637866162961999043521126793074391956348657566783982342681745927614592431863192506934126509958298872533250327145136926998035654935997770622956787963883384323304615957637732937748605134436685823031730380069598804169954945171429094759057448942577162983485263649243213084832104909735210934487107102413072499885674474626273067058029836318691225827992892248513364676580522793690658901897795582862169034744055871464986669501163460971656158044736429539707203917114529693584715986997363917587803664312995737266825580091428874131276402615144757075719545613272868754513428718501478734699301062698542532713749621489284125435943874613147791498906063425800280829553828710212926174659171071388489481713145237602395511800154829186706395920744356851951466525700187671598163616404342599035414700152926761298070765397098543030586719846950376707777868776971167676402059235188415673741024865534338593121489463033584002239493751641484930132355465295039055744457611163769990653124099989408995996445551067021005514244260316067628080764825719141526585557063458673932487248045079991165604922625324078637122747879276745865099742875342418937873346611989716527699156186218734418831854045578727009444328910639934299471122024742308617206278679975479023532980449853435156884752749278777182393380045056272989716783947231405178353628664387047601544955774954055630073919953209056377183016739056009341483210873995267422941664807523870258072792758465945379678448699401106905230208625543422329301395722203204710581559044713078674231954642433492907795352303852497122371859598077939354707448963132759969049430296424890021779950643881895056972192304965648479823218083626003623954350292783776481466879703447317952700392419372306849587118972513262167407620635232794526234723422008809941813164025394644602362964365632741955808882012194261468329746729668178666497799897274880585697592651033467775875658590651667787870696435608326775402641025171777578068097151337638747320130500395205621274977258669354652411767446899562025356340715032713950349265026583539149511099894060686090004665203693377958979063602275020515759185089772087801759239170910891848535608114564571257082934066757932189459227269288063621121693251421575878433507699584167138187331693381723887859636031504740115857834857464951689725032877360290659504916863151609223532783162123696948799898891512291046330391972453492512581183486453255474834483635882272661941836748752337184196164329228834758289706542265819133965244641387879093376776010405199756940931468430808220747159499560495807776201891627326547161220682578284283021001643642955360295203028121583524475628887885208955080158507038044040820103980863317182980570925975232184794476845308864104503664019532292894065329528625654259758483159264753630554684478143089414870638357336355689534427057936190379599719099626976438191404556328330687397883443247791786602912291975668963338883410140507650311108525601751721994840431700007084597287060934611635059963659991119556148921962865741157562764228249681458043109458528253486782309868255888482974655323651544130297048536159230988454496344524382655954823083140023968618108917026280370128572130408121322267509254564281185756991823251406742198862924887935332673573908078492380667296788359143614545890488062558535351445127167851535454556641600345199926397504824274161797714803485286917285635476081311115582253152852897033207188962391127001160963357682685887727595949686534582817138167834122452787390397931503357451699851861918011424864938501375752112868141530395179964096747239461405286449735958957246394298146548218164282973701605144348530094286090231751069849502627064153544727736513051261295284113063001475224885066012005512589564082207738784321089173665771487599582078095959671243832084062578895520627111250766413111200204507328082884958136690288347694421288062187883848902338684462446046389126445978004830417477322708691928898175961559665410460829427901202931238764816963152904324874579485024108669306093111541109165377360732061264461413167663199766228180069570770819243280792909772866815604381673036688437344367861490448488867551659072889076895265333621570658931463590917724499790343404244414791828295414915067406877199963277160185160130027029019238283326132131661012793005214570748458949200040118689529158029040270123202630734784576974047987491634205931054486453676955150950563965139816695486488948127690626859765067214834642582127290185986412598807019334758428768061107556708534241816321019713683610784218653153694089465985473693230489662340260088685163804106401377265143654759575129777153011558767641626229968729492788939354884781663284142668213302998334104258248964142278650349380239670949753281879209581055522325580125367850197294535566247878832475797210151158759641178654342257391467639187555517879440794589665069518819951917263803477283885219795605339431773747024079011785786943680894191780768853600897355977662038257311064568561404366703045111934965524758759247803852731417884557798996972528398091464205487786237660613851279238869827896364736022694581423043037911696922589340760407058238094221776522453502859477441471352754193121983174438667919843163839643502688881458148558003218295497769603761672542802179252955825571420824609530356710019144600420657175965374717232654777773642131388676179197852714464253209134981218761838662356033338649218566123588364267900657894796471055387037592915292795744456779359715967559918256337983820333060259084644629172190327938256739708477374039099564294399228684147802583786851289099135729911989455933045359130442394409874690734093321003752301850783282039478790046504383160774821870685202979362409693613657564268254242433339638690645268815268665227427827251152016019418039358679536602915336572668997392669493403760555524307575428011984247095805632177292381950755879172803886620686239671876131605331057807878427611924204544603170891918645114546648656512504818641397664395501526244555845932675403171196058205523094498358051685904038803476130749690580299466485389633167637711674895420176390599079132792874613146963823619671930750909129778761916579999653750311624096203456991351078670343453654803440638125387128990588085581484408356368374197727634251411325221654705292707828321347777302094921007156658270870150475381406578625159374490743773792683979462157900720547611306812464935488126872198734528734567434343667122023221313754318482206415640990619593075384497050910497291878516588672351202273542236909805408586295858426509912177675686835086294911561518963498354784766135897665542085989859140003098023809562908511044286628293243824582433851749193495731982478527838190262399591992179384474120691553209772052799318000841982842020405736483037531509152683187505165006980142993146208936219498356184184555261841912529532642346806736149058751022851704154489219406943849568648296298416699528148199941839181172156959636351948413898933511457012025477693704442906885260454313950224610904516763143482735801834991353538695304115272152388685516390092840774843547112646365299060016663483333645155946562378057762147207583809152423550774540194080619158688347588262862821930806007521451894810677974547224092626322621273186793515509949691671273324655390848202358486216080762457543517017317723188283864580053657779562642620212177604331901215146163262268540528748410970524419768228714352631160807346341070132076941101661227332583562628509138888055285580669593710446137215579387246363302491211121219463264715010825707004048643053778587471676145569979604481563439253832561148668050829318431972413060853726446730349226868467221937210196924931504005069840872676478815207085960335261672148324618214073735647162128795098573126985330509426529703571597517167582908109230521109102817753280262184969445802283561581206170123575591797144615491111919174919297742196979331988346138896991637506151259360866593070884525076057045844275189737895870121547262312223490802781949474235988805396783999310959335484889251812648804535200633748022123891301946897249566905822056094387708631823192755787134165298948400465473968024080878690432541650067344389322726392462551534161563869586558014162399720360592927591250922524708986714690405877422815975737115331466765937798964968702754558782380720838204315476125150683518400406827393370943363703278097938212280709077420511294055728848620968128122507592053804593198352507768574756499165835501535990502201344310229427764368656318465789159503470034675800182637508044494805310200095127066040361191434627441505571218506432705065520728871124082559678237969058511494983960411775805422364482233335751083832797873804598580337716107606533983832819348334387601556017463641621672251473631213686737821264562589945601997329505013499050329271484448395046608062943983815445150330138028422489299186326833076930183618623092716683260312674838763201543071479157438580535990585711094809956153134465362166437548119442924858841479049486212717051045636075219991992416097264413722703489947323013724552178140553204820829653093416193488743227157961106411975837370387217268716847259247250465335611670164560857475231550261499660685123268393280824746366742499000206659513414096606475970450282414595952607815551072651835628696953102020662684105186985987799614772705992333887632322690915122601960703224597057693376623667123152601430632599083130637353647332720010982343732834516985296996989737660546380542695044351394893563954145493444270584983238533625078469543906468888044674692896163654048634523015072655009820536289580526088431913481071726457817365743540952242605135804885327659825909766516505883685752059183649190786240811251828316604946332968704924193878544864425104399091115981789179562142902780977899557103570737740185793730918081366494872595137860115749542585936946251116560468213941121071106897568578650244696180083749272568857018858135025772057562211885388525045730664799471249288669729658129794473356208408127105516042250100960119309556790626608050393036973731588090927398860013527784108272089218224792624590073355685416197156645595347515825170719276470707331453154661567264514576112904381825624449452882767564577971003721269251471821671116266308142252448692615132366806087188201824950439762194545921706540229221870389771669498670938460359516427869522997516664275693090049737414392496793692704765259064341943716296566298699215443002908974781189207663430053172013120247148284389517298178276256503013430991562478930421285004273069691734815008599149079785956809003645433675395191142900920118368433204742782802437585497391895942560880230899884148357962697767779114605583905374853775225752991875275497043300427834765667421345460471541871397916900064804127099378796758339596430075052005169002289459569342468171219199607846948457344613472473988340561771777505296459673400519080260193752588891794723283461344523994844820008971260615058190965966683658346122407333609037386660499824598877124245951364777644095150404296284395869225454899440205169637278958969654099299694328152586757875773275882839368035032261352010716754129229932000881084162631008422324931148289517003142770505712930667179232128875450257283624139588651236881368412205094772164565386390422442557036864630828094925237217185409350534372974212499271798243398556827288562551310967461686987764934126373663227132234895859705465090448227817077775010097268574767843831231074003843503690048015314027846475502537567701243153432181706063188346906952553600274464047885159758223559537180963592610583743844072894627116284479871474094649246045577964582174731550492465299171398265508959393512802556786035063422321613609461075363136930973961093065090399079691762358509628949947114046753104202210877295408662872843871312364795330855455018822446972835212866516607969461180492065376283098143571442451191221943663861485283699286280356240846804480830909609467701366369243283659126407401348079821765662146256141518980797115247830491222421908769614705542428763004497537367683903126735158057645732786768704375723585745910634119625627928283487594753500658724627147334095706529976401633644108029247377517491718290050339571267706372716332982146468236766166017867461422458984991755323548238354915521412634154699992172111548360265661539949502938607113853663815873243749552368302723911188768032802072107588676506399919550377980285965928379753403379647291806323095889040159031257193552881366797507854033181089974849080261349300141434069226680375141208374172998033328459581387350356299363775113481395632963463803815766143790745051802023453439179645369390512853563518719593465747697009389457073176346310136375960014055393762550032135464285292848973053564852721587000523029708157852313827847486124794527473380256549252200156232824726052804811800807502662653724148705616008632541183051474201650050015057249834961584488275533923388712375213380500447129849676237179911085426555545941922034794692893345051613395330277447591739240411614169343661836731725224945069835606756133825429968008813869532990635514372617026882136763280005045738552056199711135378988070055870876986201938201165600499341638543027338893169820865787435086584653794875224433513118448686070833164185350312341176005030047645497525824983646585636028465163133473671444536361408659499325681125995302724465179450497980636129968960781701866589100260369821856573007745515977790095631522385702487200680913738425304403002308274420653509904452157722796156838959011234971229233591566904634719631784206317701505946024276391151487973766800403295631087663979531680626487927371181781264264321551831789367634320998955880150642620493324375645382880990218159430533213325677022392495961270383883403525646424316668245961881195119105235070360588963193504781079910197277498813644707486723365871315720206176199957723448278437617449367008923877563743361562507057601278397872906853389903973139266432406681848364705006851319564613926847014877026635443242219927180670518441059239985587225634750829887825650092048152214460570867405494423561773020663282598886105305292338500178497975559433761906767491531369543604884034335537879935830275044430121633179191896276319236633754348672609556752936627708653652658141356027245972414602844202243893774326208337335112989028846500037400981655191845854695210598891040720338451095899674487156628479679841650580113231053825516599439675506033284197001536022620479262483592306261729144587609782506968722374620689568432625054960996091023986156972686630858764511407434872978513052378782440831213283339640680846434053536249133184844907833569477802967866721203467457710851379575981056178039510502414960259660966404784532272787893170132697482003283301565690581964086161748553819293071983707408962611851381018759790762346772086559396448180190710841474129617173126836007986675122957417814081103835373349747771763138280664003575659543067128417408779725289827127739149258394754366678597387288637861241966300345489078729658900104591812195203286462270975168414027491016072253255581392433345356988463270384325554231900086825296371646819711640873048583770015288983404711602602652976408656031042285699797043550857926130085361522670476993998188512426589904382854894465617631947071715952486999024293870671819107061954184315627695752457524378896170982409068484493377772532848092134855980836580427154323436179642476687641587076531552611312506232850027108381043409557873250502904223052113854146021272452035609429030793903272814895264245261454442645903766253290634203852485074375182491782030615742757468682011321277163935358062144962118009178985663950587206003050969900476649835412096449390516930408823982129038679127618452745179813129425255812403092844416807909160164260868407988324889578629333891769944003155764789387154075315979229228911519618588636712932588164079549499657595775590360864750136036891314229265536546130949646962801080909140163086598789814218124053653913208018980338987433531024668032398795013180067128648235813928598728994214798212274410523746605692961825832262045037229877599051538630904595109334302726783755698483559841071074516233008025708930496869208423811369640562870673898761287888186971223761365485550627581429938543930354088280966221835994665413129719557729624950013917736703796608118183193753892599344384823076507959875520513814245506699307947333623085011836297101755887380210233582325495676078356859947144084987978580594240900369767944557853654781742564089024142065824101154815426694937008137375617259888472905515580987046132641126964487648337871034615168681179849342275821350866336998404944992320376588054244146074801685522123980278616114263054260321552013755660338717362274448064868553582798547752711693963975853837255255465100631481751036610130750528243000191592399060323187393698062467035786778741715004804838042864293214944770207043496335291677522468144610172116733299446091815879586131162064547051711514273446529489641096726428588819950502841515007935656980489770788789528895166447319820541909724381779699368973844828127175841853194735932178337998770811523407255124352398732963464345210492137112516543914333182026291035234790422894077774099128059917690753988872744468196140841505001647205415133508308817077303591104159952293330883916757330556359088371207412248252642908927411711968704072145193899535958711552993268871453207680476247374337573000601344324898228303807081027971787489491211243502498578815281768567635042514571928628080967221852147150560370971285813707454271989972583334808647038009559572760882483117074907458699993658364464293583740237093856797447209818287325818318971993458463661057683595324001479721909356809775632365688161326572138159707173582432479931223211638932954129071299872505817603629963035094816798565767609316807871524899274555404410278149229507959164377289540713197640785677653559886438745863387121097067897476954521248752541667183699071842284253668976109523960881871191095557641022613482358728267949207763411806071983778706306560824502979765845027395536559143799175974849410471263926685896901765405583964944473229260296581805874530630175849541164591517850255175684703593754831264515263314210315236985730229876438040255216960806930603234838081163751881837173253419491616167620219162120024334361959975511615265559212359392486955945577102942504064684975269775018580567559433520463952324836546805527873757566075530165120636661084543749028230959371734163387376291649362408531751842927317698687699923160344206751326226696988029371640677842289253709173114660201828975673842665622821257707739660361716369025636867039275692082807240279626316453951907302000063103868748358132730405362533001015798109225665379168739728857881664753528752442056775986825457968926771137959225565078800400773184614490613218240136231661555048899143225158395107335277037443755894069504949642179936809154493679489697190483017309954727328213869630725957925493219136692689192114255212303120196411448176590543316724250418604439286405853818454266124627164662034820622052624930878635636090788116627767321063237504843002928317100561942622338589093208871842064421870009380293507129218048875157543112406534464119787967070055176462034888058303422801218520993178667215808776553415388199282232488854017338034589003055495328748894748378054840753485211326963797039535630778666153159714236950564508370761763355904544274239040650876939520463827104198754504982104869218333515286821062297934860372018987365079045053726499709505417540778834666326504714510980093632057800452937902628753999077582566535629292733581607083643628982032469065592677356787761092139553871436341194362179546147797147724013000484923627586058684611763978827138602401819949315885747253891022672944896336757762516517944192997369883290849757212285224939621857489127129231438764006070610868038208230225376822951849361389567239901884591140399915199779824081044434573429438650856112986564777449672186458706504784367952223990486828284953057742714774842659825121982560047142578354379249946776937892646491686708067462478754359463512851248672724702916854389029386457893790524955842858945066748807417477207800300851653396064291306361846300303315025101914087906620693527333898087484145278140783547752186190100356796907591262895975209765899524477726591174964378931888768173450838291548560304492933030070049703096711540136747872384334219328067083725440964989489226606584462808756719326818170973782693043007218454258166270223470420588322121744457660530457892241463058567170637353186932099248922011043229770250974306359569219427012401852053575127570482618157552413835521316002238707969032500685795543744390291632926517769899016614361518006587198343394864311519364250059670157952071572461143658227036751448986613028883965194516943540420637006559770964150127488028428703105273294144549625822808611881484688175970691255002911298754266812388254313826457268529739239728607600419706939220975537111538095638051194119317013934784184093595386368325965875416092745520500923534428939228664443531752515594570811990382467977118854833911620998436648059581667243409713114387840104974268891336833375252775438754652826389480939764074545769162703468206541983683063455911489696783566008198407671733435620110551636817496833370190948169502237481887540447197903494213889994240444096608895455799543102166874858597110901990358416734074510704143591810062807584618146365723528944003592787165216099353006194074849118507109341409185223277113954454619299932834509366276667000704079496259054819528597834913245145402068266210210028780692526085658816566035505609041418527737792303537782452812032681926313132081358724594528412694576364630075216094767507482571566891553701800007893866320054996592723896872373037122789731047613580618494238213213623477784408877689799006800293204099730155133898146959409148869873147871221585113353497112092773180074612868281537385727180401229162740762894709312995836780800056539316997244665923800589646141814323556517061701943703245656244580239399106189956393630533320776681882975140816346672871281140798036025262074126172605955046242981072220023328804142943907962583558084359614575806998278816888434941209734865509811339762560195648606515699772202753737717254948313979426317919791888355674579714677921390963841088397416914431739725080107813781596917449894511222559290427429816010514031120580939648617100219224916149025005837295577102132174755917923832084616464604422777115001544657718174043240707229522798718576440034796147817970693093416994534337868972202313937766573981860470193387703274329752108422646788258011395312869479013868972881958122868565160507006472681961078501860225416303671228830103037063404889532076441819335326268830888925104739804276198014626691419055481421239097898519186306997562890307876657529701956555005808463614751284296887102419472616704459104315883474088170624154866569097565983745239286798796538726031374838078388378672575634769862112212141400952778996573126149797156640889199288580824871035743726537207993105792541066934436913450580254275212158221686053014059137930283001806019894186194973110739814890655681118552308613265280576428464680292977412371470833725429158553537286208126187880320279124895092679677517905590107463587028132880016090782472038068278894441417486961785394268198262785262072791262767263467701197106185474644900499168276339469226164354580791247368717121025466692715478634116169575410248698361320519110285424223530521371460000146172542036799418950348270785376665370325365537776693858895446611274136439430685403161758887079745257442489005516393006620608736741866433991138495706632727718962488628530207913973076285831294172873916366290410105875072924538978231114298020234396078924068986520386178878098441645338898136717779860018202880020932131818751222631755769016646727145743080987977166667189955769090633453275509508046256717381207083560244614526004536157694459264585944241334681772078313180417814535989209508990279207895134360696960227024637814492860573005615079587001487113377594921590363217154287997900693166737766129153971438411233550988297503069442094144156199621826004724578350097747725353398510261715181357076050473040403988949665060488083201262245680420320393421709257394579519611187766496320874136654472265147549824290278382458346367605434512444942024216548088643016145060409665419073605464449154830062805914914838316310854806216033465226575065743341529371137403467243711004814811273743688777545971550979964909005251507870164996916308439987825591452249450920091697038664588405768582916376666980541339745405258448754057127933371377442506824657707006949524392230563664841845343472421457728685353217766284838137682291608999833554479880277699814648420087779212871477814646315399905880907379722418545300895811838249006146108759556455102994340907607217465352526424928890496517473951744330325954905489035106349923999104832446954014754612731460080440607473204844491398183528056270075710592316719029347643629829956250736296370821194280071918029420473108003999084508849983219507232657524064327096373359253322652970173621880223052433476983207076463035659449137831871454278888769903942155437773392827155682840849469271191537156888594571359109857394371325136807773998125975873812558962090070799920246179928208596068683251086490950880017858521173048942896092946834850063251916710141047469901452549241018075657572519968442203696587330376396806656610786581632790364832832999999768020450333890686876728101265312666811041796692936029160425907962477008829784497460331312645197059058439841391112818699964557223573947780419563276288444995216022639168991709380359570813146201908657385572924975623237224685536443002536173546644069893710941365458234859334355336343357386878510626270019929062064235113653610153775685246778575254796427734144717844684388914609946858611883680212893870634305965704404077844438282684060513110499843240743854705167842439833548900951453372351362804979247962412984708988704151062823926288745776111841332695429649784350337254413484767974891790319623544405263155187638309581822040394133799686128298640411517919914057499786585969741884105242895435082556464548243685315741907465096608243962469079904956394702666579534544861162659365013703420278714058533623993064383928649957337427932831976999397449855943455313808147671701157291995305219375424821147735924628189043430792360055434650188981568759911226465294475035235331492243697007544415741637141330639276048671394169799123413746400160549079690229127204697364034633047007704020077121709997800326940636393624394092026278800484882132217535865058438527151905872095485453762425699472908117773204669017350100968991440044069234310574808763522193797791909614127701620751193834863095719747835664351074872536733015090742005182689640115300633172233853705616354785402149942737386714122694160932785223273987119057661946157822853647056094708498596700582950782628402816096408207261355183339474746912730070477488415225304664971106312766898024140724201159147776717656460340357803146632943762553353539783983033475110428582937978996177265574975290062443738788694520170661486491000236851305533458036179811544518946279732956526753452218381922399734096856372225765431178772715931112960718015334398593658566741104722529009661949231290797688386272951746575891654511636881201712539606700284518235536511042679689600618412129168178118063264909485281274497808892919899633755845070957751097700523319157895121781742069104375308341636042473369626823812719320625104932773117008783122265827266925537386313695423732972792661210963268816411059201394081596323137473943820560861445716225669089943005783720494333755290794216637681116410903092022043132161244883580816571721436404398715027300286127965856418246336105207361967115143829472446838243400445478698889816648137406545613936514179507237000609351817961696295264078065877197320848602396557039485529298200502347787453520840074689397633476916040683609388484155049745989263751521108177252039807488418292183745620254143976425200621747229951946552022391151069695554997616023571462350876004864957898305392375388190566522984181045695059053732802726460012228948728812243080201613233021432660506969836247826724351764768110052065635127131473385254881928569559374444261220149706669245888442680941153819561735666833083262663373367828346944266232680269054849435003053391560277144970540383791020837830910833401620555506327289940175175091337092785371217624106194450735376281004314642241189505949598384539742784851916722241242093975551966702803034480026101268866491751164833072287506995644882031160798371070606331941461991834880304164048525123069750182386758401076397177498986701412515723349041987688240047960004310915904020051265730483582636489461420646801266275303784673295886857217995103768487870904787790785442991235057764794799278559541770840985806388935146749156745684418884752767460659598227523826004659333402419987415729378656808131724046864726598075463852140692471146190501217264554663824233336296477392453330699184450581700326302964786277839077831221427864717758193515004822347748058633394195109637037141815093944747250260861619064054733177995370279618511885512348213752115492744565815068350537249088454769954081701463298280856046838853272413076105027026970899014056421767667860604198255524218584300754963562825419598887910165930019272836988203193700569417926608184525523574082095751976066048225508405043278991064184363587594680716619286802499966964918180559524515745477203906190660810249107906527349731860185701250658202763128394859177198564161789249980507765877090744862612221357545824775184135987703220323976767236644673680575446459053921058146695232662654892451476051029960449708394975622621157716883923344621071631925266929761687507904252251731739006079714987421307503721645439320941146445152242929713586316357376917351860834597661749495532676917522629013330352393911265618395989809380259274315293753254997084795362209786900403346768287815248913485136166227574097639464944414218045572963171711673343259604032547355054735759629829692673099843565494471421785538536350800906021795684290959679301553787552109056145284248173257291248523725687907906888546081396212445601962927761441027027626704565580705293283143730752828641468743963379535608334548135515577219777610673210622636459334198136096481009953095080096935049725036712062095504625861739937329288349562373696036486476134787176941347779870799228047257565590475942466327728000272612929647868783253324064277901836150156463515227295432880576013821946031864440905515681251970872558147815696540449039561529474187163162091421548396757244881098923481131576833479316820738038265110204286910311064853163896076026127927912547135382116536416678481074315932676470528711192855529547354908294382117676859163835397282118467162401589203846232549322430934345354436909259010293183378087865796623560867561510166459841599499216621442228911098019146432519977462771628843108648310505489884654040908321661950868511503760120417206708373619089116927825281898682730089954308136961243205249755967951019785653080745035659268723923898352580530009729835908986071164679639996255250140985764158552590897041917631554367947885541739937206234580501823155828125515806074485503896545528702161046559425258135919933836357068200490424916241228893159162869136515424701630789876078770481841056039361624047583672860895341878388974564662252685213380998888189120350351154437212095571352121698730881047001680496211172360527515296391151139338478980714764340647842595347707543355869130924380691440593026439418772043655979796713698457601023345498047880082212945557714350328730880735416357877678499498672187449224678190350658807167007398891931483489882071848611029916770585339015396828449429497984452609339652709023991385675289537154583093041164902032432002713941003077697836722476505289477348658695591242071087044000024044325970127705724577262181863056751861083811580012345468743935432195198651416769809807265814636383383828104854195205988855860856087709223083483347730885181958072859512781576525686980843244223897280507582968810607727108751751770138762797408475914156761335084790181847019928427789028103757765021848168114586909195838275245836576912170949949432773349336155184361711305076817066532988041401493348167724959356895358112305385675009310862688340091911528803742241896146936099274820036106322345264981525062495758825419657292094113862440331395632245270869257264181021506046568379268702044286971847496281141436946256190775452677733610719758397851372003523955874884672004483555499326145522075070341262762193421034925716829455605116844479170125790962791045879659149961096660446518490694769879575301471339313490567725456665926779309564779309179395335938799760123497837306253080282836696889129920734829733053622384463951507387728185063794620012376223906778617436957736531734788457574554238839930865016273972476925475554130867355497602403444289820661398523354269431642143118625887947267095155780031016515275282686841686525781686733960717304883386151175249803482087286929362316763769884688284715819508278237075963156030361759927389177192379844590270908470277570279388256986575631420726610156045728262686244026856193596860353888634296182948728487278405003937498737054151146823592106799635510022112925419287021418971900360384294204072774816150648119432748930087908089794702652489457148725743303504180135565057180901907603524147209332471273144390707042545597849337702131301031913125530833375218877269147804245244298232652351835035487335243042090796879581655091168869672705138103303476590211948789460473000588678217853008283993493255255261970693440292086699595721454308228568337455620177906614145077805178159870669518059295540184447155617482273199920441705026737783093367244153541234100385195166176970937663389410051612799387312160308794663786812549969223814778445647453761763041527725706771467997754641778466555082593132506281197214907980601801204521129752911372057768786548413270558083008481038005795158768977041361745875823105380187189729545213778740410905681575956032685137097279811807426223357476441445487491966723880381477460353548933663127350867440114847028089645699718045775765226597319993866330114835881564008964890750395348280138643624188502012226336172126700894903679275221965920576685636640946997468404758699770020028027126933375997786101443838434400531716384722186574381298134980627551244854464615340888371893937950948973411398930652234391334442610883787352158836135659754355432812763433885812459770054174413998479340242327145467398233339779434399466369626533491790449164155687421174682531572329462850939547127029183886017283514947122435306889611183044947339132666383267886435384625030797287369249169419199892471997791610280966538727693335474603715102307328936381320111167513030973215521561792222618258080737917884211381903656700410160783736634168936854400799139985240038111782102598510894683979779487380149639096397336365081497793382511438141137338856264051933621726921178037819110149291747106218167447460117349380292956240219730083805479571227786491984274386755029975148908207188930144301439414392984020785232608006361297658120505982377817811622310810991334681598395386046521572972703117906378908000662650758104670374841461515298292857038011843169708538958601526302722672144299902267581925370156532098886870185600178781583656545303964795183546110214954689592699801381941251707270767820832899659553759589032797189580421041609122469348007083832131077397494524879400756155373937518690105048163206300175340189979664028494833768202798118605672871119459056776821156179734135956792951998709727138431680904690823407707204291528806274819079092140002379055568584354442417066174067469271491277577687684719337520517201836923222681572294087153051364822697587075214005116217381952436506371387473006201981951904321740942379898654612371973626289032772439342506433071808800797155632582846356443059880105317907726060510986729513785676832587407595738951893244947586989971478030622562088531587305166125281200095989168797548020271525890424960501097662593706498167173166435736005257709233284508448350184032941807353102245071496516546087749110181288541807128443940618917275724295675702258386416147828995006416297414791444859578700232879308860000787116115494863506626129689565088440366597372307585579251489961250596233157451591254436017072677990946463964648367469915841292224350015150478779508121985898192566105506835296706311591120363510486443021729880085046978875652502928035411309742920221464538866158928004150053092188118659581218506385724763971816500616937415015910376269983759905543579747160995279567861404756017333877727798907147357246990032555674946094192282447191422439827515393227947676633580386892161841818797036641035323706390436318463560927787820491550538056435209887355635720014897238069064129235263469089457549714431166026095396143984610476959115248376690894554681146655018442295509591248262864417662532533793271573953650533989651180211896590624702946580911818184875529920900981966759098559117515771983933642818691698539777195016130704245133778832725994465934040144009366904792376113998014392239481163265641686609600930005501934942069031038423040621609846121727712600766921815066459457287333542949369773975673571457254550709928804059506196939094652362494419961636660234316069087960956820895695905311560030769900251227516804115095386108149886346999981591514945858963839036012749922505043394066231868729268873654473931615640742500027775234610417480591949006825509916750816482311009964461606893678542226229559016988363381099795598142362299046334882155915371681229885460952789544130185132268082463722158430797408688457730114913490702534994965156088482791085854940629846862468642920328911407384851165563995414306502579684265059920453418477042027466448569012220241591031590351287722177578062410246652684846172928223830883245445754072444383924129685557494119493275621054254736317286819036418912579916592289358572797743072679843774640722257895454044564462641247761255527799227108031610813014566001325435606900877366784930395481201065760754978198459410945319818365749757213921537475802370822413566737783971519431271629094722103487311201112774374573865883011280928658037132428943761509942948998013490011208604823266248138278717504682139484224106771846797937475024090137402117487506785096791863125129264758818626914245157110106535594963101941265640962957875843432475920960004935068080886983748604718549512250511764749698068325727724602325107107299467467703614546081285239760719947789102925040484089297267056713146769018633598470027007586100678459918550893036862970093685842824215746516281723301190557215915049104954297501915280019379655409146158068539878628951505107653737389282164818782252951092744445040781833479523170191556559954868689345685856769795942094727594869916112220594945174579356341044077749112633842559892164382138834432884091230575648882090332835211923862537665462870048786979593347775681924003317882016634258412213887921782203541973530511539302763920662159109809087787221975023082976784257759018251946993236417874828372727986289420851920565442676160821653783716325096242204541851275952157970220792153893462594074210440288829536771279660716367660832924492652029461135123085213840651183862536351484319536109038339817492275449523663556401814020988485007626033473187261770418810436815270596462297145568971362769622822878504998386418922578328887816582793778207085464279629761228404025939835668458600955917968996821279869603774516892269491015767370917131286918761850655312528201129669802283967419939980929701930491829980585617892962218423220566516768692194277498078569829826668266931000156781745841944349604702449261150706101890657164237570412313750196768617362333042286554243924933009659053708644699757979573856177471950148945888623589742461031009202045554589998993786303948445329817880189015402969873590666377826154472187197507783381734425470785344004583274321665793383563383758361455778684080067532648099034992997561003403754105289043721894845062455235477323944029269909808414221015320811768806666393439786062931314307604085469188758014005764433878608186771068879973115426777848402907098571130559576017868013634569482275774333748460245917411548834907298366897900015503710838480859886839817169661985557119421996586417986106815139554879592767556334225344088010503774119832341214368128728220370271469357740475032255009568134766444684599033240047281105549909941657882946292911585393013642840780549330508653358816590110645134494179943627884668731307008634292840962821439330337566724022029451230771198097471479217031257976806239038961661417946018335939011309776646333138710369296357589879581829054056791849150724996151755220011686569859304128347282757983570282091057264191044573293111560761097568262028275829970559643378818669359096689327361914378649158625620710839271874571982531766456692830000471164769923556182578695998293877047253788484094267039775137394500075035649993945714991424416793240292321014108716328138478117589867333359122376891137718673164049964860074826509966168734522877292083099114941766712097848387989388809010903854462121955967013437147964159609080159300235709408922993395229836097620264623431841853946456860703632084167649005693476392218407876101805577461176131289349030357128370342565875952400485910594261274013434752141758645150226201997257065083336692806793965233128321385766505304845462922911036057663168730416051107458715232421378690593667302425674076168740048941205719941833489190660435579580582257158254423120956323199082340774820528701520611856474476295589533323213930900535558739708627421467632183736920029898514835836982818920252629471810490050600499601706318004792485878067660977139273363585357020782779408721430733775376545832848244106001784547323605336300628768237791396444384321013461059274302157070719591218994693082409150987554785175731616526486484471802924427417753331173075631815787494582840762600859602278896780256921725734042059423149789091247453215348389533668869948034633223746522095087413629470551542353050640865312136534161197437105939324426958624257793501713834984215533554889111043520561635642220909564888453479826686699417152712673941402929683665361145997586439866891489222992512434859268181453565654671824347017000482376349069183704862110373910002934367921650403690197693009913816108532877983716132487406905592984033083058124409248144108803302838822696961064063628118947804146389061995700664731820896609269403012414984219227972385014897734719575146791904006641749662267597464712577964629431031179558622915133421734736828268290196564557600746293404109101231276690332613814076870961654831053194421396694223928030430889523639986468675737873678262045330536576930651527370653391940753751363129063540159132394114094138614651680279735680928235767722647743352754817687324101417889780354453776639371619568137073206794038229001075533853076062346553746393769709975878379151405827449347535327804574771315359581422571346610094489029239332995234461020463097104056748894704500907447850134300422335644583319925321992272324797627930158970986755766927330107937616724518725009234798480711652222366877204342336412782678650614969314722077290563118445942578768261920896560361875635462651396217404603614156799309882016236977283721196669139202951274226295249320351498777394569438595877030173068319933267576421476288784639839299394073838393692704576556007294430861426348642932944374855794289205289578179864619742888947709286977050918676741152038996446585764376880588682796551493030996645086811253354841710059886012959955270134338512596879491676599835951855115001121768689077981631059267661230210995249148771671342880471858303865638563763540743632765551767440808585199003175091372750651404175839593545589396469318763833397592832719310708613091513374800482108573745655413387366605085800725952689317226493446452022668717724784111201335230240499624884955229098467172502036389890846819304156147844014081944742915744205833813769791595613683206275733374577228734259857408471097408444036275418117816298936469657568284600302439646652757529635458264296724869277056919629599671839143684240011901787917794366477860241121763120499321441742861345409920363525586318151259947544887925261448552447931762053539549763237056152955249716539835869642931306362097347476713875644051682465165006513930188560419282278399978297265857730085426044204232757477586143174191475195222325791574499029430915588120353336085381606132489315794102808131487354944649230434099925463100322845699969863489643247525589831894473267506894759890523546407484464289171720129923523019173147366686270453146508502811917950113359475144718888204341123149015121203296827196663374150269845098108423531040157444427007315985391811899003912891466856671780732734130504487526853623860773882808922784655974377020015698679497080142814097777130661819646831879969096021530618351602442240985101658497552634613449612561638888073806243853908513889318847580395351195513344190561462292529075602273799690423041641192905403664901730387730220285537061173034226089800020137096535463067387695895790296187506648086109199045051207061160679929808951807054188459740197821575403021219280368563925705170700490944687610566510725279458364798145048774587500432079551443879020557566650736858396496587082529163193721346583000339986008692779421264650450616552041324731173208957985975242864870938520814966751627051457773329476819729844899488951126267571919831999585764625506187393265394422141852435375173219227820784020998886281054093967726417977469999847624151121249267854733752886438440124527107287161788266860519763495279266272208244372433232337817688659494497552458362619154968632340695455058443726175248158075976500509676444226002442988022268056126282730416761369895425703739936995080453823585666633758575639314379169094032719676416732833504425023345535447899356060360442371407440577071928879725110788279376104349733739029772312429416055419457149171286332357644116515013363242692794438560512385960720794085214342912524774856314646277823752341857566960155434975501038198055290157403544013287889065132735343965107468247965073411394261218670716543456318304891242198167052412785948056545619964176546182739270432608504231899282090597038571324550739133991779216433354706698848992781205534679884753264758429403368907210336105377847190439701201843916160302455800748139050123829814660080450922133620042170712859154104974716925648154078607128734550271409397071479871388355617779436671142289513323237038742211485612050229925085267945133349197734808054927207170260465499725969289176913779409272076059617983517174317672161009729751619415240927703747650259058510853581880726939882468302634393164841839858028237976229332031363143381194155321316847103857642501720805589662527091447623353917558589845849286109101254776091665643855712795525909957911460831378556530727482887753030870807957230129624310649172044724886303856266334818622403646376059161173588601280543963752461826796122682350433550609291072571318419551409748156666531738964406390479214953394086980173986607132891680762900886764810843519306004761591606767128126875219385751728736121350931213536309422506141856346354573738664562698085255445932549806357331304437932038052087293242943550279777520636986522743716935397921760261821720316175313900059247626026895868542384180294649051803132571519553797626334068150750316787916160947159976417823052309044556470642754898601508346782869939483132332472107485995581363399839986511608221036161766767168725696628633854658173852576362149159086461757417981857687495688248107786872544645187943103836100636199860787416232268962419350783509507109362055641226142576172785146205408850022735496939841368472095788320055390118115827298376177249270022710592847947812269528775968581949478902261253829113119730273399581870648837726657984904194956704330806017802768967569132286917661539443802483800546722625396281142761786332955728970671186719131411487806087027179140148456845689585542342328857902687006785747147555566376940100766501660903100347157103187925968723799124526261806466315416365598498007067420631075084580602600596891265826597562145896680242974649053651788784334477363082331251086674300618142019505627915676455654393900696066609227490136418511213576445371328167005415375899815358854775709870345655775154903034226770563898530427573437068828827365692518354428222520109733820150248808709347912561868043491534188664506780489631312154876453203828468755086325806996698076042938743726245022265092653582155095003644028729006569273970778614596381107006866979154694991701309583484020530214747031615102626890116307451325028602049131823464267872653784294780063690105751284720529537867489246748888038817493361698075185738648237155814578792958703598472910379187490886395172117828689657469165689818611453300108476160013260365944281496568823687789783029015078817049976676009925451781810692573697345820897796755289879362062194533819157328026185434418905342123519077172436613450951981542429163927717395384193861126270746109752694999287044088116974543115742949512131624210615488140717638124731958548578979759812042154791234877388872395986413750078443011422905621082492559775585315391370243219325662664424962620264982576559683490408586443083375847692188420008867245707131014859085889518492970925464428457190051388141313866931629761374630508257294113177482042845329786705326787973083393554973720193921312513829308158101739826425850080988079421744545481129086833657433681135854680608142228794107896455342256124721271684578269674222399981936376420026772752151523876106623287937822407989959765528279027548996114679771029612759075048460776571195596945403413607145313934277784494382782582759986071253688360176137794992320645510196396002258136542845063835994901801964128084428648744263139497560459443708323081295820649893002858028994159443515661745747995588678667922363203955722103090548400089803141570247654849287168743885761353714531047511237504583767339414800312000280670970608023902968954160940858126088764815212391552050590369156262379580719433050298432236829115020832767531884788733614862525430261149325724566056211434261003689315843786697230622545224393582364007439851967184718980891486190243851018161562933755861532826052691002943994057308173809230507826092470401810823729125162048294450937985255201059528994585598049064272351619227518440905510052342221538017519850003623976901625994986265950477921008832046363665602523895156116110470796294503022048158519631416827850651015452394973749372596631465830206258180548185212549658335978936608680811525847301558137049192316980144048954837825973771112506168878182415707513618467193961825204365468222805538588155014683380234599061455359976492492115027473504049730871806885534055780642993528939550278463998992469594923232666268767584874806209037213771106511178001135590116402269431988492436752174749469538824147002316878625664507426320361754351017208900966059970881548908132859144677675458037350443702573828933101891614964206004209219234429437618995311153636952014442818668432140935240427363852351668236246269407856371746777447972303366451352079563400208215494245371040797692270242732100134966044606796085927457312229487336787661459154784091558980337272810223121412956513770251799404158202473199631381510502318294661425913697740527407945252754722589954644299252282609695130854372609125279159323196763071386734414117683033125010438911200226638332538340063398420375930393623423635485730897501749870171615702733808179039222526499664411905552903749297647253934160462124246464923219594602986288714772872808736196737300149801854143731994143734236866557311922943737232185188326210900429880416296892617263389576634494273336293760476951749506590420320250805876682118440540017184792765070993680307885171579047498975478100611859829050519138342287926553561359251885726539463753841119056397839706479405605547524848727244743860075436367065249984715436208186566637845901341312481001437238808291352795150138568173438698052077025515328098863821584947483317257899842117272192907477323685414104803947778488121384440411971511187604051247776059411490897767950932329779423778512319598306681793299722166404817724043558440962058395496440344628343344901874061881190658309958798541883523206256961843883141794774696448475377948169653365474973620694210168610798679538999074553021093113035251240577281348752297577428988671251798564623245453867621586140352384920916915929256816413393518870985629559644087186195638720835227652829650691833140435902015261441987643097808589372571891504978428784151882013475727070013660647580635083725303187294283370585637847264908371668297750074847481202485522117386064681100689878179722655771213838067692380438620866006835932044196368395012258851369340390843512539050379397746336202483447314241268569018447285771116140182973388773695203614049673165127881803854774901437705433177541279709538735365826413152284090171597215887184792897779092304351908186145719518500901639791480583225312896549506781836338859019921665079704176638048710714970262689246607505377796299115531475847060442560859940862466974195517149845368759382283714946773936900384353908129944578249467176189831471716303488700743800838452836307648601633504209450627430941045160578904487330116027864031883997668318696128573598582494479153434140265070278716399658834811281595120408608174842516829188069575169120052102625729726474212944253396582905621559485750527062247400516440023295971600300578106006962350248277443329517939179424707508598605627880113647257001335189533937411771521447323593966262049853337036351416761135074533781559722163117674741684606974647782296418915486086889641691627503953722711762095757931484480228655227072491879789416986784774862034272063467311841832133123998649891508286874283404162911184379855659084101345520685980072286117250811352154427374778097467494072377350726000042028282679390701885527259064169057047465882782496022525550941917440746609458302919401067859595183684317284105351782447684933675620784169397882141584852009629003410147317285089738877491641477575524811399123609840575884469910471129502088827009813018948714979720118144141682298768861505829483201993843371532057629297588804773498573425504451955247596441244912981572471818523811268322957717750498094881389939399152266661673753347222385984378437331705392433264457003155148601426014381240446297228089266568465161160441538939676007250801863638282362051223697455377808633156830089202245890086621682412197763458036964753677947407428932051751012165053796625848934719779359613933146567048137838903951971467465006693095559769672205394560273367333209495261814074227072406537626023207237443071099326663563549366593800917754180616674329340565827724238013682383383638888712910385898102418373320205948110206541227500589667012486328116940709027256641905513236621569017424045649035295357680649821689198515133073552352830063848392516889348105467049835767315915633097806169351481444631490251680631502940018220329717848758036587810564341224529117608241226511299142100459183403563884363984673133382636766048289198887202851200346628077003110701000777731495739099178899889502845570539002579299935331624071795415726579309229588355164007373817306100234374599616423906385556406506206975801886240169805520624232762403499268113975240575425143166742443640945202720333315251063159323439277093631862143285647091465524894812538992160627567312131809073108884989199475331737324000067553899280010136185803635816987653698667542890420438395204842339465620235980972746893218986657747703507146534604110278797313091655969162252067156866842972057886114694183824950447171567865792796736287707883418221001431218812070982623826396647164169968727735317106675842307110929411711756152048571852519195336794826968414182380209206613616235265525033756221255221399203533036004621690724314028277130454521817053790394050041595910654529726812702511861485730312057331865694035228758629347092819084046224601052965510279323446346505977682196325406377949646962345949915387743290663245716961763009073998349479804718808815774448059194490094830707205862047732665117127357698745692942221407865871231631807959483920159154197213257375584910458912877084723898828901006110528532444968822473162151037194411425682585607477655524486871280717783464910034384887411283054263295246329462268537010169910898336926724005728825213043188049862530404307108786014377118945655339456341653227592934764799121979148196986667264352506813476834208863318532907917946568671839456843380166661847862829513311157953348910829080583787739433871907898853981968766136033219473785700470108844077766185921170527508221817829281403277731386449960478331603867164998683098743140092095873807072718218567525009172820316126409232606679975192609198091026961689174246301758096927138341780613772820190416969465888701579953855830234877448075677925746140304710976978199535145511160629882272757374206221322036002955909575717869823731530105034857707879585577049812352119859329132838328196309806292242721307207165987472532473941556925730730159850607238382661814184650101783916097409506363406846519325127523114308958466916709462437212702947638876858609645593263014494968942501950463023714111709755084913223478521477502819746511783057578655213315366431938960021419931286098926740174401183769384033851650029127404942137081142066124531243522135926651080699365549258250093696489741430233591056211867650663043364374951856399204325253787753377530070941239271515003112984202127138975895144426816928166732502864428990979980248740800411699556587824422683664483099630265621570108308103193295511957583301196052992923194573983873256197325860567252965367498108698312816253618356091561125652128666830408362078453036044935485568360770385935106621589025293626919965970024836586608291505597559746617054551379051490963234886383637641430408457442655684336068127531754865994189766765787908382955166248188146950852240592559283870443858504592896089963282807010669552537905003556949765724713768754021520512559335155037791187317265992108113911944312560248859549289892421550086341540932643000175790371550696822305855330967880526776851597431038702988214097890777965956443650272872712037344954411609567571656900956740604266321419232017234572615271549176463828559473839628952681583136341124213403580017987932166768325866542342014460723372366619228748293424088653638575002988362893664778968926889646444780054713759014366145064695727609603853408353587772428167311259021637119125686589753090862391738387509081767967627312378607503240570532266208020227430019987950831361155546861292091882876497708481985334682206418134330802321566513471958637205609287081921017003718221824727335722170717744990002439841029356085962411495336490874287171268667739776178474535178309871676641305865466573590612572977558338703160910830657062902607718109668579554201346151783794063662976495042019378264859247110395125827172700751060368746239548149235364042943838747540811468452372674533628200842062726138443894784319904259134507665437771268466677690121863612260412054899599027335494093785670400532629309209769938116324483034289237093658125015082105558932850112418403850206411127110108298528793480231334802553438037841271552921622101397613863691366243735524410325555195025869519860933052539032439709221113045939685951597867218550626287960570772482799710292593887083195035245295400567503806458256509847059952888407188411303898463760194474808480925658483152252323408051902286330396160743702404193839671672844638495061271051730533299764655422399367908761512409096115935422713537338236370412416001262903467225069237614742493140634645251682379169342810760424810957336912053456648643894092723879096656227188986792258310458514332809092669350509554192391771634805628427513440438359273856857744252356150409732196152852500595545636072976920195107953894490931473598657107280095436294415594289837850675777330980389684230826333463700080274253610351314732518813717865020800889920500152146086558854342946772702027123967776698853943777454990899510200815025283615003185171565701140729916481593167231173323296414951084107729296458838399411354941609307694995743092993284003197255927874127044557147964740362060006458863033289982915585031524767225668068422095854829127999374166759170128840282000893844240747124456918300009686717522466081888269643034085877928363096242488822768356527961208762592092779943781153171358183232597176095144253955324505029673945672321087321835016559524863692266047094291241434933770033240480075293718571408497880567010395060744844858339045288598707043389380793794908993426551402889633813234800388031104328277865990309679601396925799906232764136197424345079686797428435523310590095074249670727685562508237733492720491380516605376099493739175184673442586717616910434255953840930672605619212915622417631030972996794615160780680599104436635146482614991440401785728467955948680772442525255628270791271332935826371165381493204141577905719759710760323596614764300373038088671756031361881921932426957974675879398547745912405188756001105302241267908926878675756287270522406488778586018848622494675476097513698045605322717777172774492512499775167214957042080583119153977395300463635763150395301058375409997493984726959518830934337827030306058779920471735337940313026402750122116348592219851258250057007682726574280863790039592803808492472674705279828333555137231726043249337532576301326571753362894463327217381757179234390322364917666400146619209060004591439823458897079267716069247659902784853912005012971142832547825637621468308926964565732595610689869478746438554153223839437702531886328251566751640900753947417158773954051847053225156977138626062438372985487807272372682626785191193711637564433588356907034528523018105912143066746975082234638689714047230503617683266563159632879479739544344152787719583217950094094636645634248452758664939998200311501166401887454389826957594145951240474837803436949722073989198189825508359211895265576175854551277762493265955934221206733199257527880310881719836140547849851613645174277513444577038335977915650761008594089174479776672657506008082421819205519839545134505179132105994485813314952612145208623655631591703121885459843830723450367999222194904551632663373087994603335512657593282895343028663882925017750602395876689094316236153249735027803181571262011729789366026810326088262561817375007731494892027430821367083510049790809782704610107508294578477208377711087330112561110087194074275614616884754785493957542112759797548945215396295771989551427908159150974545846421579988879044372780480590935674789920039526316166003354677092417208474008628279045347033025215665422384941866834146058656061777019705581462033750440654588484692367246038963323871655098136155724215968082771448091031488856905527864451117049996901652423596857522723956626294928716101876594483806348435241633820176998259097357162279814316291494467089445233525825888821463185904512535503139863675134119683573062912643579626555882088611847662486010224518493616268955162612097344599882897344285462692485183018487810193757594531809597189291440436661030985984657795042913134438150433166096804808100430825029912294732575096726365133848181363655147543494007129884811199545343128508723151812215830644096062328454778618708377342081377697589860872366390587198315511017010598204158461733918272553824035720732107561000700893963152416427508950091834366487162992464227186319024065242396881589013255271467063686536784732355635078921934998508225558260546321408395431153938279745267638068303413746233733346465642915888639969765784387293236004610591004268413999050079863470694213279577030982204282163899787222912898267992896704564786429644310847047957436759582274840105623555615782066145549941783376228774290884219543045464004636771779210226923328513105666601274822362584575789310662998100583138204654938190900906967072722409788313668690797153329711687084111540451637522159215859399134171628904801076546439560497387330880045089060329092912534891868169169326596739837583997919487208185167145590928110017510598822221528388301118953733842301041568145727335253402081079364227353483892917842792083256527172523531430731250061867230565203241742024497723701604793030469150426651172047329673069955094552582338404258010562889177073824822221645317768166172911587809465389655698813535035828082788501554924952388589369264843263116573381727078207459534951745370873200449182260009160196595606687440854719319577639671716968781489894552959335884625851052734963386841372588398306422438540455554626606054266909455757065856302872928082549486291880405847625665813998800127057460451237620294342539271607542449041051568671266965981500448399460749447740386247370071425484965517729428357573583481324142507920080439920698609286480216499131691572085247560817578830664104536054625539388721505681973574225089947157346413631172067617811706778122240336430479364995156537520149725744071388942657334027053161616536660601025180834208843612983330247729365997182781404694301181048085723276235106252270900277614866856785721915742383215682135483475472698828553241239061385995839620419785788590172485919196360114095583449249416072518417154807254343149725293222713574059369823847985622892665756719974413495410388670227232444242096907206591958897276699725057342941022970090992075461846635709392039109760739150783470388752498429383818587897614148799643846185630989127462704029690752635324429134750320419149386640422529296527852781136911229278473286373408627352161813431701995892605389823256621184901143022758253496634658496245529821416241476080984811022582615242039578279652877014178021218781699539794748713082380461232619534271772090968378979042013692458659776517376904568150191507473981047382389569812288385137357178027699658389530359380146336596839964939822191333529674252169608647404028338176259488293682102532837449862327074947664621530691580303716675236139110959806524500908255963194919516226687454931091020517756595730623895661403067566697264223466523723221654396527107265368985131421009045946853472930147773478000261952113165556147082565945729976017556692859628008340803323719452760713679482398955754952331941962144555197659524455307201568272499599244177250314805178177170451817739298436935176660572411198983153037059059508916707679291666742508996936723008352668714236682024441442962840276144090166125143687891721516366791198937158128250044270606064597616602048390603942954978123154941903984390345734762470198715170566292843919104068325299369069099684788043147256004070459147374050186099369372533684285509289675239360924728563546284722414310946320239406340020815522645565101274367030066416446485570874458615133318891194467019982219325056191532411891892734269932517553635645969899497201031674235423956433962613392581732091911578236171522081457747017758391865366007415147670450307022453962245459980371507160693580549511685102156717262574790919762475656069553266175680812427203045849709050584974956506287181966876172708976123458904236289358891480133089667779221211080872417005015360809861554403284836891500081227489854478305092342618408090379455578901793293831472830991008790210694136896427518680575093082304036887962370366638432959105629867811372733671777111501658427480082015279944051058703608683722158718470629770316084112518367171077970528237171474357127536784181742276310891002062057149601785998226286188338394407573549857305303202535042531710451913804757139862184083728215273604423168661715925546290819275762245558703958465974444837921215718386600268887259509487560641537372433259399491446133202158041413991051014725538393147444256004674326845588967144072895751356068884823421257094264601738954619365254079257328639805468449827992601259568099118427679518997524433091484774653514087939954148230342417383541672898060233579926944927782870090114990828166287723292261887817114012883658645273405089397922743096133144457110408817299171981945051495250816601086804132898831597115584932339893933857763532985232416220765423220569540824688693291443870149552245302858027712393201546703581569451115528164331298852080045992831772504683826595485996183059010211133625453191339027825000290378230223581765098908085002177629993275273308641443988013573064657075459971138449975936346206284407380451304952418057313361517948296267269526434418018212552238690135036671912096351712652503348976493220723860327154402021154035249296558043107989855208956433451758106915120285225909782406777446873490535628405103695230007316117581398004087636653185031163051451487821758116334519661783196800461564819470229762849438635288261631086333978020769168248593167402870675907528714880102110776529958762269002950602728878102174762372110731976404407139957064441316410988286035154566750489809973891478071099265112094762697256233702319159965509330669830388206611698494397419864705575959376921379907032676348582066768347841611376121286008504368796262736845361067526532364088964059277646756377264014037852649850640982214921940131124548496412285362250583405374965924907780014161301202314118398618202427659226632395678779295596418017925527239955313981834320108464158981698559033427763535681542609099529502258779188373661500078245614051251205702876936933363339161263961494360532814406154149824315630029577332573064970384875300780347348167721055368587750878643688840744267984060337901645929985350358320618574519233299616771614277473811195536944899173502439296966307355045277053240017901020121897041680568553154531099652331720694252055875988931954536972054808075400660544255393106648692914695934754101344208311210637337883728948105404134057774560632224028928931145800227327288131630679610583765809248781889809269062045279097425209015245296073892787237644589473784337581552091385942199749916662586895303981158840093524490201216954000401105393524465287931799058130549866997900175083655457546957382860952812001019882407295464778123169605277820013147018088292217652849328190522187271663777782623545640979103640953700951563122943438668691961552722273364381369448807018585194935813810402678956588092836150185184238903624093958760176124171345016621482093878166042448798436464908528021610582082239443308038372058027502234231141526958512660348947762604003003772734221018867181640264390812509806279442125008688227871675050118178972325663041358339113513525054328302579322052522392091418772802940791667622546056887904615162839273318296932519934898861066927178027929265117448530640597411519228397746245874049256196221055389435262873047946090482308961367522697273310400400167988367502541117134332574970355472598812113110500481341253202534664456790517196492818316236961725385564747296568244782089565374129280583914907142623159180712630962734675955085562717181869550937077374438190131136549149154491230340589861774146479618812456360067120885010641682896456837546660532487238234596228348440947634762277284131028831601257653694532982029956386583053138369977750024263481150876470542666061068615906460081602200778903635634541078947928144154667614007357907832851007646805526561572165628430615239036200121045256832693746207054192828824945739195134137669852496709756815908193092105780390930478690950519535869333889721134902725296694349927810612325667913970412707295495165676961539430324529537427223672085284132972370945324190655935728485483090165039496730761917590185311865217019430539978816407986610508451412225578434594043820525525905993771188470693108236858396779594345654749762328630750485507876002880459323256747992244639951408485779389109441807784483188946564241311394620442606371421617076761028697516348776402066407277243807685922675961026200319609560000131048707069165645691947631724030681973249435776721282940502189902423033957987877032806325346141040222950937781240513060341566731342416692571244272466371656162050510447811594061507161427586256780719496174696930415276560319332702884490837183562366212629629854500991347973431669376296818699259682344059684087242313431540004165457483402570578540164741654398456614770822138379485967558558815417410480034111613811660961895264502664127091027238129362711029637782316907633844845600213803643840152088946007807917964128712453030517631439078598426978474249702963359068333006795378563937779487795652919002267804889903186755258864771044018524865325502734916939858428104141268689146216828200981895206734611772497065016947465222909047348258409835780184983845119753541774947224702793900277706896277170766321982644624999311675143137010245262432133150276785118891577829534645362412537101201392170207052719696843389355312945783524310325364566065681797678689429267749612386023143132843814422858692800744127120073219866169450567171147403342824308308902446655592811528202206067919566465951252306002245432039257412899704004461749650103656243851871497124014808238784236455772508464210504102103384971639344856844253372511463297439393207719767533766430881697174313754550300596833494055920767949816559439582216503317601232137539493159408281875233588975821519413688151443969389239387909937269333994825414804728713853339375079587439484819603623970464306174370689200151861108625041888425775138421354170513470376624267413289848062718935328149961256472905010169190969424089592485858399693406055631983342474449564922336314726959092690725089289216079265656274066358189445714659793426012584416042799028571717061230472699738521798541621396844555816367063605209837956814300840542201705056367293704453853334016733051939123986545683329518166689300292624914924794399094362485906072392865545135936004645729083927260244604678630321282503736170096174543044896217902485916327424622728358929145554690932770690419961323010021639476760749834190954543208553807236967711231709199577988040787088236306549495616699001100503136307542999301419717509301621295782842655957802356687730080975304162621283543067607765046104668681544643222514052810062676772777206043394998469818747169584662608166613507360751145869363638775117748494000388946544070375002324863755435603347459890126151616066668236872301178477507185483703934661623396507641571755421375736555227397608610791902939412251212070148659102272126674599180313969117045073152677208791702459885084040606375160573536688875667376027792186590326528167021977111343854821161644809764501821733641840223866862110956377202919848898571506058690926541431250431815929293713625364916924544437460411154482668430448029416572608612564805534598499120018603544807104574161636329020132765895992456749770907689854652863622511200381090995366558373889133852608907116585848256914281396185819637621799653625084823633051024527224448695265687397461787485121572903398210556148192454693448448390728703726802302030859520534587378918762586109636852964957826588421756599123554047430711711081330237861600601884314983830974490604249922289188666152458518432932427531152909357473194085837989677424230583270376008490321480308596477707360109720454485692022156787342701712733976010783841267982407925547130156484829087306187513075181324041337192140205182035355899229263115357218544070553213235175482110763928638246206263358192917289314847658946110624727148441848107824162720106798092623633962333750464260624964254407134227237874669664727160783155601463027707559553095614257923289691795413130892450781654725242237416928474052573374632329558398608269910891650618620396201106481051180076569033181190933649642996755519509450047652806840626511578543276955240496090503443839531502482127229142197596226286682943737492758224693695004791438710185984034573878630561952648365295808770741227472494097640034074422146390299245042576035065061584500033428688591032675468777447448147470063822588634949790901022583685593331402045294407405787066968149623959352195583955827731726909210417293483778586768725033844857871653821497635786286976816288980921335640797756644168971005267295731025067105634265125397325573652533812755690338847534666504934740603595084612330882657364587833226385329103050117038873253836621824765064420046031316207385133114439083053807913459450111142722967290853230392386046126536218743888201626125362629781254946156920000944018771805573996211078653805531051842694304929169579820862601861337823618864121526318051952330116986142617016785789807273522667058095992245237572404781866380895628235896237456856618113147231310339556045336939787855001356946319647164469459305190827593460798680201251898198538710050689266165491044200568953790969978163829926999500861882291332150587108163016001261574196292604966908109080190246526750216769679378134905823424809921640133812911961022030832686848934545897974844094754394691724297207411860943497785831007557670082237295481035553550404040503161785457831567080950541136681467440208247033100874764870430010249041186022162197287457206992718859561739490074222036155993034003764277078156943811444562145977152012064602595388539903453538745058165029884495423195001700245167385260511881021270969153517166958085328829575202213166586243130509017937798469726057316517057819088830782877925450240975316490811749205876487848773045546417158384436062124951645743568633989917963703701761362418169087029473490860479375369430218697780682194005473484820430196043800922742591272455842141767020416729825694899497024165713684817398321480224761669302739247895667171486614564454173931866867602428937830246680198512526629348011839905750645317226641157362260098395198390650196980750539705743131303143039061984617957783934623135431983814182028468621211974181866370213263220579221209757521543578555069921809164003442537713651083107278129311273811834227693338020789506760690146843456597488054499869202580296234587672018734202811218002371415623037519635615412034492970206352650742324824529174424276322897226656622946746706961510507182382995625104314848738665035488035137834309162627330532471725767019875357859390844035546142002420440751529606999093632494965981083727336573490691128158250813395031158668866853048419982268222908470597836870342149194594825756685632763109523068600184475780707421907653069476641336283299208532813239061786739200505908241188135353662277870224140872240312051533304272958834339624499147435911728178329186991687364112125308725983032045356848367864388783644122435381232428210176648771054340847096239791331407900186136844673789917836135136748927960506687828880872412104108452034105911898642299818780965479354186107767308580508308359753119213767822601276134471677008248127790512638603231500419990765478042430107356190894604736997603465806255864374538321766909964316185912651595714819034984948638714788978545770088600740840090594139239632484831702654983943646874861399705170225032354270590518137625271827559432941213913404508060729469678882848676541707010681212692679328014409075707230837674305423846514808204666510623984773079774897544031728899192438922577228698600790989369523688475147223283430372328550120457911176141422604902964084753003156010207571046997283429822973565380168389862500696974707153939428736389443689765454251835346670139284569340259261036939820140710896785742557889040062969756962725169285783019301846823547566942971017940732760924238761736759687490495792878588005259476850096032222840163453647303205005926457942992710538775318069827060353818982986553118674198712668881539603213278612842014073433559105722401911834935566741315505228267912130160292493177028890920872666352277673751346271754147267170245343755880473639484073664338503811532210709806222486600915236968899011472964633741370335969503372191657548585961444667853067663288567932627220788171557555967247832310094569152787607193530864805148854375800649513077313566007443400341971955015395012294984143736877489369718269109548526657117496213768581441263700239100835022710973069245155304537845972048253424867423175124826450922971877798164595368670066969679951603174291459618940189594012777479726151027017066520879578046442070963874810257761288340078748577689601779521344059539407467879738671532438556485393474357353312402046731512177271157239399280030746503107605783622317500756686624405792078950504019640800728549876596108952584186481532068345049257561512496789323679845809332477601115627363191087462921179884312434153693681075390476339260994779069593259378283399245267631579805585883853780688598805309281256507132169067147365400655861264562507145665551184992398976753585031537650661053475139577549458530013832045699860384869712296891565225472681926592172975772787213606187901414688505720800481767028283203665067395869630332795267018802846342618454559930495347305940996884271631946871348252277859402889214404056620616541840661832995974795819838106720720732978176324118136794386310407725903784101756017962175320015087867418950658173496182232612052740822526723944969472012305001861326099139382878570867119171797872968498161974929647659203193260596518337848965037837443403397985639016979157475946664818548710901014896514325685485311372186964916899757678587323744533178437924350280792953727046618665759269367896318914783092456329240002637943508762165172439353718542309212827800729658647920425552160234943430395580488457084349049148635984644691786733540889641400909066463713670018767387112248814325720784292865289006227340167251286037524755421111523198326627953997818332720723804723191586596281321461087756947104034083299789329500968161035015661636910401330884627725871910355765264202501706589385611871544414008666662980056979140160289493746089993103165890121655907239238164003253013218878941667256697019784221585033923316966428310318632795204492846019969333506293759524819284238440938953683917140244392365023818462044900329658759668487349670530848524280037751157766728223738089903536524263910118595922073915606632368509413305478444235028262800373948458743258687523027860533123010452199089129133101276079072570770635003354048976448943577606334787979825010919955141627476193244423376865752449253351276154371609879644657214038858849396423666913429685518709482311297307538327506891426077014927200700287082415456068811742356407275978467103369644531578164889185851025012701442554104966744883695360675174217893004341039129249965904289458757840611179099167706542884769394143751780847614554187809275427532513629614287281851932717088920453845593841836978210574694914102197536684709170028424860981463289411701762663825388917102113910867982059058533277025185272498530278455608229988112547862926999396419447084197971241047855527771357416445830510846818351198621321624368890687789357209128637639648549513055661353408105693918404169396030708657814989624616482821304781943376446654014888794025601165672175551898562528552551641622451318970495929972561778058560869337210586813340647262618393687135097930523259761717131939518315921663697620655043476984500518608522492043755616755808177095857494555492643068230286674983330514932962293790360519774154703947153521374484033285846250376472233059302486345093392556553714736159304725366631740029006384149629601306647729654603615658011595656865032150709900247256162760280556028457971604485192697005975107707895464472863659711729641772938478794420900755734640594652421444948112223224585539527809385572249890721217135157203708813193002764664069411672843039493257007562013849835404536511703027529247767143452968744145608266146801545359666657985252329730299642391820072796386128047152470655216393936365050538461107836479643800961618959890872024239564496946162645907340535546795206897775802159378878085133643851914922735311572691040201717674835700832621287579258316311209839644935764198329913176365277065355518581448145941551325174638651881949967471233657459170500329756432440356088598016046994192129147161019328267248210743074572260305532625927186765983651164146896249439155694467916506405252044880839413409551249254365187436351456768487372378008350374139617548118915241407051418778305597520848957305188378951108067036199850093896808497092037866264403698351524629775417684306447521611686747014364132421607195621681695357902032295582540273384925156469299963843627088738689944991683880162097219234994147764483870703873185958360898638950164522816820078822035228598867967283570457731627217490203065876811169804496171294031338531872083337151744661484622532337764480678279266631968392193662121723446964356693952082436003947239837871446751697974157555701282472221277701133122120316754942735684434459691507833767218419774567017367661585996069704539036426981088331465161595717016938504350335616140100208201596490254404135943134732293366446610853922206655808350207155132049154650298340195900726954395511767456365062594327473579599915216908697036238903129506606475460582605565897164282301176435000321631979680842254929589150398340164501798575558770718425285264160500130798994296993352497815627843154030838290308481455949894542604289724026835807018760149753563995366278670689270565260721270950619224919734217143188278840409766940431977114692592142053068861189098039768052843427444038079289875922929647799960282727060267580781015230438344757658792093669721184084282942266157851742855990683129263733675710179153913381026128839362139062769664040119440902306814219412092313355703782162466304609271835584799664458490436542634219585284680117734559448424865236197452744904148036063528161760664924972319495581634398091451470523405030607547684298252886122910238496750834057760325550096998750572194209275818705010982329306585175261740318437599919457795270657858111794926071031415336603192254253611200386060777689015813553746018447573988320235205942302361998732056701983271093621726809543003410664991273450831232124173868151125485779122277183450477764412442207005337816426485069494697579302567390602860372886856408661731252806448350993985528329447650322024402643293220238458204119432171611901802912773906027762655226049920512147500784252593318930733689412183539682831000063088767789274973754405220363790995762130855671422752192643822536642952378056652603797340503995362579690343931756659916877818792269658989456868880618258926512683449273796218335254276729034829890977263271319335955652700825442887685749193530389016344462778267498074938152696032020389985612901447663978897936142000118872177165452731833439167091815822705389415350358834561641082914355748657479080918332112152628148150373230780806649098525865123394224258178986488964924692865824407838465229278301723701472211793499940928623468409267707192686112372236588547359466396876787606066950030951921165948522458379078207573828446492014428125413574155048923904654703693072180229145390598147648094620115788760779381296931435095693603917635738734658415832774990919349562682858481756687078513411558893971545082073935115564780771316396116316456824649102699090534182998273393468781691565285233278034742184190912240273208022801724052955390829087891233953646364296607938724696147714308603648280721352919197675245913059087820545822619451887072485993152421769431341306964774379197603164029121132811408012547661617072274691726478815449262046736937708714139816950963849758268119980988536117629935590184083769807627176267686132630581158393453860565463655386933390118041581334329109625108274279014721543927696202469856039803696844847319194616235782201770666558786085784316173301646383372615222821283255726214721465463727658335280186500576807443632834522150235642820993389666695737172423511234019720368243260190262754025133794852229540072954241048864939726113566299410951594703309002922248215500764067356799663907487761654925622186511310627763390307496207358601617010548677992240372191008913926573219511253445234332400991262790408612626361165818773983352394471503108283882883528231596661214777434120131983225657964093574836239552312878770702591888874864799251486204687946807484716770165134374957365691572917753514625038555654858945904330373985029603650587010747309385053448534758465061501313183677933512341533989211772719520705602791706834033837852895707669723015913864436448611646430599801841835346029548711206750193063355500068232770577389934283672854572407497043491761886362496392179767997680641724182323388760332258533105281027461738483502142191062282926462499567417276813166804964902125832192101146871734915394398859695678798281423116877042115979475573023766267098482866947061042259018294344611379882102775232115693765691600666096952944555756157648236529087431061105875897015925832330094459180887067328938704568579099076366890847960654605401210744255242048162247698248827181172716954389923387742508347318877395670318349529944572750652112451298690983337201555583763661791375815074203136762857875708366333028940106450096122562147629722779451933213840450754170049267179232629676804155156250739719817408003933153315295764578021778208316781718141818458542921087811462590942695504650561120592758739072605164904450265158559599198216346999165493036180454816010708513605130944729892383858933161709026967250912939300091155700048736058940221645716433526645331413392669663200732992683260005454641752826713486735016289856182058467018726868278518799390719656453202162483323281039228825442778154616285374552559034810322070290468164437106599187115066150018401789119876897228317613751008529487682198024012833430742683794527089785346394539264649575804171937412909156699379280299058423234622420864661822854343014125465670808545664571223747877417320994949401904855595867486582167244338469471415683757093197951087379330734853543377490438234273947669929514979472826715348515805740128943489537317446817346088477584908079181323098981430732848067877210461481535422164357134320173212047123676846396817335940334704598875880989761965431765469835512405181687674610563871456280849696562376514830763242668191332311509736068926589858542262963051548829880352933598306315671537466695934069854332739941904436007385140178558561195779425205619728887212727585176924845771237876341329434378451289030135679372050364942390671594569347819243552230329710957123693060075261081629617258528820046533766534641684441745251601373970423030085917328120726765100927756558486543753711285178338138809808546048095492264151212289334290305789384393950302675881831125500452950058222733358893602915945916005682345336520138512164682045420180915313471083655172445766658973015927407106782219778524126606287534545903254372677028102544896964312530468015014860837740129287219629094697302664507943766043796844574678411113674405538727157802865617547670950033265413114461683309750659387676121843796474158292272110847116975888694873876698972856728160359985784615599295098680379033423005365214932357573435345284254324317963025002222345784091801621712934124716558630210776645981274728297363990245249772367413124591790595615536985590099777141559040660161901982755596286554662659481827885740225893579486687756652550571940859513303654135047010268248858260082526827474139745295267781847712297322324581199031503272404339729230211254987911056694525222188272867461330156003186011053153651798670228757205140968267077651170755898257383633079149217772939983881243459782567903566008988415526985469977523683319540650064446665761072307709669526349417470569210104801161842570203500650466683228024535926119482291935291547021327382295827450497893542856400073128261975062227025686578025666488436260921745239912657149976829102332407581668186627375431312766547279660605013358049688777666155352677141813040564585200665276108488311601327764453494628531770321476473380730945980088764339201238331464512285678686766295143079088779402197297622025453906756843961313722371775980479756679365857649838132015025642801617158865239639017206508515668858385117176465149886822112010208459658732044621064410863794199848945983215331838129900956091412827391546116382312693634221494064503315573192716795713881574413300636045909298617571041321986107410136163785120766030759420870612976215822682394321863180748680252509868105264971931380945114709503600378698153546329289406721290576187427361087269256030111793276853985010303470591687227510013310881999180453747704869671541165661172499961828517428785207352011343909596678597804749681476034895529022711108551872561081482086636957299722868980844864654352159851229672104133317873382168570195249069578601290318216054256840075586771883279637309966612648476155198673340634966673653808914455055381244413859085920179334902068113680796323956017976636667364875696753769211474440696315554533263780121351669694539365280464904438724226405064834428172088561857973011115450348942343758493637810615060224646736841593324336057296304042627736666460050195511190634440391356966906540086850888808893564204276321709009761798809141898781354339015288564832460254415559647549318214044836728336205138514990107906143613568645249324495124333795231496571976494384897525178680860895961172640292112813657117377881379177391453897892727473676655508492580273237975401668854848008785947463979134725787907163015853743601335264147241624466782319966197832851285215588752319801510069288368744349539732863136731273532859594450198658137083944388768434387450900037575957163857616669501518482551464765028966996466638052677477410665342788438934409182272738939546663492874869453307788081437165001778037944524989187367464979097778069091448729023556783689263849757326829148627082121809250682816718354376519818942854491274626895118131696750543396969594672457543605049061629319995639752200662302254077128140724366930145218812746761590000406025235909623320091496340938331125142642241180845260175829528277155606934538506247567718352356007411742247855416550418867799641326513391764151113412324699784981037971501683916366089721559034753233955755392323795688890026173279698217236439347469032747187300006816501512150095384029179704826898636267611856600083996428955980797866821792602144720382598847799369596995673689119925683017938848935701931679938615496122630789210053697135946138411984513633786983689428095136112458397176553092990845782458625250981105962595022884877125964201769024808880219328700961957545225296664151674948976220116290015715477690695885937249187413535696052425575399339590611548492335618675937539259143814572135917075487861310133823758787864744306239946594933427812806854301875348316166982026237910121194161288568227044932084437044004676871423826129547116196965667492779637266355650128464568043769886754808904988303537562708383416740746823325984604305278394767084118694211443888638375457859310732013880095404276918271782815615130228726160968322147280055641295776140983388512603355921148887354348857032075530988017251969096111618341175355315776964696062252069255127618803449509948145121072877885563696863077499497954318237968797931671248511257227455241053860801324173337023296091752150337002384504260336893893352381905621573827224919753523717867075439548972185180548970594473786966382977532959556032773985517429966823159080040931112322714441543089559837000145710327485213534666566282606303693355030838350116296762052347722586671279015326623478848446953575668663452211147805290672174516811592840513342597439618413481669110848888658177056614980782759279525701462960759018304891724522008571604346867667227450966207313696197028402594216942008363815190090616134614857597417600791129078411454251813710466469361371347154785833671641375343235104333503291815850755827240021176514305255297203041372918264906982562000520106856566702210660541105773096909678790444204232329040965522680615165213628364814890620484888338824582819432497244105843948380495848177625933051263951495448785763519987334358141593695411823645804609762420142860948270862886825284905119361982739917885235731495134761507862760514105168674943046517561452949167339378218801725280867298872051963632735383771167728263068875108492478937811224719464803977868896194939035304260523969048939418603312695403582512714281110707950604468370815181917290833807038838375610399511810616557555609052600747038980781648578362506128163425576442249073089503572253842145454452825127715871841400217876019557515775334257707678535947654519698527257642837424004146858723989662631750907217883909614372045053396001884872542510901689814907867533685701952945739409174048326417336585611867912203830118219208414340796442218638493698424256445851697270011008458606242238216172952060341398954466090841586063794730082699049926367630683824514370669037331156492473216685019819076720632394104734147674278731791249964997369147715416078080067482356597318468282258011391246340920840094744248174882300880214761972728085606864157012447407475831829574802532532624911463424531833173768228469639735559354352198048454772959595188072125066938398190275405364580130481115398459283587608150001787933550272489640328762497432358065615453332359467109449134620262490054956553131529358211558265579268382268933335440237553832139976364002789554854146167619696841577891274165653794265251615552299740533659547342457908941706539744880159324889440694569151335717122611357267382739214914203407292808182828079905152566051905958711814062970383222003075959785758360726670972226979994120120357911744906656053771355721113201699458411246666665938034352488861589475588848702878239928429390700649499269044956870609776813380968433707084905961118615151323769994404552059858176751416416782055006918208011754855013423370999699544823041211635305658770106022452337200989302906905714332555854633759438316705717124263531815614715672080325113968438973683731759052580307607171357047851009544512113591090785299858132910948848911915987209145559407617609150593858889372592257081098556662870750537870749948694227160417150480890901662251661849120295354431913822765847117038223041545765279474154538350021476796729929043497835668939593168103244447295703847542831787418412062195736552083157423847704089387479756400824889781843593861695752256730418199744959289399435208922163595777468065697518846695598057888809789945443161760407883108779421012891073908921469728228794202230304892923840284169200612866562309378282310613500134725687748566377542439293937693050481227995755825065771952468639151063234319609247556908912730440791992069165288788463072059921233202321980593780889689102628237765059357401870875860034059195109102977994102009129959056545696003935046183616492284493201738549126121710042563333797443592121448213700306818900917764010461629128824897941282541683228192446624416219854018152544950457484957510328573858851550310413007093349868145161939919503065222468239312348940614807773781932889364588163543620203111806103544956284266850527493903627809222637499517246281234386323474945524042529202856401463919335473830609351045515210020805932968466452720380063871517409007847302711422880902754774585297771034458801121654150228701177823914673182276535657503409173892374830424278076132230640272532761827294019625885809287462326328657345922344759797807900695902239926518098534721930862805068219188680719083934839834122675750163911611912062838105835379008836735977244401364449706443603148782663063700489681243233223383445863309713091090479040574444300406175543888094049321445706295855369421278010447547163416191767222634647156000872919236272469916107329222393907324617575378642327797459657926243522137061343875186111193085026720713455361293746300805382129719688344878333886755208924628970329627292471054946444667487992302591439853292205561013159596544771615951349930237131700983204659968213691291097550440907398862323098526211024792641765923086589425259917580091361008148727177195122642101478614990125675873563817056591079884990226782845989106890604091174050172386405554366557574906215201348143924337047524057712026765082401948414226924271308961209365399725275948909797530877985938390219990452284616611818488176555211695474465365253266552467444821151257645481080031122997768948822618738725643326566704318282647496183069781632003537145564279599929609253603269929835320738730447493071374212591458266782599108345154802616882549189429268706365207843593544370353757087152802603629697763079975354100825976528681391721261742451752218687132814907167050311862097029838736350002902663110002032681447740936354612933867187465376660855364226403469290024035317767591232652325746431251572705754254342085320261357229454861226643521048790855046342549327153760103793387215554662610333764935027628460805279201045676090761874783097774637003800396599143052824904972403446936608000636105011060336020538188640271488602231023706660557920233255604100777015068186389381046514374892327886079155019544874356350397241924431170279953122740023759120959614498588309986831505829660774486713844052686770547827342756465975105022852909262723956450922657128524023700798372262438551650662567482081313758122188211242080649506618929610362912446949377843921563769986226454039191848094100726764992777441326457825355591094900920825118557936479321030195956659059640180935236718289180675951552267878714774026310030367424891624959977636594441580295532819083276369298935778138784397055022030898742874326474065671121563826162739817520296204219384409313844469551923936563905784273763834116122704834950640528653511218845660541023984079168531913618519401089384453260691626746355171983753983949640193798177414044072164198114948080543801424773607103038190279161810204868394929525859048786140648171219886766264315194765265221315572276189528598708380467878368539887727931794823866653877873011168529607153818239528909126426038247766719964981306248225375812255757330582623138544661123959306084077977349174761120568918759772646048127527639658445597886769463301589755853862524071263869178947350941694685836684424239004490484711339797717986330806207585391000376594249920934986766851556433931526610363517749232809460737560668439630499068997603605374373039163517952831487726218079424757308238520305481208560196824970883378667850650680073817159717787032138450349392831268026210504939931994462195996970709866440671686356044197087020918553627693396263963076694181946494291643616369564992274275933507745410354485460556919035073728240292760824065064652266054709035417892473799770239371147434924778797856383622528926405584304970311675627847092534317420372336731447074894775788528134958179978537496713397276623805007579371591628243688610307726511479110577220642226497027678973067849906075890766886525948072420642136630343259832694561580020590521221781621294479964721674029921498812959460576508766865513776278694511388991276936899310082714550499544285774875913221024879837976932640250723742079781146829590631178882520149939567269681638022226770654892260736171672621780564839716425631817717814470543125552899404465464294988392218319325764308240564421483298834787953721429055203662097558777666300681060669376323568211080357541698663527803269130453917075511166257506253008836216058967435425434010337564322317880318677086677827958548468160345106120305335258298683222944257033127673662457121984004028673681570386316552553495472153016810882909954374560388776539153306404447483005475436826111844816902392038717384478312381953662131973436485044076502950270256329195967193349725781167414200249809510469769462746110069446642837578590816370484508776767191077514639431565298915978351262794265547363515160976272089156943237259846724100228492191238237391571285782787219092351568342503718369757523008115058497685774935908316519837289371008522067043530726453096326881159994814025430049903559141583320080660596806022378312795290737508359324001555466516970201461327308518782940109150615845559541447941313435171483595511404718500407774331378076081616152196356759074899890214128818123782095433425821997408944873033410874421574406968558039955956435566213668188747486972665280458717693561232187674393744810618229081031726973923592914913773295807207016387891718554970900864782551931027556205373924456904264459092210555078865798414935795627522064939191485718764186628582987341515246491649034040699101085630953991513578099242087832541306900620191549994044446184392857510737969927046491446441300254138009392481094222218373341761692298912965001469376147758807097043493954626597288871267400789098548353916429468218536262034481135830631572061546133648204589622699070328619838584361461836135251707498649832589824730547993973971942219003039613894725314788211524128489277350792369519478801096402376268313348227932429297481706404101719602553815868423971025550893479325713219130869947733655514023634500505848482628994864631934052250873667423659393762666122208937448407840787578581786753346905418360365739971230059943618917236437307090300501846660736594304981290491220790641003960120007180882010463604825426120666658763274018901877593822373738328911522576086450839492538338894951120442355623619449857160489696846822406598899673944577799230982702705722709562272421945133857961262956573615022376062729908894284820972087318707853109394225607878693766136629394205948956479215366119357008205708874128649365944976722789880683300883086626275293813622846714161124897117574170736195059007698466629006337777006182829165839116762631647140698339179182198310978018234468051524490033647485398432851356834271261026808801198422742424217754111002815198769929314162915153006664668806025597897621581086427973166305801850316030515661329323594338372306063837223930706342416005634760541237347877294579156224825686649063483193667224390323676795832650197800176716811682648132499460051173419341057894806804964289870223931817757706773687360200213714841135632433459913176405717132936862417717876217225127281953215980914951502276987663480610097385889645794783884879892373144392724354616676084963279174566923772572403362787896340328436989865124676478445918688128560570183037378809479868264744011041319732746048374205026585575228640421859438797294813705708682826552064277046988979760207251362837060617066814253436215422499481708293134135422738305599005570375018937501359720136775582674275198631444974458326165858944685004121904121227330725122668826045340417837906874297338105396068742798688757375950675666795054094146526533476691492129086120775797340613219535537209682737605369399430364882758935811827491160658105726226551219203989233083617916730841623177786239031621647779102840033268972766150281971304139724169486854022311906358001157275776306368304157950316017208928878797204107086759752065227683962330469704234103388890158073204224318322332921707841590639375265312135570633046426982568345457747347077521601997436458396810183935916006309143233752585552165522859451569499182426214923322832877724782187690222718886569485443133671050111270295203493595910702939097836434741050569046981978573034388013250760331455148419777880901433153537210258267607025627737775141951309189767956662186731070233227165734610495210116468467895508431354852582818476375357528515284387537453005623313526923680136938218734517683950743083826789709211108628410779127313968780276982185397812098150397552316940216296470610878189855356213557489378206153769456980892132543887954438657818998380007594481875535232692988291216588583306759830135380969580187583335144860626909231022035807369475543933588160608887181555725657361899757859062934513131581631861476265012922348600229221705818413846996355484099377875502992677589895347106854771588724687593517243085543279713142641802419269270334985886304138378640026416584520632768640003358981765726619440418960509629818491138248014107189099549641226835353473921158758544700704806628613027409827201026918374485321155364341390564816227122773793684932281647944596922955033191486723183154534140220859918772181833869801815392331734592747870087901599165120291067619605962866024297479780910160308563993861396475286942970086768861046444670066140590182919551407467790653694352894202925959793234938008504031715732333330999507030220297588727386178509629404070938243895019558301696607602086683047542141791602596032959065550029425822200927867184174123826687199293546412210024293168462806231631341600203245045846087563679876326140224706180401202094409135503292323485084176861416251608695121845527043189959323929242230666940347555150688932620448652734713364462982248591235604496255628813261572697626851071210222912178807655927367444657287932310616063984733289115758275139279950592668898134254899601591438881529479286936150695070400854118534532139573211732594421530723228453884200758834032272285404223540135290284466970114432945973055447012520211205370990048623613410405256023208123062318358622688664528955662931930863143867149733190291396820559285133744406329232539693875686502634186711672411728500545870498191066906158964133267190607458061738817286457302362439133670107775791346199237805871645677849472559612031693799867787260657190392563753454600896416094114459464107095332634216782240234146625412736380491591105471520531469908058743400382918901197009022396244677609988850465584362856353999347293017667719051191526486945568486252999243283834738361589116376420628752009870995956968274480891659080202529006124819661146208604319060837031873419634039050527528704539788772569645136382799583460696462959626537608573390855672888830440585290406830217785070093671498295325449386771745390944130429678056784606128940547114795295976861646887363253325398943065019199893288121884235473958447576978432883442315433005275669134205578082448732425770976800257537678709161440124287364610931166124864305041750868865921016726118628051336006848872862253936779003138610524784569332271794340910635144140979722509773811262738026168314087205322473965081512086843297366135721289537404866507853900700503226015636982882936092465208576480601644139442541984342860355063599333897667047743355034782522006926926352512910589592855934953968137493653914387864102756677423061886122382925068130114766040203249256133133517988315208728603613217099462178293922013169513597717336635355294314461211404207583312851918825813932859634285434887514490169722638953801264817790185983776621424735870737292671393541962610717979729221300829719688369190185993829507304841580465091034942646427635199019486327008400363802722959077287491054353543340113001816524516637703509383857657058384215410961981020673759380161982929035189800152402642180020086460530689009905074385935491294765646247800637677141254258521773219687306553082284939815026242788668493932538739195826318153874309690826165091400394400867222751471053239375451130387627874082384260380616013914239185424458374524969778751543856283033394131167258597403423214940945599455920688476704994981992442567512054339568526111493654636754573330620758280226902436212246439281874273746804725255427425660909159240663582905058454307299882001408943380062361549173292861571703925994304320914082732293647583732159542952089545450988767558111358557115918734074299308119512515131424832850997238990691381466549024518255497734605753634727503114471115770163645087115529874712590284208487266935344193431526600927011702525102292002861572337102957427217953911049688793083664581172419626227017155132732592026157590414327140410939460867274981558667195617552989598537690516343471491462753849832757914359738376228232883893886027090648730289065223147088749895080261055543234198522424907788188997972278718184488029609000691142105669962063992696289213617649984889850409674687786230243974727033525989857290336092249536715314325546776100438655523994095609045260981703343936992083364035273895770006302350454702913531942287004057947172510420932568732979500442279970583589323549812143405872199180579027428523365029376529960366842487293373277918590474839249456621229136896858266980521161088727048570700220372987510609855525186298463474310272608656619917557025822103193009775950537874943978505064293454311251246709339830855031546506826482999242785463590725536839622559221602529827611227699037589608145126694824793608144892390016803960355484621599249693235924292624659340300711648685037347250391758543696314109674715157577921708598164208843011061876672412079552742650769643511582058132065148278492019645237164608032394065393470999541991353293632948711049941987001318901290634570942741873361328468109071976800779045571976354742111735749230067564162420312906125714676340054276437109691280340686999477026657764026984376842281957248103247409717547051456151226469102613201352619387334784459484858369029424639613977570433973678517550931020681638747524667207625687442082164044790320798395571710236211407599671604956325721549350895076633252660727711626638293621061119294275219936230879681904488426768779942188321348799881271490788039473389710936250435584174681737990679195565752059323194955866197910943461422258612804992994472093748581869643595915658352811764634164953873786098506261450448717213204236597565658096945207560578748612927435408512857298440937884557883476556704064055445536618433234317437672909630928320637514867243710573780946060726436848475271688803198913594767890182768157841199616599429711583482594764622612492824933903700760372826915934050405224929881049846337564071901650859744345995887951265973218248026569534810907992736481376214133000438867505199501862540934678903978990690693510733990467527278982821265603363797852802482708390110616518294987734249357566980824682245908354520059343766034068542460736494044442564104872168834414309125434493506890526915124972388410211684353256279492121957026046975911904187169355923358571543830714379994259461892422047417704808743618561135477176283506135024222420044456342068314186571393434189026811083720403159341084559725555706531276014449767726685132076449235417956846824588800540926034313932088267389430528056173432268321226134244366649064124313388972178220302150154821224982101461871004288960058680212557918110332676076609523226622032540210644534347552319550064542793828903503987142341382368735114810251240417777828067655722982054395386224427836834482072059916555444079892059014791713300084871263245473128972535674215993774615500504702358214092809799620251648507813833045306495722332539911029502206344780604194480896253903836253131703036468498135182121097172817272125627090105445531179176146704906731002635033323531648236210838949640835667500551257244942949815021818014052001985347384091939818558941394792603169367687456776312351615210681683961239567016635380044919145624125188976866262749686499892751612762792170100842515869069136145680960201795387557636232928415823050696205872281190470494800836814345876649708278159780900886238483425633359362479598171654378171274445960864504839836559409390464761512232396095720730450170128521362336112473781703483954674250721347486921841362679799147698119473709584327884549535149588993677405779248399448030531311988494550936651859327973481650324432819444003647050162224105156970226615665826270889997571619488849877212313847881299334462617639205399445450247293201551327379906453467576673021148952504296943688886663136482186601488677197685692372200495020150198434262774108053572823081088635209212154322205717867168845466135267736468748588748648369358983912490164109471151104938496125514275016513669989923318703160901468245252562318847291084532416984052685901324546125173761749490937496516094635181042513504374734729745333357013571012792293204526740818995310024966207858748186908123023906124005440810232303843521515602244461949668076011889658560416936985843888938117148515046158160191735712841635534611368485350837698341841605729096369467524565559682465564641506365461501258745667115075532639268601497558740316147084355411503914520424392198595219228068875617353089951630910202767449899752075739161342433160202140967355252692673104480203069129096807879613801386939809129804692632647562471803570802190866595318995051010649851693882464200352434105014716109585921329711397838692377937325453546850587833392984995516786885372093154636076382604920005183804738663865300938176085468700803627681746841719171158460011967745159805225518036820571252683307943622485364533458385944098200898005073971640770495382661744571714718214960099168642643279830277703353367958871193659847262718117771074077014190637495179535266896717488221706608740565319991629304634858672110525025066499259686551274470945379263483259952679571364071867084216452956587710136249570475468880173174733726254460145994072638126135052317442147640480800613920381454128863576370773071980080928946595783395290151639358905442841869483994566561514758899073331672437105757194910979741355770552613995485014462978192447416616277780448280928431306017224046182302538598276134796260748140208358625603932540306873648837769577465342244030803414452782482412881379686151152239205981546128809636420181881748930259264833493187007138996805167933010120824128317004753456905218199270549254134918042459415721921085109594725564047879404728381130931911185562531767367058053930875539631058925896570118549965945757301960884746139120941842362133902065187664651856565292620507163805612534565489782743799650620713483286080210599201166185767445278864965308792712768552465407337090536797762561948495719019216009677642662231308439721427172553905121651254988195816153744421586418862020364229344479088441673959523767368127656805899325749778672497864026595713164994358410342719690901776185003972222812715139979678705110885432852498173977191721764003022901196986072274665049548215039450621652461939206585000754127354910696943203026224156158287637263900016178608239770920929731388270436021787579517375643150389384265266132186027238371263572843152154026004064040296130564814715026503186841258454515906639495362433328143112387360393037164123354768996972676370208794530776675992916469655182544830606972854349684295382299808806190734513928820611926120876804757581718487927282191804927820915239259026910807905763332993687357945482375014935243502888535870622255599305684531838916083105405622425232570408103376578148437881284651275519209564122414397688290828706078299053064641330114838679016018083205026925581864600428977103034477698842612046484938114879854152945175819455992389791295808497023550178840513292268254059637598055023610938233062627964002399392143043632456230110294616545156830615771058009182283805571147675922538556869544481689412707047840793098348049327282861660422614514585222197300024472124039333535154611215381434517528354450694613650028948345950509725175635721168495991883486813459304667140810575837089066907503564438263894590017979321072330752760582171193927454381758208649476358857679209451603147751020631997707598194553540661655303404602042738264843780941726316546216997830623393020275404749043502532606219990837376775473302304631086141091637966599162642943132358664802229388496297460169228596826673209836949275583106591649867015155222993148525408366228479024233602258125875939507862313456504504972447508218476650114326393838968378820811545143433668406270298669199328879493728781611081820743561777335239356375322599224673111515110098060520321766294323954613881564430112195025429855185292703353536204078707021195486437396117743370747754022720330742609288534325923301018967515673723886509339692952536621663112465615579198643210065905963254504492522026455693185140531577379353969003404424641596867489798149030891509907111302452911378240921851444787657676239059156574990138661364055165880026581701369536739561842508680222747283467014873584775860245782989964039897725291799231612431301571731863906181228187312825021439630391357428039107462712512613586955243496393068809236848191070041501012038976934114703368270276739712801234194921047203912213613087385660210320699909303058790253587003139454953688791628182619181791538742981415163707782117435733316371621387036549868082133338254804321407850147817098965292572913852342929930185744338553464419280710375340456760048280795257117032689661498705688322277798853230232939975813155201595749756595110959202134822363243456002025149499568389194486670149389837552195656154780227481300951744670014313223174800289700557627035280765678774925410342463682266422207086025598495139905710508367533675402519210343259683121571891545357531064446816508370383415899213698373098775735083497304957518100840137863828814799886919959721337769355440440677005769581991615318906363095565990266461352266145765536770000956494183344181176496027948736924183542681494231799027949491182724671437141178885399725394688528198999845972644895625168538285334951280996792177357209608752813503640432938528958763910431564648612215409378838439980802386009279158501265899662362413969585894273258249820288393241900913511817676184534343512846444324198934870051653477188410722369471036626000022033563130737877969016941807633861781315872560256362863433910926417510694134721650051468539603319672722516060220358599978521935704904010575199069799889019052791625790695720458564050839321601558140415556881462298215520438058918096031316780150638976419371881876201996724890741906654341027763308301380749828813373351333160768700706345663346563828437385666424017153578337584522162039965647833862856066604830166215459417365616710158066845988107589413055628130377527233455588064642160386419774645294702203929422103511305722725636406944393238983262852070632591106792151037581835990912271314729615347437407176070089760848860058841313398082141588684672043964930490342338275559136043296610847422748005665579309155414068959059049132639712743639058868109875441575184852644084575115585876309627456561003127819580028443936904743393072332786441511837887067269447214524118746201884464933748662897269818181434637275177044337071108688647649091703261443365836363221206560431199297297757438512601656742548202586230794046650970770084339906873939554343602154751575439209420356811028497224649216524769701670284581412281722782744322471872910434038839871865151003029668827934469285896859628486172300114075340497862928120740326224080540852435024533159097918912330705991703646331331128724920544715586740654340066115418607523262345563260495527979866310599042472594194498054536809084097306279157639194580095293464428165589544227247199702444794472064494596926652386743140710865864926463332770315999415057694893895791996053617317178861487578626928852279079854183882426327222716518025257860785653497160477352702227042698464754059914890194851437405179635104253962657142045726736942160581167600882141546050635178729053467357664050917845811388443674089822706234667319511524336974383317716252925162180215683855706663732344605475138974702186289802112465305544940332984697357936906122722138426268324617964183252996781720968696018827532064469121453825038413313128711294866771157421894894298691329824708256774270347534253024243378012106411187238112615106631768254576866914616855289810876982380177534575271050494429861280269751670738566689507458822056109048748006807650108820473773031007214846092469273971352216409647706577720484400045020734747099841138248694022461863927693823206535062639594215800915226115260155865805496197930358018395843938477113946163354290614685206355537758605302618443671143049658106536673713721752636545560209011005858297029000817223471876692488137029511637504387705954255195109283264824885146395156285619062772268458796894442978246281754356518091993664959682531815330232091821312529159851670616181332236010336337128537184991081539420167946091214728897568575421648678765147352460372193884110717350730836914821259893471756325304614785013413482632093406680612939795436859607071561795290864374990170990554802866295799658266029918429881181715595386520117432977144620653153373110939106609134656367633731639085277117020718170128707179862906728792136726626990303175878100402257842625504310994376654936213061400641546236518478826480260472603594223703978454311737829631851922933697689261174732202610779551499319790788945986071384902472466428480174914730721371953208255471814335483547337727324282799743652779170219429932396924923113606018526999131747301461088429975782189650635511420178320819638489594615881450994167340667781671408454601097842948498227708647216927999711736474016077988492369791069448511545732153619761403118034146667650706947151417639968387609741398457460332459800819338502950189170748581163848109705443998997317967222738484774327578566599395244054016830774791960966450228969276703231311771647992699731508747414606152090277691037022887801545069405924613687535531906977822511899495039561343527799161705603050893037404794675633046674862659982770820445215516765079390575602950972445101081882321793947006472643273361110811827130716855543865477983852720237532679066519059709372859606762084297555782971026400928781106604007478412802768307979402062600505070238767428744326685129532661118033528876053782333080477929416092417031877002448891135034782152222829784591669296974107919068200645898860951702311176299034866334975221607519206342068921629684932940233815712867260280122636033149423655427239861244630192745339390224929908685749975161825540945489034344746955044789975665312097954298029900638538888048394323177853068064597202994388697039777151021315101594488972576630115967577713666806353182828038018892790450405146258958061805047075668460974650346486726120778709107230912126136662680538475208559953445424061866994833580052873063945636204849539062053397110885291572427327258436300393354156028821459547942139788143349940353649578960348895992470327610757886052332952952708192192295712451759110530533424337210175348749763203715796120666594327976225650376123057807485006813863481180359441933283783571725818079131469688874106225819173869681626405385573886490440184155661278513924309650401665922143085641868540194997553504794984649893528380906122193080199820965928568470423753425598012462341316994360045839411394054066422757611176873483632447989663042086504926270090075653626492527709228402113662206671435389071361114667381934157359522636628175276187663443842799252930325674093660109054674130589763621517842755276009908263370060354287600141678653216629386673055771814823661390487259833289550663437402511244868870419179661651697106311687493297757811987391011809351271414368603753982818468785991669515949788529873343593093877220057718388140053369091055926057430416210232406665274826131386081604177195921572958353960446810539042961867501788766802019141706375377920384393854833918380608751880848848589964630540781021921369982063638300395696693947169422404526251715003393463754505446732435108993156162695306433927959177503544297634953486766765354052914255780205832763490784206418070256551675440744196433670048048271563336599676600994537433640269359296285432102999915312205312552718384114876680786126699448356266215192184899626229811643551543522087452409308746620367504649993686641225197515067170094768850355825346306104214878693854755021660494700576484846087679043552878650276991704455328016978658358230181833137397251844475994162201144216779702557587977144551055426167192375120806921560316939404723736304527690675025049679049908309254955066923006586217088349251211194231307533352912199374894107857924091280654667282913203234492518224130554425368584140991274513088275771352186777985113245863071051910767065854270790318279221626729953443844074401152081533147165026851187545219494934684379397318443262909668514778089387616149677239250297954489690844563926229695341177239581907028243346809906960169784232607921051028368668544766499204776508587620937455632714749527467883606866897435480650140836987653024842189945866016557454497271548809623179272686853626178426629691953887786487002483867144289312699287136675055472153856625830830034374550613189387695094929967137016217327939273489439953843386299638106532873049315010733312998767059833539963543649573236053162381937723738811657553548935655702812108601546305994098597005349274287576974710562562417109305908188657780555766188186173229082208003223002539029570333568999657882051573827524568452580443092214336336290791594575273168428865995192634771485826453518527279475141561850572089271749088157667027860387368021731273806982063193135181120530079321246228011605318967726582607805916435472528503858674275271151843873997710047524953919409838354442620229896987306546370785147225195212369601562581657791146733303234163904300776385434497244730490317385126441360918320222429702841908881670335267554226547139471304370147985588973866017465355089079349963976399833277712750689852236133413647644823439412179913007449418928232422694260797895411570930817425439908327650879406350782299391502049721038685598568913282862020197629948002866297196862513639277995346374512940237256474629518034721008843556365908811687180784050583990535909398690656946316698922905674745901057660950465286328102027884045326318284235156746465038520531754806969327209443897515261522707310049454810588994749374637639459083047994684337353167933404593110775921882347651320632737496557609641464828489641669396182340772558322112184774731585196353590873966627527241588460849349421162663497285167004334586382644832366090738517607156033126001276610260611043184626372613985643435197347776262157757461432132215222386573115323982128590524328198879514412979507638138497552214792472831999685940193113752179546743290286743493836741980939071409137727162453961901218294911026660923286137274077104506809863183384939317108156499815104224367682499688404028660240565828986506467420776386932868403832824802765494774817168876964139944650185299466298881949516220496995784476627051915290972011167314139926333048475725292360092380168604705082142988291412682308656514217748764807922813231215907842365701130852763749579884837568082583576561001055530156641229594112393815900435426261930651310894911280975152283239127644980312981004611061585891411416972638647190315824327742312082733778205126004527374081064579346325652621156409942601422657561181473539944035294374298983196814227263837574074446342877819351831979047411268236380984042203736927904238098666161616406934151562455971165054634020892701416075430859807186871859224880747821987949885352752326512216323013684140623755817009074202525561680471662920049513381196422358249339973373900733721941976403889198925458900152278892757537426331508996418589605033999388582596946778882164371146039764501357577673385359938942436977629506948561191787615950784060992916253906238647495383974865924980249293531674798539902346640559223714413450458138146004882141225486655285194150313033229778736404639807166325376480869849294863971093700546019222565349012884084703863629118074651698367557190015655412090874659215742249716642037368904052898208002924435623201335432851645251668625400093239364006464513796532197525565953154452342247768025589899418050717337614097457548013532506601847811824813383934962318673977820543725543054945201518192616671987812362330162592854629673273404284184839152842222692533579289193715100063655702141088262775282868590441263178859667579686287838092222248847878991551688006637716776439469728847771713001569094539276427140765240714538326005071487196684953498359072397739463511852946037553674029008755025257933474201819759599199661550947501321945488921214778398468082406974748965400450637454587012535606865378094600090706565333279090595886795308628909991876621497218273186021788660119424377110968952251176570591533720996029493793674511900793249777388466832770326582800018440466038406248299249230729638849723334234773459889259504307793876367941926041277998383704487316317111792235986790770541006241672665433601103288862353997428987084141323157032358586262712173291931368485787084099400009275988205990664495718612690146682268927716210042331506202633959270052569160362779939509913223012543539643454656335326106670196543479421351264413810798471396757361179597146444574676385682391807744305311796782192740399426032799942758467825102018388262162487936181379011594327474395705547053208639891285132409097170224278843871539922587982372889868562681172503238104808446065346631778124557289904323879540293837172668410736911181302153563375511085458650528176140339978839642993703358987536395251338003125555302845437768419257801078435390992567791522543633909287710701316328648958350396727448525324683265895669511178908380667363852979161988074786005895355615465135694269217909548919681120164895946976881244350358383101449613417811817463540605230924658053869499947280620955186426863228131207910586541113465683508051698516008514967365222002690544092021837159018463412155139303858853306617825273422000286296767659372668634610249517421915437290131241722815511273959753655675114007284290978023902610887242252916669145914423892960301308579175397880086311576569438706531769932805900457131859930805873637978178468383927360637354557392974842571107429991826383422606176654391142772570448560069196082398098104025655439876168843755771409431971051497883617809229703858332288451214447232145211998448592133871667686230795167496057036335995674361173567896674622801210936228836742501265628146604759850377719698416247495870740814393710761877844529549032536485744651307491361965972133686891938562738762302198411490651656783695020230105568479622324480958195156887372849890928058768301310365770340381935612233896586872663228223033335551499386795334344369342933698117031574349073409380521617644820974744043461340539461381935646740043246291198908818891633761484554954372581766897886834403444901348477648765544768078566225836490366929439327090026267592223292592244559337873103290572534035644039702332616113915987278281519728652810376527392750563018531100864251369932118327734772428685933284936267205596412968578731354368798779273258645744534444393649141024290027043789437832055250825626181415157346023320371344837733915863563235803699715118631267605562765459934766788552761408816538654123498959370630696990749087326707597506526175770019930351154705687405882436939246759192065863617693987888324044918015299263628841179158738255176466642950394745806402774058675007483906703812510868377104809716121779399598033501547841009260201907039610888109726535736252586871259141855455883932785074687695460062128473477184404158344193360761724870619652473966976182497796392985959603105683291842422067048421434629260383067323982974796086544990007463643187227051610673178107405443240085325744546097604396852617570928228249400120718665396911996830124477557857616226787550514524021745497547562255995442764137997802745560887420771415332049124938005602785601482735452791027066261189963569537276987884892718864550951849082804143966266755354276818801194894374632248336641137815536167632967748668945559628248868369043696326758937330483543042936859909264932404541110463678526665997891662502071147886133132787383199227002617356067493258050383946607344011076899854499893205397904033056420308563053054576647444101209270568291116078259884772755207806991254061142014716944576659147622502932486917973073741187925303558670924158378756830411149417862987269506147610652495586127198335330482171007502317410641876633116035808160732204489039259825343790138242564233807716298414053270023310926381512782048343823877209237815223039919423937752933829382207978441952257571564337468655789577694242203229136080553326251968740700864598329747804978629081819710900214167066917133300497749746963669069776583721130566327119965158226962062363006556834607009370986635364289110621750573941265812332232567445789444755670373777532816800788019542256113920389591296490398580744394897516739457948285508867301865987052891012923020702468727682277881920902200771467026731050037933511976076663157973592197182012233908199304211640709516439300382810395366695590932540743304384421872068678626460716120468935800373703544417593077401819758284148377309672314274681827538962575395821540768411457658475984627421687282459506435717559501438811665155035828665799865197639412218195479567474465705547139462640101084682509541003062323152679716032962213848663625799951160304584750564259527298715308442527714889190212126163421004590876375664085752688299697849721667111479760772372255410045583772420692966160245951828977927731370133763308489429442175799430950456872567952788090462494365099075948357055424455704521684087082481600397194542693595694798161754530752835878635632106777386835788474216504257015487410859035997537161268225785415300885721602947757630460303707447480954534509452010346850371958023256575304456912079534516895419551037090235770155854671318753307045090203946248354204957935995178256075406174169053879617474447744681662191156471546856612589895185534838726015507263281431949783521019731936799383086589458618569427463235517559832707826752131088249537483118924515639781298678029470960214452109632146593375511393804834164718539470903282764177704937334487841350360025322644738983169695857145488415288669283007457430501692563481657903467742783430812012088057757248407507526685692096119130332423492123385262174915290674413059595447019226429349017190410201828364797530736170491875395906443769984389902375284634017237010996740581001746238957515482116384446782802166461856243444491305401657382414877021624763072714773390695083429134087022687651183184141129238917620282125266905036069296010541046996942899435355783487104013362380818329943870070857553661925893007781201670598177192159488026175823111114512156481836472380823189656814600756608935968073196001199429024521506065765004075554518937864853361433824677660122606089019769631808671155086275132292393700301862858602899754376514106583134811065671347244488047059136520570100093304355108014890195344282682635174278314076982451392455914640812830148791697142393767780173833671894229468301413908592918846140606000866962760868882693867716269777679718213340522827423112445967320309061713255530619513134041918874845668201239555493865337051947048799231019200914814199931006567335410378488885429047241395517481178087125925613391323346546492646950687255368530487419606206593360030830466074548746705417136891905908616333012696431671692218127481051887784494627550928054994981622088668104322335050671232216382831116113062392825742895703566586054148953143778492195070758643779883304593747819288278994236455860455905025433804477014318259003619218239448153210198647614401713272391077292498763773342123724754874251448932882952161844580171795006510265214364393162625034217861205499522535440765523083197252625508791211107146929998773841225659879854834035388181253211509046689956223457228386965516803616436128832870646910066354094045845851855270274656625964998432840938453523717420133655869387471214794943800176413792611177612448423964736804779816545105572246057916988043910780176111495550000111774520114385167135862370328755967330612841474443126863143529974984692583961797683634500024850952038778707287254371859296792808483075895709339149105408694561460948605310587307415841562504654118191024060631298663172294795247158333361552456342071623816177172997733155216365019075024605769786076303696286041929116269222069368918519376479430095643337597518048854068421250600390119243754900994121594860091589394676036329280540244576519075677562805135572184989265535398194414867847780919174582615101078528355690850131144478528074911393791089562262135886492171234252957221651387738533794573646115453839392832680859382764650131345277533494337749607089796385637582289782320031033436801967699786158024003051352205318218058877837977491625079134955080682725955797936475789255965269367923822749378049202901160447645378190434738596397649619848382384460206524287425638952074816202002187247462080202552052975905158938496906140051488648567644928939855887117672035447433597595813894942877781524803390561207162131676994955843638719292326715135849567747336113380982468235739890219817968385100401591851703124811515674581938252189033158349986709039683313534030468873227567842746858822742590559793511620396279682042777072702514099374384866758851247589612439794841553835087828836504408358306418079299414917634314490270653584984492111133077168716800324499168798246954509313701851814795027722023063931220830274615837459168705336288076113814870053258888151339665211845319959070630251556195260423152199175497542590877985421320379629254526395711560631267362683797520648767192827730119603384271787148752785604819618613707421800733894433709001675580755551157628265914311492944069653641119047530683982276468511086787800630524936345989222389269554305057158019461372034070140482944959235411771001662777172702215137472070644612234880215665554481849384865688349421561357433019111529347712515826475910841089132345340393160835147847726359163496176099586035881895306201144498403912626534525171729688586770635179438805435991593353978725690734481899758730900100600347825903769070802203039043709600570131433224367351537833340505609177859670599033759825464120115316377579778871189885103941208085274002960218321757298849074156714618738044868830308107807268431253197723462890601789704097932932935536886547995086969298103473789159570428048851869052936735976763459769772096995339198216375691449515730862542612118627221421787583210472974437452040123235130281158066432838967811698560690698965595772441806560824708787883983835843571206841294672702791266454443298267316618097481762850238430006641441995806108124343965983654948571363438871202809919963046282354430811378338472301835564889087143167806993174943808297357869979824449600343784362172554457148536503642740819950316049914182878859901764714801279290298876216480765317638039222259267925366131809395561496838720654641612660490586762021172708810032911890360946929808748274513751352269141992768536460596542516370882431753136439883469259385806202702830760383558894884508175276802203692801915151943152490453042531664744297385466565382018384111098995837975689599708531142673039447366466862733145635246004129994621354046799895633710705455717926119917252064411020327419253617233010676423248274765769691035500172519689059387362072864172531493870381234575092957628597524181182281454895342732433663438479285534726953943479289666860512964642640701163609419579234067223518065759889313804700276934747842488242660643003740604835491144767175254982401925191668753726333107743465334925694594838942423504944220061743314222969565637157637609209413255357871875095334507263856828330314434688108019374948924525415929107575820683733165043955183369895710790164994555105867083576771467273038515234917791247613150313398332698883148651693282450989278722064823070633122971402887207793913287461362584807569137810855506951104073380712069633987519404339391070022089183541493802106430218710654962106664028095037404370617506423926709563733680402461230508276439593771337180151257410562593339694947788690758140687353861776265793002033531461507580432744964760908990041479257430089752782142021675065676082042752195473414560743862620575003534612484673599840274447376478328931081096536821608122585312513666286793207604894056409637940248863343481441967657665616115197050361540464603353724100729092045701653623350127386405819685054362088812201111543978363356327971672942222907136284152906570921918843231595353795249234002763710124939825040586391038367602246575366252127236660210652332203501938829098523699813129777994424618877027501452957200354711714953418744822801583532677398745159709494684704009730218649642312974207332796492358051681703590428162076284023546183825058862917448227519113544475895543797269725672720091364639294733860780661772839795561431107186544508412082293813627911751929718420576519306300621160262978197878242263303624155674377586861072345266856785420981196759677779314035091540479024563237528962150176854063438027713252702352405841629975972454239519581515040080641522132869573439914387253390990942599900722698747761323135483036092367928352243812472936595876505781296187069311878197185555262528571763679372008352176543832635001236457256402018926428061142880143720629025786662299434891522549866814142251650324851901644478005251276868998240944380139103903158391684434751536850146202898478741026677028671729552504570481311032782248766347311350645799840654981599324602405268989970040132404094688383483378164796966078243789125864803413322714472627899533841460614815836101931953213395106469489922266261480993157725341765699271295268698551469387237560730436752094187109802496392980545357405567978004186698167379380608796074777017388304150899414435241414126957203775917544649860677228250530548299164499743803386100224232467356289441833442240277665139270678671454436078674524862047742757305767182164825851181054389501904595889030472024967174972556308436211363035316825899147235140624318393036411605492647822629069653360526331607037339661454610984180495254713871351356585648250460756131306079177918435854474787991967352558035995927151754558692910538867776910857587125276272184800263083875501196921362040281509811197809513592682390365889308784054834350229564048502334250019743035129309696622583237710065030057821270441587273114512084529603437646313773564806474897735308705492051334003619397580131157327275484023441792679104730845007886605012648308313546023115310700314225085293203335176933328916840066271538850968930354820188748190899987422978228368020821519330218701772789556244979323906776008865909528492979167460357700435434951803660991723130017509864270903572778606533280567702736743331074862828840857172430102478991687618464970051094545692755269526478697810352108130481250164186319934791381035774674916576058079115005409546493612667511558589271429931671589474240286845070687493714694968058929925519351228413157210449304792953314860304527593839831912240367749310290000112331367749830669487766587692781701809741147597478335574753418509406075094299010029429024870055322314375738110150723429004398637927370430555451502279346028435721086052720141986726320802423828219164510824364797454899740898481122798600598989978089190105294956549471061511866908339891298121046080227811372719798114167346820600498165829004278627760837487683583788385468668437742857063816978497082153018553376573953371500219848762309429644591744257244629758787903398077578452336229815240486764960923672146596545341679500876449306823778991894462785719564570754248367300789291209281734534596019247957378343689221224123061485540305968604430843816473044889031538390499633865745969120102071808340564207114142138786598177087166303607241765802312193749153225996519849003029754543891043723536002836062018719839948961854259715517592709486257121401753080256090233226309702325082481535229481534755666293270451462881139508532957053671107183662010242993539278859670547075230577994354096696159692587783411644870706264863438277538875305937915169681578754145472121031055890407514049310496955492877067590571713095164082703952436553886934875912451890471477831385686615434201871429373313800487755632173364722445078340059652626317174826353557033813823735874924741487006668263676952454208716038178348021905902471775010196152567188119170144315137606618088097874896612760733575630644429516831837695833733545508771215791607553809653922869204361537549022126891112119389446889636173483867288176524397361251934825961664058031457707612128351309433377283926058777589025303738819371378902556886764089123443991740947846820275180568806219757565595952666968533469623144424680321246255650478734968074074351741827253940847121489879819298653241840058027191625097088585408847634159296706950678904821102732536055895151763615218769636527413230697041037972083227498173401828110091406024741378766750392862757861229991907259031502398573257944052028742378002179834398087425187165624170908637569899790257161115494044793187248557089164233728655506198113522042632248177197182711248575339560069340746203616235858186480692864767534833182656058619460567561488233281770735334739907758985939773827509179034483609322644266771076610226154038638772290766090086492795957882018390862243380279760691922044777198531835829387307276288493409362992278570235178667991683580159144308212968171021923990175620719556968266666961798616471193363592294092346976489033939919162798344714008517479897993899041568905578483964874125769364649812711185569774309365026710445837732366104829463141076112913621987992081962250170602302539421358700093496572183025712538136190988704988858721813676475985807006443922828912303568518780512265512927000568168175059810815652143935031260330652031390943918449686567914899550518033208368478319261634365214184629989027377457811765830156081929578114713358771449916031878460596427475131518909901911523521224943355943078234597708813526848770713594532467246498974616001202396662433989748227820880793939782702423263943593092104874815443706835051087783371802140415400756280115503396084480336868875977371302193731385201758516564256154049130531393766569955953801594264959084201427941359136477106721157198042965149765850793017288524265566502512570964320173781250818295018793236716697230204618148705693062886466280785559838106505504727387696456755759108491149917224685467905833104913470495811594615925679362664093567762803606728533841343107652821313362935851485597428332632393499378870662649986155157069453965461003851897656410903785275999971361092546141736543043897367660042037778455114492042089459284928622456388817340912569071516132772815532643542513173261963063154818015196492855801805570758372742344428094322867355034934371702709473985444332890538990569177351235940229853058536234631290478728652674972957303095683290818792128375220274179400666186100227954575503568721469087544756345937029610884121291076939648000196247828814661800357008328766830297101973089579563820291075767001219733953409681981489131499325829770132971592399297251491866624635994364994550505251954712166191152013740641171772530847478982744448635827427330770438949689382959607163178079476429808877926626044977592835803535978392975652425105190423674909230179809696936918325085801073949427199539009303222857779012110846685754158828626770944969919902169960243815919440789980335591945791410971496086592618398988754921053328101150581531155661741292827270104675619796734931775788676161384683759401894818741615779997560730873880487255499143461272579803964306948025357394130003062495841824675734551975946123869144668022246409750982736463639919372246405477896640263201025282773207855324280939039929713807057785539980298312856470909210127883007446028745974941707008095043836321764989044609462692556838088503802310805938836614547933496725410568970596413935626434387077948837687425080295004691346332007684517377642497123373340122688634195785219747110671880703843277937242442851355629476730042573391783638073699512599930072568135977820400309839884665083542807658702800387194505263992238731498195120765509181990222977551994111979338282229662654334621690040533789537996076967727314844033394863392032040648626913878342561653493594329589753927234541225532261905535048511447748277966717176400139922704057214654686278771093258895223528567981875342875389017531872038543506790825523256524841497356972660307238782981271897987763722503400695145994797365964655197714949476401669700195103257146253420021597693702418268999390987280534697930133534760100703292124235869232535093327956641329138271990458114216022122234024965332851301565797910251335657777164886056400549474542846600865455274842364619484110213962975367561527286848167927110708048330793468095008808677001699185638304928360360970382646117473370826392223790317495243716020109278493634014199802425121303031863817659436523166479564336304388972407110764091489412282678039147233117424960825725864071654524607759058937391709322038164325248963370366591887977990863036123847455380646414495423761634443233178631306060542106124933446625438410076805662492212158559615772625878248359091181180796392578998300355091766235141578247239169899183734823911342231953045094118860128607099992078447218102448160440228911267971495227528766246579882627153369997231876982759330754652194456861718226526251779223994243145847074913787064663923715265694534608108623219491270964733740885738251064226032401329322128650385933902238348864888402210214082235069201483579842967465316956681692421887045936699340371901846079884471087490737530530351985297390901417996367885825359048816435121486275877853943086392623581487641869273233795378763435762546496294911635337463554670022729224775218989753557064211498931842109173798801054270284701569167310449414728172908026212458033894163281627561366570366459223421857889706554714601525526702462131403715143138673103647289601259634563139406096734250070007832311507141877186393896766141489647778998783883435993381974472619906627758833327950745684854213638758887045081679613710329677979059366446797621093307921116166095118662720365063122947320043911893152701292149149953775680936117985156418049802051791380831412886345551275347714157535616946335238232342632203286723793103969248006031031601277088263406260754566049997185983798602688954008790731075623349131163188048978629334748478882782607542131588756165324782488867741497151195562039656474870105469145912241869487322041034401478856997695467875230837055972032057470044609113267108666834770846776642472590197016759831193820563227464816650807287769363081814342269205633247588819625246127043071259180442445517563117100352359253636354124865152325259442629772305642943152808425115902020300272781082477614298100888905152532859687326144821656618044787276515618632732180293636314733980942152318655470303599724364010869531449248037154626116761623828376602668582654280404361079983438405313160445560480214938539096291698739830309460924971058880774035274808086669158412680064465885896072242164291363003574501744754937692847151839121848113078510591489525472182250871810400204544924888815288863488107562510223772430797632790835879046824016890730876012630763919631943447833232064962126430897735518608207614827820942110231233538732339220174470879474897409155752403403474301916737460839002978319111571953632470619718466409057187801907879215894501376006332164699891088675318679182356227093962225290325293678917239026903127705244946713908552228406862798278213830727266680781847086051043229376534442811175168020300975692212974488716066462070992617194704109511219786686208896980568867983867733791152487714798506656783797337954400522365903402738539916101432486061740244245939893377952433602946979568262618091436068485930516331696749720130554313377606056595960718616753785323889776972102364854676826503291347472870958603893938890328146793643581161181353183039476618757436884327576886507027450654327668343346858560387847498417775685578228637975779475751296448860722670362308509264028674834029862352789306208983413297990570526027008712299281389918877473705299837477830577166221760505334987717320185695609227327287744790127906002264708665470942069462597181113539347698815719932475201732551861355909251260272156472819306298547832670721198745452257982505292128503058403872201595615499445620351976082501525109007170701844430986484807132558146728158678867669162041548545403496804355483499130633136598710352533042563602534065719122470464649988781012778448329735479831225750521014517935509464466981326126469239979027067395906696300381543406330723071530964388952175718971745865831043979846159130686776601874488602812109559768780904059715671578808824106782894175239292234708820114260556953911110430993456569744130044321210510558072111840869170893329245237222960832118233196673983323195633970381576395423064402189328030117506115154660740535421960895594987795247821429172716603946164873779925564066994627140895989749074167815654897889264185602641636722077958695224279601325005896174722725860223665622478207838847303744818600868187647890226334284511323034736309629604902922889626177919639802466168975997186460410713485549571641993350596046877432734397268696095773137770807366649815219119862423312227651021028560160838557008523995245383601514376436479679722504675750666402767785759557720613442951530597353216248584873673994356860426568795574448526659849654606216895139260197377759304484899936493392346109534712466718179015351659435561715339877536334128057225987374850905595260999770956105424252482786198403180603583421213919939457926258966517442731088742785573033104368081236416857415344619545582275060828124038653061480915290633746022591363430699514855902925455356017301755497989636991891564558621784186530987410022176725393809687238168853435292854843887542427169978354492740797397646026111739852741309580465826989318679105086732618335164302574175780640000020604839589100980134568729176075921660800910382313757456214529791925822564379582272901245714722570814672522236747010637077099783637740518622029076926043274379446495286750419938495984751309323365508699212772200595815118688827767451938658245184725232566584041657322240958187748688689587848337643577083921684399033943439074053633194746502078366244944435868356993155146215970877684886570340171048661842398352827239049003117093142437337281003960212751756903411281008660901619493301748974686074814168683051639764696291395537368786924301218114043737081492569066386571967852771695046284598415592567739577294783107978709327110850238814663823807779686910412500011038857769279356043912146090915294946704482265660471980477869420390017263768616268219681456123472001697194734459184042802785588051143608870924164795004084144413046574919317807601921581943685945984209073265229185329565367328313883912328773018215934266087269367633122536829908798445332545041380923994314830306626966392330862001193764199334224558990802903131593179497496304098833716816477021818198310109570311609042078011231170244209573671355964847936463944606239446083330512762133783519995223700041106385442545591537452481414601290860711919134853842501194467388424774942343098690981172554860721971173677542430738319672649384011179994738871542558517782242227939023244012149940436439555730803923620535319022282085257101662849105963882864591503221575016986887659058745464551422394599561778921740005385554230376079871468148661645525201275667316149262321182007847996220346114894206332357203104199133122736087546906832636558258703907473760281136940594064159458801701644960367485083950174698950771040890054373703570975190523477082417009107850660979778820353785624904891448565542854954819667700394321785945764806562646918528593078004662813016040700504338045068338997008555309136512729089872257135174053833034786946225230565911119559431085367882243465754448364285460173041055061628467409686863608990748549962386448690624539541121638953452836510416505771547925126886513986912742825419628769556615712502864380926727225721281946409662983881154005056630921517527527691388956418467387577347516764299710781790140014724752157497372153133086263266688714674917226001678518190542156757918310158641237833525455559011232307306405577469294558697895455131440879084189459988393409698573205609416742296862642761807403363409023387984333688430990077743496324541353957755166815783151235978115396185281113740124723891490127611345100828840268119107306064739083570348496902183549416636808514205414872677317383826043094810139174470451973018194337953773077591789656341404099021725364386069653509309227175928136345207938435417410968324432471381092243244655703356172778937832186394539750008463817138114266392523578422040410522851570622799888186748632574305046677048323482759319190568372461631845491206515329373017626786189988596056375065414991372041283279903996941158790317341428658201514060307886687007852873066563736706573421872281112053006342279338614576680983878836868277954367653452863475840667147310792553433310364382591776894792361349980922354669777884119897488130648065611283187159916063763887167276845702820943865146913337499980873924102006218968220457472251333759265774599476618841296900992873515040541441371997294453111121052999995236874060416451716829030075437445649863497364228690070322554100550563912091284341722511202378356336388755275505931470126759804168615328539748958845121567779929028201107585698315418272613960473148457787428034541247319327046764433834340314150025859265123483314171865536778281267105036278443413306415725292952771249316555274243164687554940277219452960454588736596916025023212563479768816277270993296748787066571055526406226742199558469959752039270648423087639006399275800931867948355588671811128222541541318473186578867573788351089345113707423538500141675163347091805153258622372340200459969682186634720224115087164387654204458704249803392116567769646169274152889266207155798425877229882458002110252563419053524483697623503728881797807551956729775939429863974486289600991945884357247407698764297211903930927144058742492148874056594927146606540860881863089481633849437583312634306431067624273632208690450420098427763187573119515384758981185581082563841201931285226767229906942698214450050574042244416326315887042827521364577230956233563544541175325422342808762544962566993240013290849706762853975198197486416679727149554092561392024331892659789029521744367346046464220225887450820901377877199135855999519975181242110860118308570486304157152861354574240632004031419752462953745772738020069912128211839748867177829581056330143616142486083486638146170566482893938379075579731957292754934065354928793997107173636099569580652210451847521600657189524587245729622710325736393424383778800429731103131404648531697224742057983767473840109274075847199375139484005700824784143386940844523365192171592389339855581834588183406305252159353026458205929552972507990845557633781017980070753762687664047331610737566130911993499869399766470619169236116855026007822552453884960916805809357344186988542926527585260926542144525958540948802831744792754403012889671495956910053473831084114234723152685998855541659066923661479805457056364219296732284705145397193438133233992859716554409177770403901866247465267321439710464026717771489822068079852913990374117173464839209800494144875834284325324352060905862405446732208955913244152218745724339359701405423877661191331342635686982721887686282311587962384167393196289891106451467637325533611176279420374616863741280360605686068958189268131712801635351589737166757406014384068139233913245382729377996145012821111288110981887043420302587908113757524969593150385692818084550179859221381203420684955337583465476924831639160356075605798349113945059116854188003252975349544806854999972858125933636433547093376212686123610951600856816091465258523211587821005121798524639354528831687160491651368812796707528202555763298327938232107029789279032602070355012559131389016667541391790583326660332543514293688829332213639531686902095262841218882434705494448296442320877993715459612415155747469237237419960973703817877193341977180161012337816694137277616141870456626821813312666397939226599652881101854655928241720449676526601372322205581976045323549740483567878546094175064477336806534121493067645857362251543761204424078835234777354056048734494692770882780984488973267355385967076697280394280113179054478030322735634059101726916668466626068948517854990277951956999125201602071931734186757166674424764221835400659569914538374532242247795010676753961218785833806614114271392028111297825451894767626916001298923290238685002786295636703333702468674519316056909464072663264721422864032673740928860873708583360206540970868023681359400200946630285131822093756651751862187154606750021168510673045830641331018508124014830122468232279256546442712394628285107536635431220091432142580453898055782625442135310213172013211795939452505540030975802582466434964460109959995848125844263198486776156670282000491503615894022047038623201592639113200294613541256886735243179661156431658785080057463882960071513976767179490214518428729293080441072790751158578916567524275912773320020602998098982309365979454482800384224679397743073655167728920834401170489531639037200340699614658224008633555365034461552754896393312151131000418624573960122193409707300176939038550087999341347326452896653042029052815079964816142157480563036610374001599354701138532751544763278434495667967232989944471974888085010142985159087734233521530796773332234110949619433054843903744616401404462201789162825968784314479404830108584944989708620450452489953247067275699894866114443032390407799777965839639078287113384351481946645827359749783390334085439845939207903080271304030532726246350190660287611458301126336012795154107330640291342379513898231835292882536175756290627570427973338594547636532341228899817120272763570852511570286304008278270928362830425518313027609821806504783367832303853278705759087761027397577884417956204546579843310374572782003402054760056904375816896934965545412278717184162808987624956085159696558630271060744580263610250765391308120960769141490578178985545792553434320636547736193366103202367924768871932994993396977545204620624018060805658766449338471964647936152703244151600259761232588231407820470454408552404816836176983733874260993559865464152268020728716879598233994888960360719068305277011336161434130698878157452765008739580313473290785908222190728287969041461415171110627319854227932744847834537546151813057952532259676349136448998840765579915603144978563864561599613317042157176417174271373750127895511384751341396674140931116717523033690745040563186627089313582752460651213701841706170410512448970403571101625119836159454585917073877465803360770270897178869373824839767896938211140288982965735663305802398392559081128296335036684040254338434342056822272722731001110371471649385573068852077310991441893058880308277630181047776016222010947036413019768014782361708652013417249314021496724884629666890094275593745601923988078620800008959301529056294645558403554289971848148426461042128125333609852021193162935068348270331780865576321622209436822528736894924927212836913295727042897306471350819446667116975453543414893423679425618492102616597564514811542674971651364244239691016992099724694429041697927359680709201782857539174672351591317953486702022456641062593279256730837936685420077496422282118398082449851015680575056068974598185659946153837255276305064213944506172909757675073359384856745533678958979676140041972349386465672079685604159861492349692707617350776807051480920033135559213437625366179842849340154647124630338536243297674812902934447733151888056892731186762364227551032495287042138154274626063839681955374117601979294619467231065137482791210158022913457486173790363807013358989578234532769991694893640451993863746538322677512187941992320364183628067845052485512765794691877630997058817849551603382035395272092845339247782112345440275047848328446663981989722982013492600545767377495590929113112262329405370294106055715791271563630633815551354754039865110334877849781515729485000114738384277700949684812438429810854756436068923565039870024912127851072573914759077831008310152778178062203452652116361132185829923822007132845724883887853773602800748258672430345982065511499507776954031620403468614357158531673888942222098531581944147842791509333216076633955245936870958041479932345386143512708394049309090142038481001514809325384845769829895920356912938380557837115280416923459010185440796460999127366166907163867267524859351961688480228342309576759421395778491339319974600243577120143051317890158016621035519961997487076623365881070220003149050635763163213564265839443069164015035360343792252472429506740115343380829134255384669582497539435943955418786756325861457069843473351644302640435705519114306231054561107508539592648179048568145457318258665359399579640387693055110214153851147536146782947527659434274413239762186047922471207195548912152321338091017301629410202265858886992792318889218188209699804906830757983730258865853741382104365127271235796039092644468589077846670446265337008638723402322843919668705677592929703071746708876990495381189512500016967575963540412615630343948677764984017085535767511289764063118542818670180560866627067128015381411902752401145155612507640014245536405650221922093595713460163669336074425311384866707646016790866010800962383391171799290656652700072383749203930152861398160554182754669174571733754728074672686660216193439488026530494462796907415178011944814681189655073440415454179682311366612120446421937719731825932025338956914087046502775182140963580263882983113662785568164875722031224606073592910816947923990185379494526691030639968508312696515185286570746526538507913109682012039238450597075302585673977008654366918775581415497218336299731913619189724578561539622075777483419234143735506744707450942067123697690060156210936647576652912709827292503834624224172309521734327452404879604366012593212920361831815045849356204021249907887184065499975134286205780467550015752689960927638568660949897892774365401245919610480655717575164331668367699035377127879299953451546092082709040035718690048293866914042159989779643270211511405785587192482281354296781491395433024578561877128526694064723968066355210410239688715319054557878994869830693499990245854686300700771365804466163893558707731827373284788981007027198648710058004368420015473408004350716206275601915658848552373992438961617646622339499439289475813215943377075349417543172072756496265403364967501044157411114213478130608433985521134725708599654226824256036092071609141848174502825575410207511243219817059015491970805823527338101014308898556502184825054175164044710467353784348425666570925668882269353339562325736345213487458344164327963562379987709257889319717766013933810322074922003901945888961832935280513744170149840707036705583781411571588868266338614261653250874531218193968959781989883332980738994230766593494065186862730065944179696570097260925485164458493388274983329678565743167136051608650288963307786583214392069057466989016303903303688255039594445839461678362940956304839130331075186319468707851188003771395384542093098644038379075463331682001357029191020812672808020170487905306448212912575336974559249912961462219132025090475188001212705577550059288032036943154273832897089081383959231984746340186796831703516775059690174447214773279847568375608053743707394128722477063729063482572142509328720680751986937653746436376261099678274173762153968630104079178091629172438412836608216859276520295110153570515959155239651645291887975326235347558235162715481436278028763494953545763258682945259079269596644256178624383617472527017377767355757011756424596726090410179160047528405525871880046230565082772815816959263987157959346138818494804282629029055188776559031158428698686953996743265868232479298172212305683586689391218413519924227860426136799325004180613562646808694300233458708730175824894721103056544935064463373902597341615112185951038315822751482035094365467306895882343366837413733872702068841185672240677070375361589945745731795265129378940527107894493591654830859556898486096865189599015623374689143829996383937491895455285156786564270051363003916782870278997211352468076984058332555846327282598640659467190556297303781417158226612691049456868264351792261495056389788433699526350439867996364779714796258569297322947561909027994911881367994838411311244417912248721013605144408097439817962272617571580638558282332136505897554760767267813143662634975240612116442095760963810797858466503052803756478926911690540425203875965437122421817108233046820088468369224291387244636158867076174262303344075393984548069508066913692640784205371578010988111437849361980500329856172312348317252798620870743470010299496011893716256083080070715351555108362640697770634172105320090223859747068653206165682831096143403834889208324194514235994496666944196353672573495652628033676216822554130946517826096805741073921102445622639221416947802655786977005365486260424900275924479359748221720956124419290570994255232958434466132926646242951391248199547390851796013042126069055777376401248526748698235735409814834265912495172436230079071502441665440911517254538074428436737642188779663201396906436446336220056598272657734500566735386676556729990172690554508944742715147888478543179206748901319893105965792361271792351894744691829667267160010566306511870217981419806988513925227148566202179535815905553045112745737875269841796080026448355348999380417172164952610176912093260988936193766757534804628693726600259460903510560466213246651195311031895772314604172274527441821048511816484397024980518347891368957679286741679880531778957400222281421098373208813557325759484945584111653435720173305464100042052869609821055354098171193678912124339147756977426453177358989074039353426851718773585532908611082088676888693018668117049891533385841042001798379148801613412019709650315258808216113772697167871955979643748671083538621426055071895684116150395263554699097074296645454052931690441352972368344560006733950446702734281893056978493266514401075434787807606396146139529385283072987818443928602593719991924725178867298567806981043013866666743429607297201226112742058994084950727575046332488809158834937121260970200198328311647977408513257646310245211368686008655420770829382371715823875228281163387298911517053449368715854900144000448457229764961539137744003636449291495800713599389618508918919919196481614352289133115589363181035273804582632977201318466383542237598212639126547126475799787623444368532718844166156568981372788321356543467074926385255034429202337873618714274133565608920319236752166971375362351383235347812427375288709584468405792602099325094368675689491085469335571175774919592563372431623156695710951818536651099401991711236411857817844821837846110966668636808916792746164644646576741447209856989246378456203693489569116969849097524333180946642665056581329199830544234969993567565600496262105883667123610431976821962906661907128699592076662104635352867086856958581536041978400229522025724808206130862231878773416764026214212253209105563496554084811296223846439124245477051624210409800631899363494743686386046572596981646017019334486431949974867188524206287555077848675922296435841459358905270211993792666931139727606994359000380992356179692672097890724929911718500847225723522762831948309862774414672448178159163921580449896755180877772876101022830982280947600515034638947372455759240529304746906954804017809478617073956826042207137419623064902338827369693401670745215513480407246869027273188038805518161299487683171007159561048882511112851734414765450719486239011016165348247122298394934796145808639714214447135148605095723099574678460742076454228700841366160751810159961231347141716354979804693056256642264413104706949761028440576406819208750012095680430099850063868758053336350040246177317731346154032908423434874579868529413357769912881104734843231344632749865002530551684129000951657199032257231639574602722066873444172486210224277545402190392160980368907380047237315489504096192273592019877540520742305120126089983743555351283395548946435177418972523900892078681279500905756744646086446542464879834126901046244834611084652314229462021485939456761290546295646562032163870227486422685365602841044656726935956113922852497958992902596397044414141868478770995545662532190621892681556820996996156302329573788658971733908565264561857392124967150174146186744516298559156529508090687119391618456142301674587653345446514528766844140631115464814665517623481549368287108960402367291518771571306713336265187052115189914331077476981561358145839762744280643458629268719835485300759846469381413064214727395854653727635032992812971985394135430116422883176220863414214801907240655387492661427821799111476409148201798807257668455111348612710654394975460543538896886441113077850075707732572412016072754948127283213423835833212334954964971305605440989653514624407259237047952753340734815406762044207889633811578908235440731044033873698006616481185658378745254537449352691444731307526777046924219518089120967031278193363270241063289734774243593773518298593826272348753545892010978439813806366687644765686078244336506836521282804712324727419342742029348804993235865740441824301448482190967775761229321517334581742105667766021617911056415276048231583248193688843809854258928528436214069161780390359324295385309964229174686421776721023072690693691565048333356911046861270783244611927847295203581182966751950957603032335058099937416502906453159722722616298357355120049865654331236206575848459476862862449416021005956917958274977737375157569450082157865758818012411827620447513401409793621463915295086068392393794836035549190129483197229642308132840055996295304097540220989782702971567362807513465170290765373772257827702205564530939726267074160822374876920126129392034563665122785084654596732515380067276154034456226641423186729153961633311800248825248653557240415695551062950621455103576382820026090109185428860366396328911836585691443472861471703288255528889654473272876260866704441906037885532721611172119146327166505996207650293003983039421518595618734122782113517975254289290456109287197822802124382070373072536810298917874963487379643463227330984155870373723765880820396850646782818084413117362049516616272868458989843252003209542230976427385316760810657554131632369764548093451877379895804408627989419246369213670605965775601748161773637424844403151765055993127474209310335158109636522143653743996774696747432812010305515897407381930950114327421586347142684568449728423784311400163492999778842578256208295952331954966591951376653943231360454723774227535856511011864419959255525381986657179652104247507296028972395402719820788521128636762002602846557331850024446970434558112781042553841573495587074334738871559555826102261008071502230605035335255779512127241784871863234700131281701245077312359670359457860495567419743512919991025456171630683264731442507960627458475015996751420276299872258183110176301808788600764554789229761215408060220699835695309396362890104028332793401848715579101664841355165389442805780233955919173709792266522071474884135909368085537935153081661816741091079909842468634020156157444525134401554644031974667072702251750560014104118850663797233823088195837548470692838748073151874440569496854495106967650907234480987426219525614509971675047756007701328237898201572892821020101892762507129859404820360194123962041224668057788967872432746422852852105636573035991049620219096247531414319478004582850643337663809909193541417822949162112187736974366747686090329863584579117621761759738395952638599075157746647042022569368557575697747008413286279826121861441350728643569678974851858495258507775655302084298643317736970382845638925339693724101734555811097057516468221082032946606483729042236769790587765245515660106391394238058070334346349132862295323143283451291321296411250703929638338280322532100914178231335472675358014097789842665148930381814977403132600478840207148997168120106259148629347194533209672069836661085427756276518343577047595769142619759658802114371415358698252687055885589867879499224846167423985492709773493496727116666019082506584709674761517704814917756517159422666200749331650289325811015806353437080589716788025999874336053448173383528933648081350718948293175088091235225726656865803949551619157546453541175677359581050632257373039918357522991947370028548867035126822710268244914008781431236395629919992733078265495833654991186326320795074648470856643307472660612031417635753625072258440525965381178735750863156618409152493873909095427381041376337191117314957852411774705877545582872122875743213236538169680402217541346473125001175699411436954249634602437178804840847772947448885552869810172248131963056457392832379864176230647584769193775960840904119668709354872534417650215922221248658803319979933092410607634048400016429409079139271635881254302539357426881718169783740430469504279075425676267054212108979327200175151765184812992375846251891691564621237592730464645583265289563067468807634702334668826298033638927702861427331254383504866184601014592859040107330897486128778026856354902049184093803322672202693074642642340287259530334790455827889545652927150976819971302414323972613328617200396166256527725865202098672506074965103033823552652851239370494965552803897976739660285875640430070044078503698804894980106876987939767101452311084505430736158164058400841809835603369798072261913996602290958801536889252763453816303325677163943475219033722813365038404712191091529661139845363120957894402289704579686578844633014484496252812760121090309364916862006806942021196632104985747443796433296544719137439722254783373824192020571350162327748926729152486665715535221654247772001827206982363063450332765550667325540736744358927089954472248548347407911122195246664526358962420200907756667025432711458130970902049567043379057430898392159264048801876417855261966044456344779950441950198913578300908443365733477913603013281955105890660976925195842249575623447925581464645142166408747414945569929428907198742709500706995141580105513159745918361528371800189655107573982035851141348524916636924717494392714950379893025401563654751746566189638294655079008044649009606381192483206873240411870427230060983007682097572406793845864372047042287492220414032876521250689086246451877337921944300646300553901031213521311437104926962256867942723506970313692718794992834341328002530815305190009910348467202639970939457081162365653588156799399281816041572506245384929702560207440663678877103824971096186487162278035912595578638007209072515872468125816837824363409638438772045647731155528702835833592655482446658463318831717721951497320722340358994237583881870538294940355437324761367779157612871757137361844797860860018129498086761452215788472889395343988025747522024744310873758368541507511592827421800396095457129049735629822852233701863271911754643267214757114008960896735488505473121668771146148993430683389851021512963292254042709264037981562709165716438679188548593543531572334447844953823358809030320904321830010597773630761231096325090000192246041619125891342693896987736913062439913808977752327247548763048309096707073094324364862711862725318624463690361468835664201243084068095290966264401124019182492240915580224450080722581789799796137484570593966909746467080463079189908315761226435648163577692125855997656631272244161570793729402596917468781380876206262005597369126093040132043653073752036548026326050400008902992947586429043629525503370396547241933299021503845506652582343526922968012700045031054731379703793856571990399296190788686806720297698812458442869841620405645314712533470331873286086285578613542229694119507669503784710823757671595084357232724254139362962481225178018488594059344874276168509771304810757720491776441425168601170130271871929930038311638298635221314337778369668308303974243754867973419446055252195092985627948699390082359032026655147810032280647739980631468857386525044619904270786778089146647675562897637555002421668241954799684826556961701551323998974431558177043205416032801417831246039305853155122639277770876085315110499147353399690855156013855687933311584568174025029783746388524143296350197881220887452687072773211013048766527594605092287896057679945680705041468120813700012017112218180365942717484167186983632607269820525977059064436789527612159287715093998546722030830404770060051607681242294648542477653900153796592433196015687240409075629836586483488924866989414340155672505384274249782648199700667485286245434944752468567919905676493314131552868408661539512864815028013847384056503003813820154053402253232379414855519242972502371615177206285735926147183643452381120184379658399893765126691587815969413523494472278645616505906131703057541983556736911407365697608342241014119455824818384253982404308263317214697318971904765484206225241425812432624643247430467766062368678570903705162303692069334901794960775190336606691183998593409052620435722565798568082622130935343190593806257224957639154956423860237205207695710479277914764419194402080877608361663708042221166731115903108640009051910947338667207291301819581332713602104639487971025174375296156510403011880517059349946565554630533897675635073094259021977286477827493145932784429188243862143570806254865196625229408368290052856932554723312426333459657864483972350804240840268740309165492927028942113994320437096504861284795883680792098585493196690399191042584530741222845071252949200812498269199993943496555135083860634383679252420457687199397354577254110504855977283177283104128976338293337634213152255324339141126553213914500974527645262127141812953790484655681470687330367247990023977443807693002653581905752723777826896645305640206809616398393479375516769484173142769953480837808452620960576703207577033291270937064547259841453142031816179761871621959712331588848384767915483752054691030408129451307320357186047449094992572027365552785218204110217085546792265847636512950658252810266402342811203285825155996744275104159523636862137191109262551792120610702060730857426020651961045010169641531463599056681911117939749987494166835243189839091103175900370649908966324489508681769168037985207479383423001068636743649931997882900648225324064930320168779310170576860556036834407756812419186420644032584791815040498049244677308628567779257455955173844255965870393098441464352090375854766818553451780920140063955788108647792538738881286816672476176014882860040275575664989242526865189066670935967060568671485064009903653386507558561621373242300812978683735214918476991182791580557202031480645635446651136964828086386370018932575215961576311253418150658830152240946556754358075427427043094375433108419731683611285560725756439983111236795559737213233849321137916604196984262249223275066687142815181845878293873862755315187874452101360539719597340943724504429001874419520216493245247243652089283969616758525127785178676520183406952305636618616039367515460705551837152604829599834358208765505886282327349217786614962249414201021508374121030264766149561000987612028537944056383763231211973682993941337563188010936322531784891138538796552052605063214899880042130065921528283374405116989126612204648409393763730392293433348260704398445639689002833439749901634184146095270729176913345360490379326526021428315525836548154386605814111610372574773875856379964505561066867622225869783580050477995233200021523769943116235580205437032297544672839567466423796061489888978387182643458798375604293505706365110121178366479244135345002297032693606693889740047722050242207204666467963821503726503406634572716182169910586673865897638091662001260901795715193925409603710227730549620060511232630230703600235997514455214691339134026811919803087192229836924552307952992962673893473609796765037518168137834747659649669528752199899124929909649041289732665340955239216779487164471634002283749405095424209825615590754069654945123106542291069956912318854060532911074187837084835757919687271938422388217707351195910561129802387240730350453134391844932744405214079166027135636171098892193319008865079127836970227444304173082176581512380069626994459346655911655231599480362504593624279629784054607456273968953971464326938089769740804430734686650086955810637481829467307559097940295407038514593096571294164075239181570326427800941730089031262641439838592040363294780226299748909928843622484462643150717751605826924365329049881991402215615305899338962967915428276768914507370687899675177171929150175912555464547533377024047871883746115858795132023195521523819964903524747664252298808528944740049770802616136769708787021510574120469493869373356164364561033652530617655950552445564506046585259479372853965199642473935821993975906521891359600002671520837415140204785842850365709292047345079910667208266524241163089857330045978468273307891769048111205584324483633478830907380941714015720685253604445409838506888810704337602379836919728513760935592899595737797525715165358468595715620791925722537675095651989343179849455069723237556194213962534185107803057105949554058482405986711308215994855307477911888916717851082450849067944576821793723394717728808027905597721649746132183572105419139203246153606648113291066020584445154653347928495957193420743376635521841367229958705780948442621612753481656458193786213847989489182637305633671296778777854255330286074912293659523790609851492667185965372437257422266595858558667782219653665642271844600983819934567048191425435477439501682758607711949099949932770585605041684083464124039907729258063307795627595465639916148945574021592487022834322252739596431560838035369110567837640726685413389197837286892583265577085435170948513676888746117243774044259535985604404643414187391430464835520337136195353997639987891507458610284208597032610709120336577055165502828814113383601428228679509743454149884432859842134244304350965327372129713442981424313341565259707263339291537492527724661530544424341033876446987965897022826556070216359190110602265497952567911762827277729298738064149435152337776312708454306525954247246159732661528021803598850364731258395750081402908087733783866336450983879403500828510731348605829822673818972526855705207725130171459901795864775564613385980775169834213382516595222586814966723435219898552110802529351399051933390575302381115959945132511564208579788410631795343731743634479608394115801441092757952178338044505246096188651991460516993694484684814532418935007504122020535458922154500533770349534469016091538909329225947229161727980231128400799547087097964904306801470090815433961389707614268265787752346703092652900520944815634888051326134972346952815922526900029597832037575983442331713109226235521028129370306475685256532042941447898444107555673713912461002742398358900398448606942154384551832220302378650399346157194385006950969578601541968287586968673915144087947255760001056749605219168818552863025052945489353333223075872515872133100596902549904034883547588584441957631038244241984668509305641987201262432115936598339788882501605121326386129780090466569120598456298852884956079996250244871893361454197854060995463856054345939433210475823876978549817043096118943822669931563664763021881888909541195823910344581303930090074029210410620613556586718834027193632332315511148319342784046478421457674011827895371588026132347639083083300331897538241436086616152852577705472500958541142547214525834435747850757207266807599757597040965680644616442695782723859800008241646646013623658734387773859519331460147883039837803782517021710423224570181289644341841871517513854544250683031092290688520490312281415958411473750678088916111838844824198098276463235818393006412740544796834196474297676482391351039810067855404830349728792962662128624996176636421549448534440812892015997033581635813079978270015159310984713233249084259845093509094814471255218390969878254524063652663454762563920900278340445599372406469247810337670379693447942034459581503880674796539240845899395924486122872338093636038308969207695078080346758742433318796895640210622143423566363992726114793291775893805519820758310822201660533558397432575236463388428012193966138374848890841206555432526637270848675045858561424043610891198705918183821663851056793008477328836218029085615522776129978035846093499610080060313202323299982788694667410963885352309260448108395901211506622153778877626446109854214285214202396746862456801766448368523378879507983250930678906088920212710650796259887601754302094284434473533023350631646418268798402982344420325796261155646966483022693031569656787963750990965001415272610433035035700777880762404892488175923166754613966655916570812108630162085912000971323038752406559030980554877723411871254133140539080715044977543014972171783998897394839539239383471900583028905727040482862174604721593534627574322529210657833494575271083098425125530366263405558236887988504445655456783341740279358293818602571027961551993883452275439506684374244702504862944472200248352059790286123501893451969468889863637799086739304347388981961247668646038959928010339234179784002051564615658258902574456082470842778502288033641151544089339703347706534377068291272332359578850275931862179516658022815412658926991980553248414181471651954099033131396096720697043301853387191267317442618831374328070978553522350654973453137488069274566004058031881220159338683585208459114037890689568464676462848442088938443427323234464494121721126275612336723945428352740832452134421707694230992485424199879424805973135991986983554492860083265291602984211893133779215523130468367571602433381907603745635958306573004297661023148523230558145948715936163007702643170191187795202847308393336559591320308149148135278470882909299800081941316674386009569771887394407378452344730959488044651226006890931851307904600446226170809852627729219889111967638473486880853909056560682356049955031025963092390297839447814591489807789583791953149412031389691177980980740440259453961186896529215743284940289434561347377447450803163674516810467633011844323527902566692316779452984953737460550104073507194455500399953175144019867251284578779685140761285281089660300883982855232818997113770111260284379965422480636221273826798427526241464623343292347894743087149122524916451064633053783060046451254074243833809509924687002376903279238972395920201384428566671649192175417365677118653572764723792539406398227727852176812455734326901008396460731705904489932277074609500150496232791311138780377652589810509101090849323678847421792458660535075695435908031114627468684292672013209214786155474128812939005974356434842609693371636722765516088136648098998179056427251172252428886418533379065083675161252868064576850608718592535143995742029600699611096488510809974827100744064711953223774200609445506438228331650377705440234940325359699362158565802375983659587994778398463254886206218007853333922078436643787221035040656816659139900316429377221601787108998744443590903779336932363070537271875411114526368040813712157058128556706237645086119212214241984664970608548131138380289370675112852216294047809979427665684193304143959721825206586141739612943003347157025132795345874808495320512483648834488865555795534202396823185827546710464337652495281838430117988941267462586187539674799177990303555771725082538613130542711942931908890903302335490514415078887096899353489365431235857498975558205651892213813502130428654518034182766442608290985362496791379858465674980534477118792258756149456266807516968991590948432105808851894560918698314567987942621999045729748015574974321822571033108508922396115007511936244260590898380997747347867355633753615837056046524241373402819882485384602452830838439836595781011243966326125985502447172296373254464274646309661240240669893297014664543597453201845927231767068240082854959920081202731258369565664046129478137579345300332866364868247079438615231396034895915227841030589645593795654451595071912405296939333353637465325235998848076181637656778833949913510504743867851459752235303705447435880846397106904055324596516776647673194385774319823687025004881506038810242408550413443669937201299723159536253658608036993329763304592981139878350369860201419647275108408297292250497357776065733762801869693363453480144644971776013309379627868459424036270647229098889458253113278339222886743221407333356035187269578735183772319580474356621104059862401270270006241082154781303818081204074642730763122448259494949177841712996179198195735500779873642860726289717465229009805079629453841743210129910149716141506329578219743568183224263309538633610383884335363537924118050420715010001499334648779140764244320863612671508056109506523101224950987070329300558125914044624332785017203274786010264560482001582932292057312004801251859187757312593647131315311420668652730094090516947493118882323017650465376039698356362835978541465837862327815098599474098727323423234766961684433061871415896905736924277880560028065105971859592075803133731977575029633386589200080363055864535197961682261989837360577657556935575950904353735718328281040919785687865366672484519728387640434957237714959761492660103068816592885386175788346561791077888180115931258850752690319002766580049992582680303791435249019490318122903016027152510451532058785711816697754405814338637807389515316437776814514502699803149182961450666276016682122329187037202521885026535553716675449756128324109449369477160881952783854707926647212601045893331354047650833056632926374139454034780238596824900191999876111967644278430474482066920909086883181633559348998491290469988119696985677247323191343484870703634826384163115174305523758625168161005085418815678432438082315726000846907708612432214131360686966979398771916730535959090320505863508919994751835437823959147071002636023944052500483150217540350199758573607688829549540174738945452830863987557825391445303291334051475662735724063321069397549890158259414408504234972738648961656704376399447898576850842011564035383242285341239452034182522215485553076821990505852343293058954054313929272283049553414009068472320962922914788896357776874357063782597626429566228177777482874509595135648368445567854997319270856194582142862127839932523513373913593949422915151537750647386368422681270465931494857464696764270170873112628052468941736682380865531797767178315528529125228224419607052578295958225134121627070961044279007293969101242963917071474051389589974451291395983041272888268617518955232533255779455332300181679001644061032428666845265643913841364760260058150061354757672670505037701028286001635279483502837843807860675650220640012265048860101228287357020660126466503826802670044090188353589916108949179063283093000503002174702067190297815293010645906769360063889955410886202449756001145087526971220480365727293670345421385318003266225523374568266036401589605972364154591337622204501286112099823618981231528500439193400613461508333751417397347510663857464324227053015192928018144859175200849025592444647266272444962155031373911356766855063590562591992742071777993820539989235850992059003118506068889267822783003130562134291489969051095590831587457736770086030690960913683925354417345475606649813250525495652823286033087696729972835767312645736820631938199108735160826680856994811275739624147053051456996206878004748273247455559648093067884212814837359850041692078445424377626700173577026818452719928969039989510270578292224934867027491634279965177944467194363910260159289172262244492077779754410037576501989281643038305049818048713766309975957282678413866620058129379039862079039984337689262199297937705206649581189360724200682491475336766795166621901627315395152707890631656310118513089233077650534397341575189964876572474896529075192297331530652948880362668168434896199785605608475058775735350084443728266221712628324726152039418542849030632056603359783465575470902556950623632439626245024034694587467234950419844637621371021005174488569490074018084550597344233005845495662068166204126514200176841569602130879660395750388396352412929086345755522298980591006909414926876983537254048756574459466045310398789506213279121399605171092132093373937205659589416647640030581202543644997138685984856650415743610501372045345116158196230184787621216490742769715804487717687657792961810250106518192728553048334329372581404050230264350976419085322534021388313779092707332107171609326745106489375460858095752451771855432729593310691980664814739712608493318658044439602303347646442773503343625660137246079575016720350375056980646277019029678153236639554213198893949639235645257117491307162168556144886245202024671946688986316066168344040511944565508074756708244896794392273775537353839757019954120620793331531766525809771912976472132323509910995324798757947541457260621706770406894001458118240590400594631643863028985090504083398422070486300759480673047078205783200162430984088287193078097878878722683729409037553904600245849761475417343048143285681502594899870622385502678222601379539794617204527422511221190612110059812312235598199374397665140781940853009007026775579085432020256036612976673821671606808205690334056189927816287815720662820806125088163180488410936581666071594511169951312739830728713153078141261462067465596205276064603255385143980217754060323933676502405278010460863531651495649861498257364989932555126509571228526132075449216905717609869408274728844844501512053218546089986053551701548742998946958091334048863307759557972303640360677508755608529449732479988870934876057131966269047266270479804219189565349516615618364276048008204797212702685270204996667215238849182532989050036714326554372540976662507347774552490041814671749261870947610366203517115712552938535937620909737485224830627504660188678469814993477877722332941327095316494971713168235036348346815297680990947894539711156477409976713038630195336640240734302653735775481918962785355222128319954405808226490860888183692415858328657254098278665954916390883559643022799065851025376290033176987028174607834224759532385722431594715130602844628149757253274565470017746892485231416555073573317991561303062377417734763471618505076966316273994654015176951946888154531436816200173711750483783994609090956626576687121794175707574791187894807387572752351462274399889020849903538213255955323751557994161073415366098987841569833320951683010399635919710799582091890861615664445600346729357352660925517220464923540279746866770790009076489135308853488547751796402947507671586256577869880259524825765993363498833266015726952751374246344560444585670427484564998961174154925201450659728773995206733934095867304350627070178616093784113223229181443693221689432411600545037381551094202331151138366174219229319635063019784349628178574082001958262173348419881012363328685915598879425421274882794213115248734896603602181045886124074625977187123089600542146801936978828265464737591104521822734127222206917413285615908468765512308554716240206814589644497552977138844320299166779061491267375469910720867584042970961578601653064409528797665666600333188859923863734471737477750188087140940478878044080692473715957065086434701980714002117312454318824658018010781345902614015283214861764633676925623524717296207412632164115231693094134295398442795624389291687458214855194915754031984280088097087081822659025771915625894459935195539163638390466354906934241087335718543658791828366181138469021645652408329653460160166742353025199568325171081600543510242458061736537870293170315220471057416574845497361011954252193912373928245715008998649689949167483675876993470785620789252755330821330315026145958315881119304731492540024196446493268055132157362143855442770568027109018140377049902326240651287836344939180902695776092129539765892202269987739751113458809155764785763307144826402878816056208128110515155337057775598392451987608638141616142453131537660436511058456229438657414288766618239085800294503356014391707647064950102488403205338545309519598194512642057436231856770139849071908782613978201754850785183448730789370289979113583536731678615749240595570122358838975922788171591801183957666850456521704303862404882383339666364364558603675297747587176059797142201924955934935767090463159187046024403287674696660167131111055648840348941700234066928550429827367777299650745541418810694293261804009599572403241507690534980525564157577851829264313700916059874263967200028647739487276388882434807994143738065622099071852755959527816708856626054948825408909135862748928564518100075414198884251631428837626561875000346029397867200234316042245894270781987725753033629531324559438048257977933044978611621804433001803266187801888352604971184776113630574304749480591060969159381622435231958672453617827562958171807584761537437504836150067946492016747251022706988156181043963601144338186680268111004476834520806248286876861420827207481772811445450963588867387084712404945174384902400938148961078399560357428772499166289118218642270490521944219223344862269299530212621949289694429536679775074769394709126101538664467680883124262106522022479052077754003394029149472077977320396916045521456851104480430381591204973962681134572623193026245727086999091454228481495264767704979389139773492151894807036964710834295690298296505814699686564335698628499467118953246843381769643181276289368207828016518907138055163244881297151500741279860622175133804715387286533782344737733861242203220759692968210185359472655684464281159782684017089390180812286627599035480776013384242462931609132302914078895725220710876975344758651802047329090809129975300675041507280880079587387785504532153424830089689317607288958117131701916437536122766702583130387652347011684177236912130705616707997795925136228928177610051943998995868166061941498519902252962240975170484665044374294024283891986630935195805266026269576572115901272032637219349103638923400389993733142354784714842032608852310957182218947455458568049868567937836759815272713955599098813483614636156011242423835475767198662603338414420539635610497375065201822220067330631956071894842685113621409781017748145513067737788230238542256532110660300733966944456018881043950310041060689513904378159687021497619965524097515757192885592900150245916710489115068766795244751321792040401866053797948344974358619613828932174526798404487448307244748416305194878036568499917732900175274091598230476256399511645404175997682544332301605793500113405541801206412546612828942975780511308555880132847282085296059410384947189125551923253270749553907340197825717803763141457302907746657663017738823392959131274860967939929309233641298966336748002919210425596284593304621857602205398983158861901864123426957114195930022311483419693093354877837933213065257620383994414347524995745650472545311106789629273929426125514296162315621308681792790485688800002979817443814312097967658256711845166909655322232943486848343266138100199795577686457244917632329944893730024553652880816378509571337283167621505654557260106824875946424635453824613294119927577751574888393529572926904743903337043173535465469622770610604079010824406766013166504700905576298679700380669193720329939961373660231968772882124118837489452892711956612201100805205392690792929238566649910080382639195874595622194198083238177896178181410629036953497640605344383560541143380877809156493651461228063470510724620222551939739766935150185945187272619181931284125614866657042903265582893436067819915930255630605147904510003807362259996876734206202094885516171880860763113788599143669976988066939940339719841248055583859787504553198981830677043915800991395900012167409069534880034407200984617659733815839836439252939358159123297904271193989972552837613841046651225190902153708253595455848669913271767706775869002388625060458211177398220514010844243483146998664506816401459299658228545425702564735960391975429351655725950469365240124530219471704585745291213876591715166973024386458562669555014384936903105758553156090398364922606920700476173487352913252790965725478217465728891337061825555414652716260387432561273359143810464314877898242775249935322802689403690623343868207471343607120087246382936859302236161693790537394236632538029935447546244770721360466008736067284375002134874889785510718050648066140489454856178742419631084421359001341949484919334833092083699110732069992155937842635237964500915469119957016534276182399601181645062546188850191074255671748715268983798430796779284433284845435194173725343996794639818894263610753238301647659267467852213447918719478260520554105204867493033737061282472012079385267670464106857352932839192867630178616606300952943527918170893366887650378547558865911761981865248756865951741687515183332280014740113159956229669679296201947463118837801702781992392799215973459486524681288018834884777103502690459453626760051907751501605707258605918830990313610610862777857588708206028862421156335718544636339740234240159615421699088409169478073941348934599396012289130932534844890650531793773923775487187406336180479134576263728418909033105866156673406598688345634086788435780527039349010101786817577101629228787075568864418339648714742266356029189485692056420074066963537841856277749546588450568436210906272456611578211689587730821088427096809751512515057621817664487180794620722621334595200194179347454419219508167867358777021344440477230358534521861587484001514500621495164641820691976505760925743316717940004259970224245448563907572113153367670753708972146493142393313329046483853130617914039225773285606529150221998676930840197829409858218571966985360219458573921348763538512086274949681390637816568097707255753767630785469874800058853325551239222057054871117725952835627369630173882318232164615191593545000264626578168015585738460146287594993620448103207760283626678840417686804782162129625212565333962463793288265122278805710708474354388445545326281902104586153927771475569378302178069906400580167897084680136989931696435691803580952471783740435371351124355997429220246906047719312730591539912059045961006619075607789714058914343741034718244017159678228828605120711847392796467628961998606172433345704677149715872410993393649696151091285275718971352412041605859330205674105282259639317802244136451899454300317656509825479021592129405965300240977749744455122158017597392255553908059975227398207013077275343604369822385155961321810211916068689429419295394482630987314367746878811537416642211325348028971964175185010665177287426944224794718769433367215363793734420977666458432212425007105467115508838079489796121823296273911738602311766515165118989768596276615735186529067407803297032749442523448604085382777028152488863433990990442167173891795808437101164465455248294412675585935588988606623666786458424000882181408525784607588273243392276260616275606408752676656191700081662749357550629904376700111678099113283434586326288721115073118596054576474109315886508485116240283883461661491992812562828138990009055522134184398809233373803316163287672363145235807704311324535673669166300464616724903846005406328778778993190770678510136523851543497474479668252793566018874234025652130925418476081325498010735646516634140025408574122958888649403561714080604258931989589496521083671608674728317453880783721914955858362935642500299965056065230589089541709268570404054957095945813497418753617606065348445120813658091732857450828339640435497024340701439743658349288127516833417026329058309325574292520267074281410291076506542943583249845261716514225529642045600594062731222828347361054286864488471741219485270769110232457927627497551403595303767811623949387458454893868982421416089493537654237786461467055154320805476918955433926343479558756017743209295163737133106781034883548348343954939414116958345332606166547302346827032950222474742588572597404791982606636771610551889877876581038034899349755235275679874568597949377379620600436537145298367860186320875801110153219007296611940808645123673793270797479832017886577480194855735966848960560135815822066341273523363625777867723299624070583288420414449817021669140046679012880479042330589469120322976616622930204734922122423132883717476355140799615057316305680285603842129005836605517496724442597968888232729066963812593945361522986095953221981843515889865093421536639807066857113645235998781226441319505489519742218610328817782711736669232668593452453841966171033553466394081677019729133327705531425254021575711481679861015569595773967961138440166600106494121071017060505524578654778594671890667182932565509073229188679657988547227063018332562020472202934066865814516235455167471710936572566334534123536020193618376787456000577572753712805905270564820622081486982534134151997201997250364508659828251484410970087805683712405653455094221554067288689959787705159183720163687773081508908737947831714791646497257436288710540448967171866945222886068607041222962288367566658329536063837410335549246800887246116292329974100800261343405553567093884481639524955505942810632887151488662732578186025707979409750600022204909580498292687243253228661066092065135276962517818613622837083838869115120882976183316181562332514558308080046606905815283962605334907575282614338872192352747924586865792782235087937347159491005621075701826361892500543693091024514965164287948484427383157554761220839292438864319739269671034526853017617457242694256574311648013846279831061536520664389294070077773663931592995392568356800396701544868487260814174370580559466151020310126606195560775271059648395848100501162851947272688587451953844712496868430164939584809575398655367619163650222913420351128903650157219226573451577332402784461373301987105127515454847798498334374211852894368770207757961213425458332169115605293674246736735263412084387934663804150953270806483701820790333041769584936221096096765885731429842742811865922804384415461534758454705622289608039928477238579916412542039321525364625446315145868677707243403490602050715299247803931630237878261828494242337472371293893502170525195118343096964909263974051765398666030596720480798207153319606741089981145664136151649405136924711097406005082263880748484791847031837704731727527870083951054232592779156455603745094218779040358360747665960677958672631385546053050109165393450176161667329859750542256148129636956700245489831936268896755734721990194227206267393300646566069504968632791224444297901321214483365884234464902405249596668599970278590533000300409408522747200248969228520533407840195039938957322711345421326140156319516087267275856874863759428178007436888965215589047190677878199527479536569754554204790120184365908008468152229221717484590178699910720403816106794377669484829609658194742413241735573075385852693172753632232958319571564500012176308903609278768586769171431173818572368320494706656376253802505964564714604806981521626437451125600148403975796534899768452488403281189949286987031254314831938196330920322123499570782108575131106967869288589603187361444261696382232391230305334064889385260002845930530777367138540882684007933090687663021539339539677659881196035448006076636954935494137686171267237313404700192966562769810938557519735312704442899819436786364463955566661395379169324827885289591523239579086359719794027002925999435272768530937017450419680864296849254985199849599623878276938771139076120302396600906976064999544960266192231432228263308099112689929065045655807579462964032803170689652024920214486627957235467967702718028177316941504012871981193104645637940148575061111221904765665822237098630328741017891207078471772522894644278106213331791712130946848042691036314317468019007677095434269540441118194411635496289651214589149040693078106454821425930234579839903002118411405649843796995747256123795426948612074021626316628357917483223003542114763619919071812211942211692335562821629357882797701778085797015727538845142396114538877994224016622031723328443653335027643417891040162453645606734933795431998627805213973832060707596070174169732399959679342349123056717600602180251606945279681816785990752587470873017904487139641042049929762869828947108950420841410203843866955973006994930657309176458792098939775445907357627797705378863952126989220933095530789356659651210071369612794097774795792937082908282285242060732247760941358479329241136029489336209131445069524678891330151913274365774746589838395979866982749025610734309872876663031856612793600844687388668870042004282254970921206898260733405511472701219995218693980021603664905880214702954891784272392712624882321787254058931492101723429024274809290224386157871458819510268859143670678418953198446984259724904752924074295454129723035994314196522101087779362799071158958315862220714558056698168472897962889843128836033076493889077605483796995239748454781651012505447900299233757485758496694359923226473277988813308348621619808284321183459801921462291758399242332713466221958411573606376857666560707065737535251128301417968925039792250374544111226984250570056036192513104594752337531486771205979931917805497386620401078081851615610545325957071488588746325948890724060619268299845659897440965885019801909938884806718210732078638617669774929459369321030611631576372979668555079656674383252389978655212311906177086341341004950190353743947752135494287816964336485633045917952172022252228076015490999086685716788964313317119581640416801152459130259939192073107590041204673359513780407032908015194108004227427096128216472836702233142972025305032801610664602263240088664561858346302946087926856139876549527652430695964713005770014790983463068263719424184480379274607371674171302552563931584459648705086801136124481628080995705335481756473558599094993303630074331138237374356239652193280610809488190572328677677514310875670156922926382023901873586023538158493960896909379437344441038554369565559348505087119026319402796524963373314603246011742704099207898978821779681524644234096094689949664419093841528977390691717817414657750098901448420867353400592903445485113434675150671216883979296638544936200365625044894343704446861457511058750320174202139744219013645653545084689240102436686677357117959841979701579018888769817052916071586658704405026133484971502333195688978930230593117659849962885144183577088991332808605333248239631494875647217929180160343132823934659835497787270468849487639648071165154135202163747755657905605399382870789083054316808080659437413477727300155914643423859418236041407850707786443391371986712879793956857421744436292999900320565859468869269075767049831466761215226786619003680350489397657377517124733369467210234715676767316639038270582125499427729486957450328300723571414458074882008413537256137838336413705248190882269679558452154673431253189901769252884939461981458406035280024223270626696814412672721477906280761270111483517230191315478529978193686817024691033954932805991930512303847042388516281412664877763118664332696367098155438437934736906090371589237877726509729538088480299897966654080140421593074055764058448733285910372450767320624130882611293717733524921498863644354168446271273998700985079352648387115574217425954883282686859748082137165463631067252752971806056456194854438097860347453480087134438409770311015862656110445352140675537548488292868150053073501524135588296645653225992053989587691350647269240511968806166818719271127583268346304576832273335984164318892776735393980351227533343841768747765257325229747368315926636651092310783034922836113839707524701499366456679392674280405416913668647443116212216745271202665952729298365892738013544315518920812189350731961669551183666999071121781702903640737187323505660801738045162853590133437040896895261679691999643326537378221378393680540884234917962032124309572009389195888368991580337936678973947279732585127358223693814387901601914038135761153460876414211524819153252671508411294476868377562357567253146794555953922041297320234542826287147958212167606492368456074771495304017977936975208746240048277229951431906609542540353790702811873918154538466547428368782072268598064914743797063378790044935963790509006292991355311251254598851029373911936583617196744902897616398044948504692496160651563362588950615645026123155730672767321529318207529389846661325636904200336324571795346901950610843948669716672963063189476363784473492608881081031211453304802894008120019349969214802499446898604207538576581107620259775922328191502521002626560653572714067453253387999888984176303058810141945985471359791460107690957713650896837183031707421003337404924590970700655630532696185393118961437402409134343781139571058509528938039667136703584678685303348425421116137408806555990845838920614823313547911731608330417079340018460061724865814901846756744482669064077523565115446102708819340363616304461887109663217558512860975386091186378322987161489704256348745635082119435600894839518174753079228863024543747626152387748713301189949786563223755849291576605426975492123991219933945630313846108176588810765885019129431713457836188204705934570684601715596273808989245694563320930777114983471311890352359143306516109510654700696476058412672093821716011692409914422233319209087132960429592422962194231286361936180250096661813268590086684645193469506059526295736957925388099932304557799439731851530475894876018185177124585589891444390790496642784025510121370446217635941056752510202562716305058274250701493792597790285877283877197684071097838916267438740063105453816267923250857496705792803882925782694180769715361931426125729514234717582844116831149257209054247614632074920408198009350923358463801247274358431717348783189604057002310078476162500157265270898763570428012817069883259951547385489587988925590132785274853735941568907275315742634487837633413324189044906727057564979912426440907838182962534793814852163570207644949973614893726228013949939160302068831700639379250795091469382406883674156871907973551284499893941569043573516233407004283715787188789418825950816224232183937342893135209675487717498444588133112270125046504232199646672394385803312502999376037385957707436009308890513551748110716501400663095590890255986516855542774433652023875966952101977297091108180631475794730528523877086844266429868326757886542187300361127761329909810948574437321134697296032688689671135754143212317552513815904373067595658474021731324107711029867369519327435706391450917009539744199128628023537106874449455115829895898666752295395139020261909235635612661538420627922628206561902412273777186761305457394745523737113825685637093329749743283262839369239287539259038689417874467893131831196291381211026342431639999617436416618035428490407832655852444035985710363126630440690244051943621778386409016943519350985070468111502555227457434861549124836502812540959246595164439987121286796994892352686178683672788341471106180544573179054179197484915960771899574154689810390435946636357987661820748037938348922417244862590156309743412665356446449686528249131570396134186659636373936924471726834070891387682561439803580835572112592047192052710388671870779772617531554437335129103132449113869929884812943129425408673576952333056100331254404304088623485207470876671616657993788764356351574178504328214713297573400969168572914305859058662845167588094612819798846357295511435211798966284250356066768855276419219709093636907194954249568642038076701520107126924904101023189685217176702222326329477748025667696585004628890064517724515788252585573477071543150156923141198129793434899803048231524663961156609826622302999929416879878700566324495030465299001079709486226878269801852133004839038099970685790897582184684043180778609241042466552513568451022101887123168496009511815522707446864123374319569683171374636310652510739043568097793245544610120075183434183490391859472068193121247500106118860492649375061296204436779732851276655783587080244570201621758498399075279368006162152923258979778120469518728622378831123213403989986810816660451916744362251359635380414214805777492632573777447071743323965460635794359592936167216144475153438637314967387390261222273972327645941135953780973945550749950227927050837898770225768830620531990202701853896119877084468393490702295996094054796613671354608479856217265893335209199382197208504461829032342823358492360230875446041558559812420431675086963465989015269727131122498524746376201487906393301758154049131067839420956508069042399234789663967725631607633404954724661218358620845098428429442994533062549442452231618930679506193475102747890129860610109492074932196955450089201231354398200176916280268313730435605496005823507675219802107946157474142380827238307313224089111460488595030865152583322961580516641537503327263223292098848264677517705482511584438186225350238072454228687203228554048047325687438149197734834478722167930149441059911939810836465341484154537412061207428583274299242426938096887371509172062952796505181386014199249293273355610546493616920379561598275765548926026765643891230240523442221248121479598304400803691161521916664147939873006774553242840098160521143909108783226403993790733772273480215207883254550821774021448553212438725487329232564186328073853645494577632096242498793752703430764338906182554604746557315091738050850636704305319491163362932997701543036646439013572799348757040137742485273507944888924700749481400882020444029094098669929705701496590263781447352250755269669880218648429634924596724071790303865240053888569289960775962143530470739560899520164799560807841952869198429553028904975343255113719392334963904557433681539373516224060311052520343316657224734424805433555784545846719275165373204899422791321634454704917748264531681122303423778496643016638090967473108966639410742204193903610032611318502599868217463736546276307923074704254045964443587232690787653953529814211412954725870550838622110407155462259164023603456581467516114631940656232835134232934089501019315609805214812990067755551193952430428288250264627856862518396613617519513388581039006652731395941457002709017310415441769003325128480434679081103235684184933280025343725839247116282646658388210439256599719976715124399923409847485438804502333527480151734950938149953110812366956096617922158145760964376453803435744204914286579931637255323297992218523900025445804698467383899790566672021265081847548229336473144363538514755268324088165782293951110441031202272282356002797885552618796208253649943521733855871358992234577886592408289059834515847225119458412059365625100611316886037896291171684520926033006563559535575789818225196253583644337708260385308361368731416571001428929330290400360979180935644602384387435765083256378262106222579762367458822095670936607026431120680505621183926427851662036099239703572517383168596339995242915634388102431447037657254099615574515964260055100867493193142894833534483973127374624314536769703313518948720665356277930302781602697414780370287356986355353108060384538953308961401775491222461773737019061211849272511305260143614737807962070960404151145425348136196479867940210170295861199425920302885805866944735027667744719321911810158857663261859136929266023203763115243493044633125498755484517723196900718813530061032404279839288881083428646616671908880330530320400077467678337697121801856477129269259176299513883198036586009040752296641114776570084336167995241460538012267267520185231378253773614384764055620044798021952828057767256194272026287595220767238297113971004161043732264473842408372469221428512276699669509474924510037722676868447175602279426247677168889636660686945698766873555687931570661303785289689136585797515266552947622153565819508643654891310919563913138653820778693557078016850259838847410910906817898784815062327143349336847002687149197959048596070644176437041685198596336856680608469252521231744593009051243546296765675182814795433334217307247581364084809540087968025929551212604434645606251822137819528531254218176346469635904710802028909734455609658459425176678150197662434506865935543773668390616972918735088664552192096852397336772469970112409632664307424322797259665683814250443230648655136285538148391385574044353324608402134252502685603217003448913401005268057603156481513843777669103808009574427304800978655576033198483870015244794550965230165263129577538254736667754800714915908578366087611490057408974655555384664260726010687581491871772677161377178244720880867232994613360820813357674410287779962973380157643128670860736110555298572790244897498159351808957071421535857603031353004749273061551619477575842545239853388862521210121623471554546205129200960093578164886475424640607304999458554899993375176978919150869383535144004475174912914778776588532092896067656150478630887267093598856049290342651309222315728912814001492417833229028347748280393857542930133648060193172190834987045796940875104781703259803847538229279791214873638008986825336080881356769260794276892596474192349478031927470890963248010974307460940220603365486879427301369807260928442156617154778949236056492249700211304696540174681934451982792689945596451265795749829051741783553479048894965742392660273592849134191734762185450972095840897913524648783834240929877815501521807441537194981570348864166021993676597681099276309826488739455540921733513895851725712848236848203385881432559830623467528647886288512640568990043454829303362377697770222647480075459795276608093635724963369571944216885477925104966854565786699949062133907411652681433522516373508188599903959829885701209023413039062270959782745606002226463876489582726965708628027315373077967253076626676266157067781851569595633292538627226138998271030862800227777004477883369890860699580312339392774075271224111700598169221241860721858712800984875328496455982628266247269963505932953200155072142648885223463831634740444219947271414824558877272090929385881752922190784340673699236527743542533444295507268661915400446639717146715158933099504310840658384344518932052718947414305764483128105171042009483180173759499900286998814907602259075018955431822088430964140278420796533546011734463270658648024558671060457900515834842679990526995536625456809236780620357996456962826710365547622333967674072459427704171972661458812309341559618054056745330317670591430967879832597779236673242719395696081881956754187390662577926172229442804765076182069312567141151529467521625595300500253728775035871052851737651491062629857583202998288181212039262367219280994268745406554947106725575713014359680701283169995081115048016388785869932457705057090567183104506750935016830817395564077237765925785169982395015171809866133947930654901332596425330664790946388591276148849905267017586023130060047267586585188212913504281059914524508893100576754273941720512432031803939953810851609971761425777260001244123597677728947725312913244404265684184064862266443360958551740370413310429428707020598309277679289701131268026965294057448220004360541917971738190036019136940739527164271187929953558290128856037195376678564195108256979744891928589752353682117415887914668638233691178014380061756626240764281634357696909632163674313109394930358671114662509812182835795691488670074413142390329486725539270911073840209145664313096650915904551989866737680303530584313220871021190519439312794806323818948460955111296543780382917464204924065882954586128490068939155973778577851972692492233157073141901150132965767342718545361698908227478325665297851998670322942760614458557113437746688108636760854632114098508184367412354733663227206810897134580500255017519035492884089872070702883293453944610604228235624945330156265873316046820088674979536015085642689844309349277424619400523441984397121784698173521585137858816194400471606474367910183123524277263150725087466810668458598851583030844177507263505607563239421833462699493674732992409544985262882519764125963598548098915786122076263470011214872559277791736451399036179490609482651020212762058870548810037032129872701161887115577783734258078083088092174050811822520554751189237142580863389801034177336991494866302412037828692926040004996358654221907041747111003793166890958849724837138821073321790854659994221934291219911603839166744636711883534982735109271963578492104842107058703654755116666854118344784546598746188554164734780329675574805382318757619587296247605271316560263083255558000932209641273115918147757045521748437588030485423500199001038784243258659430150896921134086821241910584333390137775735853632430610466167903918858905073422175651793153139826561062259109982721168814554791159205156050337345746674765761830040101463662341298959612023059330349146036083511345863171500314379591841319670578179815007469194006444560948194737079891568795556014219150412917243984463244939488113248338901612373372519616374808878707939553662981433527799626131373215200539120040277420372513271572262379780530445094567826030090635308189211213683978840325666988224752675639811748492314658727133787806272701625639103355605457428202349767850691989169054812185744422777627543427910298751928638026085791302818961356066231647085487189338833489222169055023896756817927938362014503235583413999185317595712061605763773667368394503176148159266241352414004826708767610752269166508647828076610260081706644984169018548557719552290651486889377449485904278571362257268061426876162327700909410459095317328489056336784484615245858386436664406134390965378302037886241094113392065534433428562742141143076065470287757912605081574585698498943860440234319843820221580615995993787911263654330863663403201482644832902187180244915324137481430453878740627275664604482122939817052865471563510065866996878345940367170492948895517417018464132345025550604193734974450470112162795125251446566549182499592867554147568281973274370643339206933586471967976178320196442088075812136689121226604689035156131789543370163660620113632089275431795296127338292716005633306696793077313330843714448830221053066534492718064380961948227725576067396272880586418779145599923158133002551320711834945839191344105493375938172116776265582412426282900381304708972611169444797992895534157485351360547438896742771831341927519925410681689770700713099116369612498902708178619480030130405121992372773646357964028506483569386352428355078851480548746237281650181760736291594243157926229015800309087674706959747961816978734958484279543509630918735620564794142330921534295254241484893363089534017736243390136267222537336468054139635041122532026799239954541042818357121348274536598252509653577080236902143306001944811539371081634260012066324868362563559120004709806306928720466639307314634550261638826960263876123427081571037293118858977194841006769500639537329834903612586696746860322363659463357541143997648342962246380989822739874462999992437365982467215510502147402570690398693965721242365541821013623292618588798978143109327658991138910719449269641024656399588317508165672232257009882707376125735045459189198932644705481441657692401942372183022806779331537981052456890809105025611322930280999791175014626153887153162515248832307040658244278173414624808300466111072264311573143705953254379157284229547378773840786744108260990069400490298909729982139861327795227261104232144530543005040646463938082982080624606408948753433578589159662004588315514417263530956288704045200329332228702237629534161487789190992112943827160891415485906414906434651407029293195093271570730749679443847607911754873141188005400182274084227930167640340499186160317044795428881090853167766692704012144952366685252381589668157140451548952473332546202314707041776501049107399275881402248407109956689993116478569012586012463171916372717243309164311583542594546200321511418024559048061078310025388233130513136235273938869876265278075885377760718549257695473049280669257136226458820997560934758359063456766845738418780568244998075185592326931497598739682830730662485088921978778525572877995425583718027491732586410344740360566064096376804271339885721580648500631670540598896685809119874186216299123915546377829351048936295672067225132331414719991931231891101613434593373169549385397631070285579509892724847311163148470019524171174425356664149716283583591834323301987467697596575085673068382851632011665765762534854038899910054349477623576531127750082284038925954068410363353401323436646720397201312909617159498905420119875011458367587443647059249671553341838462069411021384881154042044035117237904444901950533259374175876490978123549442230157449894223570691385350898749190135134561132893897761005425686448311940968452449128715617105294051982069343957369789239718682602673916656604145691911156690677802435374591394079113934182744009668133023072127207658940130221541532594323010156893981490722429771092957189497741895211368455567173853097730098941088871675340269820982557299100028956106326197377972891878186239058201821746979378466883938619875877640792955798436082586633397824566483815426468890025714993580774346827336765754556071051596875129614312911512216237754487884719237232703923966596282081033873792934961385621111724954852419076913445018301622961878552764808600612784301721743496430303875964188824091240573928110320468310136549297949834960562835021163654149951274536261556053115848125020488816323893331633033095828689048526580952908309770000918051455394733140162499851692453271918610511394903619324246361490149936042566998188760926867464001472437200350337546143931753216285810119008670984595833302777812068364182904085126610369757259137465621126862555579384529504814610736844524694279579901132895321173346158748794570097508980253017309078078730774070507380822305503384003667387386638916290642114297202124684714358256027958009802757582356712478212558031260400749763577436741509142592264349098755879507521090602408549941811814404218573211468969773748896176411140805751076487122418166083911091316183943428675515456738726194984675943572372797077363740377602015609849199669498662647579901919569002611430242852770108422950087436271559204031803423882132637771709545375308421745793367572329010187072540165053714213241463163935198132577956976383335728153005271783674636269078420872251018475649588181510224863624867042634458931492700722023916724672240632736337602833842176870569353380584116045357118567572874576652207706181262539117747934164692034117513280560815529112197056249076148079193578651636651181764118426142520673356413464444126896441739716585350698632088368336441769243365928430376292210623557735950703389990586208298968384984228397596757268369215633479522838668433224311629288819888998277169772066548464106175892265670938105325615826248880029180923514670509275707961021705685761324026271247095256828326311906076171270867670136774799526658401123364711392566173711192299519697049049177215024585994996625105901419857558553592041144827087376346321760030504578373587536693212156674791084367808116254675626395442030211466262783640307585159984717962696092718109297457225367382211984346723033358765311132765997199419860100433863947590708566347891027090695697011070523154150310770485368317198851866937953834099705352668777971654826843254795390411003685713171994834731008404706490350663201413681578789121992506553069094571857311143295457135098683119320237332518333217315796605696208535078856652380017268373678289356682629241974731929135620929858759258238337799154089825706740268556710064387840979973745827645629855846291237708820629900554380288974081387442868338795365749751041000348832488499004977235485026333787011893707003502759232523069347177059043555228264780670278900038902518555817936154642718746215916468329470312049296249388891725399951078210110779563628663627386957894875871856449974928012361438205581036989384848968477363174405300564096343460912241450659611632543866600763442248713862349640342527031245542493622880780744990048912627052262836973590874527507004356043420787048791981535576627012841575473767062419648948426167516963351329986839593598702887007864166678692855158215501516283085313841216423688312232680495812834583566083472582794024555593124037751087870679106793043311453174790743830240652018746217016283234748851051553679129269197309325731073512315901653912793052018304572921468188972039458832195369738836224062490758181524616342245491321507707616297552686783426130218537766796520301839813351315480665710157142176902161088684201774579652165271700982914711469567405486973919632340357064647391190211790797617913681578609629979005422991891764909820738747917482717084714800989789723045153402615893046459920727731881385296994935818318620996523871378016271698222177768197030262547196179247871416943995212340569862478925019893630447114957922408219500389656645381839187845941707256872281061091413144859175631531669173183461765561387261942277846180595917160645188096651448221876835623841385990780570477121761605889472488494458917259353985464378835109124758857160836159324072430314875125329975201870996864848669799653935755967413530279170376280882189510357199079846190032484206564449859676446898184280186558383431105859736635193106519754652303537966844909021068433582040162775776379311941786984832535290048356067588931948081601004248380307990476114641330830444882328155253297356872796627496369873654930905681892899942270717533020574684067265803880280402393873369432234051531735425876466552145838946472613736967871349749880911428076949773970736731006855635126504238772717234950535210997505555327978781680551636427049122957698195334194368455755612087707387695605633634413985998196935606116675553593476056076925105768259713426248889488485903571863524807694656834093352974530398424548964259053981726443487260590106948455671352842992153035962978460980203694635088533352693033681176860900782247459433232530052936241068566787698082900611158698872279821345404346167770952804399758276214188625170968600722890539015772512636040043399416528688950033579092178468983363110333056916685621546291287873738810572312431212818667906078591304477474514332063206649798155833971523447152933770044318857550933722093350118812595753772712698363853475380969292978551846052287845120423107126183181591198081765230694661667303328720751821213520733286421830137245215372932113242669099352066203190101229121855289719337356348608663633267536292462588163264295673989059022954113926695030619158586432664221414322829034437621901943537202323073189517429595283144881762793152474302591594699142646004016723377263031599310731228615619832985737314792084706875932976009895911156159247620401652835178226088539070101338799565965829866577194837738351428228425362521364759503394656484892721205973884735782996211755394149646763420710883661671849566696644075968705203083946865357361544486400918490582024766396875887384595671870321545432003957246910342515278093363649838443766930842817414215132554140447772874214767317843077315225498921243727870710771826799686106246049594155776211091652863436437217862088134876955920995964750570143992264878612807840177928807062678088150974360022118914033701842549199941055866880421548558586459431472535823814163390023126162636651624778007790468710485557341890398759364292255679374134494303275448637222707984066588305185830579393882301001434065012986363600122735382707414553449518369164954140294917867934221880181085486350087176626823476949031869582527707985312162193537032561051055514961483312390345357174178245229239184507078830899997866484090138408317737593130409050460202557675205287380276606362481139281234001404023241168905515179919226662302950050924786180300663640005610789638914641339698159292567073266882193153537491943704453174522578291947377105077523221752256156578003383994641758859249743416596800611113779145497706873755195251129160875537414303565272467470019725424791742513918310886059290464959886046028027850510108125776111098218899450646368844946838984009276524984944149587711851526280111588762779925942396081265819709543696408187622152043588173312478175439820067716878385838439107345132914101871426900785199392525341457296973619903210890378170727326040814669443686865689346364133720050165374169958532455276251121906993542121956085852940199523638998977628712209310096834283390397327137284958173227769627595035330826012114573290648215345775740490075579307252857916122478669509766771652944843204878067058446360931697447315665873520913734327099697435755643062716655579261763440350986105652342230263799024109549003676427637872712447478092268323208895057164323420238436611887257591669783377563479575948537673029501944598454094325479729577257569810710006065248389728002314751887426097464569645768950403436886855766897720237375289627314692273209955090175505274909783832514302838534160227123375471456161262293443851827632791891029290833092386551499646471988521706918771270107301279686893027518317889099571826046044307935397475424133572411753290891508956632790331649002553855686184857104255690844860163175502613140992552626112882447179984384687601572983050282519196342288426364409325747855299625740099007453938357807175065585114054496943814049526539574542306798556037661434821233693829661558068740155660376363295769884371104424847032005045653085975727970664164457644151647710690210254069999570106246399659207325222564511009132746059206323275430085120577001942996685631013471302353278338562370473716768583457452190555413458356725498055932046782686387782463980013903862373399544705431602710012850986560054869501296237053894736324435270563207227338416951928691836247532876546101521349171197317698613519652202438285021842765692663904425804251102020749153706527706249963796679784644102749250051596028220954969512621591365816666187795332865927839024287776890409587867710084714779772865364600253040150094135569809542985698775857417015253917484250074586095585754341857123348865003759140412807183981085085762738604543206166888854875589325994319125672228005019754420744070147863772668602583796285296253509397276752142844025548524748004434461296871995138834496497133811347954607034336560300289485974021359616101111828513189052335844789013409617194987125187987405639335721378600384910053386999608131938581396268830507367401070460249949752796322706745156421864526905543136172465685231186122091385029782436694306369910990888075882670440911777536866008397577440773562542054175249182684906766179415670687736535039005110477504862429401416550210630589363925813936479322261116292390481645390710439214244894429648104199244363710519970577542356690120480591808775913605158975159747512939291725855366055931938099517014705278772093387744624483136636252779386545449886402762123194633570846100500680062919143960070305007468505316997405183678389912950723734684427823952667909881036268523216836002541169350283065720071709295147891298151923521049567932287806853205577861740020629537565595741488564164254124377928648960910119966488443312200423718997202071953259615857947784484656492139727524977025958101363036331784352163285909304082383765376201742315302722402423292081362535862236456723230340927801208637124085790391475855479712170671196650289976895494262483745715705483908599349464386337933414676265187079771646392475999171303949408639307025526383155673105976404191105506861468179142893821189292134457980903788723331087237512257829205360858946322843720935543995498402234183081665145418816114497580431398327055809185811049856868092305700909800259516554587844278998965406929266301100596504590488377444139934925397952757137921975449528641370016598375165093894161310328372120458162783733043665956899585341749534641323514228885242364684247926475927098322520161029905715418213097522976604994949722915259451598154946788660228063209211572683622494600192207497349848776971362163487152248641060554334623508065590604721581964502492155751044462086788160023475809351526678172554270185026915824594230235928655557584718706820303678287894783186308322433562676237136121980285595293864993303645746463269425556133671741532260573660100379854657584497916670541129592888033154589119488857956223537455945825411709160101650702586295023211276113842803640047859676590314398074999092737772401599883377057610328087505986634029575063374451668096505132827078652513819405835299859509657096059641981597663004298426064128779369886665000534352145257697261611986327437492949309062428664064529099889258477291268445024734259188216748881733755463105151261691808023667827672922208781398807577062883469981167509300996418668661802046911657732899456185304562161465131875899832078291310862512585807173809871070895029415815152111808497437857342051242150681483292672777801215599090234561218091200985185543718302294571192845217006059327467306927810200445363056964847103386724687146726716748315248841123141416200520827170558569216914366913169059326455488626234253687047375755096355123440575760912200945020975852800131178453821786705372901679608911772138547285333579419981748860065411935965319316166734675218073865606544773512583995580776149901244311454526398089260409093924480232088646352365794609433518434019283911805415585954483862302636746386291185396894760313473664509951428241289591488661579116414331994105845358799784535695606936177814164124008849034722611662586102608158197135098710774794824864345161211454275951125419717634923271356520784087441470916938372417326410188616382378846943495881107253767098429648392946453111064602523095761568503344354194492085367515264371219825485860779254877242460997177540066582590365179962426955421153442790583275645917227223344250674386860832891987551322907104871962230980632179937866513734881257906108069488177700761350568728670538465949413959804845330033665771383058336565035548192757591976662004918921820585107831641882919566965120631492600501507155289551407779217544349172154377908403827105159505713618695074676842905773258911850580738519586950980949272098677134064039020727161974126131523668965321674120369931154223166536758397118601065247439086204415628276546706576570768970654265181808908062458996585284462976621730447657755839675561589618177052687717485256063325154826106228060805841731140455819680778844634142010791982313350003017428956425346870023060891202112051542798942173994133119684781719102862299953813427821402262907441860058196815072936245774357880864270461676069365720131567673737048324396006924465395921055263539640773626799439484730680263739687837987174823837712120381384796854158408464206353113959980733814360098074025606404878522453543981811728400117198512342175825438854839079327955605617059915703695749953860479285611575210176927751322581669700133086076170409388488286201932721854171410302553661410194713382248318937904217861550305856222669314458026352507663569693566832762073762774131281294930958684536603741649663855372757062660015372137247214757717377739975039330615045643571899136422557793376882912334411711524927045323818414070976233321596826980610093715806269260064809375601295124963977392364619260005882444533979404292010329592349442119088401717194512534352816502840452911422440061840517556576107838905934625822611615857639127141393625937935363916637188337463484696417496384113527004266575860188336780264423210354909464770407738355074175353417020896104571439068523244136166892745700966472125200754127046443339485070570572417466913943392912995819739409053858348358293255042401405942146068880356984135506773879740117848443263720923101534006577282818662817467866675943933958020313133523568846837548480645603562938343792537897375221856271594198021617051251575400275556570912056145852886678849000316282472102640973882199229981557859768514618463343090750724761551831917806797035555301364876401670543992262232680781167757450731224811229986406102439927820408554987965238225487702811717587595852845994228367438799990933436264271277203769883310253411823887888893938799461697350191933860459193842043204179067887763759948338675980129596387685886317116740953802959269396438121410734634198540315344014090411715741611524824909963331252141517702827676304941850115196364192482885824309161405986215883754840174237366140825628779400757883472261456428952936432773952868987737740335186142126662428474227812796112779249447378256824837521685215214226737224646468588544410488292139234045719002704025791571475922014925223401589331679741891020279699063421917850759159431793293196286598860193638675556824646764185183746274997814293010786420507785626279834262573139001239351045901076056050403203017409460533961991644357905191168099633869550476410528457941885504160979973423580750455379558498541725868524117269530144638756891659049200287407020439628853231747232851640968342629137021799699824817587307557871163851809636498267697963121480997629589072067228737772168426454235352416429242119544550249217787562362396372191200814571869657642917141513578791266357934990645176370048094961941649949443585279657384735932101523523986851112201581036879775664784532787518669628103798464653698838617545939881153057454833274473940253271140529883771813952891769056945339355280692927771452133778310516973732928045438725142511029489133536331452295361290862664086783227336956842367498675787480238501935792343708197106264024761500198556714051870229370368064584923406538619605795304161307389405242529401455381786987973635658429424089251200565479807588449380823111783886642983660635517697632498694720260015242968559470858516486951252828611617195828324133461130635955811320616752241534906273394814536480759410851814075955512683826577613629055696110888200028780550724287916298980075240546755215577358249779882965625699051193356052173552616416298310142387459496721463918078302848252570233104078774986055779934989728191161835488811520164414149995904124748739500343301067092696992152665826547153393189377388975146971402504684057055904622947163054923481815836694515195575972624847982959600458195216667036025276436214325704394617446638869312670072493877715265021505277935201081681466600025784802501236278716559240340905700827064946701106861072625324213095047956610391218268492461968639554773724761937733910171874862916339537316183641048389546402043664491632638635510196086432017711351204766378699415724275145908975213488047732110785441454867984022608100835236146192438193654568948424671565985824728802061692348203455850196603690485952942545969028619090788146386635121101343521404090784708994229673761364077138459192772484216938514703530165260405845631773612613669519486440683531117222513000123469537334550783155487947131993739433341750871220077213605987671078392861487785196856756000036048991630927938254787344634000681094106451535730152324521822807889257293668774467125526389769969436566986434121857195739946790823973701344170116559486709692609405162741906949523184077565991502970923958193059511664621329763313761641459947714723760527803015601710512594960832698689955266227733656296200197416253167468069408623514887840076722408978204309295180260765706794474592329166219029213531377107977829776625441024260824953933443727893527388505017472430254890930931464167135421842177257401351399778368271212252386947682953069892139242810254903182792410050792301595542208699814174234893190482567766074742822462535400094254957310684302174681403625315005002296070272623996093624492873569192747501677071650350771171143870559980694401033096067996150378074314966683378744408710525308951453945217266199417904540910038995157256640598724931751701572404925562591262378932447010630711779176607076878403373095341702768132866262297932639665713179846199418685328509465449558678118693320248341204811380901068326961579796619486659413659829175856262662859965098883655909668139253802126392874650661898153067310107575286732050724176393314681236438615347271686598580435322031375898125711199425864003713954318600620195021479571306723737335542817515881669306658821341031946031837348713034203290669010501158290526795945446343390212692343870129742026406282223769357396760837380425246745875430981523766010002879809708036114738230582533686722392972100642166348459898947332380116442331655235277785207581295931675558295368307342710813991070005547012408243398866465243806700552513475116630624194769736487068154511057844935663711250917504787317423054169127727010333870811130033761845248551406002504992399366759767842151749001893227556471061515849080084831027253327663782251490481789760183270712688407300395379297657465254333447268354086427030785603982517925350737768613550274256729121854464861474972479118038716039391937914759994164753325053998280259124214652453213516263155209586185342839366039187073043294277629145204389538245669953921372833613616445870807279333904022478431590476776161794915767943124476095860390670029769850349029122104436680248502016320017902718312069953316025502186030392503268042281237669827863631195183830251772291201573919658839959357744777050413165031303278849971334735484857480067000347584991976230411931558946819999583060551535854773141994519791706052301250109975781195932944718156594465097656887565502597860646084537642672970405893164532534608078395923546979395986587827933996905952721163851968119895103747659103621212711752429782471363331331753556035420379857763577000365102450360678375542253048809921107826066432412776611142390063564113132490108935173659886125384092980380517967447069685722383620490976259582249462664951734385297339162247697627633782962854251090021064691054485783402316723672786677556509672903697684114612167676087341957299786848446231219457914406404856319863083430841946635456621096976039648448621517489426772170914706419339094092410879247764084567917461970108206420821477392507974888419397518195353812638879597622230774115705834252288260773638426603718735016459630934593753948491506936274722642965525587753255830197754203936195001979780494212106560413683311018598833106825771469431665764291204654094731318431817529416188022103562769529314213817156692095168501332321822178458000315695373047517776053974038929558667823331569057490387508643568576738866109548637974853853225610727660547524430792627001844320769456143515452995967628893842612951776970772175247677013435013988192145017831126913859707406649848862535630725396229738980792952425724173649641299600891877310991045657527051069531113582696025692345668349038856742023718322757065906070077786669426829803228610948456313248553675091838441718181807910951060215560365443814979368099888873760919955859216430377358545597945812787621171405390566963973266290976210747735288039437722033201672920624575364240537139513960121469042415437366985641210431401132519102823735694273099767824483392395255777980621144619146264624121416440165727717123046027476842640342602183407066362127965522033454259875153601082823434931212626914040164645060116542692728116702110420091141924786072173706710630668320421728365111893258153096062161027720176795401500034566725840609272252483391808281058312780708413143818718580350171445411600397720805270531074104284702608508553262989241703184445670104221689069771348449028585722064149491793314801930599712303478864954929420107344165171898541851522801474514466889712449896014685679198617254399923396087173852403747171142439565865366493092287069305284829784258374766066436260148598213054821903321623757449880580684988347100867959814587960101403641667224520354915612110765822618071356161447021010194548558302798344971071898912457924612195647030656816992310957186643920708605473467587809199389547070765242048131430588742416875454701733596469121479833662931369081951452026528528662134456275396580106100711424988376171483075731502717608297135152867759007449668542637717714345344368701750187019696482667764450353447137339634862703259121507103393042995601395423387436555404484588681104665220456520959770293474829130410796530161928306445715685458719018926159655489787369940262435797240049317416760304862446918326020622888078509392180789507752912242310841927586106722098508050314004107427479339784394933628515161899416550037429347353482178405677521411353807998656516188197805288270804936043129142387569325877947381852461275287728171397651126780156339366236415827001068426269679340898153526180690008911708462851828064481982824151136240754124047608150289921026691515240510236374931980371205648454973996004836301832368634317804741347570446040258453834185319744225294342015541055650670143345624626478623666968634061719370507222575267714115091626397124180629566092750384503899971299558929166434767798036310092721500847095269221682756729758613598142385214003907950352566370405731597510897708759401223900586015038650395534229684978604326649317980579784306355301643817345219393712480267470485355312802510933783906728780102997493647366845914216117899868590488697133266668614191236490589654802811844264246509565766027890241562973749695250944789087134433393764380004727390058580583397995207792690730221357773349301662115251690143256339080910442444969088793331528490308121609825499971902204352234780507405465370971761591083347238642989999004952913631787226463123439878157726767371128679535324255678173805018449841558117888796012600465539556376656261524744847645739534642021408667589282223321142759766037619628555105000720292359246587535173518036997080148846927063596649450883402529973738181087004081638877603463654532861656742039793929976555453340458502875583252738177164988640662184539265627877963872960736300432586811045984565064640389230169349510269802714416796957203588312440657711326537387717923794924668775028662302998432532954085829992658316847384617414020908336441042616573289532651240528770867095413038615427947317826205129773459833679475780432577308357561886279196356277644884941213501559655904461657363967246007060120692478422444598147629780751774690548626845727034939033378613941835076334221222434929872804460590563077402480171790461002405810474737525501830594891621028184511933477424964226662051995509495124635191924319014872602212654368038459344533711338105112287276857888915800185598831830020348705361346285354605118972559962597978398696975091360585859184199452833098812145443805166071636295465767243871510162392794143986187208931448554197475244138494963826180760302362908725965401394725306177087362623711835388987083222168018560993940153291856835350694800264015605147483537914701262234125343161554904079469520241133397771296657024423591584339360448409072697108376652511492527997733508380985814059087009414842346953382830837351879771485378284555974622686773219264428973670332578917669443362492859892084981995093675566959461324728957491827807219701817603976400907824869553279931070316391428176890081555350354317338293787586671677555657079588286100598563649349913154905479974572770663869214871482174074019081324516549810820057532120879801767487905785796920754805557337201026343229739970035261925286206020616848713504608547423908091926374283250986181696262724120152360681180759343599381115894019657368025519842542332903371992107009191818919183337214666526513272229930865811391732324900197626221379463771925532146261388547030254361672659549862767258427009852922080931940271777879441812771959349278857659438801313749696424268691181819031193200198389561883178963436839786795080338630587668953010851827900864749147221992933046606918253054575956177966157698555368549574874312048194093542972137776643350924345495142817513205583426352158489471394893700393661685438457787533745399900782229189056590746409432053397039027374935948435669306974819378838172639529374522176558967323502262501049513388652001544276380244095736598746819362652929990679913798222602510405412107096828304348363248702544200895808130512528693916410837622102270714264636224567710747736433336637797206461127032389215301520443550478387788013088645346884405821934620655554272636623712270178549002583055370363277087514746154616388240161397358712604309146354584091104476649302820054664721456622922057760564149843351954449331816359624660742543410312114988907709277081306033088820175681033371149334833866236764263920429208027558341603892923439461882810647318867060696534100193976517057783458333735172449107545156143953821673160463181379362864561141582483103981670734672361014250592404121949409943724536802967707634503404506992181033539893882246061257187030922991719405346413571967826628613667160014055498217927783845899440760779316000385226094235974052828439900148697722565124221690530998940767009848143658552169076567483814799997115918091984901976114679190878051555161783699907395492999074339351030839117286818038705624245601889834157344666075690411581420937536864884146045137205068833787167028902552190703448553231804537060820768240504362155963398539852214312269662879232085768240859443177882437136784486235798351805320281549998561417307145044241820487306343535430680005490401571437111082190811048275586885093166705974244823022587648095867942271950472044426191736902328661747494856437516480091673534209455229611163898371559211191897685579699771433346421883673047770713856410322267858477381317618356497792085853353728599273225381660954644068279628180738243400813785919665419226693305417722333451090399332725004792206663111569028601144443876411225997325508185783925960302297773497212448252823306206649665805702611244551163797900271504756624337021258278037409339014188217896792478493716858813002024394224741250095487855132490543808639465822254208408188097510611753016550881762106477707641290644986950011923856177077352906435872535515468370680305924434183175064075005108155895815455136202182677663956616049827945760403029498252692312898423993898203670865919873071385157723978427807229935808315297913251253008324556911585792411923518023900982960899827880700219708778042813516296069629681906893997283424026300864265194292435006405189151250900335125933740450505453463552342463065008430483824294353895453399741913300001340430833344451361620895158514452027331357675387840590843471721787367435117094030738608399570530954126477733593851610949039601506442056297652462532038081331345091996787434101248154822257682665831780707560139797811849068067752343772274226945664502789160319979959418229553450831788783438106308689282247870039903125535743673636426330206780718937515145517230631415776514604530248015380048033501222829770434774110947426123659860082260831642373455621885630450473718265514278876023432412406908775291760239473674561858668527895658290502666979116752026963552116632366868195148788421545375005879149200905405646104633021841687950804710572433709401228762524261948939197879828859755944173629382321869490089134076555546557192874462278451594458937377574666280871277844456811117099052726154539198994930302704379867103659254624030603786403447240088126084649147000221928688055455193108588952005711770755454678568809911500305569374006603646601025075650930681009719939639496170077396547455213443033760111490217509128072149095292326983927248533775396441601505075431003724707594880604502399789532649714262374107049152315466811608234228865383062455687173718041230864688192777284271136093275063335841558543557708377090262982888933485144253499759259737748538381075863087409143277795586170465090362500382214119626139610461714259821440383800714250626428382742895777274206728222213332091929830541428922884135658571024049196002019780765016678878432376839100149071464980853910264591914629823870900874041285261542955601531294258074039970283222881250728159691167267696067833835855168010927303264301415127237941234829762393676921664656913902519839269510967773585987669375362752129337143939330287658804997982890666387329243094072854781891130930042162694034235867825936797676044532142283520156592367891244044024909365987505215554547130265629404852421258075520493288517658689360433908855439818178027553380203769640034505944339365783647742544670586461284674037048055682073320317715584880102166550320001368448975045727717576103459223220499935408634590756382940782647246855066946322187439914887057816532334935770847118866313367272791103667022048275349832241533811958924819705619078204160011125841149202003570700973761375369666908667617060796957402919879843025191553721508032955648082398620802515745534671461750307901572369920486071919644716718794283197992234736322087315732520761635948318576033819471900478180222986143844696318403700468443510867284267359967058809235766835945822805712226512614719787946411165709280907271985122225517759932957542821429185254813213112204970868431044726099546391381740776488646016361690545603984595637172306044832452270603229419139743738733767333759048840187044319721714335322285582057970408145198153560233582634728549177379685404583321396114364033237839022446242380471111049865802906378214973209718360660183627328799558346558995074615192159010994268078683447604022080280309039246852258723636803901549213823263916970864049822670649899634137691728002987069147337663567538330384017706251839605247109977075838649487983499473509332004128141636495135482228893889282202438263775436705864352541521320649104624208717476750156769571668228644003916546059681998784341982182579806978914440540908863443232576788967160386520621304497734020316578044680467586915073541595390209477572277893781081052251996460861929286324906161744547034960423060525319105561733745926430463328733580770946795326585351076272178030371757129420345261749662681768809214088458440295994463060861844588564786570992845888940373939604504102629235842164756486990204142188048835903759696307201943571106198236063788017110108883549456473629530561079183659877231057029975965280675229687662953178376586927518994740469090752221250127884080899479753326468879049681548422876124212933449963900690961377652037964945683838587951798689406518129154701724518652662919050022738694784674734694451187814716962862468578928732939805384896548178868905806771443727041106541846629921856124059328000117463595431210347770879513760944991714374356649831596237006366031427658588221629726891467410118014592015331580913402303205883587182395484178469829881103430074393991244748890511835226793172865629509044101252216521207622660888605241998515969960594809118185558439035387662933640858077478623260665748038791881501718176913331502150004917937553098893642282422598015038159622556131750757494378911829990445496598828044350168650394751944098463342339517338008414454142464604034196007396779944757990577397061954706375371661284550707363800252411247433703185418074618448416797301115136895584250799584097518379515365781743721363901627432464055958349093208104268669183710926133274676501669402159469934859765636924390939685060718303511058867520037115743822727000115828806412349311710317432016287602289645017287907614105248223666424242634094758419503732779109888785385139843747639267944664500082480427590557550897384142544796826496470247918072107267244559352260335858522405429936139946484012019128832775858205502928340017199278144797919774161932493876225306535375619492118721928455794000185842208686429501072701046991532032017835232846739207744962733198748446569795756678625348411299796814094725333129638663930915515270672407548664565504499285716574447387659971181867254000295568908338167068315782360874423988469753021437815217977695983060874181420582731388648107053627451823297158737949088340795322317739980969594568343316562307905521459910997012029815902385351300619651618153239506273739290125143871892279597551576511402699061584288048773314456094481288630800119814186121995197234862408564422510511669340927150182216791117220869995806270388552329854557297295491729746318944456481692218851410162355352082756466548382766444136164398786172604983976047953762658406306561483764360060288242752020708838238339391473858025119563406372858208755306504807600102925397079312842756027968693464924283089021490433350131666791017834813633507568363273061679116592603528435968873010457703336380118073410145955627468705471169763561579482519312860798734156355523345198798119612181006564038859839815477600724225921434090070371530464075717093589805827592794973043388801567539096861660395546808091814322386426118868589774031978682452556259485088369892358757234985912120645448765634383952177988914762604049952449986162293019798382875742900403161966984177378356800019514385614881468368432497297528313009068852487684700000498146461414347385840255122110104616760727837765157222100593955963577113696955293023923890721139781817583379864886492017123902796759188630237513404818849603819651743451327290461532812290946335244129175295136881806124968467732192574168572255109840859732344707561554784411710547913821221044919450831925195884863667341803560542938522668092786731581383090768339822941059848042845004982938218326824000820391644602199250519526575361342919532520091528544095332956838559740819969639603776645379561613356121321701840477328174860317078531108900908720454640325180388371816578528904822276556615745571850136783481820025712413829621356756508605740564380756102128175393906015740758803636095643811441408832002792432060777595620322674407042041145545760932479116810793283054600099455618657008383378679617155012857667932146844593586558551025681132350293298456302796091716190388238876706460787605928564340644861246320924029224255801997549121774070473446142134529281092895889981618989273703136489190850202253082861874859042421088505115153939539154826221728579681023676998228935813446850464917385718976791165540671966571275982275741043613283694597679266676934330734569460880831240707209686315170309062528694800170258230025816444445118738225590999894062993927884585216909265329622598152135840281839454799758376535625245582607512320843408482574444038846176390166511803980469654690644034167519239948130527029620498787140738834562548492814444905850156634477491146373980408025448285335218666196843832981895313590835368153255700039520294790415596381442470648291233019536353950050299816770964451322246830957969377517846658469970300363746806538989689965756208939221105456232955186088080628019196874727456711057164728022691255981100516534153292176239606831640734277760442715806786147240107415109259935167888378739276606121689001090261397089695497272593252130884549828903775060022535039251682776584104523036420831343200159425746073187279598246261357854573847953210994472719709735725816534017112591751550311806033234129351135585455504834054923472395008236118686731062777004356473478241590510198146632078346163641657690339385746672804137490935898044765179282071660147421514175575429325036639568783009625107616218955663064273579188119073849443022178974177422364189748451811517929164490099443852630275404374984975720618343971816473326351546221885397172353249079172324377453740454314709729174065712129000167022673555713010885380782359700231155092980409417133190197040118639046447267731182973882461525492456090325781985028322366494628512776479279313816870249119965128530157046551447552260572241547333945759228707407752902314514102772088889273941235857966706226948048525748950333416596550084401325643807839737517993894934194133755443014862911467836126894074632090620251572530845352825811088688257644508673251136919581186717455739629815651687262775909749529861694532071329910949234085065801919176670239006816744649066094975102164368857870629164964506188560181437715661193663277182394315119439340017275001563660604481119583872979207047589626059367620669154948416936522631516767055032635120577225056211425814907546408270387296902828756452847496890620739197174288895644298209600368585646287296290449557350033491671411864872555866067515869298069280941536071616749033514292241566428664048678446864399483166798685911516979566067267608551571533142822342501514942531133363600512646431793202188361674867762533530977989250591311628518285763528011790056646678234986291226103549862189061966882172927322195836019672797511738615573197666559977218385014514521342936824007217314764276938322961029916073629494688830310971406007723794889969641778622868190952379903098809430123305362149257629257130508316584994056274871994949418491971098649979762289564957831619932878879435208895947255875241213040999505184493056023029120882793827042776895068070393515339984000287979274226407732542165738830979395398999899910298787804828267348655831962328729329569094353048214754097077850237448617898081613285970435335785134705844513734985693315451731553894224230948483966012436893303305430452634948153594214168345932060213440731894848030835842594459319019996656419650738650989564108365902674166164568924785331540247455859686353111576531238559871477462395559227519633631546566943334311773950991192208402872376583637785464196110722146601774695158834118148200105772222115434219105426977826045662415669182431714264970046653791643843477462582855380582595399066151297547302736337871401764250761349074106805129027566649377136183072130492582125036362396593967316995562928879026783135753972653997908557839774447401440699394824197623391719744384925455449725711093814519948914622586768308566691679465583209562498714662577206574838837453116560431698126417390966078378763950616004443172370694460789541022697294741735654029335423286771234118485306984582852494050808661017064853361716434156973336344940105136317216039787670164756075315850480046620935800357447487630766659236179268943110665809008176316699683324266500780117496281913767383931348446765131176175582531035991869970410069684815417477318138787101087437184029588081667734046789142895313898813374324455303085014188999072230659526494594184423163153414794237451052632824473897497596214897818154531785361959419984748829283564980565232337664771632544091376615823634286954448778848297337501852342287295224793012666004643689535219800684643439068929878157812405922268463073050487444733366122190025042495556319352006769064256574238963434652642914065879586460816961394930556587266934727716442382299874165122694289776140430251005244142878710314683691868460168574138945463617399124007614597976288938202798578999718396673848088368544985751398196243258490719268444707643230727705208305195276213109749678662967447584667297931788687996470298498476708409290697491584020986074671549021433629375117234361840618711775988618625810347320485087141054027201669916271388478171524002473090828735593791673108417990104869444000934703935215990762354071142608042882893806093986250032701277936333299658255023691006286706650558172361244881543163211322017299214172952126843485037556733248171131043412800853688719565341785505182136643468677946073497872115914207638125015707002928875088021200678250882545007798622642614278554603890803421031556264133944642650203718879715651846666013992036856678992399819306922055931015269515877984903241291806254346062127302413594135912570408156540940381562585173770963746038470866955819884708826102049175128448843439682079687273511487267500486661112848718343430170388844590718696269891875446195831072914275729844962331230705251690771870551155973006012326434964956247219144967092368372517251347772962917945946222345150713019744911254790132970844716404450794083980448708543078625078237548966844694807117104158775584353577271353302315011487816226581220867680374606003309340025009395458526657165153195604770306384701700269116008436996370448921841866984958052534131557727490666626605939471394406550368786675252827030756502456273286550682930811353526354622225264401095747994148373198759603340098885707639986515028584176958980752932285045660185151942541624921869526620928775874363856596712941933934492725780295038602098748822578911410373654523785786944878095920486238607843924245975303384924152360888995294122368385953284799153951028199384717046415061828577051645281712252931878402177281043186717616350377694688866161869974614848470211305452028049334286983143012379601056570052790653060670073572125951778682034512867083966123367491818543645227813256660954506742658295731322066327494240417226410181814620682012456621797606054903997958811644378034375434529559033071875733887594942668829808632381165991985872763271770802007373682212523317312840109211051084836077958705143816222752237630851262259147644656378178340849730782809152578189593329261299940152556272390742529449340351360627934200477738380826555420612866243604431142428107488837780925847107480097370573940562304467698230597032024606851006817391033167337397720448959770244820301604265375461031567499434768338345846848275372203683372155107770122808542733660739176797894934633041946404185249881267525457645171247546729038249073934159759508463814047898043317312833658053786777442359634277862502255006978130293641937174214183658129418477021136446752257929023250199349538556838179310508993003618055176665721171416436896354141658509521510148443642471842370713281882136930374701236438621123867070613969687489605896297628112221495845802131687433463714297339824026065706260690334125393880717485848669375088833265334599078353063170221279210423100586124660224163163172801770544846740905083555883624378998377254736359986310700999269621503437471415010583118073223107169627794818524792283836195998332052332567923837688556997653409913672556648453644586822167383503780739912247621475182177181041141968504713546228373876938303923266263176155787178726194667596150269791975604690659008698106867045679530300616687862502897113862807977316037999879692542514422982442690067574516222007626370399879793656962264833193906191075877514356568083770863569061452982723581647743355383377099609035612563612897343997091333085726675659989405100314221946610931702093273277565414399770240650666126059948157870275955316996345785084103992782166099002176245356993215091739633606855089664999681563201782360026121270021435280618739601361898170466104613156991919191501614381003821659251777078899578540425111233140669668987304556675267117379512793170861559168387504869673809782501010129378869992107002451258040840990857021922597792338752856937752453757651945505341497671526948287216091823179317064243748112887587654465941222347540970617318055341556064708298559046409116639801768685765000299199777791867862460089559505066069107844335722145630276881950442267509862114851088244764455025965350974097182172736437977608509352347065859577185159637963073965424658218669355722576653902890875543263676451304827493304564514808957337894249493785654552280336082673679941516588326706605790767845540259224692478922447636624664376057284449536514019291344798212559568255107631270156151906774520853911524906644437897432985727072581240321373119652960914645988585147797343885197662640674344905033830441846004637142393994775884051297579101991673642105561170648921500589599018976573626016344018332658458958409509336155253707591224775687007882641923994489904051670715897866734243071140099964963034888946623946244178621048374876855496400710835458206300261071606857904993074131240382203532031486813776834919731866659972057715875530209116125006731974167408709783225076148482045417423994928543573086418016180098125931369019808234238218009201485408029816928971875622731436359025505858792785849991363616852818538368521196677593251444776463246842060355514074296063783344558313254129732531966794478974702379197380729483183149943996296612717538165462146288060125395027317604965317802269579699369450479986849226885849244963956834003109667853131532762291749826529849570194407849277845519644115836467812085422368392051163112505038549640692826028874085531765276852141519509945863141461457570870101946208163154780218794396298915534895797638218032021313778945969523018272574842902212163439910486065774402683205306197104576133990954718917443755957837549687910930184035624559458929144742137327043191244035214642941229246349961338976544012326560960301975127536159235061486664249897190835439391034421663511614335735225081903781725969968892722508767959001096875271573728721989684379902614998901816528703124936507867555975140839974835870260681593077007769806226439353228785726858624167570150232100083324435919233973458589622845848277955115104990492567421603956473592318549711370225623375331769929143877089082911535263434186498874451115963581433105137657130460917838965061734047448160431399654996184901571422310888286935272298500885450327052974249114290726921243081623605665921112357535815647447790663841419432356300625322924258078452293517115332491187959603701349406257068049175385620340995421574797110140687199043706848623965190310017308611790133120388078954220467703317953279200120697255396077553999787406711068232195608575255028733619915342565639307201509137010913435562471188084934400001124081448957055091353569596408654457331037917928777284849301684710352682246813570872501312976946035807606757607752579347926449530144439560960975816552960945755465162300065633340841732950496107445130934552498370626686966851631494726044359359728770396140334555939825760052546105404936859685370872724018952609341049020675589267639831964982728893302122105385038237475435390941351414681106404946471821223575394870863586001913979219285445827396877489117235138344483109284375499299060789638013404371556366041397869671713263159188912842148683910336827037167809582565700127310822126445456697008561067031238192210307341851655054722424663598807838601825627447525180201033649722063698658973099357786576775352971577354590226707503325242239297356835314548683423577303708469225306140511130544824115313674837779641154973002651088466613036676389626852422040942477808212986603165769142713395322372627744301043750607243286349729985788514398695620910408467801757021135660414894741944703223036243911190726600791177745316120155145876610866896031069833617228843417569662782520695866797881400683128940554987537861520110699819916213762092789634873181869494916621396407571197892753788829854003257012758804250850606623371604000829691266091767285393243026865633061226368433918485027556067815563870407071399021443544904342730457250460746148803796681991557118239593867936299055458343184066545242721501715531932481844926989087050016432131182381184182060926283178917332609178610033758397973698181610784170719954064972880233713849141203671961530393321427202402810703667491841899518231313884395240261764174552464993326936869922595589779087084836743056474854539470356843356909627861168654540142453138027527418049647274025683001533379684172769256859012475108167914938017430934159144131976829567166422094086249463361234172345813701759440243044945907358998909195312817800130015644485936859182948642751339295199940508117731623949418830525573503393366109956520846749800586571777850896702411925508560692455614464709805471638114721032763185931456958565600747619211229114791557406071224495440097997622606779426777611225763869384213632512576055448412043215620461424661963284759251676684535670347867700563180660959843206409756690718662168206101834683613029785620560845414941722524821936230114122100032888143651993691975450360441721915428940065763903375489180856072116094582656541731173229275194986259098171989640864830547695011883151304244979432374421179245247796287044797899595709782224170088905123445300999697904914910255287074299260748801296606023806146762474701424719369626917214141224209966503927668673990475226821708473055167777162435804722533952431679905366454830349189410478743996578711809623900827673485622033798342176354309188645616703971259515275466500593820334682765799909336741553896249547554619003937381418858634540203461781288690186580266434154246400279013309502324579839623686731812902360542567053287879799117707388150720111619854001112747526538926271384943013493423727865825610072034231523971120445689162833109897946477341261732613266863384488755443030513959733889717017058797404895818209363734963439776346873221059908422764214582370070415060411969131098728416844255167898614505610672274426673621968354917182262617746540631101674409844143220230352335045581470240613516699824347393216377562394791415566022373824225088376548560484113253321579570433532412072332942249595023302956113549043965574083634668635228594315112090432048994877569181107069159288235049063337492159218041813869705642677528720289514966591057640890891765054685535176265346101497387337681974253067611848842567554632989950225215353043349102336669909848199240272019666133759974671466726177717990204524358827074386325704581914417355473587185256792940885685744597277181772618021676653033024430325288134783587498269189910097667125624747169282230028695521043668883540162500433966178538768178732333822702244656842584540631865991569048372681826721698064378597550207704168388263784566423796572624992699764521911651356828470414980008577286217664363527665028668215429489493156431182557762265077531660111488066232585358358204418540773015602716128817355324243794191461428200750897984146478793962626934277420101752338154029777625628686167365468206121004684596520018506260478769902472975519763212348117627253638873707386310789024773395781399716676245393682814886096602455722679423503402745915314147864209755029403280872220666472698981120381259564101597558743291824551934702716786530351804941530660076638018975207389377365894464513010526258673572424919096408742854921858966395195921512214641686682295247201223754343023679606611007601319981654084754418984125029231320222869336786739808516040018361000215161917756041332107439658685996329181116798819521523146533799473071831330328223464834106705119422019124461201332192582218776327342806949464251380137547221551347021095608227057857070135856294396247401217903932707962735411472577695306972416944749976263060544390857456574895100305279333662295814763303431245636292579304132267032325112625062820587390482466557621208920831973060030180171097475658324945202706539128410691569721105537226678864196194031667601105730983732039583184531431580360778110518070534264410232629736011902046154509549208045433659187088301491717510944618348809608705191176308684528727801083667846506615902314102226485749353343971469317856258740574952410379786806758379933355576825765470018137341217652962047945567088013489736857105225981292912120227986772139750465551376035798472057266090420865405755936688166801859437559547218690548181155020861293117912087244494645141924223786051187119105817433994776828714578302447125921626498672164430853105041342295565479840786753369922421851807470354120209060690526174825891756357250911899894918105325884753938448578705582685774695672826938662259935345116970357306193752224796848268154740473556034441249524763208300338526066808036824966739258422359869453690693044143483630980123357099743752318043752574586071227770037377818347834130603198930514494977270924537160417706201601033376353132445223395493582456394026807395744440002398718728060784296429252140453986626380816337056711879501081669688482552420612292675381339962263745765567461418952899330892258479696742504817618336625674036478855709548716175188023237636240306508061634328337392326269296464756359632312118239666928916881175079512568342707486978542163241022042665429995905252588089066592969569093655151330332084870500657932047382096973882110578969085074509978060362201526299289660427892472584450835497037574831373916882712366648585956278515233931210545930321663802310187433248115161533369406073903660026428655849884050544585422935331075014631987304779943484205596214284225871500054259835192568959557745879612989656603604974749355158613666093815723368930231826167895377774472167325732217777860346389561397266989118922031418351140178008567031374639527402979149716757254714270244374159651294185310503459201673512832173252909238314095066601111576270405354803319652491713189676060222829846426193101549176483546519557187634902465193631489636979040068062826650339542777956575899198512683969348437285322034073237797389331010902577050551889466078219241069087421287296167145040995948602362000036740932520352264395497964075347363333624393507835219442167870952296813146529242177113275607627997129292676934832503892876476534302564891650724730493960360955627530148170286461192823324268524302541348276628607732790126205294061890599118447914360949323793382538747513266972294278447156975834235734114830032361187938478053515753401713038535406318512658091263500014145734911703824420332119885926960663136134599005903376074321214839784822999614744366531398696068887207299804576393994882137483746211051620783768067435061751401957521426200292013119798651920796428613308687818019385545456614398510847618076110398559181405260252540903585580893745511916607558068904105755414252909121130444593017541512076076832346026612573049031163687768562705387942929598812519359647925759230007360572095439912816058660827475946381149688359170431410971318840134998112805717746966808197751515216657245403410261764431921677274317110552555252227404599431517726101150227945676612761251239915193860041274142768770972769815452261249534460273267150562312705341546918995657077103306346481701312612624276663629226507609429731597248622988797230261995178191658638129151577256522573220657733154242706873644976896278132743833438993266984701147657166819098404193742051761546930121462482699235860379707206345757193560173564718833812092472008629943154383225809763566520562960990314284651709546951818677238889585928594063583162293897946898300269073412308855419678682628729710332071439267268473302128752111550933667029784445083508843933346735263540390535413239765284042576892868421319551776953851918886237314558280262454908123358524202838037198710011413566064249769469997559601967593799557521357418458943071029864219339435065313135238718078111013209893499916676780898787711559389360574495988603151164163700250373724858801434074068837796846997007306198442734813491847507177428897141203704064529836217099173257485640729353886146444876958023709391977969999224687713980071128934090065534547289798627209018184736413446032845605922716337351814089629784214614415340966155994936802480219093314242321625874342414776150875582252102316073759158846457479638669991970571600441223847113323995635988843790129032650535428657328547996630200514347872561580992696957664060001009286265248262431957358107727009216652298529315201569458909475548415818677946181390002129210121826966136806886891259320792553945666435145381387862205770254196910946483923865639275889097881975104645042440942453537940932319593392137592773241027097153775606273439388788061598639110415684954883605274727156622694400432177316428060529255751912698843648252030806604926646087437263736853049246028485970677225903489251952619235616290097688232336098140395714025909484446353764065608751632741219020677216986364314216012696131970405240211376419087614834013893710565560462911732657220195023386916444482196650805701430361313863180450578328050157996824195336871058034932531107425556941924175087321752382084052968528856269340898542591192986997541137985190251339228065758237244595387793250636523217068622649060079817777102001193661046256718891540611868377405312725002580068897871902077582525320567327264142603015369758690537673485311977681887333852570650637033151311273291911987318359498700540191668302026011167670738208636512829115225141477387881237862749753824095142521832214217804609101209576536210296556915384590570643378963282222836693656156907830824035778532091918195826268613492912527783111484999822357739725634022905080986127363161638065463115969793023591709608651271284240011712575811482078699088784547030923327564793939337736839123330350583975928390912126927554435394504504930449312116042271137796525783683893611448185388268914141053685240633009954328193143417428976723457058084220446778100486771821409693564592935535494468857237008848162168152369196061545068466265096116112798723237766920159066586269751336919294605853964956394668872803900711623312913322165015669270453129987072768364370388019185525684871889159136239266592362526764915114225156168535350472850691075845441080161641412579536430461106614130047799275083453716453887621021664988985438696778004998499418086288325176295274306448759527766863186379934894494994834241994787583877157543889526198504176166262828955170367301242771567275475900415411597130326150017351572013211534724477974229527895643937179902293721695973989416581764899410653307264020369611904693410862876732834100926832973682734899416295733264843448124167870502288672360194268897646450075917421653439567461053671949156175569882279564107763887971968812344031713618325567822633429049426206094082829080114491556485401789933873838717165101604967507441716715380002464296179039870150692981048204486437056246853314012093815695794055378090534671654193265158670588600388782384104653123482621408053476746526033448863607637423018599651051039906469324496317566443845939627570201133270845792499526626898941554946655063160731639917682641660311209235221174305254340266670147770487239886980777272213980708913935480482102042963864625470398526566223592132168098597331616523998341256417265665826261385185035708677751541523469403198000225136809481615475680375915601299061268340108749938909797534390718307784152055675097508969908237344558038584762082327357962960856105143961677184574013038859470694170145403189498452387958861777857249205761460253632938422056158964938192539497319069224917051067004972430331424679815092516923519957153290748028393339050544090087385512969624765052950229009755575150463028761446735561321948268123255965434289673222782694255561803513318228449151656345780971241193823803311523505249285264819926376191745395178613296818009095398257675276639508231668084601138555848458885256059873275231031257850934468428108886355282644820572683711683467141286815871911332571350697591745120059220651924065252099135024122263779518073069099675278798513430387399225613990494181023171013307777147661263401839450756725591403864660613448172273390825627778559575326591552669481516388429648317218101743769694181814917395109053742236880333918034507907684441933467225877238165122626569226644955897136117793577767641935420342844632791302449924086880331597636686987402698519533588645570312435764942874556293273092848138328134841665997321119613945957367685577525278679365200305951448612132652661645613056528174808136826723317958084526244997938802179514099020950255802098861595326269042916465937752175108269261781452075931987221461053581545560578374533827839306480651554279353224878196249834787557420515391373770244824965797736361624536061126646869509856774230220200836582555073929414420674216728362983099338298323092611184397111172493673836582211120710653201567579783733320820627361370009728477519001344636009925110133866558746676984244671347883552920935053124359198304325051013324328717359406377740748521383989103342472998013264876620542004356170112589812819262562554312151605975077018147532657983750632446461977652215570226577281374672584885517612900483993663537363450857242422036450084478675754638009872003166324663124293211692963597100706259011636763547098381343688055947664294713717195235529683432237847545716988894064622495934477043778113060452682185043678840946574263088990113340052399543836568366772499604953150139783652696664223650993690587540654555570260511989242091416316539254900827202438663126370430109674008799808882651078307923369573953035031224581209576624226560906542435588462708615321504351964782060930193285275631510128862756754722247326604423967875522726302112502933264763342988660706893720809092175262679627806987402951342083669440337859824713536656068777771806418472701178327361507811004928634940945206438711363133550057403004175820358134906122992137611093813077548325477757117909704696923471748152501494629274087739811389676297201773834423615569215450884217895428826184759524333107897254489623834275968767150943611817344166972410046185356021702368161419360384438018848364231151938967421403799697177520050076492934587230670125301406644344413904163378435327959433827264675354764284095904241222955347174512704415442657073830363730160302063982115932014446563848861427448669045132373325951398249431750067416492135377427748820319222803944305011755811129172565222703994994258418653341694117012186576811720591884955143599114666464959396535111259159717250614783830403357944634115463487936290314343660195850854818308124279860082727798943825869831900866649459187189273217364135852915653821378245011959607199567154068390715997182184809766862073633602782737074019865494667016056001997030861281294320136745146039154206540216720377674813248452675144219319243390140680517894604434479558278892836425468825526194280873138562894372536255082645024508515732108148925224703228313734445433941051607373256857579288611921844203287658031826073105828635430325169795712139992347153557817098875969779789013574421231913691815554289626547157323624784631622545630159677331339475524865124431941302887860970359424634041635675995595492365700404572088634290843843774824728320487279558201163187167338240227883738704239949694036699019805801658217982877898162351112962405708716253575042590094486160274517715475424419200539395165212320341181282561592044857736464704594240690534555656121927451624900089924568532211052786743978903845441050061277554335470301380636588675857103937971941674112201494059740761165880594780519110377135775774865852895372465554671642005076525478193641986931256420110570022575877043455926212587475100502932516667701692675633976576688565146586369113244486269049377954789090799388786289662772422929397945467575392355689912231801496101729385523710506690451787498085988933321858759019708169280214567088782844879523708658971618117807962673176818629544533236396074757787556044830583185618643255546409581563152565376124262510090457799479486898295154828529582663488813815466034330727345452405116040409610885349462143618234364390849815519133434171742515977725004905296094270806784374753593054890590780973407244032825223680682067669826638742173571558325345025964566603737613748305185224582522912691023616251401551277816608774911565774156762535174324886677646295717308356226619484957577385291492588323953667309329219925198140624838524484306764191744214030566937839605164554030791907191903640611142829273317107118495775880038245353951534308194987187226873171078838206536269182614436799812971881605281250433337521502381464720143532788717496722878801726636174857540891513764284370876928758035036514266478065894882092063453978607235739493030933310734294383954757265678387017312761713223247982279945531716336721926463184235326245442444233206595941965465076226397473776202993633604297715371305348224910817204976055932536250907532246158601374866008445311788580509647087447436890955334216553506225902348779279313916298397183193633916731787636110655323296993206410505712407737905269217911135196670969943624741634915568579949595264351423009143320973586311052008099923049832031143037195796234893993544414708322738143231705263026980623033565315286020522646582399168483373005549740291472481826956060396636910894817597185449407807573101752742171045222394774074793190410725739246253658162686912376990040364296883517594972557599166381405355678390733767186689778532269625290373013470342944220098502687839932348749174165198914432376887552216019461204756017993547683220713281445741724370467571755914699769649925595118557557930775788227147722468879434445539604442060901483357447945593358406404127666806424305633594878262551475046249567314725319960722929275950296069706544516233552128279200633096057666518152092370011895197628256170906685274175100241532749678738882788862861869499900147487814046864427954228452346702192622194868775001452395374925573958616872237192050721880769397985467164853148960999135995753968163769899829321515795996315339414554787998058360929696856386043742698688944903038028829289319859970638280293064676865849934190282241395973322322152542073751716056254381371754653604671094624153723625305457665536888873713881584966191994888197781869390697227232012945213625731459636314817853169464381751160693337005797119228423218107716321295053711921104084809121053046460511279731730680798038954632400535279309077184631055870038477782128967590965718878651140426853505627071371639878496113700215495316155501765930854620345559984096137179544747234104028506124389087282049021919445372213504505748620842464613024133736762768157006871979731230766088177433991782030335261174066112515052591688950595804816716062277132032056767916039137333087626079027401623952812297595489137556700586233835638792786408904124033207705965220176952357125297521846051501962129916949384683010460808879588384806519865555408721752000162155885256921537256431549402589111705136384991804181655467049943718409606285560200424154923690631810837116557740187741762580229466437983165630577552968204396317838129032399952753858638690195854700269597399946019982229966876482955993330388299845263077037121247612163003202106469226318787607847153208609042122172351237385641848701200615859707744537651405314884470043712618545903437032450377317017367995652937262457130133597284119184244959489017112390620002045545381293376741361539084604590896065832249564019718669102999414066264952338986927672827838240648947721562560839640659322922503628845397821358372148709634318180519998954706793881285484243025761280583817787201355394551728479251512429169543361922758088177364714056956214753353774180014686554514970267849923352178345694266156824774979310323280672899486161545653973352739302017725517142374119499033092736625050444804095289173211613630115886482801575843670672347714022156840129914733878553108565335264255813585900663278400876009807776060349314102299384158725948971596079102945124191904471008228493358977090621650884084478640153155460117761807070684315062846614884258231853933728521465571416398402346513911221966533440200181436318644805546006820225763152062074593500076845651002834864506267322764376245142155894558072562749095728102843610250945691458541979807813401123047123375416979256105525813139312895201709992469099724657321933772977296254769252728886330435568864406010172391176418871688012112210891346323377842007384887639414384718316796849759334666572253563876539711891425821848143526245755361228059144618167398685389338818572456182773149495827252260938756581977754424787939554498298296807517294523453660021481223529198338695670051950714743099937699203489344018592852390663955131191425188083644481573837865937704141493480636418343057832830528862942245364729272160080451509254402240238576432674023498143739625396237173198970803797643159340563158776952150049798028907466593289010869223192922316649241792914295704139504620159675414210841912763712312360326309862400767557851907057948621637790109692449261617479632082403667880261806617676371894139395926760231706167390474311655471326936792467245559157640814449871451756312528593450395815772804468910731386463236154250841405708578714402095460199345226637951059154366290350533719645550283683721432443380065273848324283944759572055678478509036395437831698245423790697972477073985636497535371663073728775460418677129514910097497263279139697259161029432577636016927008150189230758100057132457057805472118116304516552256160481129878889993422993156936688526459482871487872818585292154192101114134875925883210616941582418678603072825937772877138278673633047355043057964523891017010754512615487635140853454388160618130401041458137296830069895633942605393990018335260073810305758138775931802057088636136764066106562207573288652127156652466426852684741898440246313138557301949153486027185559866536343927058534753870708506207684285874705820337837523575925830328429479397225908226294906068412596378664361470772458249578639066195860889775757205770483976608118177531305064441156068881300833293815181022564245364094407557944524152824965692057386617559273574089840104046079813179229405606478587218577207925614833054711740663592666904423848598981097677852247997072431158763156289497309077813234138932972366371577700910634287933250603476059669257684383931042894932375933375486911283822218523680072319372788955882761173096827722660432504991671049525586101168976376274302437571534394790331027060656319012672560307873250634070376001903766531226627167794035681795409129275569190475131346943531650631199079551053053423996965684755475976103007665140878409553089270179702181766073975273145472222870418005403207568223138125331005904534485126113124688333453588692316460346938003872101034805541344420459452039619783126356623322893310239883173771727943465434749193527335313509252319347401682000587444523020125188641238518311179764755631899998965261422457078727666107015746701743780966552251709066003637516778082633735811829259293656436863087955674728265803099286310134977703457600651239602556634087784506755244190918519728847073866652091081002654788910825324147241376065227497540285871415775570402378508383793622551365319541171342693755320274537733596130733900594446839511335006345830814841102505918786873455995124989690340024645435297134942213642366294193612912853981765909044678154329698048517978681887000324355836615520947546662218413724394536179986536100205678223734317123162597969081021322204415560282453699181983030719436975224062860854839408262948751006867033677727652619127633415878742323915158108985003549622421520595065142620658160204037419628185982768636567183525740602064489180081899773148157312541652072417678967439985287973673781813363697878535905773503402770070744457009217949089324390981470280938708635076335022525583149632965939133334781329973271631285537428042477985699933293292645351062360284721499835040325845878902908397637288055862270184494653575667301994628977136451622776792425971699550535291963123817616176820324081274868241141983148986453738946428196356073445189468622573985493252544529733960098278046591721326798786784388413100107705966148329422806328365190719387603336694771344285728493819089480808205086945643548420303711398833291637504274962557886116806684297269583969909271099917248555937700367568649528454340071168930489521791434190670880247697689158063819775100365079747708582756187466187507037574691932393088731805319624984347226833478034986874498065379497363064204603073059501729210744047513052718539304192624172571233052932477553285671947307349054925285287830797597825073128292892640371576664494290416654883376835461719311938473471367432905234802445650501382611674837528219860234480005478854216630411579306285229272095227113677369239624524598805312381384403031630255501303271951311785380971787678283377608803996637350952440327388966398052193717192142729688233693803373235660450829606232675944093717371810378710172710898452819025771801669470369938425858090949032596857497941218701401204456704924468048751613054400581074041863045702288204872765214143482974425288684837704691205759637869006575330343004062959109128033749666449304880427243216437578212741568347176006931016236403781638978982137315544351404423528669452030254761969076130428811368720615906596563349493513908459446402205585393813697321547062194149357528089896242397279607485779103917367480857363911996263015015968527220301471675363282061092311689764829305256702003659653113040093478633561767041742848971165378280049316561253487779633826128532924836856684696334235944103846548648702932081380151438654301177159041143228324387834487095130033312228458273696441897022996498268053350260986709224770362411305806003557066136744925220719492396348389864863327644042762444938184789329023057200718695808351154669655931656368486840318048290714461921582029346158186963402540967992783110399126495445459751067640777190829463344736523155522979351218073322300741164383734017881684345627993754464864832893783779389499931201167575084944719913704186258652897611858284237816030257169837111887940753492767944964962184075691631870199259732908472514016275716708617079396638911790889890381557921452604080707140369677431504180331453363367439079755335706069493680122445552849082502220335156578850743525610717567268279348977638345838474527354334946616326904322215863025256771287505903878901997356931893575337655406082911750502613804222904596268926921361665488002013910723227840969461583283079857453433483891453530343332103829869285232501398832623818389934971782686096605722252268697681539068339976074926615638607708394165619388972006550241696375909271981688151965117087965137197302197307974227050469059920608261923709111772409430001120984682944541801939613664848280798073892039251834028100795685967124878321284107481931159327276412508041515535980531187900017350776847550113329396037857750071463895962326018828919454740708256725691014356427913111400490113348274535281724222171085395720370880276797749240176861434437368672817797695419964283028253093723271459383417608305851983228564292834691929463209737816176069146108214188488759317324743026809012990184511030867215529146965220434207896509674724716467269105854546994583309522802463351772375924565797636559770403771062934064278827065487526383603096295844730093643846380254995316229825484515344864813129804644640709573833222082810666220667508146676972828347700375397911869030432687666080842605277583625368299557555461554104820155724817329467678198430338550155332411365997487921224020091434922693967700070441577568639024193154554141609843124708244611422743609834891809784774209593552798421774376156769920553056598200756610844928391593798559069348820526088300651625871156232506111220962307929327019539445305877150726489164197132760039928484032116039756736644379028503659731197961936109943801670847159847620575845473872669620293780620925879460071931395139559543111481602102310675067472749756802893635126784897158475131422448703197162345867183804420361603880066698909656038182847932472232754133409845521392721158856396254170860282092719291456117775080862155519217466524526594525836102339896282623435872235831487461721467439654384904309793892006080090791398739255122967189693001445442228703236060799792180786010655501570393339719078464181556810065145226123032313895567931308945081966938724859455884021461251034609564739860766422612614049184078292465247673105413483180316548113563049294846163653341269370387597478983957898184284726785421812607602135309014560898037078497464578455797961239274336406005112897577867679369772754015460940113231523221031443623349816303121227145264703086144528703784675294542886648006668602647533473463746290406846748285770341386194980827372198271668356666311913405014528636326985416777006293446697632613267962387990505844048898128107738861117805903816224673098861281879087117154557111010485970317159791049529021977061836259502118638479851603516480729498101177159008274510186171196192302939542109727442623501311425311350836529702365850267588774747955663286816545897418119852207283137457269513004403925373161955808789581639084542884640648461934804220618126649575666445181516184008271681415620314654447929438436851797657866715012709248528675958949413641987832178155742711241598520718250417717786945151846881805460683652492308024238813158744857293389360605069553716984562798776894769988858757484199470791860317881794753963396257518420458535132206450233719987268154911497698891284458302671899012950881303173537465538924854918646786514699285896649085032567572665570002272320842452978653730675605903533905053609360290299460242882792244978739882895385032837061666549258182097868687171448554990209814201702859983453474890141105761472355688784483364373348301847112857521958933665973978283554297000221305036320602644964166622405375569769731053531484891478189520732316603798044920869862900843932246139940880317453638713617025511715887206241938771248115276940486128834916055373062590866157963663620647707954085258171537875432157035358095969839447828372468527486021484184384926574888223578554606669231058577946648783449224573367118119020285171661636593373985860493319585855935863893616723479577871832039905892538931208345265463297271896849312912961896270065593609681006594642899403476530613806215620281367718933360199015266249262710512453016759228224436844788304828762777037565325937948428398538845118449888550512826040284226243862367549867812483472317162523190912836627858872270211223394782405319328497267079718690560083403417231344917162079850230538501704739271412796336179006450220727678923811498379955991163848327212803269216196261286448251234003982323643966369978758981599397689980041056652790935627066197749538214204491165009462705668656821850471639991062384433567557499908243331204704578693457325816931301569840449148261929559119986465137052102049017619945278593766022227892496404874993371949817927014879476590625132857707819168835091030140413598915629376772762147586794615742609087524310122190686305128869741053171262812535221990445959467796642782853018836885160470422266075239220378534133112869920392590128046913585542535129077071554259736662689403533684388785399114344044941327319397609447683150733189878152615518747977767985157908719660120351696344444416700724722763151101367872783122744558601827603760936517944257111721267211164252813369223651884496539523850126773598481818491679214602663464690229930863078129626407153686130160848278228088605579051755027088856576866178667001570011981254559728178777137738549639856212942422017432287663311255688619631114553137095532763564138250132956250818853090586080935904670429567934749399542928537615557394390966986944272474584231768282491114199724194928260009707443334103974896708670724774152910307640446463456108998773981221178580555149038680506843993941584219002874460605852447618670710029650799227614740220866239582028441551164872244294481036401897299658978889915124033075358827371444870473751311425780791194582100486019977180937352283524403314576023255577018222466000242001799148177997536605912658430274205397448751896489706441877687115388243589300114174816448397753072934564506007639822884660726807072756879275536811864709643726746534138207047667944869711790758670285789755077165494150848707961763622388414531926954895875721438888787266546702793812808567592741761043850269599734917539954250211941094339153114035758450252790722038107053694472866289507099053684417704872884006017626240809117545924196685548177812724738218311927116422170926133374027427380765969668780043105547635322173872956983703812468373405323478183267976203344385275292675238034906234782728504529524340202967997513503493503174699141443690550137141056669031663177065313700484053942168932581653762179459157584625395710758299777932546880798588954755159557632522093685648835164063637208090097349296357518222091979173226625278490174813945434852200039828351103778002480357857723240445487536892627038952467496157027910399974795614917977275541871616964219058935689788108624828294081100361428002700231147211233048214152767552144617381325326349727548746688639412137263619677109799426741749909919188142973087493997459959926063674029904517817632363338801286758742968578567143652080462686282450513988436299056985795758413482976271753293922092692913154953155612602579764073426378482029353094526882914681720390468003890797618487267613012968253749382405033364675683655489970485891187368477671488030261588484884897392008104442011587102598635595785951187224312597599328252812845728263721460618421544417146972179292646618549605904053383394517051962255286959771989084060030202480943786902025063272207165915910472441601801393976444214320574424360373389167616986513114210825523552091689225802766935888543664784985145706272171621563591212192743114463589973561042841302487781400748611173172440837885462406831885045835442859492444215287846354451879248571266410604726584065614681094882578896261108301903729696315102016620721956354851793382908227617036262170051219718702934450390838359124657538700835932611300736438163961360239225426010501037524927187645891575427591949535125924741114965101028859595717823370552223230648225885991834678722288927884791356105297512452133071590817549252743672914157423192062782959051944920307333350800135522335950581154395702752455752964139171816431136025671498446376113101974628707694551903338975098115039743929730305795511922151115012812183865188516428862457670444911302479101678003131447851620486977212641398272083889677351045642459808142136253210760081075930359980449836161627870654509219870145159320955715108799210288760130311927831061766214136356121740702762177308831396610982846036085018033719338932156533407922885010380364344749268055860034073372058390366370067453427995376705055997951201578570143952537461869198231856387044777803045293276927453319275782263067660168948452831063372854203953477042433882261227505460734820501665420269536359300356179353000514988989856562256912769525365800127340272675383696921641779829810440603821485322480481707526165761273922506596881743376408579498369341494613672838201812570048077165100957659098276959476039014288724687801595796983736638529446648283686194898219131976933455639990920910070236099378900460045011788212974269036770604028606876258798298827679124852845970672915656463278085574466520877815488495907441958038615716381944864358471369616278182205250438314997506485083034809079100921731525808682455872470886894952239298736506920337336130547713812014372263794217525421261544095841522712087298225205275423269970559575739778598597356501965111385055283663262290447398952550811291203841005393864840715447531808128969126009631552707402854697876084435186904705854459805515974659249171880156441159830415223556587952451918312608495376416462014281182023206936553044842210187841921127528828104769152766554536976891717867422582031051768954709927630058959892489107422044892474916212605141195349279763342441659290651678704714559510165430111921510846560859032674111280439319453095325136418530114846713523840954748599021911086253681291895953383810606405586721916683116817346772488041109001505682164581770810045578667524116767594782017504765960591622914354506670232904804092102345945340040139632754530165745519550883727565487449789441807788334179020882704690759637002159840308350025671068851932266083147982857607045217534824021226724093072041526080152965610084897703107140480865696925073245764419658075991116394423708755039324253957274808729520198337648093815538277097393227601697843686903908656647538503268652569817250908774949905199312903328386033504888594520595593243491053680485572860197441497149497580346518183875283535423656241598843692544820789313355028954877331373538700179355094408855097226859359193298304443040910296596312292290678757525153861543211522911878082179943505105623640458430067670101199419124434486181611805301131646383482077932837551926967782212502130403859468013495758894674333914919001091507142055725274581994269618138425863951902127582235832641948587212079290531484150779172611271187665456788058792376978931083488247264322510502727201251127235261025608775496442017531737926413260635692191582697991407915166229864592442084460721282994145892473119258839857707287751110059723959670019190908934970399808486096587084597834193927956129644465377618193936593941726792104694286979792902646892057845152141398388296475678882133694297614289362769117612667225841267377416525574531031412088573272519896335525615419972216099637660471065410228973195396068171200940778142266057436151089481658647405634695644285103381979819342157567088674507931915440969109917063942097285895426530757315333356115309061563293241668668035658692847454010769451600039166117389795537683640778976297818501886065393850215288855787680454543367784548215343806042519640733988335707124766432092082842791511375274059162604080082563948361798004625697115914890887292527996149887895639844590507825854430643107802167089719579439954320391192902363393544190966084280638158670054193037165188490736817968483116580667534152900805901763955641359770861993139839583562593520954470768267645069861999310892221302084986987945922955522203985045773635269804784744184329508204870925556432904918554479373879898642693693874680897220526927616285004386350961170657769287692508799722283072976771631501435816262842040984538177016243732655440621403200392747159940393780420644491571063880242920914971175260493490589107823255915393524993933510221234273646784722439884541434776223371079611284692729463197169618413437317336083672629815232903297560865843696698631927547793164115086890449932274161758051629254523322569061734735207104639562315086518264977013816060172165852915282768646152179980633011798079342350540612095520963100710441304521120006707010991756271513935873576156037166857118452193220359055000125996874444210414820621289364272165473619150885029400538285019504493040400347074441362534985914702360444843276315595346787824257033973899843024978746887181456728110899677316852397753239752248609633936703057290038494708530845079911605493263724773440224493944962848776236454138209114736962178366286039893088868950185314219607614616153785793493101265439661472410970375888078594312971045530720073085660470478609629110130119183396893125330242916879573285028412490221025317490583911375101277515490440582071011214007024781916900931815420064857303086245664772428114925927329423833817256222722066265161133263201728373011159537333303250347493880972338603207344341622821351441652694427349500517629655768344517213746406772099757644663999656528230907991043620812515664801544300736222401611947091584969908552989767063591823705158659435655192506207831063437849349494355212532215840422981549854070257081873291099429649412763380356354864220366775237845745229196646443720597523783364480216547517150701305215040151891884713594383081309751080059394163127724708963246895231196674153247748407945612759036055993475687380284067068691988038740528413402926399366624724230930124213134252527809098525905931698894927494657805352245065303385848496525408344475657121502368295675029667424148864881724378647448834310402335676567056655315864634385646054907306930829890803518766219452714841903348347129968945994392508477876146962359193180315369157225125476226360342211426128145735689838843553923365924722887175780153096561215953644331109247928021966042370127372846391977245586799614605796258097215220302668465321264951660403787874359624058579272514342167690157128348823619517255915878319907529639816721454542852550083727538555983911582367958770492352349884617412108752770154160553041089124835966568518041565431067173279948507272983883842727327699797909381501537071102737595698142822628933629225644249674395467841377891569246219915514196637865192931734761537391314794067122993114609501127408080470997973724121731400722666113847124037685811957577140636742720971354732576275230503248456009162133680006876022175346888939977122298295836409828177007056797694370176292607339141986191414188082154236216311788669409142749960609509135668380462985075910401193920292022199107628491134292750291524547969220764285125267407527529743115920179897948888480411307530089531285952673233014004827909760429154818560401874967602408222512692071209009128753144488380970675433189969674561828737002974616503252594661656765540160458421449963364373120496617869073471195186560011485305792012927147835998231603263422736255361406406154133888002364284012052851499837806300931942046792391032398714610218282682109033116120500225348574750996285318861561897264730263774443617801065724107177854939154150697399222239584174761538671070688189404016832654868541414095271878559403499564856580161112985667473862612183884322296415610645269883247220751523788369614585858762367369758912392714237717206354771625419270814865134086380121233240051148205850093970759640437838068716652688514845421710555331133296501629383046330173423475987954659550525534638016912892574612798833561409775355122703453341543742303338457481188539719286868302838131390027249916677930675526610362491845052863632787209404850112225202092978506615263894878070683959011398718263355223913366713121948608797070317166114433360183920969224307822388656000548462499164701700199452712218173567686350295589029285297773031679077145417954611083251342471701044445696838774597983392784939180459332360726174858530192275544878266537642908913582556093687278926243090742671717418367434081943352898016956455250736445439634651600941322301946492085914430254799138475154697548919479780166388625302402218173176869950884500215396437334020204604202427487737989116727936837594831260338400263997168885707508144906708552071861003523707152307059730658936533330179058653757127061732601861876186335871383640462721625561652616343095181012380627314432108338333312918724091771398741714814496315675260040386079344763322357583792581184762338562486748224051244250345476112579271020734783081028665123856336837622421256758179619507589552276162313179481892710072102891527268867093415419543243178356764599571250268644808491441822145278107448199291773919664540371906887994400610410157883755184804700133926171685427425661978785452842101935168685822669737718817449363783581578167885017201832817277949221748174654508787537498564796817282623684055391615870806739855106099344800777912508828148457019211514189353910727148335101029926156618240191781584792884016240165119040979139894055507702570681266852644914577572009369021608955658635415087275864464712224275280025230765312453725638370222589296232667016939092573867915894604486813420413222795393563151736250489824527132085949069811905755951294387155449717079891716766430707725530844486495722763736826154814919570521451821326573214362712487100051476334261777585915142966879510241796576754559223810555724929110959089165090808201645824556210230077047878548027726718475663145962916963977937328690663884712785099044508663583940184488940469582994670930202307482541800998415997502760287585376999137574087207583733124205154229110041871789854637977235966130606594382425201604958909934071776937408311585421227985947591900817889095924622605986965179159826416005347516169942409036971092447957204150902764783410746434130880819721654341174364101268725654539759694814686505148285084946881920934544083600506427678982080047473025677299574070144057528796018427001327484615924839818636883949689483465827433345537439572102511877848338260825167100010257239671137645837947579559026942829813439126975942937420826980831722354309871475450832477609624525669593188827123351217998266150429521070054136631771993273672972811053540774392028451968919956003292769980302385259538964404807447583042663866555581824232091920818539896584881950460502303417314468531056551171643205720078909592107392009504355759234041413190015231969944563686918348484514944117327291456091038437211699667829058144876647051157694684048725291131982722601576984231020564454601826087834225182573373082737146187451077961036934940518504844791075821700220544432620879928534512396991816080880851086842347072694714821757557820122132476966657855485707962222527885823742770259105102039786118770047553521544227452843628945907901089367977815315062705891645483962352678090069916445938837032595958696218663085013028867500776768374778618457061198858237720843091451047728298827648175721404629248652244557259315850789841454611882511633712295227045652550886074494250369546843443620835545126354703331803431082688090004395113674373590194283858093295070746012508203706614032307659580160832094605972105096444380400471088342417172589174449192569439251779519227509593435882713376125262100283600750169116335767177502810713868168801355374900209679280226780844657650340637877072673630535474965573837675979831374975775935464331272860534025052080369097812601719167657243978881902815099043933390357034522618990982115492417424113863584648843871039471276407304532395241401686945098802923155824035042441937581653592366990222440278442899376926857285341756852087932313403655631111358713588930600713808873514465076329155765263189396020726272209077394168732189465176793459936035522617395877356716111818188891258175600872503171458358928036086068056789952465266921738120353336409966753739640097819624723887719208889168456722709233605570104985375561251016863663591879398573439786897778178857004381660573010671683076752221571588391269338367809449582958576012688574249706294892076088797195641367923363136424616306266193473676612291365109134240830775499594082275475920804091277587575972497128473526080636783924498263923591245598575449361069716751854761604656078767841894433632539114322683127052761542229767242039349697990152772226664202727852961393834152944971952511070698756092617085280452015669483715417429907399839929557596543716986457794393992044725401241597583331135483139228453370742992651015810438333640407958321778873861524358389877678383618009273273217018082809257958410881774067825946748527712992641200363235727940200021812388706382341246774948064770754217496104758616815925015639831035652339143580397664641044052370451280241759135597251459548573579440405129415062006405768713907658573735995628052114373572383669189887269246610577004181538258169858540529984528005105129652218774376637813324005366999748442610491601461441387306556958116989126923740487640086135464532129966462093189571015244521818890090188204827261635058264473017236539878582060349756340896229414880574619313487803590507514354182371281313389193451400928950765500314875992243126930268578747418795500188054759876708200411742070361804107760625817731155986502203083750656716087446436772869275379082873382347290541451395973877218064550830293213680520577181995868903659620370228320666309107309080463788618992145617477838954600915897211077086359011028239078653859286980984163279185373063399502984135517134956118403704085068104175366725361326578341610978675011742197436349052998083427724500019212380418883504820522054720212738825672708002411238395631918515261401380151070842428571659708758580628223401238284999684643865595026763565658658452002666013448893068181245923057895094786095393986474460846031868775847544189683489612486676879530388832924737245698682634377819130402486920976376120749928989172347849276320978794434219012308435661130580883023333071111212683918503072468915353441099545879198941087609429391304529643544837533555526632634184319581129751622414281663793868779768106650324889105050089844706508429222258544098405109657934238623166082440616884227974330015928921904686157339009809103840949233236967430396305867349070193097868769449804699013094058012563658636921776271839780749547464449740506302867430752628203088119538712271674378092790658930003518289264963117311107110144690687058031609424852624589822833331325378671118767241226302117257005339865556892645334764910040083990064206615880945787899424589784203290991171108979913231640093300239280310441656515400861958346637993424464450569255212208980145777310864240301923019755489651632094093749834916992439950316052735476799305995059848343425924498123576441730060235360292374660788817549036314707438410452366436558706749473520818161301296221039018472536667965579851561540537947880368044164960794485475508079692878094579239461530189293699372356980969780321490847092788219755350993607279565736301943565319667025250708147871388212633855338527896733075689907274361897790246895615852070361560587841901963816805899791522821352366759628319597376569172776412074102632203664077733454750651775701694347693774479534602202820439885897132661723062508042005898296354223665919571895669663415730432617275730380508011311069738368703550469880604680030190004474622253412885577504604352866851264937394009543445899422843189309238777409169824834539353922137625221184980668170786843304244318949000599008865299237159863764505074921191623687561873161228819098863910273052114471204621469667752295480376737553040516787657138652873115187268431788667257339193025827097154862363405325896315814823457956298576088001187588307162682710865219606609998910836615100115501812165808276188839431862591054282907127551811524033383445716418436494487265774348146170991573650615673405972953146873615306427860794636466375617064243774519338901165331057496165031710144152933469492644476925656589093023459859563519323342515124816934751353398284489336902034264181232115898518055219110754948808498236406325562735500724671686952994152582780251097126905331303610483242804431384819946971842465186947515275401988347591944134398492292963931790517845200349645231078563917755225639888225784378991883812116606400023483218491365640636979425886276637397136994689480044516775511643331992261675726590752378675981688794660113875967341355202293431245773094188927987084743657185776507205145339053453124461048796271412163681899366242608040982772784637147939087049442267870725946308097575501833152875300729519651300868202415680060170314141844403698327783225887092903727164089850728639597955312274330809827328871880312675556931582137646957472718397442023808143903806580100367709719287759854878622546397917734194480439576313691789985900369327607753942564876268246712877894013984701233345142482882692223894902113505700242602795674120981022694438570583394437179303003936467794998475073859326700819411037798034599377205076764930874264122609939888940579576606267240701694709928812034602425986488400437310562434408792308750136880007709991807805667049494279922913361380899377704518412528289819307979440416643492823250049682826546833376337190563220826822231200544462478406489343551693376263833712810914265664245979925154502078485806027841421626948196278920652006417622609262461018838348828205982802545624265196513441296444614205280497329395084344594338833644821754591650192527575691177145698534230562574268548100321953524181613662562169051649433326138498424407286907472049648174382038989404137864941636676417721909105180787875401148248636943160467570051837981141369151316545231813772466285233006891003554479652067466520037083659512972614004466633509814159364447486349435504742514196542108679111768901249196598230350884364203121299685133229872134623196081907863701186449486359434212186724044247315322335721420264340599025260072597939798865491926195150921038407385176031775086246038087883349144696143863131758392904446252169244335400447587780864651539896697662493893991131538724692750864723739652213658764589037970427926759231016076283315474703643235254803862410799426219104889761286476588153044469756866352898735564165348372233485196236829686229377406483131535318429451094137762775357537295463055110861840962874446786710492412497891467109699482617368637376457591189692592381713860328069870092603702136784759907573763946178447034802467438713222162087275260374677179212871224609811626405548826501664946765800643860496036951085194001550027173864328522617739335454374709824688531879941912412223139629296695868636432027363514749408991200686376066893122293969181956360352864419803867213095003309111951513653900742325383010287689401861756969433387782610269173459590738225467949497631814439116934760960912198036832204162098975699771161397672105859198559702015817937695415539143465528297540118328221867904468700531388704915871065654208599863081830357474890442613522513435509139847905465494985310779975819517262735094242402522216569473473537221024809349651734162236467486425438382298519107695814953054956669520808726863315300501198943437735518013137397300896989943867669527792363897779028938375208048357497209983170767107476791359306725062261832977941110856550811830281276080716748557693569979272103478315239036429066059828030567842453976651882920312087484531343668142020029455735446609338211076652141286561460880602817929442905698881712552363083925600816515270952685343800471099060463231405655074481537063925336505746359411144223837833175514472495362347036367307017273818878715782821202395646716706626797420560707734250247109585937042767630383830464472730601656580065217636447686316656987256674492271563890765739694130191867176430323497206837916836413068378187977732945937464770255787302287345986128345808991445580026380885931224371583932468967882317915798456540838951060537961857679001436095910601050833325430355818216488914947530533465856517904288271450915432227508166904680142611547400460260483630451286467141978676406618022050822718507795512250639279143784817544376589156256048508166876016691022798859623858804199151498176061858157783903172770953020578996520925393769736620700047050597880379895673745654637235738506931404319259880128784300223125129653590399699465541516901655668650109417540314371260891595860140247030474870334902520885087175157795345130900450524155940057852135684695117260423651160512671358256518256221329335971428525729639454331790354719197781678045284633245810638011336440243914824929236546383755977630399832594451314020008582043780743773005973389082557452744344583387142172607142978604136690286699605326747851541306611691077717113905998878079571538954735043677608172899283812533699006484414412453599704539213588248428954551410081975903878937629101697936404328236670099566600846064445201010561300035525840510297403135166671439487139569695241507786951489423844427360173050789423710749230479102179468413977932529704114004574328764298827338412794030584860264922486427491395512357434136457969804011572737770054473337640303089334800299050096888386330028358251742722675730396812347827148138699545302171377996241622936734796182117099372020891246052523524060903141311001673427664363330417894471758267281225754789950534975579360802282971649016715932976648181114670017847170118799404774750713013401656130679246522792457320183562960615719685024192068804353137412808074173990255970749059037417676903288193425707893062054222142181202183683924305451921328896596674930012340312581378180398066057265479271359776387343335024046312481101695266397801582467992549948049283644687028292401147958198700632358682125323373084622993059057097233369346830766949816207503711499041721006205773918081300546148441256997526616714097087146814660765137318781550679742428493837019772911682338692779930633614033617434990404222735072485432466662074847882701396009918871509304123401626794861552288837327912672045455573073366726183726827961396215193147212045873755075151845444676183262375988225175372985577115804350112953024663847257490304419667909327277969705819696452061799920884652225135931923618825013600691869677767048762151695466985486428099095584227700560994046758809265818984273865141210039697148278723911598685734869294497923921044183728371880711225312406701543688884214256870227869276971493023752927773321403374090885516685230238092864320013123333662679719672666082773883942098246619874806837760222685113775100902401773420945011797742049222978948776065869547085515270136168115414769916151344361622574177448496473245945468554888827640020771525559065502829730071428156109016792252427942662252965370504839638448574968035738432013555904046766052449461483177456692793583076449376636347501918785421470245324088428775805649093692787585964334142349655985234762688284118150321934189985905352231616936310750832514984072133615951648061675891829676800440077605759329986182718562417474763374316630904532678028201621465051350069999685018767787036577660819286246925948164673720425708068923088821513837327831565542444125265103659347972979458781121596347648543448566715584091920105066752916825461583159355824148040982435092453452480408170475115063143352683015771153451011685613853231919867851512297009414860570093518781115278990980855859927081780939695815889247679385671140267603687331774838078476059001745481569705066557675218523420431859020699482624297690247435032306923741511811794771660859479058312231773759477263695351893984902648597230962233028503206322340203740257313150430675988935642933678319207241889569172196346446923343989210833695520768828208245551232687785963408324456983582818458854118033091767729475194915667696936532247775717574846684867139801693851742823018057973658305034989036517353174303493489457974065386903307244319046337791444656710730837293177638068813991878463694778888711049804811648812519711140776088690157550847514142217470192134451055023287323753426468612465645660566067258027979900501470291618522408164833328429632670154475397281605365144807153249501519620841880630398937115971047870899007941720839621784934379359981683057420413472901587885060633504666768468321325909202095343582208795744565856425422607777032007011030968072172742504695149733654420384053399659655115943683951209401581705212519404853087923310586177314035526585490418404415648771575159176017322855124267891936826511342605035987197468275559768633834156034178438095570363366533955819584585171718261913344817661680856567245310829312190147298770438132700707084394691531657184172196579172446928395157147537008577566907536101823726416563881812178386627440233098756913462528845465020207208219150005528375626028085552851385978483542919412763739707895761332303916731019768671782847548560183165685266595215650037683992548907116563382311163464094866331708690071216601129678933477317224903722549002512045490289388329834131364943595413947864306786002782799254644370731075009350955350384150475745919417042604715858123191946017826380831864561870395032653483183748586637708083214687877882889745944022259000007487006816332184433814809817629189900153642746681055454452332990198591571868593263619929154970652269069507940599963096019670122276837284924717582444014335820703563611268725460367549190592036364366974225282993609287942347434151035768067853673804974529848026956788533740501071037853707618136264298627557906977354465974855504134331983424291035376745137761787798117789696295646488576478297616095123367356188975369033249368890030140900294768113117279266050171039575411450212501282386284323616755046765213301177169527200370241263111585243233247113820816691798415346474081633332348419511835343686733310448116076690797289053250877239198873361158026328941294221036740060130394771984736026112535724134638551319319758687826438215834537748832963611604206707844266406098703672202976725972663962881723105355039369580097826974982552661771664164455784054336388321736980254875496367587106288546351341700372720882104054391484325051772539384682613063083418702255603608041603162893031661704261332420489294948708532495181884671273519003421769269660744977171648664488541704603596417706733927963270975294396547708752097991466271806978623384686066061964781986888235283118209660950446100857376410929314251162754823602020118361750592028386735308580115753755985703197003640515061095789664828966830529729734184970960978048263740654518252560221884646637011940698746821528720894390235142239338102698469074423146516213636558289302189458692524902204366514051194069732621964157022401007244477048033517122878813567191736595395904137200604533788120885061938241731094880734031048555732153499767671347480486824650348678843697354607425679876344270662837340108957101521671732868321264582187561735225067993646395883983901288613612450795005313763503555955916784747236624032491431587949126256326597445086327010441980254181784065429184937256062330275013279730952059416773546318233716728382840168360705702993446151051129900058973259618806265090677955697973529047332522186716814570959026101940514326535096807524583919093770928993785984272079468843811914716172832562933981491566631439257284703891721433736911163570477939905159836475224267235161701086909258233591140782315174392912339626624933333610022301597418891630802274334184360395567645268540901457563708500162283188388528708371273625189322035543592405677112605978754332394598830862549578723850389154445580940077511831581364762892225465258245136566071429190377277443490335048264331586895148797923373628842671621297933172577286435529033074707778372795327833374953733781017026909395290732813991148588704408168898049392699842471506220834175468123001999129780532589134286930825992218761352631483127828509646235716714070589991048298917510015813899309705066540821196319949503767047945431524315828991394921869092848033840107035698125063841580637577325707690731979202926445949593886171891309035476372263417525474916821888173334528406562819895091203638206938160325918763246397360754211813635632914784673163248378126799871828060700364825472351792293014052907985681278696671378481106292719997252947606080622557744592426660372513413704080504519227318825313409768088294555222558907778415366554440624236105443948295229792100847875547201984798055775962334812744593685442456744943520562165946846827001125903852614518552901452861552376558945248673904401208181958757066524725351927773663700187201287723806380966370335189317763154871272421217139867982101333029723439724275606663279130943042369960642978192521626351073284566929827603631825736237446444149647524789784665863498857466530896185374372584066237659707281492178754504988496957701133767512442807062359148646023199099855915342139048203833252274934748929108618878648642867924508293275187763233368538375974249804247754302642178488310463411179815524260982161525111254306873506764874909671727951751478389529993902068918454562631448050921705032147674441758162043605706853057278237989950886492899140540521572324898812088537534810013248421413746378948738362062094941372769572822807647984599241962364667066241863331132550506713956493435289832483579410126328077948855477001504628442079488359082495638954651352163025639768985404620727984715692865419511406904149257914717888832818878776967352532663756107265772246590900819072774785655514185609604473826733158937521899174261865065370491211227341650138666417154696161444713525991732313150404431089458238562187744648179548930478795977263335900270386319272513518935506682039609819534328003151277913967903238460570819159839000302526637860231419930263588001715484244506281034751815836731730129308644334182190042696760451374379581889270394687731801221434568952537792800765918691464378455103771777366505349892292733443329343739875601077752592557443650118909629155103831496525476636248364633967868575434748904423965436540701521086306568439528224006052105848416702777204175105153632676324676370320547702616267982483056753118988967717801966382770808605004150228985654805327363465461294855872463460634443409342232420316474022290711651724881030165696184818192190948301500770865074930862239225130184999285296652295801247990081458993097273707421137391404325659702343818762398755565339602406577491768216891884273497325941427031649570480844727297556513804568385150514641224177052002355470931852858636770793891942709921776703422070422822048600242784786026528209448884900444032784214893500734678398528408951095341032433402745884156611384568050715809623681811501986862042574776057392776435942743225436814628685079811841827690688427297666209704457104215553863209596869734294920998916295037222780211064154156883876981983300380340181945047786868435161998688016628391174141024095423613101019820021326627399128702649567092211545602881333019604020784945071186967223746664489280160162899611633693612043018395862938897641517656340552219928640586301570848769588069082134441840584373845808581057014908293625256355724079628249408901183348598309788502893775846546218323332594320174781808628146929098842145109128409837155346736752861426985784178867606425651385038944585583120862068162781062500912058430747219503973119508057078303741709724569526028587320042033064271111244375918087176003356291346410015104260347218971755968010579107183255332236339738295619704570170557477327212154626106814504749015005649674002704362582658439383392270806572900703084397068957529597161244505768902137595093076626221419669000996672760962159370051316146335414872177333644895530373734228453044061847424520692326859997202654239733293029541200624672087516948579627079698417883587449628138409654143418903928665343030045123407075052708431383635903982497308811059184432741774145872062339011938043497604028648928386022831438112428868199759286045511446821747354562725776218675423915302320564909833391758284341779151111949934055436533218781581502869182553917726225463631333474344980279579062723019531748835673324809158724623296287185779117254956189073601346023761418992672191524330216810867118018047612743547442520810724687441631017463581894445102781483845609334540290134190077161064354972176946907532748655429749955810408837571158532420652892342014141523688462415968303260309725307601424413729475813028379525346327723350308231933885380167753082579444597610544264020080427584817897867044324445746151035973742719611860162084894164515147695572575740442803031645631155789928229198537869039419735443531480511397924476430254067072865950599036441522117123952453159452410546112995490402445708438158156923447683842098679722473534624197231635821486477898987832837899900758000347916975058080387647726498210367894246502504109079772937073263482476054356801933952268059966323035069254057623170358010167952962318478226105200708178325355989914541358770248031189570559162266114932194593912041431367810763619328429627878824404680408261650057740204649344337811065896608034830671697266582146180776496112192854690795806004303401149629653779135093119065594664260768867443907309583422764621472058071310502215294224281169747056723609630460160419182192960231321334601524218707648925929634983727314863629849341277476794397552467653542053724973339759236045851499296006161458864809915446953445412887910156071722141013603634239555544726107959815807881632680200619416003830478542579240642283719502555804175346472411307948156573878149934076518180636831825755693715736118060661982057800242028637515434161324484957241269795648439368008344253224426231186753815107708643529817772626264154844358126054221720198350692519538601087864017774298080961724661714192773758251060106905595521820397926934428518118236393877267167840256659394107530634054440691889552439236502145225888058477638830697182181759174879471824118548170597325867226812831571286318796450082661319314510263855099425496820951910454455534164073700640546378256606613859923349002730596722027769600611394143215742572513595496496422822295833962902985365062589095871388735288283700867039160590690802048171144503707971600711891542189718283746827917339485277178115201108111290029731413650314717318624810773342842261418972527092630611578498308172693144504010325052741400296598174453647128345480229702667509231779263839653562797651849885552693668694384188681485980437119947123723995605873060848542878277094762957837641880122894802200236267736967754775653518351752191616891040573851439654703165572037856503274536356665125831360062033564115927278593956535631052603040603639267466423700077478585777248063493516573553039456122198051644076817356820451229815439503093033390604041940596564392619093395879470790590430924012581973276477548370245936685323510700940957012596208481890859405407071346548718526876069862148433792517349862458648468220173632660724132271380258113522028958242054189922983046832844428440745531802241789610956300854820286214608171520818295621738148324634489590763526907304451186960168309300215999236889510422098381876031892323959269379648435486808382343324646696856386258844711646886426660875089820893799631720307506134379576620145638332108118879601744955102882564036131554350920957804963824647171905618944948412399510989195416131798582950124337378983620344254959464571480521083179287899252460383776288687534740558292430411225836030397886357345677809107843932473395320326324917196485929963329712572486596822684318604103681082928113530522313920801889388114420320113817960770332475686873975138229710893817500201961769158630966245030630939756297211016018985804474597787541203026569027917667306927578139102747013615390255400157559044666941484435331980447089624572709659510602613288188293832558103890491694217010893380693246365717065140870177322377430386136440116751806169251940643976818796512756247321351718748590604766880084157458138767548539243800260331235337274051923287412337913450884032085137247110774321877568528744148896069572678138801874037783229035711083937000440734977057916121200076980343006634719496144670626659244143743919178473520751035000527071286447118917422342101616530806163129959581652162600051905204534523701750908881483935640056956460774301038610097016483000619125911140373737590945750760221762074390527052240150447733927984796562312921136964190020483280198535286750480927894133264597037373768233759616549638903215613818994361694935439056512416139142004116473712950174996542261652811215797339905930363495293516148753820270107848366321706579273770360557831024050564230354352215044404654455016775656623357694412121397256692248720964718979423352262111318955398822575428765148543932444171547027479063089850959920547535308401442671996661402622549561338727618023432337071690255983477044066236915800514312483041301902216301040004446022202031027069346637949436509328408332459287487224384491718973726842150282187136138603304792707990377407990468627026851371318050261545068586736218387293791984153103504609435178445616877774811651486645406418206170609719825035003504618638732945353537019553881186509773737212362321786282159169473043782723197285224606997483218107451848933226377233415390024425370974764933407227781742911831570571209091194707743763980250034303242939391322922350510640862593794930804206476129404834784199782175126769627188638074198465064129425773443074453240559649397794119496512914002549924205800789196958683879320248943085833295605770573642538883962755976202879007755507445795467286004740664229920561647056999703380299548573186535671567115533131266793115667669433013160007600693097362513397482040627634979426494942317475732446502644175943766046140754078744052498317762647280003560337624055847184001434219627828736784582311236017599196012650799235064966800254280142694857024236299016775574746065682185540390091518498468164444240749792934140361041862182364331633513154442912800853608326322932383045308651130544777279854131865906039064352430061080334874385034389472686597823146977872856170906575877589051818604135918652699051870734148413007613751654283334883162466372310348656000073374569374837598956256752260074634525260030347306796181490872853215204071013880528060713828204649990314524776943524652376085106830147879252114772573029927455701305255298479229035585808781180509973162480749932520196080573705066403314984925235908487961410847911142612259338366218418467900806991105668439296485749392740233569532168117405337369619261354625658816659340268995028136787397023924434334331617691706703671047124684811359173515382320443037644577972332621756730412428308306172740838476543779490012215212676945035742531432599332474142601360819656807356777107395748928348637101179263735665185788571464000507863400520439845783648962118290771062100629790346994018889930085783449003912386752778478243515245318582145335221137620314524782522348517143484268411015332590309271851839487171402215674261452206590760797958164678330859343590396214100323966234381653181722729257397901788448945762981892122236157850122862520680613172092451145104095640252875801147480796208777347630651651379057698244524635578939789403067957863414602306284701975153409283470549645090426620943232603028611072032692208018595492210452584827074653675075001282880805739309872445785616707879008437678422412634142429653092710392946642919225335780081154568494832498246055629065992356217714988807208149770558312243019397083161658336765480343423921470725841573589426690749311917333677379256508141130391142975093146018121105402143660880187269744991459593423353546526020885906491032309166849828406334057743358543712772394846239769058134812466381170322993787399351068352152895951544619825095210390520001993823176470867297435281014703783428667735471066764524301412265563194371788748385012952958273046219089768979964361772680085330326616104629217119353874663240822321972759181872443701579476824817268334678559108072059350048487048492006022744950433897654232477483981842506771276839070938882248233057562181475024228228922848786092676464109946493927249787934472399233498994383604645799556533376875195212438347525936643085949931353859373748594741163006164741071540122532067798171641718162952305937587035058124137967058490374437245685941456919701327915727123070069564774313357532028050499563040588550175979311739459149318317078396516634349777982599450924987516053725860552175804699641548246169899117813969904193338672851135863233170102681642367636498241786046028089659779409035214032323999530836779972573419482301098444317140311168588508852706615897974268360562641746953611751719520303069346994587784561759538697654083993286224894740837504071169565309050925238106775666296340243110586288908819902980439467813417172715172297589810795368443492754679349587608838806086302544942414338905445206828404906550422723170289621946822550260950220153305535805471236558752375232148297918785647408315914916433759704660090345661907367847911792107508430540706818164409353894421350999223766904610237272712422080051808432311401041030044594761994790534076168028135551163591059966894661303552931355873168798867512790414974093839277127356666605257371503867205948478234661914144498206111878619218567132193089355112772766226066410722948723217116514528960139021382169563553247414528779175224259326875705645480581409314176837521984704580308302403982607274876945476121167044820243568759637151969414271865959574619920988249954421104595706846867330510499473347068969026197626320322578535777369087382767446477100569817338488578582102595892343890512970766698020495127355994053167424873266699761851554889166857883166129786529554011105968510097574733223052583644564275165590320677229638742300050365714478076020436151851929927049366132619986152643903502182824530280748670894513224513486350372611822696476533690069686919196350340172950913235766035736191300715290894472912018860532496419276254597485458153541122464259783748667719661207689780566327418663094092085066060246913358562924926524163367924222146033661694201751789040651794434732199752992982471017646649766621443336620645460213160201828972284914586929401220056796244979197749012348715428385671067838230705121563619844919332765440661250083952030331650241397478442574971032434857508841419349623672353790695360918801403650050287198402732822042312083451765565404021821252905305961607238040590972160807438656275863246538465667834848441976193163948410182815378757012182762856118649513796155168130164264734424143236525743346569289727451999021770129670297524153941552848684880065751917464107868960339764037336673819720238462140059808071677760677741379949717258619476987004805106355743280712718241755462346674012216774205814980067634902922977979583109443117217938492983961724935384924700733416406278511810226042356906352338896523106792050355224731265506633917108729946830014133378144116663375273580563076885938225325549533757264505775859416262826447767871168512636395038549458998842624207336088931456813769663729112226038915274370546050268318993552320250870921552364095765849917752036811910298620056946078094068480213632724951764705152429426448584702130572288181781955354906797721879256174222392812849633630257891097471966726378408512454953187067112810778722993429835723789363807618402914196347511218037958523384791584711109719764310617187190499374794250987515500432832603181978975450675978033497977297107957787027925997273789699852338857299648471383841874029525922595678936887681719514160769953320807036996339261627172598256775243949778365094303490119333467634250705574213175696201341489140183188763989462567606068922758984542248489323090769945226386615089385970451667257076296173240339518221531574031894579076311472212117335739258616012120424219217970463092779971020819102586749869057327507336759227485893596165832824282941009728405056711364689754294869103623197235874635035265746560699724394071651997208615561886981192879579522605860228712640930678521256736637833248819273493784792235325103251861305409435405254634703654799058735613503636048800760907950697276058671103016733849425724843916944602001982911890784465834686485205623486067869425669219464017907794729472733545800560419420670298554326598940366457674325735501493362110268417676742363883151198730479448022675167465998984957932466860894506877106914732046949687851401322870358673703388209970664319090665520054021841047195420116172238933971783919045225345233289959916046310474892410819952702726142707856416068366990888169615606265600517070611492627985172640134084857980753513623293383862395574639462538380609862345741820341031528294931920567692781491673701895326880256536558650221722263642494654473304781057273741424094946224629209984348359164948571654154335645377687886584159974709780224657012105753737694931838209324054152931625909073065397960914945656138947290678882478890808932204015161702349596369655770495042508452929475522185531470541949340492830141035411444421884523218409058196112920054383330027524714354950872921442555984361872698949197272222736903239610298338936532896756304615331892816054043486430393309305944436077891885552506656737220826031772041489333477697426405266128168132705319857004028515057826594321828470082545718208656864176812803053183962926086388286545774652230775094242688593215624853304512456826195362051125774131734921465869716369023539724755918950765549342638239422030953233874766056948597132912973504600704325444104585546321277917593490405532676492405820394825738150264945725739153962888489030777266483076940534735216599941143706826765667922547842807453576616966550456504051954471108157434636962085507396598753214692237377390702634316392497395539150648194108672351763068237701393579385840924101697159549674240875240334913868194977113999930356268164125565539700654782028705453741664700617585834746484069055982551493396539113226831233107159936180515927957635852647184986644081441390364053086241481550549633985770415317679556004031279016361222218751405016605497347527968456816673240132136915047659515924213939128122344547928145433607659031338686181169146840353541329988144123091797760833145909642030944817796334653667024886916360307176678606114694287591348699205522470471178710088347390868810222507082755894606943534849582995363854666479481666614502723795110457037843238930073086906807846551542974995277187613550136651995697837981467077223646789444893636634319944634069215337902009068856256208477920205116874599139168532625588782282443779354967383937342425643869413206128062512874827568224533858061197330161628416238672605962196420113355661727307357939363930559579659903840078233686042586323459118303896891359491853327095434370933913658700677873708259968090376027709622723904329215814528954456298532759476837666400191385782938752007712082032010658384510459787684480915645797706984685792280736258163985665048227743701935925978764541730904866830416150968207648570348382963390583175734736745152326787956886709105707720123178797635512092444223905444600684304477545963693415548383474097504926392028632661048300800474866395664504757729981996979195393025040352715795593632427082776613542808843839435077939945269197555157598604587095797330537228007421452950942348070532255524958911554364004131359838504324590678497023901708753898653674520746301179369275161950290323241722296676163484728939308419331410065655781750243510684262494751172190617199269172430917907048219900420514079697217681697372085435503747502147742171775374568575156839456211808266956560025083758478405220133111118841984844995798811503722310525538200044012006224253471622664598640543488443096736206214616184087326515608123104261030651883480632484966346681209785912398616832049118449207104547737342244602208312998811731665953554481601872859216940709283956634679127858393266990305532894748592594943950083757734099701389563496178501554855454609528988615295537537162576609650253479056182512550843209436201224212317412109626336386935842458543444207434640320235583221169748188165347778813706911548147945336660916319120855866743127350512443229244107821918410140410710037493974730703644377247256807735703889752975993336104814593030698704520465800778577399581799744887657598175251354103040488606577440104129597647186771843682183999822617412879128293472001979478053568662669342927883191875026206873216299327692531726204894662730071931835164946394891520015499812308066011378272948107251475840722302669007998500362640566275373994840492121762838647972191818561652123999971540206136949690489008326045034594751006211206210767699346726250228651557403949589786637615877057204587090932978106680689845626255656021627681598024277028962237370109310643919056098871051467893866387075751071867965310942265966464498685167106900185179229303819755581819910784197526295279392373423489442330827395281357621695092823735986296839919056236766059849767104104293743605972563521510824247308211052273868651796445160910886113066194857593048760473034561052765917999640754787512596404295762846979883629587909056652261040984218970790418135061474134831796208784422270900769900241113040845818221430024594043285089704682626451275362678595214725426422651821711094770193105811001901719190558523578641055357103832528954048130502217771991406985931061372476729223643372839769862596000660846259526294383004564948836040584236739586288578335031582437272075990106608483440748960855643090825902233749780377994917555488188296986414418609004435321044931073417653574965629293506980905332286133671879447073708799826280345053241167143661303648947271691383027083166024671084786964991806450287929282507381361276116171417872023619482398724158536127527997682510938315307877352512259153640161310152564090661881584099083136993656470828146339600485386157517058441053071669543987094977042160909468527648529378959022799919854688013718717606757112793021176979620295431144099417047881654137795305980108568249722093599141928235180230720251651952258772575015332432297671125475972884360462241922586987508051535997511699804118479962804109993439146183154068048996605325420708035653560577526188299615807140466321756883494225175830317985933057683963262279709571689008805400860165480431740282823863809850953076067767022011749064326645011931247028386367012433789739238766851330196125379319485124573043127381014678831580006635084902905104203805094349177029477797948323728551401198659699369194071530105131959784969551288054351485429055884001230727589219114398621812195006182671070133037646573508866110506973135075537939055253475707019303498552735841899649519104165566987243826745863049203683963627777606096845727862498846666703505119540601947356124429323862455211236691487677853692176633382263139267106561982386201283401595744478390190297964841953899242974791363974437812429842439072493860718598852086646147607468956706931355718447285771646059701747029799737040040288956745538798119149118987669515704623843739333198124733364716153619832340919006889294731903053723505494627630429353604914411548171761508797784726891924970294637932118069285778109944592606574892391983189869197669854799416176529582135579131641172748892694741811467228833757637598347228295843040667526933622254676990989739724979303208436505029408050045403231533946185924256079588850447006839447507871330017942458922718604438731148444522748576881356021934660629952109708761773346844197466570623794897863768920145556364735821946228650137739551672040907618238124123500256622124734510348887037700206240285703726449716006094273617894099050503185435653873423631037611772394870281735039166064848249737537417751506679336098108483864381303332086513797334041834460702081910250574444148068564574597635200869826955210625178996359792492378284969861690983324438864451547550729821193228394551152840975238650315496701274367249000607902986660700058507829049630111664992645254812277820039766059590285995373625338662215458885368456120893354981071467577430250401395662715914877785474098081277644049854375867323450767925476455970474334584452387162754066417378812717200071740591768277279218349297186898257878446015906443346967212857601893875128768670512619183818440566194780830646794960048273874984493321539578834371038551734207020449192634536891188937030396020750555715460153965527430099475583848479430815041153454862247865258885317119496238103490123733208766018820469422403531915275668660822683640866317620997009039128707742184861022838988201841458018868276856688526901710124069289190664689559062246066887882846295446133526633476660957305329354833618808933096327993961017385990704443229918858302859843486596662246374212625576302022088955229800610255663581719252730736725343684664671163809651226539322378110262959311431389881736063836674182013816904347528862503404971823647480681420492630051077146483503520017383890319994133525450843367225060727848995868635539705699433908182602844491921753032189435599386059329997316812627943860409836041072708344933041332391925340136411550204571249248907390138782352364801173702221086768462272303294831988660876658114568286383884415506409593331699050833803674763114409828510890602881053687603881912079019571577813071962256454958129048115311784783057776776786672965109918658323493081438785783082618974359933208977733301795584225637221580718620157282998397462020820907586579634171040743178148236492858145781775844207073139921164684449719441550671132647087847663867117518905267941127660024597431237136746634194655364120709654131564697238737711128361640761928663091170223219368102106148789400942013420614311780673046917118910290630496933961331464051332372248895062416153263965865852708165324400777526361794340312436509349985456404537673373675451745604635064577738958507826890418754028608527706160101258886012138798458564323490111091610465166784729543895276741187973937950960361857686319605185621186799093001241499785313795041620638510384040215652088051408501797564738894001204205270596945706334899016926667297407342294196851382450455777660567495085332941940435578095251656033526032995919613539581874851668309682484019589040888605246478248133573619752043084029811359965218605207945895413079743477288581181656391076024565111298464530147476978669110190710687295729170751104170065284990388143869154266933826016885709690161149623799769190387086249293904221083606119933635959166747077117396053095296858621575953825588747069501505708822346719570307809199722361867704769655482955305985585480332841875046427302829872696706580385084780063766199550544639340620759226479473649108667366724655155334447478228603421478566572081209599060752540111168701712392398066161186885280197796334872278543723374569580118634526490629142263291598568564799674590035524598374615651749161719801103786746447783934460641726257655333129816068572153016632697109079735451701560960600859118747601021928366758154661934829061937100166557067616626652243307264954158184575998111613843389048648547273211488982484229759683679706453910899424824056438893107492057077329658154758559017286268076729349479719349051922530686227018694754064921461086860401452905168341111604311534456370596879353848676864166057225511967069103507319886805060022258097758628895119411364948619549119060276912996113696339694868138674557408386800824279802460599166208800908755928829976659759343919850220056414520238797128917379106841367001909945459815511308507842191310491657694156492428562550787270381406719580172091015099571168650357448056760016165239708533685067362729122934384731666301971353849594130296935323260545495797281857248231810263997147533906098149232390070231350173228649819143113973462613260444688365327660697158973323281443948864314631981170006368346825361018437277885935272581835479274839192149717024963185207585794798107995546220484486803053822241842658680082930433938324201738703545598203765704613364766848622244638712483112748658542141966876572850674629693023599294410265468304138353263608063223025638139967345674245523852530222891727594813744782917923703775369289714701824622529730234537972108232524232729102658536918460590144350565096813245724671777274275698652392723797160218557747692638127867928597807834136223701920358596557217493811629716549480437940898958148441525872282666606175562129545983045228675545854708607508217940501521668496651175359740755676883654152458456116899195423125843340081762535999481259877805246431365914651018905285145955676903766333203578562320939469677598127185289928297301539478389338054633003563779455280496242762539658018943387705092071768180670501677666232760347740313145356228064181118859165979361793975958610965255832248256637435888204687473760030726940876670724926774115202888327229074619115297039428685500526618646073066287980766830908190877688664567837801937505384381609235281566519665561844478964064014215099174959645139529455696203816455646324795739468767010045134672223067730977650610705142990240142186833794005588477944807460448715283874926855168358060470161201383128294774076603855517170508166294477877749170223926365417653878957104629302343601993690697419558183085845923402645839007886179833064600453805004166300504358017725075380540528477445918549739379085035363767648737569303643119855505793359017963085527810375458028659206418893159205051450813046538381330928122718094527901973864927456635604607595506995518279695376189905293553833857420404211015696140769242473387381218001070134915840886371965930371122839404284020966171490846507969352756029442626867272421725214979500234421778711344728657476351520445713752577544827885679805056320962374534937608458053649096672688070727229126363230824075187430003610604860890903729230413389696230671767958702096516849313443317050883530880068194893871829631100043685668412610865705910364076943238921127312022788748075786816943925172391764094916053486471181457369486846722791116602036390435812609862239338806946598067492620150152148040739131599853261372359398669981738094711410128727647605719178366451790392920349461740142090469509303192117737937694121265009121913802677919576541727213414298189222307649504425128195430519690538759023926842943072649460854814510332916187695567471469095324803872655465322553346953584893667540741027197984148361197278750341991946876511561577621798909326804146922817179454306288092864874650672357537457725125157322994362262947366546925772718666597488180607876613987662513088088980436832784082601644020696074698398917053461453445841881413705105945702895335653328587217232857831964607708853638740380342867183987049767180798698596243915716300804515693783413003974369694310796909428840926882151406528128154105448481602328995464888016028792488797084799283125434224957359952805709907413698916581955031549312480042365312474740803523855499364592930881380540818076943803642444290344633470869134107922392664751161825663225624103729683310989257244740643099700174154741918338678239797814246026792368687997632557461460940327700126267830495632034590217730257721823911300125971561247770146555868833350353963535572170304583949280376290425145011123739417215104360372178057538384440447779703899948243698186960709606418263219343783651562752483697622322033470082735392588795069043855550957418107352094209401969563986821933510934309598620317809103122781668314445408972019874337324242545255822320121300966909456141374999766446284468510194019399222782826548181977820482891766593252377876484498557315583764370989107075475339314771604091423893907099036598507859757015950143021082271780391098499788458314378854290357064760513744212697112095975071554393370713579937391484307124650291855249693514578619505379768050630485722511684213684846327309045564368051526783170671543361615410848535816844038517050702822723379523159166934374050146313671823605632838400953115062860576281258215376895697703190006108552422519197637717559098359819346075120097961771229956895200772663148322698706373231390157255760164816065330243668984851287607836949951370489033502946301779767168492813372191024109556161069625206675658537377432226812325556508973349283742404192530032827221382227552260349515209168262721987469412988644793527524756217258248169278858464552340143655490225804077635195073296986058458379705449538029636964912271120789256074075715677129348680865127233087108505647147052491639680656596283355220095656596178690554338991339107745789315582003373978978951595328511844946372305062445048490482618912476776178028485462772659222429753432571577801643857548296988858167385281492130161268714249580579671503491767049239261128455574156961242645099232641698280804727410956879778555466264024528061583606736928284009650790323062883445019663164693669958561966606615885017132009089496909216960425792392984255937527072972532283713162936075156597301138967463395496360503260953841994518899945805450930787459229042733041257539432753106991558838076980050678316531196155093500394497835665828611933645446835544800059995920168013520246125370224128285554502428545997542418731843125817398910408094529237296283286713205632456984660470032724547170467455292843122266288288721848835016054145124904704440102028095253442461991157438532549043357126508654079497422726163994111724035978584379144890916455451822126732597283515047479913932738034064028139006632667248433347179569256045023957946538713557170699078638789122038577363837752462439655824913433120672803720886759725685059365911502237852004907626948849039851232345859613866350895602987588273389311286593024769698094038126122696863301480465353565108020074490906696875504058626763621948650416207618237955108772729012899534348999270013394315786148274577103895364251804864339172895262474716022628383646064753523809900788380897445919384172374763799599990076234368352724574017853715652477674901788116471670029591508417684948237694935415274751179472204649060053352008442786883420986819770855056979504001303144097250604163115041495779189924177596351238276221040700056368071727875266258493258212903260401669370126102180362639955189682578610783851371409230254973705743901071280675589165387438782394970555263046604303060990059738993660023332940055618007163467738004982839109047147881612739543190884495660477313220158327239646642889104354961538599175617078259616154643384579438008934432911064007285549238404693780375934867965895309843964535549831971425320241820293795117769154792215327635067772584127549795691411410988298493400076356272336235026113603852225164051830916841519734258967063754410938465959814900567283879091417769233368015114656479944426359540065449699220180362183126409308308588918392071766970097383687435961616359148172478662696320400611095834099763436387737606456679104735327016153836221939738541527976633572137325621232116578736492447043776881457114521545437355226574199211426621204586950593180484601814359482921922564537874384708057120874103808481778504084464370377755849699386604997721612977526100691286720705553680754194247569190584199703459619679345203819585169642374736167383875526393606821937158974715672523928129088050254509041990380254857027603760037365498035902664402933400557083942354742809632631349833092998553435581241174567644987274348727647919919196974954779228563397399467059486595526728576280423741326241818796737391934963679616215515689627866351578126539811595760348988914586340927645414210856581516485757440553664910088403429986493085528210398030133659598016797939005005847173232729726250905542064221233494124466651771432558538489919658013452263858618792216926205096631371266422713426116949451316636799786229246135834862075328625396508856035941479962082637120385537383544138860718297348802410787130410014322482744362365793155775562692668593981204460079372466629885536752519445170957703178445965350962626469002637550795967894464388966290244671825854948476190038392597184105382496656815111182935439249631548420118229365396930419478748419110512610944595193706968144052673206701981280213271330533238039402083045262701790597297680956001079923270266899442654784325518732669882799407701138351082152236854470668725827118923506822352965550271602050460252944053270722247985661644990335181883795074301417170221405724033908020638669199532299107820939158238741460121874006267615601777283043285200406331539009533921933092101357488823864580680754975147068805276896243395224782571366232694495124937599997013936292507506743142018110358837261680873426114502990243670366258572800573734961376147618584240023178157883422843706825470996894453774486652436569792398085464364597832957648929429154984334820379607210841848842757596144806655738197606737201588207750636121372289467611794905666201027927939604859328523686797967467874566996010444155106242710234559869181500093245638871706284901139362312796782657163251291850866850050888004234603434456031342738203855431564550993010672515782013279083840294059859029890824075979463484965515193797167704232856722535881661605195100948759801701416731646764721332621660027638394062054384291002543358958155533520261043418501218283881157425668003343851117047849093919507004249290373319732805739557177002020884999373790960827688834597248486930722867599796451308011254568561511826523203974831869825627575720411924058581207530341078032353711205814313137552588316578861586709256402775349574819529265265037134099174642896376231107549938123880562453555560652952382249549234802294964938357206105171684225146334563783683629001664928347060182278136548512413468627846363214656799780071676347544303784887649411811411285347042733249802299091806398147748682850430865109994434958294347710523984186176425321046671290126585363406053391459307851460509438808193921954261414583568625664206389014169857811510932781623214953516964147684473685864371159852576854827255320694038686856692921815768527387344834650640357551826888454800224415522662617918300346757679466742230300679841089176770816386059410649686028002264972682249175149322114124063206482763074174238410235081841827161092596412953960451396997339343571418866807703064827088975697764802751802940916258950175387893429484840550557061655367533294829099584728730303116017146272282035390900664896392128776847429808410321896688611796225568042448785744655092838661583992968490618235175224884854326264063741518365502654432668836090134280205642506186695460410009693716999961805462793192430886232681871353453632914757865465954910618620084281222407684473728649821758389375118064719016284193593705298695680524645252717550706254911434088822631306093972002674037629590229879807637414041513568705091231550734072827502446768954128168441358651237008185856532823464897854380792547099721558423447613391491354146036768206002870889482778194438677342607870251535991417422824580905945043816597230234865638794267465309961549561680508781297746586645796631210076133101651470176294851847783421204511737447033499370653235657591918299059645151843384289782902643445374293682781504171910857118241474843700998875503361550125994585101091754354582606105265632197300130543349716862740969088208442572268092430765194183178447493474162854372540613093180313359777673037502337322158370898433538574226216726232730140195315106188336582315208823269971947272991959394121887831613235097091352518818455413716351717469366113555326934881769603116117322790130718159793866574249209942167432332496972370453130924002798163805225633246940222409635927461900775334750160355881754587682870075339993112745712064467659644483627064341043846775263109794420117983336468647026698445908070372358978241417262275242469065969058571951417268027087107585434971415598869790528201893326871985347987433530991184092396088994341492208587552772548365034020398147381809702071983858131234626333438996102618725319507323801926596597713764017465045378511321171511373596570315259294082657583154254951807666222299600548511539190905782523615892610573192282687453367496400722100943310560616768311955390633516484356171586715846122859665826402134953973660553478930145680812624965939562206239264253565205922945150499570657408886728941959564039225857860538353463813757330006390134332075696304497427291798258968902135730552777932744941940342059705520819037816046148309822540217001143353731308075190320518667897100941562880034833284982560491187260865098641987814392164439901776976423180303676937598816710485056791206037133699272129001433694550941753762958125713113213802230585387786411257743328375414769635927137304634853825460955050741065289534783102735264959528798840013977683895265473078263634013948965414673149684535971526610356308288613087660829168527609403262231801250902336370625376201133267909267489182061265097909939302950910876879098567499987874562129586960206889012431021420681725816875012076741432284010854233875793576763868849461050186763783883384071031614711894655961414661680692250998796579114468707778124330610791589048579030300410297487860090164901192497970693523179940020058070973005593942440313455223431019238100959097885648415379909600228523327305530823363961631772653318001196359366269590025187928521368710885762590586749551561449842861067320506316264629699213615669546294144607357899717780213990938614763888731891794507086851591212411587535913113856918721921071623501467917279655140768853603354923324037854556687852014190181237519353969595434240715747736125520230529332474794428971914464925325460453015909914400369104481518650239539833568514100460172323408398413126469466847104616250661228149506465770065654801182170003354562330525267575900954707012641285281832129455889191215668010312957434846275404467648991141946322333504143382748129890932822190306345084395240058249698000446188439490951295730745007618743045401274683580017986673737027739758433473724477923818405619399513490618453257353751320393536578769480271940195918209050131371408469389652833274721267128208280388858206612900609909800854968759471232118755210859701840952373918124122603017569474133431372468409227002133081260602406854200800165350175771611818788265315808079991883900946031409787341993407823519075048507811063384643038885991539735093166389210879033166673444769320107731641976933353588057730670339494826158360765635328984440393665989143910322857887225217482938280834848797596761617922920600022805556876517394028077083017521566012240583316596628529210313652780607635020124894369173724512362392276839967035942220458001911452083296682925339653297669505082462408971195350296828475285200456543947631355746593850827124342010799022541856667681930468749877076287217068359618438595206290997000151097388029726799640416896166717404685397926138983564293581504829976049517410015477828118070143904267180383778588705579011984296718578047981511327837122573058604279288209743222866844500789863436971562199717972420623511523576232331542650147591901440353122758843982745341212064297859325691828761974026430408441495945382087047715134859440188339764784655016577271416718942541464363805997418016416412729195505592240428652939441056209451670773379120965213445824500145723333671690018772521452656915588718182238519014947074396289116738533028937348272863114157346785436118633094547659470975936518330970146431047211295908300535617556367979378875714175665674906693096318436585549471795624274470592547416514949760812429964195887181238146273825035052433302542310556057558373014581290959595489328402309545848780535417164138812882635558681257704502863792376849275535938821542793636793002784362777594087118132257176474068247522881884632774341098114808151514811523718000537063780606235127587448291275822537726371838626991777968251184189400503185896567573751413065745147804109254587637697736704317200764945380219726418811691295082004060589438821340341258718628478188108188125673919602823142959565921670789429631807117261815838204420709590930757733927594975287750374065459420036273532712538318811491680989773272041281209719992678963337417065377730541701941502444993163184848297050718036311516339517266440763430270386395550118286061988218588631834842934423198705526251880238044972432342264200736103604094346000000893903737017981574755149283323200883283079559303588196446728858134616102999053457315218853193829577510495930066347120484715338490316162607768376565178231057668758395019421965341095333971863219044281880311233873155974650613862536207458256310789302834821844604445688977846962752380025554072149507467141694529792447602909551789785077999272540675570789774744083672286121590571223618346357489867656578941118639511145676754681635061173167573161775410292485644052440392172818814999024695672280734366596230987528913022287527927981810764657064691733811774847721081137927618254249054767490256633473317205633899361765646943237199674685105251764167885272462240096431507848486237235074096433644783994636182880204203944377848273027003141975257282712769843158285184586341241467107157225554839212491304582431228411534735338746198479154074378080857393447372518293346278786520469577285244107161191270200056859358582427185560182789387630237125911282301981732149088890982207249861460174933558171653807262557000133109118512997683303302295355111996818380529653254336752446080733167423375478184197372539842047570534630694448752922483539682177176594188059034837039861472227753310961575899832281113946723165739543449236670828432927301537387877553751557355457974131973229517527677824442805582646071661374134030801525496019132949976650919610399813606435685719569188674343358543726562945809586659751717567296767860660232807408893811109734584316940258996467449800815051140092788729066303591520896630747380252148149650736262199884293758494617501330674797311484742819269216897923829212575362196606269929900239118609245078813661321360511914330352598709306280529745166763168977641873424999006238125435659533515437940823401964307332882799276993991762848764311511922404935747304091066495148986389294900578447409641518888738060678014832740531107782197579676664685349397509424141739048292481082779359729580393774888788402237998821094612202287355856214603787263675410133364018732151972177053561118307780942042005601732551379129761067087428135199870738495882895709218459592906603621842269894959920840933331018847003047206901053948330933357205085154050246953014205291155033515605394471702070283676555320390087061005053847193126470481833742481263592968940290939002528978083577977508312661712741300968712233655701653976140558561690961551621923166106228373032894830455753512979658198151506291188698004828708039244025626596288828703980077375045113491715338535501567163764552788410944272481192776589970946400575852137137410016730421661812885712978614259180937407202931543022432447152198395899884290808645500302546908888719371929989435070141131523295464746997330531869857286984539148777898139380036524339405697353267269058757012744276165820224066886717688371624995719899534128239405863180539393700377264179005480205259279665515243684222516177721377165591711629374639326480549664541017365589243690773312496392219821933377472811964339056333860969993228095202858180728630738917637276797871076778867944759812589971891360496179253506006527977508872677905472233119188817745591186943210743743999526698209877686587031431249947047887611297425551340727557788423902270365508488987961093746206926286865098674954771958662001850816607274649537048528533416795886549511290615152043709648658393785942872965163534651452362390968108719903424352423132869519818317004229604024903089745578671675368720207302815605934426362292544745880604072009735302775675979803075426415484557010079182776007241862354656488737269876033236391413088099267412773658313804457949086450121696003636603648535997810226231386964106345639832891134848297358889684819197471692561217802386844400914137879931503607139108612072926472583248094393635407778489443423244416569510620710236619997130226791640202416113072753809627801672779309908692844007658625886103237632622460521506747354814118958951150932081590919048312476559840943416422675130850920145887234213972485539767129439607856495812606941625041502051864287946302702567493225301699570981607622987936553156767207181467373990776718551276009065214657604532524383728832625262581761184162474168132899974460040443124608556145838352109226381854035258103186037423154483135764034388852662831324953394521281676622667696154409338543729276412915297912893550446661571174560338227124590335385835117204741130121728624762498291873188543757120931923856793417804352703959952878139419084032291026078396713711200311067103095003774575407788703737468354931952761664145191943960146852486352165254168321097562006162975783386798759938978111394669847890898685586272369138141845346151394197015165279362159989831028516057225191468525551830825313780332686748629689143335483549512326766012959576686186433001018045907051348014042537419609881398834883932917480880802209360700410867471344023859277495349078601278122706785238824244556934844246557630512749819188926073545024675595778655232511526714327052202577178920702165341425697934307833237718738946539098953538921669532466490135401224661156870842569747564313752191765974215467409561035421677109067381087062355614681987636108808331215666925376349323680462272085918494192053435653900719391691802974462938791362052868435060724059515684591504804845945824884837715062473734449143973367974334042972681307256628821199391525386344429140826749765750539842607016515005899122911793889507287675881714927334350668210699184438230874936579180515727423626571575371167666032699611472830769796177378516530878902079203512981148993886024794228006112041853626419231666689208097995055801902305826299083799361727443617196076187575418888825088292866409969208956559136451590475603799728141387763460596837755434559824664721664479131857527749064890479928496689313713561669552239748832611908250387625666828704117388550394437735665147755652622831696889614097732053677263742833853727548106568974377978895873342057739824494436045702964908001463532773710779567566425507470032277489642736694851417104353105807646798623289032233379701076717859605945820468584185640411720432020792683752441109795289706036710050441199305901576933027086124675317485039301677886606069898944672550234737612497702296991215921084303993910037642104616762012528495180533941174052666176930529772707627339447135758057987708108207501172607171002438418412433055609359381882366635661055804828601417355510874974352997235113051999568783232264141024642366514533871816435793491637896925385137882727299392737676029013324382459317356587055546458373852293834186265938883182343321382761299079481143620832592236318042721607320720373707958360988134741771247135328569156474433158797407307455410054464854969534955209480169947976358312576200629188056068371529343688361263626905138296558873617923156041515257018590072182598643092183082141178297551175944144431097164870737870123126275860751647419707200319285066861630323879813363099431864034747300598187645590534029212651359395570708540424181212312083775274492250644885218313538787432303117935028558859564969982005999232373127974752959394240460197191172152228764595551539796459739482798713462750703200826522689026481767197218530994207425246584683855452354259389144499484540384664821262835299391847784213670235372279183100834614336800312418245778867658168715972712215910979386018497373324029935405759874267462876257388888716607356769357987437595157579927872479060902291528989492267483002853333315857690816294987113717122077524521170525520400916942039782176748591223322278327442161778119007339854867612494748324710078627974459405091568284041646526973361383010388386002193822081567029013545400137159149151818440362015926820681476440266931095858732470513131423288173902259583825479554657118507897724204702713955367895329889053469637393483795099923228591293182813309766081903630727631459753983254632846961919911011482245435696050835216047166848930941124811903188028976997591813988604082408317986844286928193749728713958521763632359271942565426599195061261697798323852796732347606123436261932961378208378182387117009455914799269666544778879161648989659565745870976913726042466677554904233089263006474584424245629930328388511210095693741586886253089190757631143035374228577209367872673292802010111099911195370283105019763261381120623394734880451732251225835419857232344760760911178813155148216924020073890642771388821246576297277838087782823795080840221285090022919991911384310292750016000685026317358670572371401954327511932037707412748574629759027011058728094325411917285317350875816194942460616192871229852948714215591508359066052518522394454877337920676951435882824356855841064741630798803535945817039947861664249885516988838533580924552215542815139231130515864209556850798372883243918614453157816182454717836699081329309754116819155279838406044112874398308057904547027951533254015201474801638078556827559162917648585070342160262201029148915772109472208694781771376210961098544769345044572423031879140508562314913364565714349339484929112352529101337293971877032550520532949282529363064266761771195597572242584133064834160488885176029077733990237947022461037027656282781129203743057545465513370706177573936187937074143255127655616322424688335118771018104408765081330549178717448284288272958612667854338512063259205299006404034593415689305143199294302631770746394741206840936935075024276234775237418951735160982207255691039835260081171352387964972008442207721475528700054772264030090909273403214517059662416764720492318855622500007812078149361377541597755081201756919817397585037407683281839364111973625269741964951913658281871460887622981318582883020461441472296649914599323223361038787939337507681957870945772752306739129868468378362984123045724805830064010467973961851341661752420584867396475723564952750005780656637872300350732044764219659230959018518586449127240658046599416263170169056265484595818395606793507578834814772377082020807755925126809547022731610572487885047478972073836377164208950074798913002962107510346707293459514337456132282579264097430382916166649579982569419834149289715832782636127787718938385088918971543364430923193216151596451487062132736086547066168609507765457611762575416382496209036905706038194721332556372960574928068285298471610296034213824602617264599319114113922988846029065116619520660924642766374395589995702745025191465555537156492278941606764936717880634440285919634006320228199100814933705376530630184686838450329587429856136093535814068626204467059055311068682288130774396435659160313708961567824976103156811504914002013423526243068341476808136717024632276591441434740296126075792631832553404149748156967659123964964916525682140328211643503868098336403076447137034951499379981789074607484564776279661154262001847944339831723810495047021761471208749554855734516282191397800428216611699741745655255724149992098006999855076614586916981340600196279010841108407596388821810848059701480019646651004631804819070493687220795507489117146609594937713294038555846086317883945151471792404684246442144047556615719229976734661988753234587225821832187667852335450981877635231933146016481630534644185537581726559527242663948539123562090496451362147488455178030941719554779256227893245953725342517283652776729111957694001448364480273842019062043142304752907397617688117095335038907202272218593693413634505768906686435750412261716958027100989395693727682216606817828195656751593284372403669377551578417251152443361720607184348885245511878281129318612954751015292640759872332920985320153013134508760116781738334028008808982800837139974030701908814430497703867361749190240615935217261679291404543214686593032323076619836617920364760235148180296721329405227843105748192869964429852357377445969774350238489879008353116346755517036426882799191467964893131756404454694027561586839292582470940153453224517444434093124176937801689341064177031167304667920751490497991188587250480201678360004843901356322003765856581221330203022954074140745072874827188625872586701101431006885531233056931981558931433042710498498815251139507633495408039219434213879713742091515493910197440552071845143060880555261370794977621150477029844150978418972605613809517250077312661211371575693717330618337619099680927974421950136391101833826154111741045553551826459049560683593505127821455063145885349983599901726108115409581060448441738316445162268178332046853364083871199271370801699536018596463011076028992171318798599690852860787832344652862017570957892575586583821455840178641303628030644612866753612126239986496355442907677476542918899920462266140741420535547825853701660032828107906310428993968717460476299172033183832439486482420296547409988100450207322114666813426374456892345856307172985204360431719784882948146622208738112424698953716264419547855874076034273339184509822792691244887623231117873732811586576473690148637936014793853840506236784216401481568497094910045257654536944048731832014086686009141830513548207293051824784209509427887355287324304929177469520579986928272579240099773998352558686981576527852666618415927114615554712328572554399386311716589638548065744404528443614746450259208971605146587396501795644232991184756253582375585150004171240191797567212958637208833427744161933014483055500882541931433166751789393204423940868124566018263848521774051114303093654838321144831345877245413234849615740727618813227717676784223182673055485357327592552908177681112551366264568453260552252447188992205607410304865343048814958394669151354588127705361546287761110193819573911337355758806978354037197460398531394677934039699709269557557664656549234467163472118510608867814917312868322750480615217330310751053026662452884877694193094109109132728018677667641061386019318707423396238880954284263733956580757720860227135256796621051652793819455947905796931495449499115927881600328209060979305933961934941065459710553182754520170947411779416106946142135071090179185468076416380557700381430548521695039481958312987248304794503786137924132801580299210136442524566224158359790422968226182456687484977637424822636392856347883789449883573068760726868126296455122027505276572642004454778143862008775488884483181304251217551678018159621140812463751760740474783219313629363539309601401300530583888990155722748073132629254721833928683202084794139695663642626999724898181450294350349315561180641325393159138687908977969776532860282051983518341501026077809625958391971021679546035472157236297745311035792400071286735752578450681138799694830726581543331061199735360457826747850148397835722837501280198101057435797379837222324016777983877963057607446742586911906486274235439378887183397688540848650048204350563443885223758335731918927808268644372908939223631107080907195939455691544546481842073129747058442066088004250878563841081692468410310474321994842595381861510495374409204426146419276229748914256364933396413450397740685692663786126251122768003480622451354269892142800175550011715355521743187237936537938548930465487074480080134679212330006342912495297299132560920029882299881009737395248871281208650247215191606923880000118535843212313590487609218652605650037216417199551025149563661613986789594253832566524599102845256261172500367885261617229135629517736627387270339376973474799019359104004950353794139088442598331711283317513497866348284614570565470195419367506450606404042498541980061931563319772292714909279183790071370614666889630495330430723918153904880780064765074374618478785274757529743560245532170844831105079472829196885998779902776770737015003551675742828366296281494932519918623432249883364079968756728335967907600681610097148007984340401573629287897319687689273065852461127259122416958628054042699248612181764854384885039820666724581602945758689289189722276965035780706668185993804482717722655942817841601248197463992892889062982086244044260901688169993397948384061509973173096799251148567927553562644437147995256862762161664470499265310785073884275638166872535743063366341852264980995051239708079187620497429648114194476140079755401467794058401025667798131427880521006139687574603319696847414831080845700688687506630231387203895959294390365253666145173768958171586801213565565308077434063886467971626572367073536741367326873747748110355282598059437971203101298752312101472017725860494716023536638534917362156556135508225813164636655210943654913917121725192606445089680962156316103615816343689897783172742016966856974825373683898146284779645387478334742052161187615703011275988523997567608594825460856478348588547920926885730424524952348294314143571623665667149342580073255978473961210950073398918056162249480366870515632790253731892828226637063080402732349429192760005353783197919451163236830204531894660873251011106226327631458381971486254124345081571037460829304432599150395623551732390767083123873721479265808061026547869782433052099708180612576039042492684923820200101050437874016497317447026377062308636607929221387408527888961491445152893010706687753381694300561874725138999993122098091569591330644751899798686571114099399930815357463010708131430386493217780202654274294401147972207382203699510617369578877498817680395403009705195313290357176572583979910226233267969820847214572192536088514603051914508554770221998266906771806632124113298476900966002179098951271831198168128318886905693980921800394160592815038705821572592572873037780544690792827431193525957797911412956652280401552389081947671264539390280648510207526232902183840084350479619379958094621574797906857124931060221565764463200528088127719888236990264236981552950438279787637839654723062847438124153194642925632517572605931954243920051595558525420267059731417609814601933882007697952286133057279668149746866591454725452289923679852175282403559098890832486005714549920061597008414959087531513632374914044567249382969451970809453492076079468051079131939015725701086797424500663663042556984983806842081593310327136402310973040402626463873996750238769579281033298157473835935410646162361376195505846952620226103469093915126267783729749143142102155529052536413397531179210868114888991962222119268544034839806057298523694904675656995254091197095382716055060639049038956056729971591375132615144691145118778708354248277945393988168215075630636870849026257432486928471671200030347381949753246057225164790895463209419260481172068251212736788996568628392870649680115515588472305874755849962396823191634880543429332300475769015310280197525245045558107674205302459712289398259862306687079659889605842780091946736140309009091882353903958891941922321559459686325031474417122297323627999996940516852906150065360438980283968093127529146032180039157371289613038022056171533881225804408202129388227964255741838112867233641526958685794886940464672359082984591643891933766647353446717409988850680851434857548131275792811037697577545614835655680633736235797265072050161208312330145773225131403640545130504962417450805973661872010333750853311288792710880042726478595921043543147405360437136239202595483546374016057528224409087250617910982243987617772256329111993472662677677107810297769445947154048660409685191611395096186514516353097513547450810508619835674121915377153249813806173451885175355158705921394716677880888334905372020293406345497169521342438546171494196810238153642754527628161060602351165078109441224592179268713760104562049320068371658840444190462751039867497261792701197345610781173985227482736059520853998261223756330773857524139467618386542342384126594254571167057538389999299765434329049666387670696116736843463008470043893636450868729048147095199988274658428551455411807808939267350105232973618187775539461766838948648146248502295909369805527624012403054435484717927873928050327713378252445269738694897618098073931809094038371379271366667613004074946992182928753531516183800022698035351151271776818774111201357012911464699713306884926187748885444102301824175451771252129024600380363791992656694271669164853314571426032847985129601709885797411486211061449647901908802280913553848399802162209783558710704102802498600236623741064783041223100257520015241038989002418437243189051801557861820776532438163618704257753981816458019069481077481751817278985828091111793616420551823114529973001107250873466724567842561774442189514502638667158457099287103291719772056285656397481365882604358097711629862449948446250709053090178482204571206221031992841844727102151458942352822314898393210501590016098234698682122332777049984022056891055921880612638079956795449283248799954773229324627422767122320755406300877757090307217196144394968986649777521252597898633130282717206990586720152570933323926165589915642803008801024428048138593583910481050041871474254905516694350726804666675538656979432982159764047049642072815195861431111964441742327574551167174112922616390832715313232753939163635712886623619942946137011891577115022185555281170296167403694379545968224099380628143140846446213699399286658460959644842542405919532221774661241371391118236560721671238445571808090118486095482464799172231618145259049885028538260104204588144333881071027987573492231218693651898276833868260234555688990994293472792773577262264773058600986188554780877590470195821032396885132327055074270826783218701418023070853856758756677456924709615698659634355933577395709309559001866769721257773185818099256056297226600593202924347597090569302896962177265609550492149372255073674685251785394166643636903232640034674454328948935504833075121496584498948351926175407311156880339611532300405842477185318021310780846198567183324179316523114633771319317732466780639568102698389354174357178157781286105659127559040313860820098851687091183917816120173042183240574206375462662290168352468694747650360033658527798614399580411294027201390044839429194511052864601561508630510408930390962300148502755808242851043952080666504308355399943639011153209285061116586421473449961399200097054597966026745170619945515450017854633185068474224373984743749041387942824177502834765690527431958441250888092870842045228795496588021939890140535420882788312034810694911662822677176363213505880602272561103902937207792423078611162100708596431575147485834396217809997022501023662646473640375858086966314400304366811504570781353658012189092015314060357390220118994441373267833210563376510589066141988652989990724164012644727576123344798172717508208567658235032775128574309657983501618865556167675023842672058456014727618983160688079488474946144010428055470681087776052085143301959403817767289777214706250660483472727077494384681185420769670031980230968903115011473323159988930485263228442511842987457449981595034319245085701502469028608196319894880401525341624095683970104092780902799841190655142343085360577213672838804433285578734454200021333414072762373500592222365014628801534991972859744120185390187171138939443985842708979130308705509176041551922043794906921383077377595962466510295615323100150481159306325539838842361962100494277914179880096649203979302340724547505495040923396083273628561061740722261795412192409902587341038875772810054706708376288084347213211247527066707370910840356430666386914815897478963640000315244955630844683764352160954247748230253149049218130922404280573531492844060865697651262705191386905844069715387754888429966859801784570930815600094944024781607798872969906764925087222259715665251618787060600495979609558671452541512061589395786892829295580979227054183474950969521736683408950945486976193222349208368373237594389462909718450063739790744328101365028686008026688195148914448483106897133750497496414927237543611234941612499215600775283225224946238847090130526493003644988551173441942347611523746639269555486648545992054355401896437816030339568285618870190556183324465225818041798075958587385746622894478152465583281566902410035243047638029126787693872485728598931513613626660531063602753557196212001240542920259077916310010115162907253608255999221902831328644487985876296342700976739733251254842857946824361571532144562259153627922426197154385335011508899703458341573752092611191699798073495461470943022691103905865330208968374551152511214957296506405169740304428670449753854546532926317920374148820426839175809353089436551415082864943175824923603803944631313108285823213685828106227029696594591442499512704029548261366929632889932706841775910644117543895652688652471013261436621375987803754029374245540976146780489717730682639442930712559539901465289430535507599218905279242215096792180875031328188750964984064898876870719211967110017268438436272160017952290992571886056156598516399718056143268260451752855100025815769057722373698937956885191541681644659593903906173144702759369083973714722578494599916335242840019889456307492228143273245479710604073359462907978552260376475791265544739408488026530074502973979585690523488540122657104070191544929132451815588475016729176607545275658129071811647114384219142918850351244853931489567184624388000989218335905499188970101963700005119034873748361307202481182579772403546217240609752856378752579796868768674031056122582580190428459027422058055737614992332994457356004644152012960017485636089058259321321084601672306383677793805666723795297976505143341990675030347199322387192544958158971903323524315568825815752768198723644424883036483687194440210278855848430678128882135106101781361941332225717054837218772040553139115304604297445835967333330071410310810086074167208875804592253107456281108559490556101352921927693184168924261466892234729450479868811628183202747036606373938589689879189878108799356659693666059699924101398811657971925838918404659511880580623204998596714474293202067707555936134252515333100573038903377832838170905115670886506279434659212032878323487055388859839134166764956758501459747584318037005565058525108832854803775383539051329421185833476093918692283787661817170907545578662126901766279311531420021032208727037498356264276051653792427372468464773569059279579880164185210418368649442736104289048639506732825273374150235305569952344631831269789100331846210490738799052339877071898455965087434778094693419359766775553578572264061493860108147136518293187991912197892691941277604778243965557356336194053116565670465729966420368909179940504014457943465803040001534244502053564151050444951956125919314437536959963492300766801558390039020525059129892327305915487384193455395530504843162063172065818369402743116955754295322322434965789680891985967290161457054801710875647795405978907576809320321541588289133051285726962561933307635516837686438992230826866045069871491804721477338159619627394417688900104745380905746337426639346626141735603747943881526403269548914928988218385991128256217943033194952081462153394002066910075270296954053995405449894130957412884544749415183647948993969179927763613409266710200142200732686083001041357118844204101230719994100018395154805741976593384364612331830822944742360941745017712689332554814640557363573537091657216418821217434580323177996276319647783060971230503374462129453862572196083148163670265163938008294808796893767013634159619897730148469113212390314960941076766801936732416771480600894014223768421497062575436365726225407211293369466530463500312345747217409582847348725724838511007002110844521935653472653128310883807320018475143841954256005548428216994930562267893561179570552791485410565691089496214564784995146940272530315276783339942074523202161592018403492471106694422840767815565849758971192401991228499469414646122145281841268219479392341454798960665014276770068454555092081223046061866334912112668731551059180714724448900727262533858537940709262245627785993890444029611301999225357022059633804295031821764254360053755403542521772252031094828616377278146312083109370302284844545685634110348993166673845810056533797641811875239596674997880782744051004445383974718170745847152216660898835172896486563459313002620098844736383217173904400538745404520066353405437363879600023367937246990811133297327687228743203650342778157156527045921827610182536893498061391084007119865275045809734391756630790209546393968405330240248626177199128707096434700663639444921521115420699716595141093913063850799938371433627832762895360400912854808654567645567675344261086995482415179650229695981901738450084531205582011065714374941351429722897549233339261440184757254821050926638551386523508386761740354174748852915109539476412441032154540481551200601865162880474357024235151098899721358326543474462417895641816074146182672056910060201024832363311995406268529783470112759589798735446090252834294038619602830743597012530921958199917220959150224552109992673569424802882772694396158352042470084635495837461523889332534216884447933813206611969532183972274653260682455067452839234618284942366378997821312543997713435050200235363772369669057864369586339654899242706747253296494332744921438580583781454433976689602550916002714675155470260280040506709438078514255759680691898462973827654634301456047842649949992567571233394651959903915250342050514692310654141656628325812154281618336687914742023935522283401902277978714140501004608551845948852717406556150817658702145492463010381899459686751074692283999856284832418861040527701501885755413262781149103712293667203896402403832659631287713969577824400911483459331905775936935236206915784437378107468292741628012243359434157671250468429514716446468776123191247893698715128872589800251018830180549742066790751943110948973414052641095862300483800806682989472499377900643066051739376427153582008285174894443894582979499779664008383005609722803939714236812512413757879918354870270207856463736333737589919442021879495362010777801766454365768100531799727468366907772167497484746311326597149944041249752398538223429244179638607353921353896560709103995734737291062589951414766559242196273029299615085257266737094791770211582659225228785656490905350582519949018172657498291711698390031010657955636106936053398673419421083481233434096018778554902734325390746447675834524040770398146039388339698901551402234184279441732486774751388454591755197879706715436444067311031303782307825115380720114725787737049304220608696647464281463847154995056621805671591116115551036035020147664898269135134609569990120112754485010242202374529923374404678323205657199211654599983264695508682580417366364030975448498432880696950206645791584727582527426779687385697581888560159872546382330166275114223020962100477688529423704723635473823232979740051143898594896279700527592441631410765167180818018423643328229387127876295018362104807377213372485075273451009687493449333268787450882451278718321102668467673002385995868633496991632641821110344118310208725498417198323698973134378644398531322496974427301869293903801036277716201607364977894940078138862120853289064147878959762922123099250420537519266939245607257380761827311926491081794742006352783883871710999847112860610110869154192992814164750180747113249838612351340864410609038036394716207588142903494194268710426092128937069581931367031247610185998635341601094188719143743346687582682520522598825068656105946168475387911064574893955944382477980826181766544527638541889319641509477459589725811416358177114476230265767484914974457715251590649146377948546852464551235849518429068381579702911743566187837186576121193715364223539638726139061270625050015262473537466485573186508271219708202578605910271784332468146638324051160411025289471549617208981902768214709249560523073768058872280609647080155256209039755530907694352549685878239967433526739789040509669240532005388972710920424852917308838069939469045806609112633577644072509455852341654986824622363285186550805104385942027098076290352333386445589822081671719197080133868343756937868839324466325883644429126511143241186640403410348696290957567914677867725292187521952507037908251276528419904516545194577181340217124974567738598769695411306580545163506539425058436274820060701647460569989651398999199416985690252704401424483279757745472717868940831462099061803415760060462680652534704724535710793232073590013008503418592886241594086034167036097928655694867108038969205005152327457177885730137826076719587292652982824751329135037781982866491340113193689173163892907548229729412095283574862793151581509968124965256428688472715581965881491078679826898800057573026476319840703155650264339561261367572428403093138968377808883132490296031704629578526309878702000801185006646611097800050244340339427976254244851178852019079774219021732356290743810212695598179438392903429842847940284188595311924713819032737400507760627386316907403884049192470046454862431020087520028589308533581452212066682553075136528828272180598948420894847586519025916581752502393936855526374667513257090783800246044027518650839247011642832566307207414749005494661072676205290068898848652734088303094917893794729674147567348138041268058850919554459933359354979400072541044895280054499108078182551827239388911450747402415905309870056441040100767980880718161429746748909121370667931713727286432596714641738869591146048629455875278548714173825872015622296297874498009163311805890878204297950321735167337472952700900475961551417489728496344552721425417219563090458284400635851042064298372841114779620660223395656960935665862338645616530854405072581989861705816469255857290939599479096311642756704675715700971834956618401425402476220853376974106418573112711368081657725087246508447716824579044826932148847219560846109604483351388718646887739327575549712617722576835986899708064075279823765999989477896915885856353016678158814506062678090431638009190390388002723113533122799826874189478555497690317514803437740071674724810929929326688611136637070781665691902187645437574920260605331001992446871600916376421724452226306378708935835647120595697879770494505645075449798393476132956812254190081317467958226167513508447504918840353500669613416505507058092469852684489901987797344741393069732876827867142588332093622529229520433161342296745327044998121643035330289193693111688094813672592881779321617332533312472651769088188389241238494881349684385706424959897581728957675909270583123500383475764727046078226398608429230840627125005681207247916872765132161234820192491954139641617253609359665055035227405833750827322748464684806783101012695004818637570690246220422344818085862787840191436649085226542250733820612116945856254177289394860173492259443995028651955498106623997634250071445579976620520077395893414762222774565143370645066135260496891515326925236070279934928705540074725845585346121715598881093582081365196923494163349368761624320558370113288431849091217065513948689561945650253852025096456173950089107174736162729969865197663241332303081664268100627650676156118142532759999871959772138574971798674138760811201995435960882174049815223051319734678457079515333853400202654499373748674058887617183984899230771352649652608435903712346039908228951792844516915386669840762794337070484947996851030832330060881023373943382847242766695024690173598341975725901539481113848358711791082456446484529817881767601081506114963897439557177283943428649694012044269942375063871842351722126377782416554484941949747226314820072693356123697988667737298081054592305220689991100971743624227414061756833557983222092973943839770272768453034543916089144428205509594080187716890600479515539107420175621943861958877511340673314568294969829300988075960192306110903002128360950325039056100242028456948553872006351734787119946548008752383011679373322969992959390949674341131998422034776515903723113782123943173755903056383512583874210400461333060901431359235326224768462842587078582359221765138518407642347566568602690590708751559313984699271612003997077173159335696417417127463962143878587836121441741329197266790159913775173341537873462802539454538344209604485004591117118625382487119919596824279942065883181296481664279534454607241458121735881197457590828362001354116825728819903883587369874872832195461496676736543649657818640961690137959948011795295741891052662034613002263327199484241881947936959906174390117577218696866916820708357572101807035442151212089056668402333423007503235728498421699464089930535225015853013600757094030017338345603323697242511949189995637508350436020391652621056332277756591546530466901779186940963247717470413937077954929726240676017462966521875075252749432422858795308303501899751045911078127707933730963305719475792686740085352113229854692971558027835861007200721478851473337925434292868427947455134223922002217519033582592520939026200987601089411399601572822732028198002090718504011189319758720301204320338251862868772822566420696169265993799877802975729728395030299273464909402737324009749318744780393807055406809486388010413505610596069820516095291470646933500986425650695603772469076095493091655043712174528388702042122940185133378762367608500930290475636239019828583206228028743228741548686154105308852289679312754793984041712137980214387562131639647459070050623231704899979323974095080157394616097295974312969878705143550039488024774885823241488563986614415574621173781926908942347594477328016350552681895944132730800487963972044525715295834864171970632037315990088592558420599135676971398119739420962983115391054215053225498144802290429784254546090809422080790253129674499458831619958451923033120291860761828566742426420909247831083997875940823209689744563706117051919255155149273709835964290989141951255723103968174948673324185401791526330942148932064501403916739416067913890842373058559819361235944921936147229218702719075176038172987401821295668055420056985000898867445064342357695465470422878022587154213928852742604461028346931209371754498550079782108491736049209461300831517077892807830184267287672348541123689211374399296639130898147504749779416940330270151490993851019041502678962318121235726552792749041637208991320719053574972547185489821418707301521112339344065244839597792628636223221548222486965814209725593969977339723848412112095050160991790519314187492862742242763007935514647426855560710480019388037386318269082465427487394519670602882730346274308625328469334359643315901530401540761485544604475643304893462414984122199015113710086126683267996972655670671357968361582264280810875571026840387073940713477317884626366410999570289799912992225761273974032655600022817908194988724635730308943208240994285428450655652744125708088345114880813697107777713218567405469477844371820229259183810135551673851892508222540838645114664143449792354306861404311940081385677070076791599469878761171817300042764498766020950258765177989845019934582752410783472628749084571843831763441917311408582448926315490746094738353871616124161477451097250625203350435465219336840513544751939822820335286241728562156820226828239432711058074071588772812196387408113506841984337834165604324432358257373386095614612134033121320533035651981065167196428553523829778886802679090885399681142173689284264303679069988815065378660026057785962669630980677774437034128009611939210389613981713849096665724336106320544366423577322245898198356510312641799823690868664214285752503674661359722517359683362225757910118203485548239388834493989293524297248436390321499126512869284730688509068475565727853015624280348306941977679976388161076119003794669009694532162585832378565454175245848159309371726381752652252567336047520851907037260868894172455398114494285358492054419339099002325971608831129512882326137239023860660688082228039500594237982570125260901687707314032393033245896684439567166467685497279457057880270131083249711549467567078627835602104953123533965818711847352745971746412683271473525600907325665878986391214658080430284632675216918146398821603382099049221841899507181066248924112071366730935581126836934749804791281599470055143886066463145971030502106722469520857566022263413404147697300488880131052223403164445103523067633019036329027718304098604222178256269236947645232419624471218992152684934143112025161158996580998491413678860639943084140840855689366439531330594999253549454341730758990907352832719136261001504035896420014361143948505252860140759919177106608988667335318080920009274398369439014484599539804483636498978513492809689299786995603912342640513790871956423540535185247806412723502772110956124305596733618204793018692064760946429302925173686463992465628777313396914563897955480029624378204818479959761939569596389377394394494983090780299405517929837005650399883940667619201108069141130228296617806694286129042689779957997775136830953574186558138936227979056201621710111001266291553068382795925445199942625028943092006281604659064926490572952586240190180365928417264348990026600509613184459225962868168978437678387780349578538498136207031469282181308568698002952565054914745720251292558515993845557326077459749636106645173699958629697909831792035885045694576313158513847490947962140329357990653764482162654457059197735642518719721334380439882685393643452199385334048260099180458158068059530215313290367037384553321173426803692471186239967336641539844028263779166493341529684492307717309119566631510966671942122002967488823819777468239271579569388746753703156671180067353794440847374556288499457608735548405915917201995617797307441776757089810565608150011339073544729879517082104278837037180669385786724739678077668649172719990199088241793382534098085302563641698181919283610710939209935862749473752306234876611074692470261298291654225161191129561950858451895062343946293320814496724411072542329782573129876712994398662923886011629195374148502229636681730028250550066533284751805843624977874576157276569349085314738257694582722951310332485012899703083437699288699243971305459909740986111365613783272703651708512683485261763066034887841887154673170063764350508740216367452428980533574312299399344910103625962707522966003589374817229460719515397107515643032928546246586500396865245488680218587253299603461465073809340391635328844154400603100857523735325627984037751668942245087047943953371558432394674924726427675399531047998455425510015530580711429231121300446435650244453677168148928546931327167863083463703902180973025535571619297430811756953251866356582306386384351149241630650279396053225111276464594016256897059240405599994498114684103053126052732119365697415764749228708248296440718365038568052807968017439257546462602664203426728235043821965421836818510028242254414620291067144195752100983891651365721831932999339107323484478189931490552964363583182664360576756781795402308606179746419696711776478313186130170036205987484299444013380275809378094110516175283919672541113134539921130250655799020232557992771297053614084324936710681909002804517962350611792392005474666608931237117275669695944297823070715365859620822205650553169094899342073695301422153211808818963527681418037626375786663689490248711169191592514359890503444751464044915383102012510526776334350732436784740789561887003246711092860211377662630007212586925247952225230309920841932263061577013130193120127348846827062337287182030974023086151676254556496487108912336101543208726458432987512365172261496681514674510207180227156455718958215482464665801697481704386678195685856619277859505008927832837181106128636163505915481265132258208631505518838321360173458415438185177829032468691529144497338535831792490177727332599019197272594485455847922954118011543762066588886674230787150300815545598711838307725960347430106644044432961376570647449668666241640488017777381444704260199503072810431105654508256655066492269702905895872896156559604881390280825168216630649554932205628706463364265686090171623934751651427286144373259268590741871963678949432072920182685883807922947302472567892165461385714741860147407489826187537297665972710564347081435256968971739090979818608866868729049346784757776838708308301826578271474603898307108827755329510740312426735284125273028232820906242082799463582289132515771851147553399858190278259595719105953489127405801058383591137070782463937260920889650264711079528664046095715124182326767082655880637180039169067983632592390695244318266337445697142449453070840200969478739670372346402202241642777048874103532380428109638176228695440796204024158768557710171715088601594748920281499804965816196507983993784675842590541217347032345707815058327041456536427013343695712418526502369232344102259632803150771799277762625892065258931167839134572226601384934899839864446139495848970508355993692088341487845364345457983601293640381653211673010190421519955125639347301119006996624726607290713709195809783845758032628165709086895645520371447687405489305132181479484511705368250413596812165419770994823998003513060871825011284798826221838873741650751633268951121280933567936557627021059708710523870126569378482862750985218840524883929779714839105287290184839990863427856232520695579922973436005048189116791167481910623765159712535647456862848844561656823729183677006087409322010470713771923728310242376647465233208700712956909274434907396206296746048425593945492008952667578688633476515007422375142666462368634039416006661715388774511903828452558660176160931902817627754249816286141712949526863936002155837075066024796029771560553008120820140443425568459248478232638882530956993832371569058699430915313759048862694716204910589741956660397796878480866606180947482383977905619851347437184553115787039942197220195725871288832218517733041233641644256819021340834174343671627118389466472920043941204195156317947825376396648891793471882937207706166504545589400481214259203485602993242180638799398271023160184576916182834044777497812592935267735703797069887235603662853334000015145645608140367803415208431278158516371350245778441738378591858966265536397635538230981010981760608733789654058280784049764568785539248864298134754004044688494676292445143711145024979259187078920556666096447398328896822138678554807042168440788322536477941817813078792791285797057681297280485514757072922699675761057416914829054446727636949330870143100629636989359003992095971237544691435355661199995366153685230796198837822740423132849363501828319585472336096659961167155693021334161701678158107893111245664873483482255766639470540503553517213899794899070477832830419559326833091932950832051456759685466277918372061134452767884122865754133089520812661693101024043533260363730634636085758566066747450966603853792316306988411598292077252443893857752186111281421004934243849947384210286820749781167414528283302296740297702309114833228279874191715441829869430406075640465783370206232496188674490310988336670283050043200371904768724284346832578950454288814533160162025096869225206045179439819235809158065829736568518218860835672470170594935100648397155659139442730837175579855174525246947201014534956734716261499620407133828006123071267311334575507538988089948028695824062757542025876138097322781995833978024469057245624544311767919675180018481752556492278294623388860443478538867608320556215788194951503116767466047381485572210632123033269872610764144189452331173190926185592795495279507977154878792132569388372044098225842821704024035002916744729149671955322333241284722344558671626617761491952990397702438934029560901717000487536119516577483025885212659622592992293166956267483684932473813203837372499974284464617613075987532518218743178343113795789990724546024116667009013047259672280717898724860960098757410561496470304683016159215063596020306881993531564148918638356885541227516781434549606306092614403392606094582912087991776412910684488939546478759900007047192336720220621099968056024135913644100802535324183602511153729576299349020548747258260105173730286998027604477777604041073207046373315452833120553421801958731512860976834743967221215563788950981337348306758310460263554454209487414347208414627853172540895549636107116354152730457277188121964916152274047658290350970357836724040379560887569284408094361290842008866706912477360335769292768773409172841859215428779235294335701932372298563206920096597187238766199717095189117048703252145893901526490598527876901225773847291534400358032655153840540775801718752325914249923534915108460502695596298357153630997715949152322115744893893029083452500030555602599272461254579265295283099325246362227485137214849648443802250084072281124590223542771908463351199800925145448477168445601386201755041002350023486097961475903579620466122168417881115679816340035736442249230919138717183239938928820995203900695666083587338106879875203040635603594117671428426009089951486636910829316775024479334232840428321435630876214100480546646557287092164436530812142150833337109851319286372015753831187509080617912663837725477972384330091354154748717431631746891820603013703327618048602380529136626498210642127357785043167880091604467794964908065419758401810939923405204651579784527089067658114515066069203285598375780823563100784177184048369287599175081257113520568475243913326542342319325397049209418655829211494990743050190261271811529606851086357134233505053883670441905835620383582863659528405098418061855375275795195993123652930878034688212796089706640917941587271443839543410489102889084548657425396039371177242204006458789187098082552617483204348203637009221601911173582477202535230298356447332310887775657702768991720918205767846673936728513234329153237971343055844866734241164607237253725184265551547779030858450380099700980792650392601911010539075575579023529343529643149688253870427685659802186533165637252172123525068869630997832162645573134672411089101336925889081373645961897198353730189711068390256051353724574476074759509034710097358417273833015230430634623849884307110162341886504647907428521576075092591007719014742979671564335901929707417404233935203332922293544807328604980375196103012422773692403233004044392346903626353300032864374995479287590488380995140208229472963463093218210457174047300721323293376480234364259225972617916733202181912000009643524028441873940233087276287350235422715595031251647502349280910279845402990527115862721184410985239054489883870179552582684684318754869767997056292368905219476921113951271817325339832633379485814771822970666910816259142344994051571246078465362092309519652453831605789411920538565638236234107436919178290063583734238324818781359982591394996871184623450758409278926697542146717885226970497922443410444024135777845424204659335158561662628207054841476756516651930149743381395020247366149506299781386864994205444852648357002630244669126311722818140230232303730471647218604195911392812466728511017734277214739783959116968241682450595347851567332687124294157765725631628557693813242456968368203369349737507239241656217675297908846095806438235418884762113371072545214919148470826823445579805287412253453520612169087590761614067648211983151573255670505490933772651443046830889403513263678972723056772102721417015806203119042200520701025604463736026879278554589788076353287235651853003597652970058582369680732509002458531903490807818599439867387372194507608803246482538782654364933696911381145424541182516936501036608828140946930117462966727405469729362735268602961316001992787891683244325548092026852327702273723684423571020359551372420954102853144109221486223058162609242009793249103290337098128381499740278669614083012376792374235853887710440457123687165386850760491955454809670957690579755576928731145828891735737177299167489860292939493167928632638477719265536082176284929887692204370700925816478866582805477588258555254436603497137790791572113760695912655576597088320984292447877270246605446963187257979427498071620554635946163599462993564982018240937313505790467773746832052397676658063817636583240405255365596170206426075488900159049338007646717445622736813164621407021634627116834062804964589836082017044372838347790015749242749365325333585101647598559185993383487152037474391751012712616125040412104749482907223483857776707976480407378109670926637771992930219112484964298299140353379942547541356183036713472548711200613964261153377670620957414437334064195699041070385538142726673485879713915192238018192298026238098837859878336139273540970905980673081818046634848051208084069208381678419441129413301699501483401632219079407262208330231229208994945269703748443908641332327748263573865528668091026786724495596813453345077628390201552874485687055245687286032019534152576325718759505251186662644604150527491107451453433305788599846201973184966001536509595267588468647526153267911677469300307285624951195226174445495449331528808945517039627157045827837402805405081415727237419996774172949968592659007519653672817265311948298064882021202563723679713409205986645752145255203679435478921001569809490035179060240427303869642396787379155268163615498527938792063325844278341302290032954291906909936931195703084054294339253141008778300790930410610566347107446501752650026365648839200388177233289556725651800774682117991313336657361671615438013939525462691142715188790068811443333231408258082538369187730239197936123315001576366685205040546834313206586415920212697539165389966319782892167551270335612090999835578744760327230928280084101735795535813494361088556735991739087281768791010574741025393907816525492691802331155276652406287647484873681190523858356319370945193312613360894661990990228293251516482749144148228272998202959815799480597312896897568524147112002258279520995895744511343231756489579642429104348830989295670262602341082652461847631860349980525178772246900385539325130337335589295281220311681877072990843715851064489666332771873057231059211895325101800098651489909368874018856887923036244207968057155239205877842415868949431897429405760145004805423056734976182260096270060925225551127071020846550235157679510520893848650679491704364763477288810332110461347521157234970978385777638552233100873210215181020897279243353683896957674289011820982728180143935360899774697652307615857061213787353944512868703240105777205888216532483800896706752918841027042978933829364744598859714907919430841940065960749446387217853696640090134735981281127869601001880230556495927265760839797892668667679616257360492346192587565785217139737551615608074628205393355707770458213115164404658072820343076584898507546498386581680033018235108049589050764128087744189131166139732467207203785339848482315560485808018440029849235581868428732348182533972043887309440633485947778813753207735261681683060729399833511604770706695310648121769762482684096907656165960168300343585423708603239310171338065952779526797217105584913573733242803942902766880231606400112617502040476644792029394895589432557871955109473835524622856194872537866501374166293013705462333150673267919848572523091412492456616928466509895686109844066034470687125658082391279333848965255017058659078025576069722993086889504215517460134539623301747327306285558776430707328240212543144665387417765627753596454020934754179711714892576993859778574144477741147825165286546323403078770600680843796537554888990066200682833319709000430599492445570472651676298524702108497278912542517152699025728001701400914783910002700522728835892605558201920854718625163614914567427275669519713243200244231808544023120593200502727710220334783716730531178995255857926716883230797606921500448440191854795859514120715329483527216241569406957524108520355085374110026918054813583924774490938538537017853009698434278890292992618428642755346013882494954773572415408684839311797198410734482702606662174919168880105349516911380919967966353857669166429075517389733583815780386007603187076608909573748156538968910848243827312074801535328916193584154512559289898208624827590217582123241526726327518273078156303970451043962669467430566320881034115614561602733748495588040225021711405452532543790981176894508621947159298140303796461561189411655101844566902146875314060017615472978969878725768297902617450386080555797359560301419491397151083533995981822270603306861690538112982438402249762596829979139562165637687019172342955896938869109370581964521371200267530739353681124451861573362879431891241260306655893636702247778941996010757012710048394724908937988948072333065164831084587118690124216295121763464155751108156268843379896114723982153261618360657295023554882032540919322617554326357787291459210724387172860479776058535528922461995372117524396240765131585670005054946441755586112370288231879766592057495965321808621858824477367574723937721031064642269698948497203004580508593794729890507266901611500533127243257958082988731464105949416058143258802360681142399841061301469917662994735895080647948495613398237450790784898282835580840168788694489631434316916572784027202043925710943784668340838450523522628547808400604575261355072748712783627225796532475284904838095886758161522249143786596613117006002827484873993700742768115784683805388701813097851072525661057467758085926004975825389241826371857628686477574280918816194675354666701526522196670477728940903237432593797473194435893131202052552749881520597262514707355837178365610252060636853315066346114448908480651733368922158427137202352196931948556620062611598076416854212186556856726520419437295919000056533324691230404228538349264391234475077195443276972790876235665800707871825524832328991256693170331898208496315294667247765445052366514601863048367726488998679748646977556324307746058532105510460705688764310783535318733447762824196066269142978245233335376337263694111474999057953328969746614629085030384420616984536322422882869423811865944848986000487131907691234891931296056745578971411994211605435740333681529733055889901492982391895118217204280735548467718813110823276502887076904171814278835617901067800576261410807463408882304110182910692378340992958177017507809635983202972040880069242551856727478692996429069656783497571650354483223400756728237555258547586626345435609051077996390816236395642187221328236864326735530893878601220185750210844529962347412491446288318366595643133876900446664276576682430909047868609853999753062523577127439910551896837762316620914153776869002889910131069554870159680815332802919961632609435414899977466919512640809493415326823249001116324497816874495420709347480823592429626605837858156265212963208691344031220372023731439442258047700829598761018178391452933445657984352480755178388086635311260526060699218366067475601592357112776583815986522329899269620923936879417102664924465801155115324456684235548174837452542144344954206944390109804395101571336478233263026489547828393862786646846249877852069446471370691834872529922418022506396274126385445449771645844873403171423518725457367478603820968225111896970026750443653673887012388685667651126484770035633599945607847902359746567015067447954398667736046540540355759939257863420023511090707250745901160739436065053557424334314174158660372096531837721786966455925140399087069380453559495888202989809236888447910153741547085690034232250132622314777149438121294515652505806955880446576296704782855636205677683016110296144567382708530557342116515463578970821515405797927272397246820207374638999785147122517964332080059644834380584967391591870392599548724170691317934787062672187225507622717184839596713737009273156715765380809589776704115242937054322530507698662200781800819922143631029926441108416313393687260133562164837891147619872685810477244448018384781745706055659110501832679488777371490826217267551689083038774712478757927137865295760691739090176339132521168888287911949087274386934596660739959193290673902852373369731758610131297007442290452002042675864404363410937658496125974417351691966407395706150115665206068785811668443856345929610865141214256078368150929979289382694336551356594486064527170850472752765609596702513150218822254648470139095874339405582929006830613763866114865247286314843421255287734723828741726925847149981979116613681786001776799296934017143081514005036566601797712311872809871884197763056811144311780273019099842635249343154814393390378568828189640504874393467218392973435627009969589359069390691602933770247600259301231571451476236294175355871705918799967937160832723792318495907771368527949569705775180571171823200634955439776039973768137412756022869806361471834239659807249571866848677538730019935988705850688977842129046441049607975289086172589406285472183622898031945089477385480962415283327451300001824856505568156827755460933621080490564194293656845492930100037967296358435099886618549417185082317601654936074956674490540028617987177519221546622278921934871969407038792312507076112178866674498695133046312665622746952714854009661368241691160301858398053979475302629193035343453717041383055300557473269114512670837440642484930690775054788711644086532389942155959432585974265613114542174338263706454575484698503857313696353277384076025317457309290916936805829019732909981079654521634022527887384251804776631869273128427744584634674745311235666712501837053932315054974024301195426947089001315327000834728564772178780674425611244107924846857041262569580219261495239552911529139637599797483567945181446158459984545500220542816408090107892628263080228770364053196343694161342642023414671638274670284231128760601477809279861277613469399715674682359157932931433600549999392778112003117535489383606044409067053410951511146517284353360214864251882124260804442710969081728133170858479014618529721888123131095085438730425876992039360397747776261155032870872514637903424618616334441754367794508288680059655446442372391861454196353928993332106895265921660369422838431459309410297572305346509350242687842931446367119109322657437031028838225247082928801922582648237677888344978509118269400801656255772345075131371407142784680408222669015617173668815064562982470087038059625668948819817363719921589251194695723628467101032089711874493078564694748668948399107913703217257235806830158332222072670778377522548870840678171110518588281097526540480736377790914695519966213547209435095228205185022646016358004388853608282150046658037747850581966919395344341117170387736492031779228815171136915154947988829631048870260740791457762944638358570955272996682084852404366393153071320314135263218788419880685279790242133642185319633086626066295258431287322012855338391014988739569013717764985989673058967570567228259379715348815847701181013143304942000055394298390371473260817118842223805234312432766079336696030999503149203386507482814958740103763613048182896994321639661736526225630555398347708254331616823222995739699759316624186147179700272930927741594301297693962001030664548789815357915689384877615476886597817932488329328871035583815439353055254739991206040401981015390769459540720660421356652368614742042899376103369026640985346563048189947593579931418213147978536076577718432182407084569268454362416560804882754410569281716082848242060067176839503534821799421489649798229737897762729534365264586692913131422005237700116494989932314149985663567112409785305579647630614070770709622065749948783820104654539899166234405244282820969106882653443494444193357278705458992281791749875445712080171666960821976473661715584812608819119735076335893818854864866797352029678355866251090279774045875958490362989281930709726098458075686587514192314907134060548498946533313017662057568394191595545845351267211482425022754738275911541168197060493131121619823626440632284443857045663903725790707192692607273348723701220918603824231180357909389661490160658131813385475828836054084309241762022898836728873279897856758935563142216058051784162474665409565082474887172728730917032578394635836707969299565606519196945908538563846110074988692345452269279351103560148829999235196141733414914598745043652965551453658080777925698454671561902265670782228283188893700829302519138585265816971151304011998084267351099330135489142216639185385681068592689788781431332565416662289867885258983795277096241082381851006885564035011215735952679528219431891173597099661634762204392649810001980246888661399161930952478478875152882326053427151396245073882226963989155230379050684331833186490746667705937107603312140947252726341214837372339924032668392271363003136349514672824456053201186273410790555108636186462498351132637799116047739523732465329744756180228579070012527185085777851859292537151199219647057267888531075947265350485894644194961315385668697106288014819493263333224874736455263145680883364584446446929467071375236600557843504641695307197262819488956122435653438857059351094203829625169759948716407549640050974648393686640934514551775789458948944966028231965693183102167158063208363798543044506808593911265602652279128762639194601523227481025919078110321568156457834988501737997863506691216355290828886355981614344765681518882410463109195540915198879926808731492558351373655820910012188764341853482434022640652506506538128006122467902330099717941109894003075153137579420950268697558802929089682744686054961319313350203437470046371598862176896133260561734145440755743653973551773284884507807079902143698622374952187306695179307850798086235960314351395754850703787577041977739939911218217361526784197180025535048347960488348239636393248015894373587486722318408582429392202770868530094186715743933889162465727607088119621287003524025406925781031552150800379329556398457283304633613715781865818335035863414209194470589987857390549072380683573022775155178762751209545133905577890189079160583070961797567161740215763491771786309729496113954198722124186065792609748064199932087292380110086169547292901417423276789169626752540999944438164195749012928513267351742770077327369162985207542681332203157804034231897262219752352257775787834385277322646128475513235277177731844440504340846965707379505240836400785003308572176126559904507529550664918740057100934144813185344089659909522957796315741778631519268260858173011700191342936755366110497651231412015945167707907640391208661345414366997568556543949211996844296002494652383754494661931699486360727345287724644618962335708362467751052104784242157640027977036862730363783948060248215137062886135620451473866859658353189928987960155742833331994668323791836530624667616619777931979021796335509310630631741697019301389420191693609304231495518109580515167356298754660558615148731435446358217308283721905823974533952084470888315302773754944035153123470330035551584846587487007008241328499069001667348578642185117094187525812340989855328914510343507988291365093852502931310012292701821918284814081828624510794118261960077639031842857799151055758529939926203756979469050582349686958410623146270608689851394131929197855416467557112487729855420909562714568026313732440062031011653766602542983175359527965892319180639157537700768124893934918321353288768551800239925991996488827701563651106946265506289438884866169409977623386051672093574485602580617804832073015275088806156209418374965453896327172042130788459751248022391852941218063043741030433104415288680716397869930898954576084041915436268012402066799959726658242864078564019350500668434684230290989740350423520568715823539575939397309099326111732428295090890315724565399688928741941671169165509619315560524392888234667157005628841558883366097533237852655820976030609315841300449027879313012384171067236587855817783905601848236384036620571703292754700497424616681469079871870274960868396302814201076019786959389983528877847770134599580519204572128890105026216409952133209382369802843800544463592073964070533351416041430042747621243265148195310254745575107524587562494011793802249321629454530636615553382336396394103007978340569758938692622790218863370867796259401338455246383912365984883837497376939568520124547699154337279767250860604116722077801468183666303158770065136115807734368037471891259945917263999467525483398468403319338620162472613909862755314743599771893906582401898816997542420806593664364391823525106939058944908788473325127383363727503659773876988592734678567614373443336407530146587925773143894527799763196802172477735103130978801654639153287378134397886828597525054468334293038067462786875697077230372100431220841126345506156698412645170474025848260607813675930758504551483507799527843599079228398219126808870371525343474492051539341755849265577453771113420664230550935975841947544248249909968941428943245200811286585188523535160441651762772037745746663586742881054537974406358825711053392597474528727530885212811619324662359351435425253551813636291885860205844266619139617677396600285111951960089185950779456205182764498439799313635513000377199556720779541586234512331146104984505183823890596763369983158290738087844853273944898414649466809657319676291458223209327431501858600516949113965686730704305074056916663077878037214738634385531977546241078830226429629484011099621396229090479864443857669803639579711185827780728506392990898065208114133891795577616176993403212498718150015093345048182829780585328256510349470784084221502085971392480322843151761178504552251597181960539763787664763627216888504014788398317752855988419154270687288594658019274257964054631475131902692399496872882906012579422166164879459673514581793608233249061321170063833842140227236963574961665209361139977640283164048844280601413335240998545800522614751970440854755614430791141504570464628789391974501252493551697557198060750358428298312152661271403779127273189944706520497877242490790670264030934842652496266084209641899422700141440660206190522956969372106325708912495425919136493673179077336186881273555006310643156977639719043613131901177857200034045431767437238653757109413857139854294390856452443720872310780331090555829408351940926312259099913090396193405172300890063242152069921835653016989086564774946068918693549970828954765294526738173100425730494275133606932103617298695225776877584308371615743081544185045566706350177395777059641326216508323465825662141689355096224380178240500541053903728684491960865484037670531133493573160870587912297945142649004785633375928595168680938205826515639600958891526637225495722819862348630818988731565982216562215893062167645056092165989036452322388491756872829014341601457497106532075572669947145722001730207204290483520554697871229254721459543911484039841076967705593669866854049704081278145716021319003040935279361736168016237918244136186517410356790560768658999141493491391207910943115377475849442296550081168408464450716593219037551856988134732098746366653983893490662057580362971767488070642097319408323014698739966159286501617149626939286806634805070899399316223435673157351348047657979643904209381071445569153508983723500068440849212422028310281056091737533734734993725250064987395329263715485589096308458951259924251167994197050581942307922141450320977408210012108732650273504151251412544393708246354886926340460546951061170934921504923101913570635685294955767922301116440925670760205561180033336215262730979682683035002867990325812153357129003358907228923580854755984702261014218994245023711474339581532064878644008435515120433723220768241094756629930202201008712667411060739961375131759682717923516663966339357476448069190859985134069194913644712649410328338164300267249591007613125113224378456078950409397128923876528308564491870682824693682704213313018656872826313722954048833012770690480469074993246289814098633847876269100315668903128551564999827643954337082184868775742045788568777744088032057851677569490620922083081129077278178190828971421502301656986824357175677651330481780829522403359739156497105762928997148190541209793551731404994140509332729678743762601719379708480799618759545535974604612408099499741971854422137104335737599595279135652967946531838230740917444359902485246286774639274817272880019152067431713962662211039413465622536906566255831388065508439491929906159955932805581754247758719234978708953085803517835381565243754759458992759553926683668759392231264203935508149874167708722441253437252033961700929908373287277422854659039093387984406471701359128108577806590644097630526944032885749087465736569229546084162895709369397391740651130483873567035869827607442410988332254753723545233879956909812328508454659036249373011733811800969243262036390929460677873995878026536634054638475422617582478628341745400644168159763786959045314153913868511333943441502388502109658318017995887616255935005349069462449192303658549432165084107638532289141580296962251729575392790939192969701174163116189093319460745379112014832329611233536790530474919070131234866680344720034009403538088197422944024583446522654297696871905047251810485281448164606031803735034516576451852971603842214268295843647464231921229534642079603797529694796454612555645014867040609254125206048373124519532132243202815902092899682150491812487041684615775720474861817883255806492614889443819870960114887164381483643085228649797193711814096689522095058886286414680907456035614726972569299547150640842179185243557852676739712269176240121107264816353653955787851835480913278704824152519135675325468494921639934168937622075294992651497558751773371741157688743372249551591126422325516545876711957257506515185808044890973677812843153892654356160935470965115160596912966525642271619526423039253840496091257159712183901215612613595629543737618231848826744458594250628051098596201913167508862747967087583791424995902270838125648827870367527786744718408496724468899189795834740436712980386893349581968104855017472641512205615085383999064057417805427249719663923692406523855595805237039006825606644600213310995552998411105929227265729305120262354234462926344512135852169546790669071741443814543148864455079210271056040987939433671413649606209583918748341231053040524768599678716286458802003197397115172515968100857227492670627699140891661938362367977303505982355628138760740238371286630533025554470142590837877833310413595876255811113515748433193472465541475237356831489977792066877779854255800384462226271951644977218879542925302033896221930399011070334073670119351194152090274722818230007719868007907765085501534222430281861403020054771514145376101726161078160894098201392993333402171993357340668663984034435102427637382295824864484582954936066034828354443059982351618054203293409829516150950258795304885450049431701536433114334787290555287605278771768625608614293764479291358592973439002203467253448143954775697983904707349218295474067950835991883365523518504223460393603763014487613072712409528948823771202737539073291308085532603736582593782629407122854210483152802391406121496168881491909262544685019858526400482801563349701172144139716604082476180347100974003571328730264139017137578339939617259552893197720489071554289358855361825423032347777492643796235650076659025941138279600812141314485568172330330978792593305183928237465958760998997245104850103347627758719720246811330792720305213820705586971291092407808617247940778044335260530739473145682452040252037236323166920497067040506928206009790821620011563173928545038413237339393240508052575345966727540147213102950429688746868338370060982426553081531050440319414892236607099865694028483857863128703480839525165313049937814815829086496812805963040259604242430776285100210553949862135678509623827535604100641599787115049789469530927833671057441036833764138437220505182556312149774249811330980921793803548149594799676281240492460225711398471837137755062456287388376439541352932974144923965993759534465859645794793094761852149700271860414287724973769616420999759058888629776741209794382459286070230018972348599685217975056556504772924312306957230154332439697297094438830146908284198912316636385835749148602708686562107060959904774209963265312952647310029928040736002748805394096333735474608707373840605135948417653681052181481919883316082534973796895119598896096834225785397004579018999919133422593651954831447790533408412891582845101336939777578348706235245452434584790487463617487207255721909742125985080814018852990366058131591415424920910425726235795837435856858287792208813497345225441315130112027086800221271203294565226548079528658568722972255266815496259205458599776192167008173414819112508165274243101933013395163881983349737142999030351051183492036793034454901547270690529339177201021339448342467770240714025298984930019864676875937631978996097565728385354283554010347012601546061009447537466550572280343772967136917750882648704921800329134609541882189308689267391925793365774906655580352335791688386678171073171003225764217134318006684096781351030049095584276343183858796321911275174209872286695965316213162774030260186891436523079784389394892027915345532658026543859661911574630922401334948332270563598290198127043773631311147954888496215788226028085489703961158456345493523975924168964096832402643812011740844430565139260923338557707442647610233803424714293592999915880992160029534678658920697910300991551609337026381716920646294511485761650560364957179043164415536267632466806093958332490184201880740359193892302582768137380366715474206528237218943859158142351667368256664288419614486470787088549471535723618261766971650246885273652945312471135313303494564148858684260305674926903536023756545794769019460025922999244725027108325316225909704603732576343278683078573148790939486698548524610885789442040999125329695289033760112072423230384515140937194046788855962324254498721380057300631210957117718358173625561681804253328599310963787994291926729876225611695919521849633719981698363967889582711045242270041031493522100819820271741364430032676469980444378825454494937897143916963035958660787998024278952599766597748911236885136680285501393154315181697758468292086857683904343141347988263010980760141434724475355275846805055933195000381802240300632545841521629181425895543695751011474863283760276163396746490393021008308423042125743731598608730314710073623867874686413194152135006650240953156679480819097111848041123088623265394629351591096678037735357589149740015501368254414039045542502359905347532911483876420783759267558213209645446428994203635543103903870502876279511874619223844004317403713054552042482489851561379213794905623901049067722831430415553848658333652546741743639773429387583143462402517342044604818528635681757013305950434247084919807913018264729766152993504068896746208744998499432774602366015884272954731283504217175703113761009310543482935675375132796261395164915979179443890792645718266039364170064471294110602072662932911859421538416759045092446572623274079121609995704284455854785212574615233041064684362863823267261298368101004080392994452562368438291012680894625784028053209365049441657664056860724006774583854041483378898603507052846225679633173097203138689258407226044104085353975855932765778414062987858966511356895745775002772892492262725211736250255332666864703754042718633384616509906608036320855737035287250135148043993649366849969757790427123094165672620654432198010933846432792027341706473685535540921916837589746914874180628974991729568397188800424589918136324932487047836720861866507152530674790302063199579899116649261911050119752837334629086874172699138991090953126753932712560282010862640807607869713706907062932201497501917079871173902120012160327483554661776058378408467863029025381538457156112648616283724095800500072754528293629093558288166379559527741540244413097466417740732963165620831828019854127800494874430301945026069329303568302619377007422160521205145390291911737153537444143238245920901480859396073505607769264531468788656561770592602379682526386367667063762282044745349547351827458146988694843921069830144469336310820458302236089947786580035384362193005311532668596113232753752623748340353733569392398644339102150666989410527592973350339086886629086152553358893462381193970921427145251312260677227135354944345060775554597108837936095211128284673412858570013551658543631519320513878642606761576158543601736163085740317835319273835243675950501192335958974110935781671421242496219152112759525692526979975107425115787662188443552575361606136199563169851464932608221022320435202929752543140212967532165238222352818267753960709736545805750405194651042489667482918964145522972466577274588637580877297385861631786527313038451779795639898261863446215642898240796245562213989297701814379852482847443108920530967747898505106694303151311926298345812132156582739825681163111551529086830691280185851659850052028493215149270745520332263497750768826167546832723469358460492690279410696739347948538310333365418886941556393250695053898458684743322337214120187935711549325935978725786451355624062825252660528176593004170909449124998055904638010144355157314233625890282580808103997175363243385598869025277809631366688249508459499599030596366187454182340705750860148872878443386967773607307585032943461492712038697243243552726388525493777135219840002996893974030364144160461950321751354800023600598637436176527475460495223470978708236602007345667919535477791237762123116671106118855429145138856153186230575053250028184816686550074212854136946202542268033217921718062378998149121139397470664012046178135311589554601950544780040686972322868418698948296358166705309620544708276020690328221619438464590577886673438026609634660907838402996500813146533465280638586564664112303820919142160545285938849778746379388161315558712331691193651762473268427861998741773841689633480748357349599193555071684631904732062283673812581444612568689999369433503908371250119778043414599586667295061297937534909932679617242146691066353250809360596160519149098778922555860359933035344682841226541439472386998624533338967106406112598577507213800906219183966932046294255093034525755527683199846303913216138997161978641276519524704136051737449175521798269293709990080617624656027507816909309312631782894727087558740721090002535863231465340033956775372180906991054155166219793383888035607207291159212075043033945802488104485995362139222471457724466276960099202914050973108406492880399714752387344085261458333118269934653998057797033617450975746169292485755042271013471463197015112482290738268642662312014538020631867700811222375543662659598715666924801947552501792524236268029112401962273756253806655125800533105659705150043256127041946635633044153121699588823160801409572025710434208438854926453410125821175139852455997707214320281641662231625395751643518465907305940767409539917545400057150866557687259749580246406168572278742788684951120477839719003376574504020927255144036703893880071027816556700856131725156353877888465274293649873077409588729111684217140114404097823587439628176872777107161580612230109407228452338916843667185899756521883972046439591060092822871090046827896581043331607165934122860441383350345779682021817580997425163146758599307456043328362466820835097578209987169842903082573109098645481591996018029144391286406380403328071127297260439752166175976772293616777262341054448215212987406170120058420431321507558727538694349300876911514162094801915302447745906033699694863194387670942297195858805685158948029200813075652074213024780276329717178478198054709083318740716521598641902707609129610371137317678970686119779192718616252010779280584665666536709550839770067285828884829689041363969394699899119179495609031328173479088613087934037496254090298217603604102817061398554446153827618147178961708993754048281989266758077853371419123709791554131727892109018499025276069790690845949119791682141851168745246333756191384775511385951181831784843814852880663379242459348821915454167007629108852019410673869329319357338330183984078652524153003301273621549850238680038261292648169272504451231838619656481392779685941933336066878279040856602853850910826829622932759108164344877679568253683609817463766194434180284683860098417338029583170936899734659373120410163960781915786228818531115678783758899790373973365036119622754891983552027646519716202184359726164527877885389857675825048766504253371324881952753096583214511099071916304217754686251085156621289756345383956247215064354950627082268837319330112510927908407012537737792577166490162423469176293471691953374576654507401293855934941069369548652618107557659378677901241673039332579933010307037359464944971178692535917216072022235344607636423619178088801949996213701860718509760387914807798046240147595778185095337580293832528624115062595610548660676427636683355664397201117147408597508621009491482574361655869893311941314486316599342477658590984952542343788474611080023807540736770196721123734915841576286892858655724862539100806087540416793972727068383597636144593395038335896358774417663531390918254205052544562024372153325444827515439358259021498395760414234889300056432227343719009425099671583444341199914604373130665206300848616303553241835045691832843711877411140489846929985542986299772024163365483447267890370793925681183259039973731262972360051786187832596152634115345769551473880586174270194293233676402343521411215248521401361938761953180440612781508629403896008084106806133295020091260984017415165362820214958383907551593102397017180868585920167968029291796814577231156504120755419676321969331727569136010166678760765742923349074559825027505378932875259895272813277599589924050476817361966781432182513864079732057603620549418232400616596784438747462639910990614701115179407692856482115715238493219247015539965260274724574573487460838436574648707139993788890350206714713427082389652075157299972633282704321438408542306494428965301766129083802435689966219646858862107961998463444359122654662646705128823833745406621121355827473950619423333290767754271239875915576633146134987813400412087810320523070576667426937437814678642595615952960229569913217414999139926125150656359667000331827840858937251960247884536172997890281846699982620775389746916151295756686743706543147282640124762453789019151214121543968485404952955527505616428975998642580809390056151016714956205995857921525187311965539797755633409802312094510036464366507875922801459758986109325030599474839633827212462532940876655278680972262415621880094186590506021017435704362551958999790998384562609058848326948383764772214491862650673808690820758359564910211293070971125015637718568154246414933241755067850511020039476322467731943985396800570973659163637947754060047731752040372783509557383045055300197479912339578372308352327149405851740767944639754276071187643930332221761278467463591987292843246520714458670153000746601124907879547021250346913930498796237760456038364259456341368465638699692206063514101194136374166377490237551127361313966913862144790103181908764391663649434053854777453794613304467062574999677425551657657096359503743067169873584435691419576638933252269002271137257610178044016352070597301808536833695074941343776662179353873210787028065002400545881078450387766942744207161248195688425165993677449366671053573423148204022303016503305551178019221090786637920683268385316797821496978806124062522905122344591182105642480398129021489800148265933525111978713656337484423838491643484726384173653885537759227303423658403546187126951508904997690261998202738814226450697270896633742294678552649741890183250185917204446929343524796683973835564997067300502807079981665859356190791814935801652965492518268053452252914567439572710976688499779654415450681495703566884891129055818221488345449263582461185197837119811103095752615414418708301617537338558916361981174423450071265339734419811025095335761728759206735877935384847298186017757073216284130905141587606763708557815861977432137764056860314481453783502441342301167960562598171218238313345379341101064042191749968236868642256314793686548151294667600741613529782009604633619400774732658421117979010388869719444692993321866551389251178495172237637240802848318127575054784252936242082158303454301951872527121479580462837039938687773443567361625769178006879643005074767139863571386293764694954154802289265379511507240255052931118799989408675558074928232787689006383757539093799398399397781346030965993775366464475061282623060122852270716979950198172526667707647342902512184035628123202964325550392773931416399342746424189541824626831531961899246502524072872092658998081729452443519304935879295528949246316373716537896598277767762799771822342644542329100066167696034916171296282008534799828859867357730069218503004991195260450122472498784049766053851318670524570520648018589239088005095975514657835891970792183014804968372327417571907908454813129134786605733521348413574337643199222434350228245857757879574442877251341489076884061454014250002893161146225329086184561264487877323644237396718352247253449802621056093608819776020080265202882869186916015969782917545933199154220041410750615497824982560661118734904251822898746553948160182480294481380228854626229201351220864393302092438046142898431179617226216543950391911368534163428914864503937025221229912559262267963441134210008284919261716467841365138297011013994980757816159815935244525988890886266494501730639889102741368246538724870802432448591958254803038309165812654155393910469006118926057000864362364187329837189083725149206852169842083829109869229211164247387006859883643868788640566172072613904463959042340027650097827631692256985404593695632880097456165465305089465402607641388050997918090312528709142790015003059697396520796912332091560287185879138634686447327335187208573208205351518115573106620260727040772172284537379919720985203001311842524621100469678414230176654547294366229433125021189502869402673959412942669864819201964779486196441651557506063606581583139192210893775107929298252074160677435893571871460898997091162096888268229317647255715238945477217886703567155186006358730288293426657547048577806116459195592339985050935897494362602026025367665591001608563631565082585019787477891980998661327803160757915299813064823133737123426427777271682900511775109640286948867442829175296471015569630430317009039451820130140217473682013000153302710041149375435595395449909671066382170060383367955517229385088728285135108224751234780912032326633638369809134351760444339454419055072800169699117806002485692046172850321821227305081598352088637087977020195861828308384046300539306794047499655092390802171068149299920154871805287008236204105969830200371800009401312102685194344095358186175494529310730778882450126574383848322422326574953936359533110893155506416780152655723498152873110127320083458894362037853867683310136751874840567173854159607054137632672420621176188449192496156477054642896987074547379947800541679076288122464258531832812240623244309673794435036695668599960182474518140564537341943100379718341517223044134135759159102670634858327680803415883606359711331802132856401976069297685796318194251772279874611838585590446461555603196585887533068550355071672296840066228731029080449385961807873214440672473304874695444708041850425145451863429143019657040301555720533398887880928849817115825471326894614079744124266145812947682218551012061698665631219541352037940911807757295235918731685223442460120329414916572513013149377182609550370650800691267179380939712340957064640079568459264729339411527628497872633646696648161077523279385975307824375241373825549540250376582123036604305595305906221066307704937124720402776159145067390185994862593415294376082140234687636856902450003163513050245399854381022108565237915886444084191645133413066832252688542350927613596475747923845533102500191970813270279784459410218380400966631213193988108370332552934338341145558916488737711084241054511624653494006335387189925878021886598815417970824601082169057433522392870537927904469145152833204310847738209545737947426259812385173490151571630651368872890614389336880101426177417652609874923901287111844639283861513014367789818398951560767534963771975181975536346868162462995079987031106324760942012652907558110266868185190452379383016704112187850517739758720518282586919237645912095417393209982051196057959668400073238431011161633932857928353614913150552991313377815859072837308235026604919204556321788556565417406429663118480342034881283207049263057650551163474770586516159519165919738559597039982149237980030029756406411362510788828862954667760925223995003786835156255489564733399034262565308447426729124075612381716156249243832830507081092038338583725262392241440077800120164407592070780134368784505469446351896263543196472479257742094933586585931992781044661672302418306782229597037693331203929253345206755523765174777549218964715797521245607680945889542301830058010911105812927137536352662631736485682039787886491586348606498673197094955509132466890488284743913866974019915080764431684682341255957970313568520468109417676280450771921949753730011333201892011213205596602569485810618206281250735954550892640141349584226444467959083113768787889402390751806049071751630470604063806072021069805505356549740186899402064871204241626494049714694840686260711583891187513689983974693725566548393871860104642184558859843208673260105322840847900586964659850935504134697837732405442950230041333695603592779009601686142917104173870840963092830861743331983761712549645466962658986383178392521825261406317848899517366420408279080607948006775975924805882167826146035825394852606540507453969234102583360101048185308250484667491247729725486550083436783286211219724935716312408279658216941460925618655958557186735915416166273298020071276251911213983354594604019146322056155881618471774980724285010178029637754484971899835162564484939783610202289253508567014934803512275356833130564896646922172928096691312348310883403530577284128735440352797311897897661031166160479634839179980859581319693045213381430670707758626673859792788246079835107375422942538882449920774403443274315092655927939475247937639571064535051984154779667882271860340272121304805918446695680090201650728924787864311925494726695385173713116329020353993350281545709228248036957122367188059512074859002976922489163467782956805625750061693057851304058549610418446512357564608801043745910251528733138823798148489857862276908740458950048608196954508867018225037405301137996341973017161244544720236692388513136350043224623137916290589816938258746367486575560675310000993544501928963536523470905399242300836039658366211933847438742667235727176000889010243618459177796357943726068098748117566663447184881475552454047375755874680921851071315204422633892163847721052228191567833515480533643329784480807136978886005008112919436036202653185426970730405427966703388415354257806562282602130377567804120842177624066739025560980964998545466993487748718341964517893213534034322274419175226886933512210445766608943611651969792550653482464315620125571895285281132544554997840405689037422981974822990233455272680130834381729345565471594212076103070291707059986440303011866138299657298323962483594608829755487919742910918135568015836923993168282797401992029695738159948996513921975634152126786731206738049917486977885905278512505263511047146526237088922103945244229967969957103106937509104376864703669021036387971696580183468887489797014185871417823746150430296979909823440852072696701244451372803000636316185690439571946771411975753729950388041238806062852238548059795981473469656973011216684893858561072508923674008948838330286846868867104072778517030631344635092462982831501147779372153040190557663033803979526173992390912093658579718207076606793583034984554612478202854804281185927197150383652202016159963844862126989227249259689283532729612661911467027379861290592794951033737026858849786167230236593601861852756435462026361519433239127932561000678060321974250846467210808354917832305974799092357363339534240181343139821389236434220282645744953264879303158085906726724260163633098415299346912910120764037743788594382467134692393373550608615021093979899484744033816010540951958423854389166880991796739926950619292895118226772174801225136837468354481890641562468390684298290876740580474099669587901576600857594308365880025844066025037124267433262831697228393246563473745232335695109274975180750672613179898264497881900620312082672105542610412356727321136645785949741730516565123667111452618449053773526659961338159088752945713726840017278039927259932762746808297905861755341092252804434484518300888170593803351569701162033892664899918498158084995939837280276686270622900854758201618263415233805366162235436645299717167162639277157538847916680067510501745827394483098495818161544599727287440912571886615856724987649746239055889612017145479463907794249007640819170929595801899787023388018785543474400659700806408647963534649061856668671819903865018784626613222048356008649150937246878430206241162346370829945120628448460535261629424586698625962103254564610899231206554055954422328970488680120786562993346766776695908781792688865003464176907406405897113985064123046222684741665945943932610201355623422329956515092303157021043936525161746718393170398648077915771037684501004658518851883828214442744292628560623435102729976024643553513990047499453954431799514627388800098475919532750022501414426836801811776532955927464259174667064176926544630688196517144032081529618523334139319761557431542253614540305612851845974167057849925538036308737978856219003993313428742144865704412566190446539772351669618186482406831678045824254672183222273749136253688387886123300984987999683841192472315178602521176865849367861969132956635107188503691937130040076800019643513189465078170203559477851585387636174140902356550493727355147983608854515674667475975293051764035701307999840972129166444000482111170225216798901307359539897358258243340270526311726897436307377920225802596177355402280901180522343617815965245043253280276160279948362464782432949596106984926085307232050292154622283783017598883877003870325774583151362382584830710018708604232494473985305162838642809946962320270436916776782239575665464277410139611781572594971951847910841610563888573970800570166820548662263973907529189452988068558213767215680265133188360771177644378448360365253427800984205402639064149578515085033372616105573832617609040959232176942780975519961629236148259411931346409538278475482742337647424600028150051591701403189471010752542062585888270939231935877974653344163966340990057509145527217809418026817111392053718093731574973076704690722207549907088339215013917808640647853431351856909996838147750658490546952714340449142852650030372591763707592225460505511804245552840134444646034119036373086857458748794713292709910145064105317869618314375006514571030570844610621669494318673355643813064481990399568736080100963606895640936446373078432238418128563795364657021113080843725069659954672174694751152202455168494534873774129468508350324558633588812229805338663427415213693681811635680882155064829845102342406524593459985136164948063178855587565849915538485291445669892676203149922153454027819204673220641092794757079263807287962952951218551235322553546665919283780137751949982776025503296723504508299336110917629566876238571405117679404561856856961864140246170868382020161312591247061263799627607408724810837407886711129536643737168041104717406645903814853673285577743235313417027995694812395711340769759801523200630407849757165811535920385087652477598386000954393496145072604349598635367793592319754490971622689400600187226938632557689459133484506659304367308300472255630747455542633031332827998091317858270532058236362596006140206057616215180470674920500655729578979115968429700170573922609202636338617618299909217405377979382112018412872664576744577026227920249853741688627544317016645506193658469341078891278302656916861257983542064945384106296932598411764467810148762791233389219321625416843247128294952916773956842160129270045133666098996370898241828981606042956945004046633357098960981966520230395655462361999445912350015685494566173170958396778158704786881196066789773163949942442115815245893954662004587343878241999232711813531685616091326071327266939505362800612708568069070138073121263075186856967209593028419066531071024936752772081671854578459120365477666876409079117824287940330403549687997320183725053903263650146094255846263385020042679527550993029983839638358367012697066499277521760984030511920404727093280261406835731463902306489203570735796926489017629810700390144754442316876634299692615839303773932852461585913374851276912231134843409072605761344631009030863558482104907918521643759679207119902022503757837202789519897462728292636031681658680970933312988449270044367621120748179932247691639080513782502362679173655503823066843944559299670507780925641312906140800436814188542685145234202564296315107218039871449053182572263872687120961198421925844682802811248206408609696711497038753941731929866208838298374626633407363641184628260627863894463370880883512452254231805772973756389204242750504830988063488015514660744373196450682862348974320883987746840183508861146422863752191129242610844917149223542699093354618612784043067084128943128087350209985395555558177936222107537495817041795576971290207165381251797298468321150609493008865736946914672800014323071050000330803486501338817618665918785120892125337648332720139670904619847872663010437711888675141462141555400013686144572958729944576864898471922292939836802973443712310177502355655412023262777064920524543673976354313358882822585893546048371071769282245583149086515125986271292015271988517190473267265685740913025700826248631892604108394833334719338568076712348527180950266338091443910221028523572900163374828256025758640472065683651669938069844926566702719552817736213525889124561650035042941960000841772786185297324903661048527426316583713709259385822972224074343313700027699967122861738845276523455986872018946147917290802525918941849562119785019049419395926391393549436973531693117586222705299415330094205056008827838915460653368112793217001589548570195954075630917660764540268748094076412560090080161029560989916656530970847333808833482064885841284412219174779725955809203063901502940950564906108528718165954889490153691719080685417034651342166768021304099615553912117784831737393900855471651993346401022323007661783962847452043168080248712283642107869451829628053953413166841374182085575192437693914923933370242168882488342918640057483564624135549425478709553708440123556960196830936234459887770422132407987818914969240749259503844033936486488643065437174064850650923598944865068182819178174531190000835096930100237294573275505907597078826224575607942896870285293537801098939047610717592583668193784425336922323235119696046166113158897520846770641869680590560175902417587260855989884894333544001947118226967783672643080693654582760855641051501046339221288487956907479704211256057432551909499370477164904095790799155683254656111188897053611459521779242675827078164846797572440176339469063613586503181605663714357268732416446480617681063055025421039558089852875728349103968213454131749639316434851875628906645938227342008230037462237820403939325131989621877145397091488461808956822533087537708264182104400488264462803856554502909004685401530964885118733782116351423840674999560831499427107391308224544144043597601348531622448143224765015404290889448473014274813204354592820155876497020990594418080449981304901536657800247066836373078981392608277502774660470915320945774297903308586942932596310120739411405532559240977524285975331580755235142690002096688335097787613123628080119540417831059795379345810537031985184485552846855334069006274931343116219650211473016183622137033338647846931571798956833622553682192858224238262887828697509542387000173807758294215607402438450093567037661390655834842978043638887585213637530937218734316223488002480974163139019139992690596576738937353157042818521365959288144534836219135694538283580779270638885594463488876624914571736769751174113610312622828015083675146384025335352504847857393584279731783897174045109171454749058452787139661665593968605033428221586749817371965566691124506624106876424234438961287643075139254004173065505993650926089548382929817639492755731318006179573539782272608703939527106800916390697418063875250538430520829519134697571679972132433630732170403562190191746655157477232045748004230540378781493368868020750403079166334461002634908714721259776354451882087355417918843199218443008368245409286668464940454701986093975038312881305745799355713605833954735246875511876453489825899514977586457692729775614941504986514922489974663716843092617230081639190767485942604381001111034620659099801564622899121965127788011091227456483553190934389735994507536116043405323229443132908639267280742287907211686948009854738372024883279413978939867119338394375366567250347388504818357334735702090225835281040661137924522319246225205905311395549517608970651895666106755234324900118897242822825845351777870528112791842276091672235268712297945367941560339228720466293333222563064874291390377581547724909126181406653534190543254054114094680325003039544521036394868387128550419828732786263820436893753890628795264419055041469847357195293905435123607950384140511872873351054754211238032302676235066612264577450531955527751802620408887458500785249486660179260322685101796003602386916002819114211898252202484934163063750681739386576280285359217368460865078483604959847736085984931733267684260062968811468343635950121015120696201154207074203604816456002681697087400383584434635674038788247639422434323774494242645005818629587707231726748124754307183142213091145677614166133163707690928011924257516872464351944308063912624658068432240755055251430471306923892956921973180074362971800158016639189812266293141602925664645189195023946887468590996854580104525151621140671816837839191683651291565741008849792991563111169017138204313884737523966254787976757940393932470131515432131996349223529714589570079873472052417159605149244129296620413337431718590573424916387486920754853524948445880182974272926972196718506774449862840183322822539196143787233642656655490052885970995202779888575436268936219870935876916704042211484380218152720174519310020010640672447397059088671255588487246180982055905427440945756059764479362452494415469328810349037469305868779467301875737249522189266574720128101005397207268066635906680174927398288412438875676540177535284791402067913600490855131013628083573799597708140755026755956941854122079787017223946535377086244335987125524034545330358928805243465954741405529020473681973431487326037000753586715477882179903040006419115391447492247064141033423272074300200805815475554658081593794388492865590654715176795212765953146136369879767656376707978314952304376481677743351688670989024985373667583468339745721406574068467585522848181376428321794285483251353361922425249917656235715308547451421972113059947922451314243240826480375563283424916910700217078820149440417615661272425511715629879066359004200439871481320523299061573726207004687798055294028818534261501671881051940667329535040471420538343101635999948129363312853727425657323452384509211943319587774983619543976258363431120770708202788399287781946334622107524402097209011688394665943162760954603248086069934472609711890164190706568087881460570309956269382067190975276932889726107182056754094198816536390365740007229625072870566626419826044269271910084279114963339300536241706970658654146123939495988663243363288520836965686096472503232321183630865749994858914258691424118014991146892909451276623323745614716447539772150538923296945804982612355421871090455187957412866061868587854381558543564222965329903605315541142148929377688365483829735237976893010357653634792062242793234288204371956980223646100095865355444101759464993212982922992432911086937787805863082569010545067450397920175617395175754372968641952173658176878029871815453086981729509593571572329404009095625011220481868482546235189705104543005433871080799947329685442398044179682011948230326457121882699956665483496525631861909958942725025722286068586761907966425118317639393277854022767208097066284830139100997559905824804295355142679424071407779724812718013534902177844244307625920400256237681218905009632079877741024230306574947376645409336933338888964500643067573936639368622658383570532101580364043571272004999122084566904106292513710637271133684905435408456429767972208412635316276001104916761865183897831904500827111936762701301054416771671629512962282468023437696842687818000150265734505287313705034387892648873559349607666886075325614245243942632561443308325198536606815577095344109358132955656404315263567801372665808841643670149357617323638105862933320220216293524664252360821855281511987394903084130317927757054429138540830958264969923402020777460955474637613298915690796813892350646954271105319455230744365820357887931810215522962045413945900447194685850237270872127523978225933015311945488761843844300366965381964405289923379462406301274404270969112196686823572406054271805242651389891890158598912373300887534440427297014426543582636572567726191111235898491894369128971667976958028358319986999148222528480757436665574648697797372096461338428911751172234108108114435075866203863735751749569396012575338271680779450323112894085282157861375074865881748265018470903277947688876161245600369189317141420600964659398676191803177610560513561799843361271194771054909077127026284381482343386693743717081012979965120834406262814488408887288994672733929850862040713591645757301594964095628757534569988822207219742205462383784538533776046929834295612571035900882318395437975918576910123753212908340275461900869459800359693889069544930030214420341977535166701806178432016436405987399840677424702418058759200711992270031700824494938492508285832316843939280404317576788588304535935539414167804569171249416441675636039963858499313405798626023113337017495171952680184443577204476384225980605716809717010015482754281783221215429380210392723429608341997504424215801249218883681024139184642948054596366336856992277933833647214477461450918497733856389155970919742249356965960203217671316036306008331631656630031356502741883213563917736885337956508339972744963086370050867372390705666442781301480336043245074042774390964036005617142020719946308001476157926117643257043630340293747687904435635798355748264266007687867711895960214880714786669456233174655275643847379010208066858552320328577249710776636327548791054358865841701323973127573914430881541108450789511587996161114463545959127597918657653633404167027496621599904533794069976028327290937804041173749911632091389889761243756360118444994481483021116114995187242041292254013399912605004770507508515341104010683798626874809251484489587624821665811993624747900737160413665940585180729044964333324723347735624978681970374796654575901775789302230810066893798858337019790163043535879283101769922322244690706941925648707005334251123711716267132992658345006141559103008086572250796672276624540254176257921496785740692558800593740414183649631284874461607272221973467762465521817258226153974497803477602079575001333833993853601469535729500374551948506209422597471290120098284035491010491243065535251874103863543007108118376385076481109739710037623951565742858848668869978038162957568248802811388776657946283369499274145400177806420492062414740910794931608922348261491422327010790943061072829845439426343055809146913860339722560697607304422880646406466683252708682613185097539693753429284992886092005386012187264598728997982553622053037785776257867131663586473346807980495713303407594709700799926225264788139010901157578276549330977830053024600255546443878904808203422475679531310007699740363360167641838667950943212736861601705779362567920503019439880276271249055506665163029717254305882614480452061541636579138744393560452151641700624548173303918205113693372249911206026486109435977897364351559006987655592939866239523135172498636893518097575846587348791030953551305982945402285399702804415058165126820900965716499668209440396361491875553280100755478569025247091826888182049590074195267992332426762272971146247233110718664178767726022111801837847418415585651123543494804715591805626996527300673556937087181708924494753273485237690254926036595202634958238441478343556738751157855726173589652158574943178670360410666118384539584695594765980090986444210635741995601762048948552513759788201318414968642882887350792877411162874860135873231070119407986144417863645288223961559329952307439314085391448554264244404904027928800518168353608254789243419998606445916444576574460338923081979145664397493044331850525493526514943490640939053506987248292758154943584692907603029921017594523234440779747588075883567602435527645714788144591208413128562404702535593043293701388797347662055201550436467954197825349611031691236056502358048862809434083516775876390330698361993855049072343398276189780749125128542371041885274775565420916252737539496775836189162637112415699232902112852579962077284178267890105361228495605660355708822486114931582500373554667768352643954945412697865422009741382380476961725846743082323083228320466612376887168889837424318622322720031958150774188465921672547380833089021699350505084238393504431067841493684748680324051048842789558092731034869634828160492554882350827587318542982811093136008816204713275444508313801134692915285660281223681992158867998907251143665318453313573657774909408645430638895329213259009462895150176240255828720197018284095065886137363101404419738954988074078328395305389990399034181141755538365801263332142802886394048880371613020261744613197218956871615658768506201520344286758808426711073005434492434389997871994349383272086582232285681370674394599914780444203143423109993106510390665042581763371612868784624635302198530264455009926781837149642474023196038115226057265942710559584247298370690712610606664913791314377711142900669243118961295050519631904741435983447899523026802741739022136278152818685378109509265936288528424898481665125713139785033230639111263042802908536894392519220807255947260717462651067637874138404843012061256627272971808083893070177468657704155051068382651879912793483131683185929522362594730403888750049230944299819696238753414926227053920971336441671163630698314949224923493938551992393894722858103557184890697801148403704217057432565063537621681161382140278245160111655871146664833514313527559980949673275588425753006129842278062655142867822977504958213832762929203397345906534929592464201120113609963372868203847105277283225677854888588277943812091756694172293932618679569124364007504338212766064523535804541725892437058554523268842294822342214110900111179883300910290036339455465990192195794304085074384884799029030452522026122193345092327972618258770443894163372387183442533991030001340069671776021082010771025169538522472957935723682978510198415947859845033014209016038428952525535389230946686179726435866785287598384328119122548373789272016618380345953288298606501243187117739787834313492869681310820014474384998139574337429308538961660095561189730904686224106414256634161970231850434831594594926809432183988391589449296758758202209547237666895062102768133345007129608102511021860462897483923909243059652697921844856518612933826734465854485107953296140572065310655743486369480742764707738367905002995967789908005976537369024554767653620515007063298325407367288518199352948746387065938767392835602663033634323054462629328156202338544456328990713575945449405456170847454829217844450020167593024500342874930098025847027831761890212641400146865603986267843286573882911102388571113706136412406927164287845695428908784140685389091241192641162998669168073608233460350476268890093073981579337071873383394770714890220885057670997566033556523422861610473743269579328313735811194761051214209324783355258543696563056142720943972852450814824483522435014842390898575198682740256644758599110166686003246440296464142048790367955458982602771444101685935405756447568537014632637412400627827611674253143144807652404529268825542893614060146038520207042422420219659736698157443995212405327832619700496562772449803597780602179671503983986190153679255662434800292537082010960441245557714792689511468810290326964238923927469631833495389786920456482607314179763985953464416297690806819341332505289182307775439386534247510941250841496921583659331459403473884825041944267938445025117106019535962832494105775525300774435636071472811737573582887064525509064154954663690296375929928757002657909935841167765494170678858285604645564839052310179615285396267584826248739013522901576578490304317144688219615827176680133101221857981485886678040369861748214278506076718014240252747275670471472531405764889465749667864568565834303064283220143526963938349514325795505205139248336242056537470035068390640896932759772954376297460509523881032418645207949613500154517268244519499827983474297942017863064711318630043330818352117770596515972327940286619321234217107822986508278965993408029876504089137813984155783709076245138040409232364297829860886014969248097716569083139206083566124109371644068262295061414231693531033079851591976903595889969764982396937102130133890048632191296598673145250698148791544121310672568991757592003103975287989273510049651273213207398209973201147607329467690562476571631201483685324417506383192075648789503973670400623901239466377604725928640209374538516735399019890004086125707949379577854197799033768119124739053207283647560613580289384402914614604469373497437084999624100743119076344739773352581477342003622400249834648376269657151636552453489013826205916076977910916101972848692827662800152256957196843961846944419816880054468467594582314118827038641841537949912522865349132076455934078495416092313007174589880277342021683421909980903172309061821913722359243526399735068710029699593971630855487959330011135194257178708316273478723136252827990006108345008000435467176519665520226535327344715191097746009591695281957498076221143057215558447932362472531249261050350179928280817800090401869249980032734613580161744084535732011556582239090936987752945186468920903705022771258883878176165416380943505742422828857928456025368532467904459942716322320177973755957750397533598983575037955180937131871648881246209888032292002768264972460702556258857453534721214393974360697934272135095610709493302588839219806173460045522345097784690947294924509162167770488341082555855652266777986484980002796747022711641751114891389763462881084908363163100106525268462034880573365875916867010533056429414560797753582739314561172929390378667425567942645842051707549612684408106500945517504101336686070314984279742369083085329036013925681775261625239609846068096979419909328684649577086024633189239606117338164294680000707393352110679057940314220579094310619071057366385776590442743538554542654348812985287888419601581117648800548405742569660032903605469647926742327688728305707159017351646297367654566609150279368480747757665582540261266351313830590307926459324532377388585112897859133931414546691347546864585678550941714938517576479754858104332312591200023557692502108902119336429996081720834789986537181498179792242376690802042030790568130085696276788704214245836542790191159967796664373660868643987437372167304072077958126016998755785896988219484261371572027415323065973784472280847272012248256588336512383167881209142920381831584800432664946166061595417990021938425649513068810759098653061410157088285882146300623780258593562609013503347799160114525082464054611001257387875538135466008484136669397243043714206677572500139412809157634643986110727764079482732572739110145495234509074975599116930603058144287393693634694027363998188129293525714055214471732919789977651776933174412908314120505441693128695739834349828560528409930090183195749617907237966445945665747238147363233417287538129663541060811175613760159247367124966052906426679291461159995579038735368374545360882342263860539572521908479094113423039554675493864575468677431640035557590362928036003186819995431927746766092628146759073606540389705767352081752020518435322774731354592699689241070778079436734202842615169260737654261295867924498366718070711310779669053958062009086041563520940926262429224223177358614354069085297563807644075645784901266659738976187304415863755229638099908245781380018644280273090951427764382899325351686605955092671035840677379017045020502360516961655946093863146650634082432814072251367360504335595765747296636490986974592070816388054157590060691572192785855704462696938830770002382492136683441778558250854106986056387419625699903588799312010743522983324374235657601462832180315980503683165287992076905050725231812860146208814556395307566997780217604606041422640894283607288061720017444189813328986764185255713536180124192445990850002613354138191343580377461088609111787941021548070114332506926396755014733559509380434924490554946816393568551827265682809276701619420283011584645439977991323931877517399555068264415629566814739792788339708835256508008102998525627032134976462958882729999102378575585001669740703951148257421343807850430486947050211750928825511480974162171841752051402346317044387411060432602161378635140896438532373661618683765908965623297285244572023790075363053338576725939928696281524689991527965805766134073253671574636047392156030728921576090520073753363385450712982734679279444219347978717701858050630405613397227302735060312681245064236820605912900978971822136335521611461542021873841148756489166683002366689236528198899819584537986424971070783302050389582304330350411843576842089360171855805672993587956522339587772607277198831540761722662180715365564460917750641305748960282914637757496159133348922981500247170122214409520107820635336794791529214630586184145443859073839157717072777973229011589216456585360422569947953609236888109161383941866551702475477902836707338617406210618937675756153189235507035134556464409010419860189304954071325022749255795448142334440929504891799408535812461196363290004955758122230823997085780929837238615835413949846226602557936013200160435842270266661447437651558663005931393921366548020146747300555384475687078453711743309672273827332106168642074274424661657918106273590649539693277003584059154490502580458850511253228368813311980613201577913245635122806458611292422969707611364574477778050691371613965453651170426560981616036911834794047951436078920729188721722438707009053350460685593958264181792589593451172446393216824081856059539962539742838635431383922658009544866190452724928808760855023977956788691650992745216171095032476191503950170918510623094371389643014411847487814805251655078328443687402108650058706601276860930675101774654707398409944553068514882200361577903188767824249816797226081571100153909425211090581858494094918961525172177485067026675880078697615683864112642598698212482773787142104229782270249723420250463497599853397020427244985839371522892670163174796638877037311273901713720175209400422487100571189793702938278772714866330845750028436017753205452404224146610647982554255920256522250092442176894679096153055905484155347431770956618592186424020950041768598258828145023044117065415026947769389567698443965711892814546917661921154677641065891835211584719575699155531759497485616919089701905605615927413469239411067257814487048950885155245828334306117566936839471052072926720779605477249148824444573877480113761349822925782177236208263722528976992069821649194415625136479342489202022848632073083418877236003799198920942900076650763748756811645247125855942724174162712669107040776977337772695026767733365487001610846340043145197961096274723123738658742036397435997594354809359610384473583710991368050937464134796459331929612739697518166865165666453787321331270783629479164769230351650085776687233831906217372155858310996530910086908607735656865152788853335763916152528146341757523681849184347622659479406836896081599718373190629395867600143650521940650934196750724695548234393487694293921598787583565766161090897088641772620265677565741930842373864055589462898433235292615121311202480371323776045851119701786346673022276177371798357823488539485035187521693105319775437284616802998788803809118566356484181179301253532758146375577405700851349233201856383643352672628114724590012941507048923154156181747469548398315672226047453589091548149365219392248969898407396980069175639737823904428928530084293516823559132649419229239200008929571108580525774302577372553562953458310570268500822053505331641473360062274924938788574308106801034431087763942293845658388248691296654085358770995216499523745988399151140898275353928420430986056657402973568910045523172661406136645565913398985499478463898380739653387718614993090308922377955368577478303759010097154222275003806071781980755508974601809332061565501620074034155104565424249190465415656836477021096092373124144071092554966439851210526891626520196718286547734650188979004376824747566807510505890123402151427504626440042435121311394015878781430810585654215115599588434250186979679654535060903035240440245363956673753326540936557127767481065830503922875567866693432437513061014328918404112096825060803319007263226001621282847425632305948568629785986857546452018285069708853331426355372448166788472286449878797160357469808693250744257198223487825779945247403325366818467901670130760549758258914092548824928995100524092688677434384149494744505127692210829522333561037311366943241477209947325181738865069508445766530124941120173790011156745158453497601117434877629549713404242678341210572249147331586776323078116527633857351092179941723002050437284161955180430644676528840048340159854046188015561027720496713046065758725984051545175907503469244085093151753498272986729862436101416605761605905147898370056152279884082015341534012584053716869809241889975975583950361654791083855651739679248211750683056332772958755931479340078999382250827531392874275869728365256578027770208845457148226467868430972251339836482872570790248195413858048165200947855577961204889713588418734557927333919164668027846745939028685211048854316801610657049783594722359264187884587293713340339336719416531810060766606396881827124290500141705722925463917182600808944147258522514945019931823563086061405001615783608129875750873494371805397205700049046448797355463930751260363185487969585478682167605492352574282278951370834984566633933967266018136213992322562885556008544955748968087118439207557521666739045473143387672896068802393197942315974770791856825442328063338909739276574162990147323493806880862297952144888031773278935310709696777933460597727691947117472804881555045194954606688790492135793280726480125708554384289415119744640650835006210299448718763200368172680381805763592748200093448893116318667772691335740043983538919021850329089590619449259400474801027876935771653585122958587624865547000900215930477071356649652096130012441880618341100324952855578762277309258058966592637128778946475442478087831743806338995338278358494595950129999743314746940413825468535810713922526640677660973192222359699098757900490576270686902429696850290443441710730996056166083707896669404318298292045584698901840024648722412147888996933737125099433224949655087101685942285633631325868750192330693263994263686197124537537985426961880034930545744860608207533096460850695004249585977891603717127919058721782918137946936303443844281705153922799936172895903494608823817595030888604313716412273785037894678393836631715691909171282542647825049029402195905557167750971961157522232934910038113429457643786534439258065220952422019331663197118678882632987432920254797973529072482980743596900552942014430848091493292351411948518028338839777128182167780851712057004138751558112952808928017731435756223301212167395658719254269375540110209076765630011863889126860148468954252057605061071749578971585902828274035100253673548171665379493442865335811712760922973899158572218229833772995052191076068438605786997601910553547040212732397856494200936792546785597467127903803024413048971403082819882107877116070130970520786548586768596862723710754891818726062301239519191521375129424811385239709665475992384632974428322440462833972585719003801599003821768664205050224080101227062126069874393065079137101304110533338232510966546764713825402419998038847563331310926184233212094705947722977135215257243036544594052118183718708420222438643577018799097351464350021343161112438452027568697523335600835711354629997936286668797364803761034791881649549497812529145590672035819756051774732477133274928468566977280885912569358853400776611629495915431775252346166570813296577226892624884568779557390621227026282373670158535137656441592900856246131778879269028709275232677687645175364684160990944491122297384079311495499338789263932618173904874379527835213424314463971454337986544384030651439341673438716078953985430019099866936260146548193996540452241728911724286685983805250654550622898931558254721897478593337558315463553873478728255335287410698596389962558055740813696104427682658030544203778223897844473185519649846402745193864895615466080594860863611622575160814602824363649709231489688754093055900347968372203580653026929235378914967368028318335352224982368277396564182512479823512401866070140648726720176256954561007612182845914194497973911346636067447472683345563496842008466896513977396522940853328932919728035443049995445103836411518483857803147938740090049905325682015899053994461249110658592155045479631888235931563634237991446277684414285868810992019985070208770535499506881021744750188333197914898056193102914011102819902152173261475331781616787310212349660824842411442772527411462653171256474381138354482631177594893763196784767288596899653295355054361360184974174260550277295358034921595664901470586194397637888540757976381203215411496784496631976859435242063871864304794727970597172575631641024343772938469069693584903304409214388469729950378619640025271163087724327840302418477915478044783607657576145664574569156961106890436571597880268784458619820340614494260036959322496610133234381893980253322991862804005567742789427892307509184775863015947218146207041301798893615876373716623212118577866592031222215581133457288824498885214447287115223734234280583611099084732598844905976816474970759980381950745010790889311627852553287570868598080929740358868456557805543391225317616301725701020138468518431483455859419687823816839674646915997562200397481100120740799369812458221035660199465345279294927724648244342411051750963872910584090414633427346176186190602130253710173584576138010895831293651604118846604428465622201683289832717439163171641330127328138461451086483394066680225797030801762558027787051035579315511558882521038110226684928553841944346613929956232303731466534967132640564487715273591469142844629321410682389602900254533802697220934615083628947475028946978111534692299682906455140337723484250549488052621579126170823158995130943680162394207875867048408661990372612200496983424492814449153006654561416132586434763077031975661112736537017771265015522245181780706084510909947204378110936456309800558280139824486060900737036227027485417362968097853463111359384413935434237336477129495192222291593988534835700925251635156576650583276515673572472944573775672495209106292039543445089260089405093818165509019098252435906712389037533068242358668933544589651957552916664335745128463099422046032147652806645809289738194818823218414071784058848399411944942321679039126862556402121910773621468879809557142945177309520274126734870802484016758805762978013899598397515923704040106890458318081452272483443309284701789606399903198184436230628424986813407138832334890337608605183132292501091825141107529221692990592292539062338157062229735692726617622712553029709151327894230080024631906509716031524975869036770780722255727152646020858464758391557243614682175621151947468338678363255173135457279826667412004496476872200634997611473207627380725365420486401134583497370247121602574245963087192386122962284885113181852730647483121665739880932089181325935381004364033746369514094199348127570465361591711508310089289813624582545452166681250290074736391796394887536435582209931042095365156029436202389623282043398517738234658548518621131825518498536934266971083931224333362826206399775222576999718662916735269848010580254865694002967121209126056991399173163942158208503168241627415498834826630374330549580990015379645368234743266749008121734526354471389032334431206656106063594595661046670857193190765487507877552428624549027408488937995495043091305157873515962479395267627935350153354625849485822019726024207633062641755001132008915954197113018111485517187948868933602873858904150712785777682243799397628688093713882071962372139490944331133010390222331841529177299250141819666383886093048430279748171636207377587154169152955730487326434761634848528257232351692030431263582191733854733395724613526481873412167151369352038757884717936464112387495060606514188115999381800627233031436819692701062732443861156131327646872952259796998249395627157062032665837757928602227094719792713106803954251490119280508661998205495669103676706914997705654778165851094243599527535406095778232699753681911325530929905620143672064649234456125498685540444357199820412805771721650000261365470330749445443598459684241500857421838585481757700296110398326505861956099879176827471530258172795262813575329567491427434035896493426704170060032208026018872160406307638844124181269260292041287335789341196092474652304441922438208233167355028728388180986179523848695756570494269970977308263874538366567543705305647149864759271756425402574166132630241076548544288379018409120219402294681501314344939202342656774710413182560567461542434011711856138560019119030835319842770011568012223830182835932096198232937631874218399787009325034319854072559605947787820451504393433965359979621479139854022862639992845545266815976123789247507888753041319581639453111069341907860040674022524561765681348184479922762279860611659848942856227580046175524957306383532469157962866275605241435810612167160784002035635036468121614774267674208116913447620956200127655076640433778311014140910529167568280942852663130065101106982578589321732266492583672981036220694060977967495527453689431113168488043349367963396130406412204990916804523648717012753116659128636990355227967220668022067273268525173455490528132894073005340044179418024979545233403543442035225921620607493478390018592214172477945507598837677588303196184698866969992707968119117105623040513358134022139730775595374138007597044402717852828371309392774799734189305373717827640332165952146608149741704277310506822417945707933795585723962734937632243565491418362437665996288131645907463712267289387172595559656668918466879592079757166409528037562228217514084958276786549949993140073288085976651124547107663169079105199037536543867061270548773494693894174052542441116981787463372252687747076758768785076710810590782461272491034411541251513152415296575601715329573536753820814244554244374968933372842694249081969966024423489868713164107491650236570321924859119018253579347343265637188965056828741711233748872107161048006071664800937962354760141077345699402084902185532207143471181209161729858584956822302049830732740891899687044192557429992637998932473246186444226523667866253843000416313479263730980247650883095428554910549992384553846545289969369083803972030611114891532539699191804463521325834464720728163134274842458403987370462594006326043359434397070733972623630817931853399570467550463967889869792955684072945983167899873119564835100457918444705659947791398656298635641981816262379111104406033138012986845356811833377134412939254782891802582378949133987265483794157628652242814930216472112454880135965876819184686389152045851051243358537222177166059926132048240555890102081879872071082982132337708422415738028351475844255112091557542703255968813876066845020979848989124835137548670113479734582243477863879354897327983844437360691116207166378837821061381962526382963794854115694646360110935296680391276512844669113685704196457090299835953844557170471794290404261504353195666458861501049569950187574417058401251480670396577102494517227950667602856914287526332489691055653016310835395282398320637613105908955491879146135570503738244003771114532989120667731214236413101319612492451183090887298593327092692805696337881284918622202930903387901229961237535281568913721873394611479768295728860844930412593623167307631857475126761586311515208997949619512095147104968868418566652537034655153612241098239175254704635481924300988697283447046409421264363606741135501734270884718889863360218443438870485450035897274267676695722305471121996592486938349404748197193574493860945145761789638866750134796370482964665783260268053844351734156942079103842546009545201724966781505480521088161037732964867454461555514955958817454135010707529026017064543249405109471252956510854199090597009829530484743431984632429016323426911213368604805895923154276813271474398098259063305283638309149593936588535033107941749493386494358338495523472329685873145829889902197642050105576052062421040352761995841413957363686491794453456932332343888840022474150714970738434907909804559850234528215264324149383308610047837768170643490655294863289074360958088027627679673907449401134370982829708733776550231131906698077079241271947641402028821509568535332921896163850594406704657827836957309726583477322559137744972622619982157063180125222797024418394876520281966482252363840597327196560325722817429419501119972565437524869162249405124523118812557305662727103628284919219697910460547048262040491820799849090230628455469082222245983395973918325837227613978092437724946349238573690722572521801820889379703634594046552919832930238552536025378423608226244165719186901188795669713824760371746734054123976688438452970547395942629314675701177948103386947775457045897642659114729383518829422620241006383681258540155398904367631071750760726831765954330705115866043494711488094631658647967911992950153464617620788178813290252477326951638622182871095609422814853293450609938214302496890873783626198662504907593797081497631103215609981460992459319971051568445483096549032669603991932224422882613013662524246200097587457066080616288649037466251347267114592713802644996177471125092657302130527174949658880571711859115331704527345239702079694196198565904419920483408464621197708569872366260544319803848200840099232613362117562360513360245115162387370985936976332891629568284082326466832911226805155403334652914950733793643929960255001299136025398371325253358093305802066398225070143986147838214714533268913861367696726247058863174272950725118231946755545878615902577966464674516373559386468356007543432628249172626712663448497451991084620740516887697935191403600204748234249593244161632059664141076485754436629495988981097179200159180534512075332685150502223566518411537212263553811000906305109037475077757505853660017540728595473613041523467319024482789539323657898049536480530209495844108181987455755391262035717701924395691438833112660795458469359862035372038786859525687856661579237225072593266424668960268799290933677645136713389238790511861684981762429046505013561173850004616213235552710138389572529217019570294731728347640589939768320320220051125167530271547842773040102043697938296473397763663458517067702752091636626319429261956101082238604511555141088049932321201002655171497137856772254597922271736136285010545099780072362070224168066007417690555862328851699803159756463909215782757671103912259045342314491647118452789345756471975976595751766438749264177055708089905488255946547720984432873525230382529104949052827004589833827114826504391545936326240407448369280154483618845141830114681105917281863724953678967084268951454527624627474302903983729384696316246096057919404207296568034996668414727679834000546876255205716486509369814665955861399699103931067762835652730698357561459100216948595685994816574606692138366713698814483260035188862132816928524694555841565344394128106990131573515904843557247991107890900132667574336645780474912933789877588256381801252835707823070071524480940111703174300366472113727764172441018786674145196184247089395084893936415588399594492613095785470635698432040122136943443855565810264920834158964519350489953119607057045585351803643194041820050057334199112649930695269585035839975342406245024090871369889026521251108404327531568757606769092564502804967478123073660564533978583738900883628093278637491097151012108726554504725219427680712891131366716364203707420003186753121047912564694181208470030603340149119369984970149030717023968266222089413587546405184640155823406484038695264850119624184048240163111195978737874459492319307980443867188361026699011114608943085707892342012662440981961157501391497271909724851290942628960016656806880299182148374546077440523429455306860586166542948867622694726692190423754944701370629384814440667619042582025096786419734160702429016304942723324326203123569561073462044514992071476379235745703433323107625348709354510907633923622750582631499777605062105983033482271166597255087462210964641449019934151150580650528597492213654378439810357037198967584385378316194579172681655829812086388255269113554981834430127475169995889856783299991023999149109015535719534293472773918871431507662914961271286703231155394011648766348804332548682541254809693966703986783057035943797288515776829277905158027121968455976756294236857633389549798873675576609662323498683324212743276535825141085490970070309010664800902107895905223033080945517860008655249842753451045530922055047560653026581036724445449864543022801082651454144142443858036765522380834183754583629730732733225273734000841817253518070397737199069360834962006366232247601231837409831929350007094509557502929321412021634124923647568401866059184390322118325954166485291686031749854619087200647764672729459863446989468894125948581638266933403359368250430814490749190875557976678418953041230871752007387490085110839076863063911692661097797127996878723798345737833558484566822155382111531635535154596139797269001429071251488062321457810561410150059774272890250525670320305434897987076986787786609363195648729306606490316263350108518038862192479809999500414097739667314965434018156451887301905130388570174215453019617032822047957389533175030594113732037491106005673024393508367892393404179919677319641067060228452873408271385759871872297210931240481984304299297973029310527009110644157531176146670405964851487140215777806704038328953769354408950805942978353391322083420663304831759658307998969661056269720297088035941877760662367558953181986245546243947484990453336924289413239387174367748059746305889262533882818394544780821137112339343518991072685810789977897563823518936019786385469653220876215058431828442359315440775553037142970528617576651406409649600124394811856070707057838835877631861988501317226336110040621810745676868260383608724299403083967463701071035621803921269424552174532854418529641949071889441242673902591316835453641479268736858675909834604548553274982575853643543958460233880876825426048484889967326277040392971827153639084051913757847658777177641843225616511584928621486301249543918220201436785774541088290101641037403756491591720248023617077480318823567391480676777078329084365404117590041982730035242600383271210501045745531585867410319834968253362003757756092510479153486527390621172308889796391543405916730212186582292116200064275128037392171011521210999565602840301068214431361388006693484265575523558907510662793378132453344939569452816460475585499571196911029312409660970733374543631149395428160103204323095204296232043046245341835387059617063753086918537096120669577782938214224555026967760733260969569152644515715003397669896792103456124122625428296656873513393750127737489165352128397120404830869631283886734494957818360364039223720838935396920258303243050302394532085351650928517496463095097381978021098579937567284520730803531431520079485160338004560939806081090737113034879425212680493178310047653892434814517176051896699992360534003174541642959638891343770375315233845663032307881817151428328358261636660137350331695671895702434690497985051265134014105934877362249182788428404214626232904765229938128973958171400375210087400404413527725275389376478961426881607930451295250946117405776715077316212919754785298822440335716626734643301181167362602530699744592514776814072767938139696050668334701536863926268915652195484134585090281657645227446232635766017934941454311079714944688679873643381341120627488355314926170237622347574002369127083403399783049842374981619410114742241706287039199455685869321325606790783185171387492814566955146259713917608616975742249611426617682100935111156427717172970019419166501729788906925359338235128644272768063845333055833537922460411674342436967330310052534747884654473404537054556984445584618213996585958645406257547691986365086139995403714553931632985350569702830450954201187609556847082184479549291829483342313137336963438809990006080497917752416317348425802945955408763400732149992616062359729482403367438905343784482158606726202975024014776048435673178992001793879888937533420502171189115419019421984988261219620349464987489910543290519600845954121639077193098090030923028113631862640481395977721639706051649612774785275748578910648041077018183654666379953819232228260417701411966071319990589758797594682783905154954448749295715418622569046304680056499438818940760920376406691760815122190212857799476665316676322485846579845739302134581593401836751410680824687960713590572681704391304881172480891855557960759531312720292005416210104921649204899421957890852508234934183410918617902687256774660603880135539667184433477167386936134198491963676164833458130878888210388278422336464715067810562505493027911635655678639958282189311408989531214869699332264425404940555086999981684709066063732562925979546168494836337009523021052166396453954508230842854720740555662330950343451656184571166953400104215292757748472251836102934591809583669602146626851971581056504419220030702007225838873599504932379942429057377847824888079287102630838955404587072841630928140745963312041632052675642606779698231334744526327946146865844984043718656178121657363051800496799004059357416197555581290879291424074627761612187002967362716881268874181032016112618743736006763223016297031809014573959956340204510739488840479917124856598692671168703837085225108752109653500919838674411622295276229765649736015004773330478266459079470801147792006723521060835769762139578520974706333071383364548778561869604507596907277975120858307099379149965446753997015740370318958830148655473596447095064728522609730614458122692096573183668074036212262023409512387155326461916654670326932426511495844473430506518611337004987515106558388331854502477432850933778992768970591482183803099098084143991400690248573012436773657317215905485982626042710912672670937975911665222502965352238640000232973574772270101727571759725264654734895419578682604137037879885293749627512207476525504278859457248188864695087043733979417988465220237240204223791867448163782695321774053016593015151120495692336001232464386531916256262199025037690009072179753678286505893413699149155770828418558509583733153201002184907596307116530561996439523162171681754160796752924436935070232030521390894292441658030733252980096928456949449702294309681373519977219623381279241310370381995606574764049824182299691718076688173595255703721825493110684171641853256519175791064817364164765535406249770714543494066864587973157418763303297290005148894944964492963138311568406286205257448936596504140692193038959987639889658155270069599912553246068269100341516854343518531011969027754746869380966542668286457735093318283251816730586449414940699350606508057539170434885859170971411762335960643985443193870514697018044558040011382345560570939876241853104037937637791706738579400939297391789731547004372545977229324358655825639544091044956817716398889490255486282951706493915787089962254541970706527820561232246120179182834837603193589681835972503858690422274959674770510000732664464264990943568225615811103016537480011356905507968669842895768563049175422585367541213063895444025605229441278974128374189395811169139950910973733620983717759505874734928869532093724277071466047096477681809527498019852141669750791940328987675909495458530567223570742014581006607484345242497829657502766098943324189888287917800009545737080176230123562350372068759510064181660022408078540640626159579776788787250757349811654751254808314805537387935185112264555052556593527634463470208367384906861471090422165982813708964368903294064410952738828812460888843956586897961400462930382863426543882012361351482425194927542088699407185799592459280231476891153259822061152518365705929821687369402166422978606790276116869839249070162561324650121334210520254491522122077470260020034343812580551337568820196920656803662061377224518989510644809647011946160561955130305205710032320595470864932836940677751429796947086454731448793742628388408099206914522532008401257355371470707410854450545472975873895458645445772638724037515209556793728058785063058251917306112376775360235607030765785952540159095398619188628192897818989949283702714611278388795639754227843334663690465988498600393006363768008968344886807823238540530863954304003958933783556875271104228885765738369267980886027638347584872897688865908402554922678880661682774241548732211067512054610162237775929877566407960616362364228380586624296579622167620380027459417001911325860480130728370829832584670259562634674907982813614402409624541941605381450168283364402019837451507517507824379437025612120649568884361117970298300290559879003687398542033567261665374381501261105698496402623452433515642480365285556677098771220908726142181685925843571738389980704378264297845181269149710484805176332813436048619474792512749434474495134816235308922701967529467755614559889976140949842918666036742194555925718544519176470865650267685114013498527161027288303054773993603413508393459853446622816018879447929734767804348739347426231591081690151099701696876278494620938252358427382993289007371637136460876293656863590585279048672152649397214024661205149203716411869982592360339298930363280919236829050576256841111755998583163458822713537614600641598079938423795691294688039775631382746740234748141347933388800003292641314044021198607798655992494934930351123576070472501705689277144687503751174096910649781283810800578250512407410501203252742319138391085899330935882158112727927788517752816984635467692280146582641788501597317067979816755818958704791520623338022981541164307928842269016817648586598173838610498174633163840786748418521347913355373681124155263619697679876328792231947671491900605962572328450039904753108162298905217057239744932676839641594938804336169406719530359992729604091372603243587333235226363716755473618084083281681329719142658067938518483906471289522277008464764106041849880808207922837495863896564254943393320747990178165797375905333212842100763537321309367855727792323018842460183069229641046929105206043463271007722406271493348402484089192918004369504981154541378433885846614435893858850811807514592978964506141226958260342851669163072127030657629591980424203826135328489545269800725320008019182715225608577116920729892410518448458079150446691725847506089465761575313622539113728503832653477526348833996471233174620203187377261974596220838844175161924840346485701733722089693635022438074605131131752346927261671087118826668861617712079213072031721211348709298944180649024210577977188350310902794444505052252476956525487713207094269575505455588278435867689779943114124463876837715358358928678361940429254309497754944538750401234176729134577140404896768360350997676674151684143146691790718856463991156009432846297542962831970629930823920093057467039723807846980730027786571389833923611302336226816157573271363902315521858432469364970028090419757355354400655125417115124129134511777759268714421446785646200178668410090033810616189424617464848120786990599939378229202430414586821260889425667667565566659543064157734736031940083969627240115766733490466145608253222150934670998216798524374717782141705823878928573778859052918899433854955643017761948998572884041370157870264121279343536812194425341425057839366669256999271919242574578632011623536467912862556924886117600838491633780990453485212649338555207993913569992992710470173838903418433487725853322622469339798259889232965076482226789151279375402125468800155876098949655345651051568018831047965037655818563768851772928287535937669120892567104572507220159706016138522358043085538083233388025875580477829331311100138512449909647949318051493790169105950224726911230242539993461253777927963628921574637043624836704927239089056569624581593865407252844964041940047417383891731181863188076187647849516869593646605826413250906066041065599944694445465616607438932091854367206109127409755390240437822955016906431406588316035397483975134483506304055174211067274374547965730780298091302313566206709466057307350702709365607317106981478917010534255285377661387414561979715360558475941997097201742533439088643597409995523419750036803664257846330794721856838431097284662728579733373152288855596723413629763690552908361185030981505904530462869012413366932692769503345388592088868607696250224874567357386171955738723264194981616089077078716895195449544944284030608526685966478275238977924051237793414707768931577435300975780802153779953979462250506217836554137586276853483884628045022928514891977247059160983021282492194731138221361209546615684087459728759446442454675911232929573260841776138959325709167796554078255387000227363691074427248055914312660557599551446796226720352269976563068370834790315135701047652430568498030095807883266384896547403604199078165615741560202882334620405217838178134172856258421172702822042192477579065877305906176782803819484223695608606176053422378759759325689513842202368968194556197334930523744017742694852023547247675650080052273462327748382825321540266657502607874419194969812608830661030362696818303982297453657005757827786320514990162736079742979707730485383225100907238391691617354748637522280956388237172030537668077479385398818424854967477821620310170985245267907690505502871843628196830665988883266072405877665410206203845987591293215180233828319649643092578433470411852107702002638009002104088322648408702791415870231265452033139793081487322350814756929473710395999198300280965017316304678958771931522411536818431073174644275200867110460480457160111175229196659834957639267727396767049992948754056342249147839116941291573782419654441158213789287202872091053169701262002529409640851418004010991291722503815426343479044442669781069012709768786107087401052440564357619575621577431471132948988472984380949364794750544040579531624451963772169362763721153195205159882617281956772345188167152581654195859776647731749148661271779696457579890529957114421122291730906814636416361305707459272098053287987238850672806923018874598150383688225641290928280564551837829664163084520181098718374072411499416400061234632636458801114281994488812970274137269558088806148546411034619911916548978412874730818467465537477241487320788051356874104190090956273357100830711470723630201619650316136070353402574430547639209911761921948919554724366222601416085241874774645296711245481899399433848574226681528867934747471274818402672466755864982031801992084878451277935773495008395898725029633271545470573641540749433434640601426047791798068027039194800541146297038544188454462775929883005652863357612380678794602436462142091353051544666021074170668696198742384599161639207305326940731300205709129147492413047851221439279164831634696218228149600137044224936271265030955388396028834826765387490596671094684482450332784614378864087837759178940174554791133345083766307264080611788306776396987361911073474581928030731363762992370473230496770799215802169112216002536350580407705107547393644367036276188907046916236536270477301614910593281296651981617304783663709191518919656411999997952767914528877641135195232215798178660165542352664915827540010130058148450899165499726557718271531133705066231160700554416590781756794322712877998880884564279885367785157959238250014282233796069388274846076323815766453329515825335601965650603190127995525092341738801219362017265071475857720088539590620433177957248674942197198670573974708368991930785594763419444991417984083997063124414842443254288028421437714948336463176518356889329653002126672665763231986931533115014013286182212273039518655578488830257722049124445179995962854757234631518687410756053437717472971380455586182452939632702684587574377511907301764353381098229585138333551438162615794119915705440863538723349132708105278045268149544782197447091539020848273589370011075036025147134191109230849449052099526740086721007051036980761920411089350647228914555699189607772144966088357855460312945086932431265507994604684103274658460315459269792878927026425680999118025970156213406394554474288513448400006585217945627369767289067073284005103746293607716823107393225481545744901188507292335175217878668022015288714121354426695352012552703153698179819606989146578003749898484730375816779362362662416706970785092448631546015465230853209222334864846379638700059699146623088863896445332135534113472014168237979968398365895023651181953041618876695711487478858356537311401398967775814091311474584574611391103829814784164355776234467945848760271227460479195135706689078857683419004837771217018059126536061345570430452931962508745960601561672665933485564374593603047395004922121255658948713014118516179134181276660605230809088703306437646649653705116295500430341538874409208233767143538468400449933821765982450963082580520335836486430303397775810363540017748974639507153098046916622351011705435349473615158357241341425775165700316231171130094545758376213456996440952081794374003868971501222134554841726103591034623819456265206964538807901332349316278412793968877699672375210481491069583516178689324101073685988621181307528548118927428767777866319874980743178485782896200563326273129669656230394011376915820149842515569506396932802293513369639661152245879714065663847377565039305451642258010032484968267683496138810316604060819130733294556032307247017509518159205013441403426555590180439656159042808023923432229691394949354341491507478367321000741515359005429710275087544703434323702071628565198122672999390161767898281704336332749809840719899777663686018901407827147135217218786502993430115902886107498812472701090107859089555841153254641631649492948187552085569851407362256484854885754473247781582485928397964730487832951327788089242231211239197452566019576447988792750046005025412503506911397332874261350162192997511367810937681945854064112041503454533228760369082806796594677005227396472508994673595656342094624810365682162599970270201735057225696839547518234502143127256506100156755956713049522597310300530610391592245078808932827841486501303608987266770614798979831304201058585717595151812806000833840159824996835127277853192895238624597185714800561444539446636027669961175192931819850574174899245671057969983681789846454291752377891471225499636126946510525839282772199439154338182989858197498274098219220155771745084775340694417524978313901969824663847970698523699577599806675271458975531455881003728012540907269497002795386472597130178300722854034626519327672864411534791683171375774950691498523611047350275361282379019549613157609028960833762112952608154360325735541588970963121845812327509758934981635503053585548340574162410858254991989518355407895836738407922948936720318048591820815133470431479951968451254330458755435320948264022952845438954032667224707296196941024662971775672636246280047368050703044361687605628474983040803721807678767750679542671250283570217552301126073681518263509414984314615165968020771217525031521303238826381827519863416538597763962368607325811074783245318688122449934449121376766846276816751966003367083575206232221875404464535141805036142234398418180259386530531843406022729476870273852713073357417604188159207832917212558067109848178352743919490590233144108449000743508816342249062564833632261465396674552136043557624933367892638491807778615642007896887113863726006951407861953153688592684378967980016826569785541876884208543292398101151042377670534803111533391223239615823899625467933175130175268459867306612526011133930573047031762788106833910859116982075407890710869301972061727973342228381770312242105167079572755466565312352596652445684696367908638203902468747999981396003147725293248668822310137049251016976340747444682139191170109303835998518767979157988624213815248536183024464745682133481812074941502406606393932986890156836790479958081633945334636930769186727222854026197565701479100093546103920786633954632932236711243831262020079315472208498487983036191134316625290936202821866323672771982587173069010635653045263331436628939833035680566725637741807796705960799971974940939362565839996892393870355811194360177994236938737051100873711461848045962591692229643777951006383103700946621387922980850039411109372411103746633031648183497845729322947282131401295037702569807468971118462706909330061975059764218325853721136917924017788415024507831596818414516822792691958844900588790471233757526824673629278571462262883552842645580306605500878037439665269204639495942005651028154213948311374242308345518715000646843735517962302253343941586523399869821192609173340571459261858952570213316268620218364027348126821510661034220542200039798927188002113382976502243541940936569620250983891156746173584859411924008356275143489761710889928755612816175904526448497937928666467245179149919883047809968654855830968392834205449810609448521150321753653387505115505202868879086983323726822109488901659450477050300163881838369603277379475058224735896532635341106617958229063549288961587044014948163165259093549354323710137904031695547528644600996317499276995695640411011064140531361658801720092081194563485713424490089023027527626422685498344492342675337391824765549786659645779520385208586720622402994887703042003156485786414912820506365507614210771928372345973024662820525913483871323028255087081853197184196093352393777301050130697929665578832439362974166209567295203258914851092051946716302369109551778810985871649540943668433910376647300405211773722914474335743739417881861712610706679275264819199151970940701759599567995356692731856307477252126079031110912193443500217253426138670057911470042462403694350863472097914559037837050299267934665529775154080680920431391498997504981503420242297875267409448262216708585505484131609299201975936851653815272701749458945081166707093489194769012726048593324028255979285523615403711385268968233266640749447457488715538898526078596248560048417143259732370189541849028501832638874577458297401499377657425035530243028178303794712320212987777705676234269059482421558479281899464659383815154843374212878076976038380101337064734752571717963359124279804176284638656152688752255362662321748517147708395829864033593437641657644365450707288439067336569244365534351480952216031708739037213587397996694102341375639130179532883980003005703153438298753854068369620452559121523998406651935745469427882192897930710944575818259007528102444389429101402122700253140558124726039699052645795102778111679285667696802638321619594181570181833050246923309207756054602461205468937206514774084833880577083770738848957907497136656299497913999212030346579993290828994643522812219730281560267365082117267569681040973712822260127745194200715193176696556213015120513606689242442531358040430313687600898855883330235666199741078381050410488235316305221369298807382376058879869274392226136514677864602692461498515224948746027764421851913921879683679236545568320638932606997001476592461237795119909988474143337116874606949036222875668015053477634944214839600916063038703213299755707454940846514747223097643110380231313382229074382133108990857279732021753736138351912391357223611236189564322980453868543978020109405237895721778606513177205618428229280913677651901501882177651150679069261477965007823569547824865148506566915653029973138000230723981349001190414231071516792860997089906282679666509144294223669935845175786616419574187809965308127187538114475257860000121333094521681796564864868260411563153384811651544355708627471101310435472841916375772603121497571350157039715955283099131408673717998422941409564666429297591719433716343211187628920650549811568304726194869754379984556016922242683240387564080311239446718036241483917095762857316116666085924982759768969582266840715008704921138934013650346381743428837836188086693490719668183695790430718623091271055180781374165917975060325373313727671873199079088869046104710897544920740265486344296081328634930569255556657252046689427623627061921265013886419067988680590272176362816033487878218025624958324982215670771925804062423686170058307499313606106434861149122359746342314449881034236608257434213397878036097459718660449419708727589192293467903549033653744127666351635110468479734953005867080441926201655815566349142163068531168427573398063066001895761920779638840296621562713690574655120710803111741818456737007178832662449869007712975266452403203834473419792695977673062795240250017775604950120546172618818427166793680450492610318019820056895402435449346070504938404261028732123927639275703231047590721671722306178414325002521579934795721733460295950331476552213361306847299175367751213000719722194327515402098074789964513041912854897378555282815274625690864417103282447195682071858347554148374552835755820486515897915075425981237129963139741699906430157249448072948261764469933772384405179543557950075275990884442340764775175791266302939808788964237489590733083433471060236233691024061418798142643967032733647298703488722751911448331183883197990592996937168532874064305734746644735805046780893212705828412196080623071271218841536103835064281267412572653542186137759498757647868148382458570128942669923480825774096554975780056358557903087310487185877488083854719634932704745400104823087507391338666190998018195093504613585058057946680005775411561036057428417918418309475044461288823024441763475396708690785815120708569506796377267578437969054497177680153731469453649207154351297299696631827978841505226832501339229978955151964348154819237580626447800554353672256485020366971475327837544254061253478176854301969086586789368586784314043747535581086107135956313363255225242631590732098456484560601344642559525693210667730338630604772009392689792461320547428952996124009648694663436299062395825453222361769646711780883838324480004051147578021572738645429150884682451479624991088512704485511727512689469176034240361308992226776426178386278307838018671347628065806255955626634141627707289703941005252899267119116735648684719772749613871034793414393841698990890753689724185022122279580152303343731598538429317947761533620914767928815166097227780836497186548732879737932867677548307443441750106318843884700840015323255837579847017076332440882383156430778714841882587237571186409523743653984462365841051278608625139582642254606000434402994978658396825608476274879282985539753076793250946066110451406113191662091831462505518070049188129886225094760245158818035225590728392422541580389051390539364562734026601438330813236667682835207208944950437175057913694571012401571871297133995823766896316112990078580047163483381726048413810931374633303081860547319956363969430522166212749911161592609918275884229543145625223096713480274414300980309690194978848163292602901503080579323900779707155632895590859254779499533902010918227277533728871043301040191134921633458565793139473583984416200520568038516237762595461041581981027407849272771827059434505512709751974115579057163243184141624349748090887774493748471913377491270873951071671300062876686995509273830585048543405678071127775182894194043625964543082775397942455377553485556627562392784510358836649981616992201564255603194317382430043201993663612689322720632704964739238416088519483257720721121222129713658135977885462546835180574764040387806276494581196956018322158520868577279335268178061302261470287945809029971870039400492137128861148734217085882052343501163392582689930644985763834439723272514455031222880475769876537859178890450557491646060315040534817134925824205451727722799477235330416176183059589239334485802806383963246132635233166508408560738455663257264555987583578032339788883904653540830576243661083432147610892982609178431482126848637507409957867321285289529458979664249661205563230995727518792177726403179615838210630091441483834120186827158399227978678923171547089773670843887193580393098432212984255456151719730661675166010841091441787830287148725482185952095528374266641870421339627329576005319475388738426666643022939605384738666952320086413472032986274200463904924338324649166584450775547363267295405877684319454088448636026333739536127453026016652058215203988226944554920138118209401494400413549448322645799486591409120536389237100709103138526227089532765757910307069292336874556452382015396543184774270558612671098365304385873318441038185159639036758029270131138398689092888125065133294646082503940356475487093457761804133106730785732453684863106639804101477656406997007271653103948722871725858248032764387306605492864875863670973454630677368446960227554771212745666430893793002394671576043126252167754783947876175712391046075133432051569352803932860877216105567535816842826194084029655352262386998581251062420718591496712386311139793339932109967612229424992424174964501085892370929593217634799348429810454859530190601665470324984952724072056592095643223612105963546862090531226194901100806032985855297594759082960660623634070977176092259464950413204197667583007914824657529982551800269924142060786248541706514599375517007423105704686943710117136668063891327040105009108154927422908045057614313167796371338452639094593391601626339134516762916034599528834768311687989870109690890075386746715894069317415438979782555734359301515277666115977340633380977182008763789520212575528921336134549744450163106968208629134357874697768671434394981633404933374462189198112479626938145554389588929712940923685374400636574783204117625289460979873682494203399024090108245549288319707062247623122530753164299569358362815693555799774453464022171188141947994523450992848843880906952529963258771471889751095026491599777028323547429739038949697658092423570879334046787204969050312105463612342039604068362693341598498636717581131653594645940617065749310744680491255286916197849134794982702289501770407974205468518621042489183048930808924741796811871641712711738682579606575442494325885147864605741773293307257373085269886783136823902697108345598929842418945560240226579406439890220016527314895173362016055161886606491330297604904878208194235864278374712080985561018556516631575866363016558704676408970278016585533361177670436703091541333460430297193152136875590708296020983058232135283699500284961154601675567944817102151344466925973366799395431111880858752059654000067413161191902959679695411652714392837920251463661262810940776948045968469370448418368661044743221443683855888707670860115591894233029424832708420303632864998746964865348718848388249403812738979306858178416934122824397336996619858030292117113826209955266653108985411763435947799055678014975236102554074805232183814198952418222311771931746488409117569429846860996602703000103465234184722943354415120728232495662918970641390269202651481833452255334305158355002271467530000886317271207782419835705514020844376081506650480763803054114912518904969356256205862939620348747826117643910361229717605891429511556400263737627484054656568681623553461820331585886381862503052101243876109779877454894859111857479533170931496503847296491102601767962823901093265150017698665714763855697742981035378581448515255102533180609964254903454703240013776058133842155045158657528525984643630427970432615458521929853238965921744668395495288396558815643359438840610704807834412147563619883867239873570456423224050340714180993121083937749986104309832587283843273024270521010334497050640180057445451766189793321966864906302431502348228761603688712484460829691000592904585391170820294470807140411355561088033652870926490678665759791563963822539026098838098495510584655326708879153265385483978949113885378753102455461674393841919645590892026960963008393902765804181656043198558231522816965599873952654908323451518717849271744583247617987721977096785170957650637467130708768353068993652083092869957363364730084165197819756869922560889599957182921702166189063013798478561148052196071812445580251011663528098801757949087362693181075183947225232730644439533591533803520952039459662894991039763466749820533513681326166038076379835704636555891352441419028971016617400496400447809922699134764956986132481532428212804725360654494671944499310078329484388239625740733991722297960242264029061678469070817616581967888164468902584357933262858233661285479060767768604025277448453648177396277514821777413847513916521792938595075410746444419642535764768012861613626145994803923181030881347388613711888373774892459250627374594212514761329605906704513487192602466393873255596536286162171285171674961116987697046507434284564237266137060694203837551683231911262969194744781104676129732536874000638672429407031936975863569503874307985505512639926702349394016782192024403560356430377978516805724009089224836566663311117202620939010475964977425471140698033988402350725972232497574884881738017044443565540241226034538575907848226761735375348545959662670684387121699497158921266147798306438485181785167936206984765132587569454643278653540775860216128828626792725667663155029540453067432205045700064735293004991423952318527395305845088444843079722371336058873105662879234874719111830808832444338722655960941673383294069997267227357571795609537807615827616131413725983168011008462020264107945556263417439071966456964751816858540532834848456932965794468521895102308435778206556164285224404306333549803461385665592980893666695117943579386742450196813821475110084474080337932862869298643192241407670719955478322865813846693434855257154569980892679174857265925095100732686335792877971929206555697764661057033765676030409027651692282952540379784887923724784291783778117295982003966174243301290453552575154360952543957162847382345466874694370616294211657397025790316784037926689106908051422810298347135402066067644795478665960175465124425596016958847719400565497798817212746025405637763442698500193494549877038599414650569361584891352861239287031442501360791584358891896826733865617508988957993497572576310981298163250537210252763863915969723180122157289209810188663131024230876008105734424696708660553687526464849612395935254698087473750287971211758151020616229750820896672088940085249369054921141210853173931297300896975334537742611874180591779499131550929359204870613482072372578059880909513614169917210791071566004830959035859282162364827745509716105425219461021487362975099763038579569582277702789439670535511388558804403782004240568380015892326827003461452558986264934609522058032300753819709647278550101379300758989376282819010559782195358759373381037203077336996742462056697588273960477932646254694581164166189796229743190948412412836741628515785468631977055571470817862414047918939286729467207163796298659953235131751823961441291980408175253353660704244883334734588719059983788386887718748725697195859298414813044135372582180668220806433797753734769537145608916309419005085528309414007540968401235586853608529859724409225183078731231123717382732510481251677589226219515801038702750725429138212113970986016591078121124817463777768301926366932428507037816682444369398854452806597752431425762424267120234264362683694409076519489604573484847602201613335953075592594538516653072957879756179050355837524755033210722485069149890522463567201687015019414865021212336379475421455146193691790336869006927488254727700526548062410331675410679131247173083985988420338953945825342396516877808604467452773147087467038947445695217160927818942549090594271609105710328313155839085666085915621612191474935688056784952142849189015315207509951477805482314943450559621329821462399279404331389666533266194861215223119608964902070434247161539626964741309301035597098162004400547018405621635617592626031565800508327121208314247674958630183201515668104508502423480157305670567953679057942523296971925993539416073186142410713678486485267578027854680776117815846236967006315666522947054852129738310401889978240553132760483628395026001756649434813902453680193560395929012056679187551853864961401312964014268608468700786595276166002328643636105385085623126241334543794617014537704319584151754615397263028166167071361554893402952282203476105409443831121181053039122657552660175341111408055299075490401273300202792640216812325078597147345683774781850676664111974496713450680720174490025307018391290109934263153165946592372732902795421034661919966579741539842511947994695547661039933698832529577285040834156997120316331398191466380471451110189156501173695006494094019709760242664356470028585794155017308521180077570147290118785818995931973649387570243093117976802534271494526756074112883082838529114942976969209262645068027653890737157910311097333269114696351907279749950380300531753372017988822922723317778986101853800981301628901338473991441484202652168270200070331625514861130649599198821386720244202321990551239568959829256175704638531110220607215235463232481828772255364923251054781681991468350865513591978130321478602343875681752814284324314990882105364351954105849916511642993961058589754346918623698498437203613010104885090603794408893970232151362356952352054482491371789880237440034988420754953675587007951859540213334730501662778642189056942176409755070530302509692178288005801704235180565997035612931047332774620120434561625459037878127470587444211201242950230711482461391337976274907584716298674504034910371556907817578889019989450717214682824472883880860881541207667249890311627322859133481828400143443071706515342388095803433228032024112719513556089961213148170894170526984311730695883078760338952235560877333020308314376034020414089168058578543428420161292990875919069256773437828856632103054057221242281499772352602432130828749024030626250879559882627245457229545423073808381143856991124395419145304256555575047050051750542909581110040716120802054370361986352179945603805567969596206956862866132971727183948526588826185849255495277858350630498266367756343949680692405711033340690141127129046868710876552073847641442402026907732607156281438017026028681927467690628332334012886582459843116394866576266480323917577426183078266053153946090747740992578797111922980262842642775829620948106894062003627355735666822842388241447237132609042779263629920142873965897368329972411020388988912372664992426206336205417975527142881295802698421744257740005141986267506939665025290916886942799977309614499155961477150240572680307246484700245765861917936514459003295895984911361989213001083094858187962780947992106433012568520293123506690772340101641584614138731926678622142229051483494235340632632936851724555731585769824803052561942792175260772379729105919855246232836889172347791821820408114369193456716342296927137670895343240974767469938079788926461603780451461900630203296094707308505890717845609614371991002485802710469871520014161748129918405063071008423915256592111234473361754482705888939983382112858517904829160860621732212429537360491217156771058836363895975775796887477883104370453042835539599205473453032929217885694675145205657764725370187082613176854356161520303884072590340753869629811978320728223532960914132676487199086119030932303484375821747613641863986701316861518331522860165388299605906169992061450270827216579804545849191430124410831152963962924939969348235948148674769884983704001794180759487276528753592876024575142426709313012501321971218610066179171044676668275013448447068757171498980558062723411351749949152673024464950734850253735640849394779813675460336405094549528075197875748757736364548035690665273571414238619693422781211759367739616083838759767957154268086538063602036345164240217543520095406079310753326758924545608343204750802409830224597984089569198105777861228197360079652874763577335652977323758390280801076382052763251726671213999949458781417366673484163633398164470781895016042759426525970302244368221962484668034350928540489917084020128901841673658185130867828373508499217084453540387664060214062378571165158070770301259339858998820094338395406216208685288940021002550250867449775391058953790084651596972111834923181493602959096489452992980763400376326003279008547820222742660623733489241704704431012659117842678702131561900428807237583233224799734701904920602013265481305776451678798791730511637539082992716818750235719739213807031569080925544069297113290442810756859384604522386984597433661384256095653457810559934408571049803620807696671322625189472781514716339466855541564493279042579389946250285976151634123190949417538122775601358652972562233244592676906302474100505046337037426521706555647258936485799167766334619400117986952159152753306801694101797044183496682985361403529148025404440068412769899453830529838028173352649267171575425202837220725620688730176613513770653974805227826561155428759793730282621537873453109716586427137262792834616544514095369780306593184126005381831278088408962064365308210069887166663862387864851155588005002381082998815604617168340890652577021108423144345311727318879232282677762948529607861176779796037450128992212414372524202966518483090639243157765118144247629780046859438390700707941931634208807175643037061984138600409875656113461470392798835074457954764235967684214063997098557004701039583055074599913362543158237302130886281735677574673168258856051216387528465722801353371892314556476924457174151646799276855905090285736078664933506854822124370324807672572761387734988679101868146576720448152600702114382086704094510214510349235407454283104023613356072137487893801028047261886811150780821093955384596275892286985330051873459758881605371064076620031517280671532850747157549923779407879086664443013068354426437022042314093075117736026455618097882273402258037747718004381293754502520152774539707154463761055461737254880356802753893419150844545624031468307007149296028998704765984253607695321150250087862734758566267531318100712413388111473877533041167942540760531950156931221409897244421167193193311994420975031360361382662732369663880036256838059169346401460854875723521543448554049033108034596437305890153732803189080230615442088166322324155664701316818068702303233207129338094438710872346803017846832180993274867559335398974606407034507078223985024216320717788089697456992528069221193846970802375417206973508447268383671769528875886601816238025147176972016720089246909394476605248593736118490445738363001880110828061657246913205431512715574761783439988010307326046070833510191004475767748149475279110966629007736426095789553221037812465219627430709198081092110855090088991494000945931354368308988191737902755939766117418886353678268932721967001046800875005274243456189898690548504625529188336749858074244059691327907579157617758292248333080633931824424876967932607589682279978349422915517960020528315139026519881619861558898849723570775305595926543890004448153565199527273830824700807914425185126014669844447897603356283954233159451673194773524219053292839087657751218975152230316697512982404492597195069553204159769880515204752768361487085087648744019437570852307404185926255840939977116985157294872576859424428524021643672354378384191633211659770228440734788019105244045816707450432029181239976709280734413429206264075623158769572177447541166145578862906987774568804675838619137381387307344891845385013906670973185784863090575837269397757931842116126762255454635762522584803523357229111664407051987991803962939500102488836626437246536567111491623718590749189084490365078292665259293791353751643446198660109718657692607861850199019808050473373682347643310824188888165891230334959326380124667542107668412497928867211610417882155639946547454798312953900265281446842612613214385925952412013827829403766110821652079710406043281592174830719609180851129813760425874704607240568265547899628089748400298763015017622347189995304578999478775776886737259431673265430439166631995114020652509778115533600224330427018450861111741525139955218261648320325051848886889270921998100852980076012911268761560646801590246985867027340948606304328990991408082364530270580680254183801385617837070222476735186287490281701056984548061423317077451581795874175344441610960425401102204639760237470785866028925679469539062026622015488650967665331092586953250014357108445699729864459379418839518303718563926009272270870925707405876480289952737784766340386762961498243880462833512825710523086118717419412640482336613784877323523456036068945062255384120474024985696533944602287497798970033948785087195382378985380390767371597200103502730378690347636755752594682319249123291870151276519155913591364168090751232919710022744407775511319817921062060397081979996755130441815132741492819415739625489522774808420834354563187517779567359536492679018188314729621397327340773781067350692775631290024593080284788797228455487485357940892317406535373711658942538844500472641850924106585695281295368977959254823734395292231176732937695537373380236840034950347953985425959185939693664294778326020894080018033853672058915769521775430082611093377817602068685079226029583812409334840168128309779792237838384885299811041265473688363347580796733160546790879592501306501959100052824311227334728115943508197153600556475780699491069363118949307881231277191638045014962338147379172416478992363729961253785381709617714285985758398313983670175323245836326714188507714413786794642292394504162953192220899836532213739410618395644741158438416728675844840287960979952186074971291383927400354871130257367972974707115330943023940570554513092469684166744703298401742185853825143994791839670654912087804024673569760562663849449969925931046127004841169192523420030454506038422077817564260242173184563113780140733798170720072868457639288336051919609162148245989858987025744811371199122389736941508417763398808853797597377164954964919757381970218454106473316378131923314936179282426095694368350696227617277054798915243687690447621104744630977093756846540914398099231468643058161253523325217760738373122292789667457222886567918248452943588721165256172335479909038379368421934306551081333750835678027248942930521862586832192554590835852552971135781483674906385988317514090705146207308989129323686582282511017584049897424547153644014772463029989173303955283325611307661113887626057080099721634321352683360896035163823925416057161004567492114811681522002377264508106030508816907606662905378748529639375888820022572410658785273054275849642246551860369397365357849070890801851892255865408072395285480269590740876240742324946579246825317118793820192668210782713345592210910979281913392118598698372435852821191583433848671143639501021600558532463453126871363716288555411307458141433216844498256974139391168624746429038571102946467673646939344067181209810176797498984613176205828854985164714960674071998630503280719307692588279636542841878586798986191628116063324155386193101957246790982150260102761206527091031824206219005743692420438625343785568202091635812901625936596688236141943558957811545601485335858884940858688031051367566328531463231962732893497469237328124726874826912614613603607566804586270937305868248277440043806847198278046054363021177741096747886835669765570085595716131247625434241855911488528154046802465446755658727376838597395957536618043921128267132883948118495432947003696769176645189326826033159845802243717022861315753287143285461202078533061870191451364002804968458176286563360489858442082315078676164770223827121498331288880674048202984571691907714700559314832993042970474196032697057921626134861783619696702756218870703458806402013838496729980660676843204719400361612130337016395749451824973309190746995369351891880478641896222432909122420572595043153632138431579968416751152428876178529164519363526313471343268777693769624910057307324723230356141563646188823945010367543751272749387858891851897490660219656482162150873532420038690558427225151098756955114928367039375042247384688495431522664978536898499787796677130394571918392114301334900711907476807323584877112721081075882966182650616069310029728784333784124963523491677961051235311702647310422627748885688948042181120291439619956982173682206979362675735293061172607987542960357868859029005908475024043969816197026569559048168615249440473433707538727103381866029383127313845352750131231254648559430515472251554832063876900379258642354171355813608799057838454815575803559817749150143876933713375281286627411713864501147348814157499677651869253031414473034818162081218699607011463191196953211188409657903880482716681063331786624170832265666736850566498916877551751598502886749451864911801266367418277705622985627491054648121711918365774481669293245257584865894543310484234369055784454251689585759865058840072747449089485176577100827649099156220132864645424871618705805470707214136671925129063460345027428008642663207503497152289404147195826603410216653804789888222331315952428425359578742877197230307975834165785611536659939530974371269812584569499325466060871585258422620267220927105052245892723903693540374028839231052381655891008536497812420824526230427531090814585917450395665993875471014524162646104959906476181915525591735422552303251763531281934956073497977820519083379711048336627413879394966001595972836205113348613337013747455532927224854287675898097054013615206551700160056750233058248292886837062823419869347494819495583130954571313943269638881398232170283060896489296769309608900752073417938040094259853190630239331996193793935948894501352528537212562545114571673923519789875031385281317757838721314868949259543249069878919798326357017146278601865734060989969423736780502733614551118082998512972851727139283146892738739730227081943888981591665257102725510530804541186312507421133823340918809595396534023205885358200347202749305617200702458465707273314117220947252555706867096658262428860893015196275593695648146035997188657637740919067440454969058847769686356357733803289362337135859137040117399858931488081839621115585284591564231419992646752468100175095857160016494388113541248114231686816785841059395935003255466410720474424552895320632656577500178528518064681522397072976313109464056560399955333661501803135705646929677611761369054393574999590758066135256236605629706678108293942991673741626628869338247305857920725316455582543184527429178545246707128963535506273527487573584873156018913884299359399633296714369489535067030690414060641327861668550380282416437233029928410079946610215903001994004349277855546895127790497293854350470702624100789366489973611450678395881600638604296445658928503059065299664946119608609375037382618443176981717297863311453591062012677266640353257912848066643507636787533404222889119515770704247078302361517810755129467373185039870476104163021396982859360851261533594740040778763219046397621338848624478298132877916477938253847259325676070351310716454358338874897916605278548282449517115367644287375983938944072661691707306574648421374245342273596122647314057845790171216139496929767095215229382271292266023795670550174969882444819950885594438446110157020997792411017593683735444448793726476037441542430628988478709182399617327535384889575914523690274340267035353327837563920607281726768725412353998070515448544335193247265587867711051049619355834333507675905564733844544375908644130497936827202109944657214250256300169700636703280974721856825282769604418342690840482487780761582809485407191243085333208201056548373349023266916514251997183779702722910082061922767129596272441831473041120448461918034595557477288465812144653910655830364471885623836290872122114800562891982408557791050512918723769480935195256134813598869412648812991041958919041586294518096550887189673870988773510681351975979971193476477733389933229299347789786444125889617476973165160179580535806502660238007464191732651988919513423336239148930932704851043345716285083518464773225646952472394636269551302946804485606202613676700049616695878753124230867177693503225605054183517305898074468289110284745411119328860453210185641216257026610921931137263750850715776188131905313817302683346918161505191905519578742160888549578013743939671056093992743762600345903420769452289974719358151703161013377181311531242003396745703759744917545235932284702439288815797531269391091200660283151885736197096476729076301127555307226826790187461814811079262655822432957300867638058757313963993265716844346667645128566357506545666540814633007508295853907047473594101876529429450506256289665722472178738801796508350063292564803669896888465045695060749566371461675320263671730487418859253131112310865695352513249549162618081248693732752903491659276198440815692539266999461402963788272477298268680271980367340270223355289707305169237165546965208506354399622020939086325984279825374877928123220158281884570948298207415517690055842408251087626783565273345946460783155328740719964549103753983114752024286247620948313472200383010160215224752075490817800462575449838274670020854900741615848821742734803387458088192985449535045383300633711712474057957331980301368389192693445107962365526005163889033775521181549182009520797661167050563601016536410405818926288489600496835501304193605219711353511455504792887485080373469010401446591839561257554625272961442900928651866479292069283806372381228419158049946245820695612999585024739183985074299562533087474093838790654871031386953088068462691274572030307770796452126606601920208744363994505412428113135842281787034530862933715517926188553994499253324950261709606877419408571025622638155435022704454985962312871811469145516691189267114724747893508408779965224085707888926586579065657785324800296364092790044944996810460597317782012241897892856186280522509052568058785908670453589149588247103286129881906124337050489959181853332458132560018700424478943295339014522838322361618291656820904053041649804641074432346954137004377110856653352172343203647962944803007368644550049675087895619970892289832154353708249248078483146916516094486717296640519701376067016812043684157072814971414409165745510751539764645256877045485703780283274453980480276293354288364944886901963779809140205630653556617981895672370722701953503743700279018619256092279446096206856076536071391299088658874945062730222373128529157566649333838655536274368408759063224855613915536366321291001482716462317768452267961972035447541311962892069579868122139710487312552880731696869160362584321446971561684117775032237667873474057387259907758378954711579559806701141075066055930519249322415144408481928351208732034051035693415491129370165752501024229088337738431475850092249545808910962675263599837910754949265215253514944935013177096481374036070737960360475077602194981585918964560543108479676173208167324540646271125205522370112880803157870145268379314082385016793895865024068355643609467348260627089025954668545307812363608405889401413766709797996707612318582559929808068669886290862020612008988329260119475141424180624959837168624033705249421546749887837499628730730498406597728791248351479409741220383547224846413653585846731981527053671166761671290271157493903841341957947895693956445323751774931773871726874656339658816469585960710112255624764076271444816779220167483780128255339691653989875217068024366491927894152651234145266135538770190792860736564282681895653829080228825040712914936662878738382899163326561424026995642369150966118944680363619046973991208123292016921104237851290356757000927326870768031335433796607143088957848904390152670225224462049506278614707058314142390291543551278335608540570620797301036961639631434978783993759320713028964761142617307293513083760901969871002959449118256951274020856550373278008538784109467506692002518574356684925609468699482865677935890972878241797924462633069093459280532593202343393630244205750373044682066270632463687055943680256146229561664055289241110125938491628534039299038356988436074485688384034794703367904852606635040850083931069991428894622852376720306594642746452127109593637098764728859116351645000345688635496472941406660604148320178291565732590925430477523927605202419463230995871680065385098150013897356896209334512085323826381137091576107329284979901240672603626486170118626016780332682001764679142441825648847281033747742413775138755838224486415060341102638859207581644502207841373770117477817226888875419453143046810402696266138774084819240736716270800548948601937446843130858917430050539066333738557096755525168208985049918866520109642275114691768870678459139504384919898605511603244722551806800391937321809706135280469930975181139215846349701329835129064042531237980902566024252380010584893927223031768984918683927789503088190510276779509941677497718938209395683275623671749790358484306762754819776155400840538481026884904959538995420545243361199150107285817578243302673242361075335301866124449623930292853055580150424132707034813543367359017525268439809860005601457686862246418979234076709918547302102038644669757772270520109075449455034215752896281101375403427266492663166043157083273184956371124492490857878339144240700831480992469657719984562463961610030861645147627769943715009653226424914888734594946360137816556413951931912214665002410967574366094416019017702599619013435588209039715305628890884871358892651984679337707589448483347991219613476687042588699265697778335991613864807077860767176024978599073255078994364857235567630229674463454684033140825938343353731741814179310108976277039225859276605644000129639519473797749322511575843775626354309131356649150081226631496992498145905842835064704972871575384275808289072104058529835790735116042219082697007429200521433477125721615068733842842959652883406394028458996510082678681280246270339601295786398394127778021392996461561962406808554969866592702508597460108302739340822984228482192546671731138757018665887958635559645110914380478194765307029963166467145844319229458217356713052664950440914657706921371322489695811336380109958544594777141784287551532213333184364316062024748227921763664588398340575074701401057220642468812828392627231991014974453180816901885678012217528250987287262791017588844804129420825637584657639498575673660705280675222530325039794335225384877309041555725814684353602880118441894653974093002532904323841442640033940563217345682815117688239559286881265651514460819783575002420684465266129604555044984058938612159078775452175646528235167949203875082333620943895765864167287547767616956407554489803144703603789088796518798707862121084613768307491549206768086631646846506783602874320272124096080106611698729362913984747874321856164886827041177527611258626582089550227963154809217356864777804332214455154808287325972994235811384221835909890891952440001362691305164486859803091211163828973851097208493011705883544396043403058838313394229325290759035049088858621609150420086704009302142102468117038598015744767496581931480252350905517301033014216315307446688186312601821572253008903461449703629060081649892203192497184925223359179477483817162224214903217910649187666316867536115671400794816525918559802021322374430827314935018845281508597012698903230437660763172249818529838824654868548467340431448896462643683696202349889505347634175393839927333678023518200737736685465343555912061821843613031222945088080093334171972568109463657074603861484922606665397494020076242879038577077010497921761829471124173190997887398144999864255288876542015296062696774930416539866219231489364897764595457441203169370206522038477892336530090362062826356521626052514768256821006946843950844159792754034580488928381275846285607736969173729136694947531239444880673254162116683234614484642683230425824495862023299303142069098513981204949482187123105959653784965404463402833160638933261443955049778633590309102929844031818140445733175865225758132493685108742018668204681189159298954194648791538782646353208537909947407288986352685151456484843116100669555987266832644484829684888571487116965192574475301234855411560218926167286872898456014156298038426050308213083859900363716987291385190983196745146613111277871554350036578472091118294987675396495231936489010997582575994597887540781072860311439933580780113017848097735826639620927116135468630067197593935235830032364602882625878317238875723488898329426304800120822515318583149714121871967551243802369271125620151090066943603635619649441292739227501859424544240773337706995669772680395966229938840333079138114069314919491536846621615906364999772144414748028493587548901306273598050357341150137298447786472989578769518149787855548739903247623829052601450611238952366880723997593568140569629224669250626891844301508404476993262497493187269724468053382327045311090531861862957559092599193688636887668336476456287559319735425595495269619049190994571728418643749399921357981803988958926965621427412045480997516256877838706030221807275454606594057623490094190127836222024456336600536924398237519940800042336266513214556801670415350836737827091912774109519418409872764398067183446937994400500973305761052394987732490182106954532818296914735484381339269919635015881750001056366668029805689213644889111851024654258231226877844400446424719998554968926545076406146912646168250792054766608456542969038103222266491358056843852571902470635884105265881803098271518615402640313297943558166049813179548890681520051382846407677403159841905073919878636774364926006828339094818678314097471102433841443594705919415193553750029517181064375057813580429296494405664610768033549985737597954280786396417129164294602253441854556772338396969159260988887244122366921473255037890765794913040157353383280645216845324869797972691116332405990989961947180880450818033323314285273985505020035271685680540510312903501897717097783218638041350265542677806954838163686799697988862331828145243283129682406771687306103619297379753414503649243942037812231639177389046314829423785664808479556764786961521547059809386951344297397974444623366552504194788510292246764520330444214365127634859474077604192443400795493965564229295386346075877688531803108430314407245692159152379045137994269410412709456977642171761939708358873632102497299837174179127488953245128827328097668578330497923865259690699325250019479137085225075617573051953321219901801648672599917247183095254829633689525786367255818671533119659026338272017758196894156502816214228695486706574473618267644523266711834033675538726462688907039742501669760201563850867454217468531230806991990185530839851442664967699834615070420684942636195637217772792115588591126229074128699295661458075717443079598322274681482127478459446727095627989623628785651794836517053755570797192315940399450171844057071935438771435988645214786859171346709732461037612436081582419144417656435008109491784180229192228901635443057428600570028353155396582592414066099783672830308843236945805506319384949380690339343029714061065431049084315717340370325287132941658125582893895050171101770012030052468727874571423487961833255322361574411085554650996831997639365512155959331016758044316004098064448010807948580174817572464359532681542497090185701024983626018853451000451953111885677937828972863735055893658385455677313275104340987452211742060498769592772331224221865542458111781772666977862114021083232722642793851675610041973669031960509579590406083462625035869122101838924271867169594778461306280401125992443607943672207906971789918694883406761877891265006280332787014680291440171120390482320933376722720479247744477005865667322996308838457148279178413466705637890831905806474391677158858133739558311311206909666787631955714361956022608467388684872560799330357385648809949025881335924516268942470739404357572907540715806932926171708113841550417083455851082053569777696111505769641138810813415125543249589854778458501137604043013033875885524455769671112096235298455209129419464046968578180688454231710566216614588276735744148766438480640697203240633878361590443224917985986281377913211263304243743929021489178901521389221957055297286232156470653183232294451905991728016548999363385937932196850830745097130300430462492815028717965989702262978260846821776249772254744359588123854612404812738770751086260440154405956761728977433700196529602406993651686393909486150150442069791981461133235500660482082646508093850454927989868504512606706896577705813623549840019818904149762310683217582571932026409508845267456549987047303033935551350498643426973522335726301961959467577393730255166656094436066546620058897510087212580805393800497598937860112823527510326736231312732968057855017043422117885261344642939200253730041411821735657320149147132500224030749671059645922987351230459689729825638790980275439380108174776107878894076781477007281016238004002504055403149330115292802398030476206711208730852643611087803438151030866526460230936198946147690212313664753888957879395711658032609263683048784630059677731148161922256935745693491666239315693743438388606009165952716398747417981668497413373547429108958238225743585137415476438999357610697682925029802106609559187229192774381002912546462429213228270218179522811987693154950584403152194407893003534156522824003699372354010680337059791199721603972133890055231370022669692634768019255963310720532136976681936695604660494419503011605302543144558014767033611295158697705724084933909889984462397600154566170801050353670198807076289662218742891779629068754125593644038992468088212214924613035835109650481624698620173455684547674381428739082291943558569455623761400705669282617915381245737658361974046434142092279769929460623416203392331529715068320493195383526799269783422150899073477351601632795080599947942197280816726073230392535103860014795452296356726271044365262297728697470658494961602545270583619245989396270584630430600839140723403641449647216044882533106709851087770512396473471647989946100494622479740411528572437950591455274448333739482388860701334380940036743601424576798489431665290198884391799918021815362034813804564129153205005602100081548229165807896430107481183283790589127352708686642378918699037883421334790160554373116359229973208147299545266883211420419218242092817089884457047563794990945643954402997381535934266641350480679534836112479359207096022356295667409067659764853783735959744908975280175770258033729320561582359541986074483317942642037879203446005518550671843970574364232765404457933507921764898715903952875409628754064111907828458027212959156469995795126087903251059962600072037038615958228058338338069097921050620346308339057844950492676295913514041595947480541298656754661021824240088881768640733019042167231393389624033231549602763287072906753831255226710848394675589329624715813227258170823911671301064675082432249953887951135992933374312875828138368119945898483390978567647928427990712874260481524585787436044455330760865108885173991952852769000331503364310803338794124230087695066145172464882181022723104451506265482348436204677064958913878919234174910215749560426805850569255805634184968751363873049632434881303128486566713594374295986203649464657682511201057855475994597662275724583521019456645056270750116376528230975160154676645020346584598247102450026351218706429787321300417647109402788315336797385926176721793954685958600126818343458658845976273247894528981806529571845576235119194136911540611119345579832962166321797210408658046264918014877315398583848397359421115612773888018474769648977660935358484395044624513063202946599202968497010353415516379912697588569028220367113901006680638521248283251172766288397975529526950533139188361777126213493509230673668737740828797268372440040775743774751684516053611045408154405311067965461490917200061079980830384457251721678454485817454242288570164286843397291934423319209807328783243034442456901484263793730989889730659864442853880139468782267241890698622128464424106674643443624721902596328033297871094905594220334379609926057826991685229647045220050488738180245889479519944031940859207023139684881847187263776503864984384462903152049556107298907997736067210360764453487959688651554478311372789665194886210076044844781597733755196561733931813415098077912680375339379360410119301998848757118071078654438916267686437763904316499671001109128021838119985114886415789691625260612898419036258826078453288125461049856683008224426057861921573284704114958047182570325356797855575936414311501294265259662533532959369373587164403586546792275766803814384698307565527087960405887786939562012014777627118277993915911452539595033689114233262771884236782540896535708535363206399561220867656111087954243816621434640001392332925908634287245710799061272176103825965399032407426031403362848181427150305938525122719453936647222800232147964538677761874068903001164631130119290430482649671416934059811471364088130442818619220381688113846895041514293527740437947047797484777149893322602382032965661055163153840578792592348197953430312408342972763923338563220715131531394855721216950956931183945024612206027130023064795112333414518103713476546934649326097238609840109814685842310643985772577551990753983014981559868236058972594986443530785601814226848744621127229793474608798873771726614325575454930818013797209064391868062203039910595844666243872449472535425005181591717712799800888170553540488578175922886444846556398874830134409449572701849686125010161700295729401716313012242043950675028610222547563720698507096759374386160477205071556515373014462359259246213647609912221752860789635617103981731482281294070506738000609323499321910009511538721586043569870348482999637643864307506831051737013675147712229426439322806158690813836536100590565150108731208204487647850207559664459667286091625603735279790662443279549140492787052163171061296476466173747238682641987310072949918286382953141728091477409218696212238573446674473718407630552987026701672542170288619332400494670404260208406225970446203786202729493057609557019095827171479887585929544092107342872067371053815474408497048897602272199109093670045194655636504180226816945246021331546913115874999268561971348887279530769935758841692435928176978954309523408624737327318023445192663608022327331563273311122526276072781865852178399660111187594780629005314940114290068494155145033398493518966428957758886692481137492202296791713077306733586547897960840109982949681415932236655772893123990790705271929991692495497125175486182945920057305656507300675854303874110558542846751452434004423929797271863924485803263068112295037018594987416253110040451513352987872485011281132625389196519601741938250332459211236101276836883677880488245851008216051432316348889329316090549343073989559914803542684841510166801776206083638070505774296350240146937726896355951031363975280195672782523510915575194240991018591429073220895025249067299894698006265876850467262403815142798559055121988277337149776869483401583381592608776383463136087393289538982497993054530268403776344241940301557716598813376909814575364201765801749928885024517845076224985392489289004783687810766415262460811832782327907438334821459733364537423420290860691824979146138883361414228773931420789457740974300617497286158214580916410320522152275547542933222826832924314936840004316871874548389450517648904738624050159472714210892863927263830540978757984956576621423921376754861461412131206215661136680550226476670684852469591938143820261242508360090535743255050456359556273042726631543345156292227553610739888594530430063900814088920046424043163289285443562600198634983801962585330348511084117098864374006220261136463880432893251974318456293511414743451646858861352238148218770330987155105691261398994701103436574669182237550543303140135384699933696368945307015691121679843798309455307907250230314143975732932731603406353140649660335148563195002439461609815532789967668176648501483892263568488824156728324753176309239098246057572689638127233317380843355513244963174591051132514638100473408182760507656460898300045768704362763407577496983203088654199269635827339177041424018296673822155410780235752784938914019263386222373085272217096441329605649613471412055451596457860408017463735325820130460213716244208414000361292079088287115913499266082746047429533222120441457541562633392065482552808211597807553599961826333629638161257474386725918927944568483801716921686918258630188162920452608397732665139115747607033418396207796137623085849920584966706949649610038583813305255807055295847561912813592098209135574215790552890909285920179610892483126916014970681979013624169152475296162808405471371555072753506659792369557375871840698538443049300720076240758934393893431096116873911176128298577407420975988277791667162846151621353794826905285380752529920307187976513723565575562189155912116155816822393698122210974013074549479741027679442966243368649518164264068718890711737365183591908712364697405586394492283622288324079004289952896336796000656034408471052818803076558268759982355493373223255062413645363407814076759626563012144695589634265285003318536659817041165057244133562319856978746701785650507555391924844994710386477192521584909869485243926936219786942735651511261939461521135674665673576820481959468078530877146924597591546151058806381061110652482905239397772359610519956511020743967643661624421930414596809399417390187228282955256776342104647226304524508911547764721845002081874329078010663014658226674241235122597540279337191273071447375497663288783559612447808526830325971889567047238245862992581649419195700483016506171200977704069187245953864519116682964447451670107054881884457953983959403946563114392594776988131224721056556607977307294395641123101241529308021301083027863621920105299861539074200735808143265284641243800728017844274447609035348870808297739296952104541750142619051826245987009569131253444855029680732250515836072089943415648915127873232991606554530997050936210552090914791209940306558955976100427227525519595638629326533421573531760401486385524244614141047254888260138232909572648569255962442748843118970892193440642733117582029889449375612783434220561991110571677355494845869263034460801763294436069466967214922720433396828507821527857806043163517175489961283609091427683821782742946343916161782839388547770728863281142764817506532586514042195680377929222629897548852786096487812365897692502458163351408572375313538510324044625348874451493331086370464834623471582881275402071369530713744707803395179671778189400714376909542354593185469157397340883047799481056238649225443317212779383533625808319797135845204176640375033104764570559711890224893276496410430197572259496937414406981735008991259495885982296913158794106443496398397695648628275109288266525424032618781858530196965766903669742405786700259234284733264274518681189661873994869774226784406774348431222756875638332083646338257587824393041867283789673094022018028686815501411827714175038601512058724816567711391150034789249401741168090798568311265894428753550263731457999395551734710228124551351146235370478425996320318795867756595777951175861977075348920761556932651821042393960356528979029768788119345218108358090700860057125624848818160027820791758453563558474187292319700216872786746409130570498675644949796228291639105034346491396221743984782169397449766600216998374942299521778752411428712103104704258764118484734092337363448105739877179533768578883959933307671353814172168892293892109172325286726466605306187071045519202876996680883066765436059408808628556990063141738836647973241753793187739051768813264669669709726416789455482442731192064397724078299324715480485982986807156155809834407636761880499316207095461889039554183858973546624320894605115857319529572458722272527510289172611823484582216537041985777501806673273955478680862463847966134738722943190324508661799153402732889747829103955285643089556534019835995406874272889671178233492490067364777261385060055370139973567406745213068742305600749250036129392408167967902787859697209522045466123529144394253700344147134135751290464905113051730814870481169452574671094800103803894526465151280762891766389414622271007556196199102375373252829382245588827724844531834374205753290878213123927582282237661358082664537331839884642620424959458502546647963791822197643395506154999277261205113037143577323643342821086918360514572157369787430400960828254897069366637464158184301225558731907375041971926517499809115734849650743077981029571400516369725176655301366105356733320070612253006713902305777261687693323736025844701652151002897693996706266983578550841787424396033275185558065330053559708254630787892981732286063808733123422841109691703510580895927076972272816044600624074694291979328918931011659792150003285850075880252813440238756340340452792010786566401918269811437270876377643038869862846149139874061029543861554576982063623873577926760857574561439956282952079323154303262253947407445136441086172534150672907015157255436865226229532808724455283850749004028998572848760269008744360425984157584305863617377947133197323878952537834130732981720991257312004757182975999367525340452084293249137338569721101158580357627095055259575548454748033226631763328769946480324644806089619160052874683917572648041594382061321958596201683749491462888254489896480062629728799427627613530052085274781715405001101049519918895471198955642616461939713180798832180356892167287283446629105876925203574988511468747076657249012693535631585171323654652402248217290055261355397294514700196041365159577140126852764484486533657789882007722617481397244885794267445336326236919151374841250294206058976568777398286240849625066688676057177341838860482811304420284580494295841127643432669775982143409604033616246635708567752138512899141755201364697241554722956111506146069216230242943275278739316841576632761099098129172252506859073333651798400321318894253184044527672980921485871344807879962388154662731432777459954783288103911190154749771409452910617452098663110280831066109940544540326686881409173603346840573930036752006815976780143107311312321281970430661950894412105874526267903362267385019865865557967502605232295599901533081483340693603735918147677306577722319979037711316669471189641294619519724915127660795577661166682298034433005745681736284532863291062179361374362621591796914317090762373941393825628174329081963211925243284790916154673120062099594406263384908807998764608141431437689155769564475036802415250876387841593885755006120629618052221961419451798019381614977929022350989963232566717579132058578184375642703288619573355107429672435632385690923733261527648400524744741381604676926703269250250794719194301196858811258529431574431330563380899683383123098240004907755323726233781725051120319112400306333623612459868567100739464963888703385260372207704297210547038980399946799141792381976722055262289912193287195182168416123687199522041637391644277685736304193988223631480042192340616789527140053441833910132016527757803971941137697940783480732314936827017437259040539195954209579856681859410038173579003241509899249626134256180755268340142840791477230978514678387237221621340068343324432644173314656308107692679483298153891834589187424262733195726804338157421630149630651884327530019851620140981344846284073327924097681124955413225379234055529176151211795166589985034492449498452068315901846509831391936048104530126508836372322165613025787076159539322391299324737236495070678252125467911238333819428505160186870392257368803609277245154347054835917220654535217271426685483871426986434463387823236464703842374655480443165049186302193478533667547372322561977794883091880562909555752282658414738397573956423341104001816118803040496830010617846813634904092615530192866414118855616751603506504066017634875862110505330438851621181853797241023879453827090129390150807292278906371328594229501887730315723167415416696296051500701221578085912864308560692324551404542800575390546538870292203697072784341039894949588061908088036054196993070025273166672926107000729234719466783259002228374436161647099463456125958521813703264945137430586932927388972516800121870737260483602495404596266153055636511338156136814531174089856893186844062905282337845516347388650326420920123949203403349234106375778620873329524899972841043046267097267510701842669929517530238857657914112484725684442503845179994301716132794015425122119467766032588934654416951969164108968409852024744274568715235418360800453819751549653004057840175025685093946069848923283732605689855097555790411463057438696369332189028286646586948261400915090429273584468644791597964490115819950039880138295849330226045640123605497333614924134740660999115826186808471228370564444485515712880431762708659735212975599462067272640602687789534593240414848761397389232055040723557979800027315981458000347620621255045842978531668141588956978444893085607198085272965114152263941978987250795328753102241925453575589887975860344589667158797677888082938542459144452755541925503234130493924776259123431691675172408807925407147304798662106569500719952787176674490725164355188659809211176734480606282444961160614709121733086604827346061921988848579289121386276359271370000943914657316968104570004456689320603063294461235400051963385585581107127053022776827494467406882747019534442688918411082249207754326639985885434140494733732408019638515124170368289973917697273088814462720684878212943837193311575675231846155625618151693558368139802940447778222637891735082078473980915469047641553467015703003354735306742381934051926344724956956118904361515569339983242764583536076926158270859294114828035231248332304083365911248286930074218518424254871855690811718534206264256219820260271675783827973942997924537670154809099285151287893460886727147258952760433009272292432872755821586720295344983730382810115940520743055330077924279056300955968719190319854506299733495573709611785667704056892938819980379748262526175931253453463581674422866133745537815368839472130045147307201123147252105816861014847940702931876429926811806189262674370966656133077425990562410535496190590475247956912479548052102565159800131983720003634719000826223685887532573392498575604807819324519072673566813504102985185677241655983115104144748404630950137656517223120372894936027708425728024236674294475635301096827595083744039129185989240373050432475452370342887363579193190271711607231360250967935199916714632379745678568879767671836594382664348835596699260133238856951164989498787130222711932574735698050669269817210644934118962428069360133357326077159758937639285458403259809217229802454010594266953452363771508210121545043719025243844253709550809839477765759105197125969523426797616166624563689678650863949522984747079865303373834652444816979444841640405415468487235199956055728084147196730109755836936813015876030153544046233120611479892181452761118520992770433608008801762587955550048871596576097817367994385698897966491278647802066306754086117651173523874305031886157616015146238939627756442415154994486303921325328911848977221474333605861823613896799339868376193540324375694090656200702967457467814006916432981111273358003742421037491935029077231486073427062933064676972038749211191266954669817135678252966492585369993831449194244501593665510509557474739916718613108999664542600925160258436088607601479227248586950013932165058699702323397305350353689438967513609485005995977755546244336958489141517602195900893890375675019065402959893156639905142596127837379735563091655604970541415068282119779841886533426007212679744876321337987398243549601950570512355440140245514849826317323448449716736458336296772180494406579784024269018015325280715598483768037912362064189784872421085923732816622926159903117235048050886656726208989329292296515804494855791934265569510037248034658435759118708554403567121469484521548550299074794468685033957374507481488900414259813923431864523544144385744319952192427375938083647637336259763142022053283133834443951471036745511556257201834059137102072466392834151458965448923435062603778599674831878106573113799034650811359729594781150531137924486880319582284683311919497016842297209597456104854090560376271394365838685146058781150815851826158838318614724887744661046983804910439451550827776337453422281203722803585989548843528206617460118550895791620105223237919241106521752480450424176376438553203555845983270624844107547852169337550203519312808862122106639709617268159943611515556468908600231211691639827930186362294435353308297215730924256871250178350373201696105495432742478752857470186643862557243451101899655008889967449984059597549661538030651849574737259110587291478800930237901262750849975803164866789123838055366757207706732753973867468935933833714892042126589785095474609801748005846738283639673101382971462894598221857359783031910649659897211485670589472920394975723275592559173205114190596968862045456064554494754650510368980699538567907435316691657292369660118870296905216896132391113436814628191985597862787778047070392998336282478242341101113221031709105347967879408923071348504347376165394523392360442648177972558215838727106799945409087732455354782878151284289013169810381999809521009083029080745747639694033374439180223266928477995563914009172515304739174446175025386337288303649999398918487685024541719212265534091166860554134858035177332441962124860438028381977210827150129616104043822682167298569976506187936304489346030910962055639835440386358591497344242287149004865373720162940869022882759189078862394336665871803892644250505171711822369180367854608774574406010214254287711169547085647959363716430840110423042871656141153508894381851650969695685148149223624931344581139653519950384243979331947385781376125980090637744121336792062215434493964255849830442388662931455321232654033998130088106161777638823109963916852366831722526656970334525438854091611814803303038100110582873996586135175170988804810928555004189901009562815101626311777671763827828855653350244427674171187911950582192623776816261919190255673586271350883159810530795685961530383856348360845886284933256190142696954385425098428458817120035395906564537677606798383150496662119166609136045567093106575976818975892715084382044334673324889283453480620311634756375508474161969892401314129135121032954492786085576035660479393824842974783251713794637456552049071486599800322267061167645670994338641009637441644489509164352884101911817167343348225472273972804948485388389385793675162370096154284079552559460108334780285578442879232271892384406648827520727401666106764381687079753816541576606756906323494437672685572575672223077402830144201988805622363737482682691367073045715691052501687842787365804707367765260365298321550250703171426376876845436222364834966057359601985589198373145572810977972821354407456068831289184061967191188567809620380142179123403929624535845190911689400909998217023980282821960662417900741386495171951175653225477240911002619661783331355834234123808931881581445585165708633468274899688425754185216365840903369382339135531305757281760808280634919089116443466755673226483221607840762268538157684206194875364610090655127050599478031455280810788636603294412985904150130699080441594871123784860795090626933268752519582070096924450377601888361259884741408052288206793326794980737294672047104479427461297535060466659018940036342083581930318853595451480304843568498796253171349437553154936606736973184158342474148813751194285026003301770525948906154892764465092217053509027491013333221580595081384295442998559448965479635115790634347384390034662502791070787796058283381566412472371815776351911963668287766548579368314730477640819277090255019508975023919016860632028113208614592908756487979186236647075741222506760879828663874950636129064744467529654201184839796476855063114499503187086060649888737336213255963041865385956282556925182611082785642803258508118770123702557693775131140672549613667995393668398695434167794781783449885543427257966402950065282159858576930870011105321710388467691145360181871355598148815241946712347109580897693341040745202232489822011578904035453954967892069113930336717221918001941839074406032391082915290431101054486993688980186020905626760675164288361991352769876504296644956314542723450595330691439726636437175521391191329030001687219030730058654616940712586209152497077832847007322626453601437974237863808890603656335194589599531517175510043345706543985449196076258945469505002382991524443431037825803672717534779879652576970887498851033395062002222190632528259945736439602861859569955477546878618969706319585893597200463588571811621270725288134854671624292651141441953030029132111409085614187178462028564566906956656189767768992378861879707152263460835459487597736332536938165394996753163731319724195535699830336961324024969380650091893516760263260323003067993705126055763419871425082894952173894503894674417340821646864399804300112735267509422627253676829454036091429601198412326701862243011942383475623203810249097029277306483962057468328123612455196727693788343625283421885700283717759642613097496908855255617789016907395862384108785282641775634964167596945532277871828743993339852776190853667072626468646038736385071393543633953767440983778552610904363442181124712231444065473640691797560217129920470128236636007270263480295445670551591876238884326189079121292286304886608350073416220710689723943883160515489721876351116786223191081395423581481609288673693567517006238594983403739470402855628315131634456989882080545280279973511583269038501141322753120879492074747029915039931098874932310251280232924209561255834925760076791570464341302675811161046209694177846632327909746139305945501352359642816468172797613724012349523657287971498905625292296298925043849748262945790842651636729866408356904164206197927660823752798461738481648366893186166169007540387464174952314024767924354027667215182029217907536814298000671399472822715205359339918486654097215549567050057983697823718535662451880628467888110054004965179758168137879209343627239898026569200026315320648964702674127982279427417743972247062843735235991116079890822246416228391545636437867942833104711513418024898572162316500249619141832508304676056104503668007199018717551088611496519498578573162316835065211087631133630566613641797524396541337526993909355547264171936867801028381925431646350062586387344539737539179082617810617732400130464671551028649355678293177989207518853225418890979631309862303799898527958220948127150351291467960297283030646631943166183405998140349483286000227198445270582144384823364701977877525341952680111989230945563857558583663175672462621196293194346258102405038735640126758357081695991476374884537945464459321236777011810621769453558767775203023652879764676913802250656721085854505427554405423991745482366766954468885923968080069545321179641072758056657042980479472979788975110570320699668982230897207603239982829092158641008881847446966820393088952481704297232144652767901354858541195118570060538844610825771606705794161039995036536543472273670616007151575565460453497524567996870081345585717014366430908168979201098715600352912906130052962139427488829419624907860267988956878752812693041738557700646212709076152632965348773438432209412932187643814239799041783685714668107736612185908622458584017017925549289727124281942638846945759604482283648410054233038973118734217408464494720842551662104620536456908285216019903164139972316886788271220853124221634186423877792095293798102687660521243280668528878120268142552730039288835125306883554895406027132886542215144500657783195371016131340452312313039886938941207517913125588446255782820307494949741799053615964888903351530045504246867132331845120745212917483830743320136382926778794008128519488381549045267265828104681073833012603231446467337877327992213875548118941936095282884140153818899073895327962511394778319738774036329119430513220830703776988989105042409051656996878890428559743068990411083769708144136554745901094674575068254310940625738919545285023597979172602667671032956579019704374240668286225712307007312596781183657090519860213831040488941755411977527225026898280665379621234680835192300683015603428448910437876120420280449155371511035606201406834402936242143227646794369322349039468399405446787710711246261423990023531384867959393131875060842477484539566875027921013793834019512302589237679896984900615219530270621543855497953651452945940383632016651229392048220360740794423161534864938738383438312962677154201764628525451798224587925811753167605746665426447921878682591054987946940179192623171868945548783738551640103383750117539554303265354388157697220967707615332010695914691271545215363311203426586668657740087577025717083311418628656601084822746793054983548463910221019053341074425745858542682772970160320845514657779052784381985539499334271474877035288764682739494795858340777076972908984605525772793430360738100598213582408127595600369119691178953579606458066208772166235857288199073604795094463838969082194778045898798135481548549125820496604933940900850388915150794948877750078995110641246116000645496915835981490299191520511490697499813073836752683914652350659263759169130803204686819691386361006288743194319111474553718580460841104677347444776552718441044161298168317691819890125449059151732035026210121236108307996947372141604027766521221634440131930466671600932492472213398369858109560202980784897536258502262550008334848106007592832545572783117103486377599156274469434781449827245280775138830746037130627990771204578686000233164401176387529956391156414476964150468548637823570467898342404711123206285465112529586219951689841180692032510674531480580665858117905681080314115615866835301037086407191131515379164185629370644312988854141013983301611687678219866541645419965723423401908913786035081964710530063251130862964600440795969009038937923511139445742428869535214445685896963891974856739656260950601938355367554130708017992480613703284716807956530320636861325762784781557753022258295869924334661773157220626166852335325845378890939261012084548363711781776668756668972385000057444676845033691823743931715681221785727451479718762054406405542782724718143085638028011379276071272930471487953509271910739840359520362498245027726179598511017596312908691465457588754857708506381110093245579502044092216591801837309242476495789541101051622401044907201174311603322542485005456242527439193793429941768191017604999530026667909623139085985310160592150171842629910873034477775534909636067082376833790906583857396779940184390642264725758786355088875258555378723483656038782797084147919302453404711543363263117899388044875661500240738246104819017754709692670012500743249773433900466956096125288151673977366630062539105174725591501242258346911538678443612524864069731038661506759532527397359864347982009691126459919451499952694419086572611321222311002352283398873632496116509957272321166847265410134395197565128481769391246635457143737635424811981570621546882183251848048636086082969704360632067862624630389552510107384684362250748204987898304312765969801900415749999709239334697314893942414713757510933423697628843503406721925322327693785676084115231683635672711129496185728898970777079851492904160023077049335920106062591678558596772136829722425219944162094105165398962098157740513246833544897572101594068389434279540671826824632337129589440649062263750389367888085072878006221291927351843540506692474868514255627937902826850380290411861235576970132103956147898872071801230396538788461865861865014075774994426053420344864575778135307352182579317342824531917167600519495016807867275013148020025564191229009379490980372093905547662774879216756100150044545169109426404650904941867338299170135362057524077808053689976221607509936365532318352259148961434399606153056950280016776865231195153066283889816901478638851710256638624067441358603457129007871265436890899254641431649894803256372205425635350512651638851623028178595339612344196998582140022184588440262173127949409680528993956972272727053733414843999426994069683000241912401817770363040647789699479078779539222878400022121745912731531158433718834560379223567668205317222804228590740354642750130957970831415528886573519403744806851231663607287758196490994268496597425502427070414762346571678597727438070066998288334428120896983506962539976256059690232345927348745300505303418618654712279005724025626582083531536401823725881218595791817770582069014165122784145037375778319652937381622734939670053671429160377462304308027572947792014850648840966906291981364877697435335178848479582881364531203391085755894550692019003179976092684225862622256852981954316759606504708086194976767308802498013629069728360110816625735059619453680619968911721544576069381471944279877573929504370151002728289150127919853674600848562003225636438756401348228595863724323366410240808281871498444227966445828134835629087002526274679243501663808290845686011989104230701678259003640625131815129321306293877267723000211021664852482947213167914549320894069265311566148000655342050458780032488640430500178086032775736185940565612111877402922468705988949450765997095887406931132734599331612018163652169737756458651877587184045846637732730227434277686731621252225064387742756074962380856676827747901513982246207851132246682580444284728254368085784790198973702148565688229996459547336449595364531830799811359310937066613532170311526908241843400585206396634848108575189913007141090914097106774607698967779127213988988701881015303620055512719595184336115649878191589519588369653481873160174228950699968970397744199286132102506933931141206076409729921391686225494939742318554851547715162211941993187880681811243184748590503037562154617349509709933242490664777655858277223972925325898638681812691968627526088098927363685307831887393074341711193372755678587448356683225907535728863336682013077029880257946596945512738820183563506284094012369640887153333729137860221380283561116223110052527681026718830835793903906272172814264278058320798886701682407717295509385083716186459281281717785060322632706362689553736337933391060129978962901770729845629019953546311878984680429419632451407662967485347330630671163581967384784734786290269861653082977729828059645490544534764112177318518617151919981891277982034139773570369160381862368611788750963886006774343605834064244110544664007180186884230847622834963852548544134475937690198661040400525994561031329102347804562423612783410617630110291710075860730565710393439814888918974032099131128015981820605823520470877550010732705752290010850965879606630796386393629241932946864302974941798089783013891792436442804853262823987148529132325058110774975843180442454618584818541772889603766786049416575584176362310671155849291450875862405959392575511992365187103090160819052927338949280234402741068745394140904579858215921224420600348631773013252165644311906096251880366721342969461633369001507619622937444088338651843511819603285687457930514499965926233003135567300330696448745040962805058451361003996666243639831578661015962742604521533437467025810188391763374017139911255366232222115794652164287321327221546555011336304887301403200812639149327206563017736153664763729464669798645510407182160053394339555163493400924228317348315130907663949923319995549040212583943689347785288009541155214123259979384419898655034868740258376319366178386008819877464276143676781830832228625020591400703395299473312110376600391306969487551691801844025098606941292402888600321468650686266644308254811637853606664307668319834142277843224611095451723190972897726710113249848113539407604492201535494488810889435836021658127397492579559751677397817563777011626525559740026897464824384784865904018311580451679786781746937896643503622343885844970540298913359569717601499191883727819092793111551726050589939639897976188751427981892050953678307716473268826380757197930857142022050082162658873889163211513602060765009107988433674833611540780695443763592633529447379107537985279352877363063014680286523177749061386814958974895492310229833076138598801207870825633932318121864292972781928438386563924555055329430790436540056043320420274814054351402164950232348515837783164254234588354293444617036382167048811624591608608949642113030967809832141247727878938536084010047230156532790435310821344119304472608680234903763498192983779082464539288286116110838620029698417960877654656612269406824479838549009401870496770161579725012305105617709174261790533413919740398742770868116486589078654950252762196980510993296362875249645484610795748403503397127987583063801828623464491672351239642791669349982805001482310604124080734290492091914466993913616462369262419605072077407441068799485973249723292531696239324094451348980312458934070600533246483696101274617803231378228118283188651255764807428220462487722555540471760954285658892424292916211165884345303392487418228622137831861924924893816155611774058584679110582983799631540528694804155194983267591352981798963903821642593979438500992514554812187822077946833548355998796455009666150454878569631414033571824665558881568212914858065874621520198317421969455833281388835905484332795729128425074409046095868491160483543274045361533990390313403289289510843920659515513168010985391506246234330688429203063646092342478493915192661808712974035767239761170927180882489317544564400560602921370159070682947603508352577646416814731946910624790149680116955257329544192609126899036767679127596664069578224850084080570219374757473077919494950723464497277307508982613031992812136715807566556428861930395293110872235629468633723733679503903533109414693963754748949993154532031293080217740385154771192317396007559282909867735890423137155729573515883649358975078043421711997551718535097549621416578083753442650265229790680288622435055655566952407578279322940653435970230800827537479472575641408040682062880796864743448862610103460166246762416803691630973830937976133548549670412462987908280121401956367093331500849469316585868536243444815785734484332211646982037024827843035540878599524429012106740851592928098232624161184696001979858465746691766122351529876789837157062951653858321449599181309965410299899772540175528316698141787108301482967689758520816199456576930325161697336140434964175467202226184323015760459817782428032648959884146121845657425800805301116950534752572781132718472696481916992955466799511667150482771883935491011521427397264806215211803728396944905981139871583173302003604171087884992344813272482671969790178518980271750614510886981880732141096946579982514061703670778386209866369867369990382999132419117788629462121481479900397237032459442898647503958718259642643665438465745612907834982154226103149932694663241340042337621288679561552715314786290886425687320035561557307978431102222880298084080372850655363838155889403779664788735680960686169966862403026177381404525401968524260554408334104774031391736555758916289079711241157264186012024510266882138645368657669797304292901334672741152067966114281956577016433798761835927949537168215275181872200042332841432747051351541060548368491723973734528563696687165700498939240838736872939090811921480906698308141156790410447822602564071032945990932287948316950776370165118603220372100103822176467055259634635169711761105300824116915670776134352891202919425199485074624007784443641862950300747117208400895168599883238093667698106327862285577885520986344693469653048531330634766400263745604606384741112121102503019833260245942456367200438161419251444962633830221248667973080108713029141252715150340336484403123394298288085979207707124183926477590006406769287525421329082771613273868941961130977472494705942177469128928590638971821316443837550024296385674279362901872615571399514043144314541929460796411133971831267606903037535362864888719125621778544725257887267765031610453117822898119484256242358732223461894420537072276692788201104083747692685461745814317646954416106842768385065004707405351958231394948423785026648126160594893462246506070739413199929998837092932852271702143129682648245831833481281544085583904273900947465349100771942954634449168649329088843202130753120024057218190696331392505525871370480048829248530733910217831018474328672744273519001826885032874192536015619714563930217331428924187017749263073748439332229104464168386259576459475075445696420919209237002308859936380660102948755487371988374508083689766390988885576551891846994483307810663635238835040219519409806987304177020478353956120568945227269051374631759663891568232972791078845257244010401684551057504122786768877666263823269270287455330470192576994957177323857323845687502018928783365909199092828731597088209636274871472298297163274929305262776514557455430434201763080152055572960825532295320837381000141465135528511614998112158179178213200845770551708472017310268257755123941611761527321516559472512495826533726772129698762886630494712658753797845096253932543309505361011110499301984381391352396246726967504791080301632116601988789561292967255431486556640018190520715276842224571923770711327433217696420423786277107743602046344906235823889204678805983191109717217839810894333793814369428085861767757567681445650082025355022351126319758287438196909947699734779044489310887245569649379670288529004793707136314506013667517777192861314404298165709045986288548444078577697245855761256970422503632977735232231603481079109867076787546360421512582805223091614818920499897699399945473800372328814852012327927280682151722263110751857911734052629289749112028970674902898609453401809307798527308758261750320040833318798482091625713338490482735997161204578156427563720102395212875535905321856668539261934598710920441080963081399993395083992365856962097413216473018809673773037067253079981669770317711975063526043125235833799538424473560088955658886538555501276967344265281616751250093911286464478682929276533902020976259539987188119300558482862725926720876117681459205826512754349721230319098899194522260807490422704511711811320858776664176411173099103634420369486024642959292324279924003239025714981235716916005231540184131276015061254897368199166401189597036153926392351333965045758966176305778151719417591091610124509510207636166125301784654785663610419697574989804570062321599385022203564333687218427379276891495768615324272497800339442144254326638556708267556083443081128704043976447464865270749462269169330982115131522214699508001547009300233065682957379953266036454237032892233684102700333778776920752351142938272554281999249461296042090417492420259962332351284544831967313004820106935283115634496241606106375572934313120765936752270096025197568094222698948289716190655313370783693610907499388846839689576293310564597879442045636555419893119105486292043095925652750906094118604197009839404296361560196305741533899727642656943745432924870926251269099421352294577393681648901181988444184580196115933201728749366120450516499078829593620478794594860558174756400905878181649168323097432037425427707907178473450707790955314462982111788543315963077340430282371287324668340368542554693758991891961493513771624438466922604858051356837716423436908354461919373991625736520799409025789197180497908863872451346064874981875897468104473877762254199125595160834571728323856021607504897769712652828719562516937325080335945263617323084962036701302854151960882856253717633235429017540161420211157380555481363429977102339304708859680199588114593314333650657015572937258704201019475383483193343841007622204557919254657685541219606752820209106550201796639359650038054916295631062749896028698678667266105152945133081257596844440172135221810858641155706187895624364342132150256369940737847180706142635711432351791112873550516983745188854819565421858989360449909494372586099732490576188467517058358592985578613342237201388807190496391689081841155014890670080427336102312564414098167840391582782714684950309113798856250683145902589522026372845650120462156454675524180852686416600886484879884520863940143153133504348203137871899243621900382694076215554903539341868549971411479033913321600206498903269499263257508997096872280534506935480986394183387650894495299882489221368173389766732621834468097887489207275661290342918086083954068762644455431052734940386708949548488975818664448050174292597877523146799797592981248189716690587839452849028403944133117668193455459109044217224511079753819797700074447330994492178909587684106023364784598976927003893038323698932570371558125050122496178325656319176708232372983286348807754819580908338600428628770139002889564331257702162963324577003868598426924810932744099254430715228391587813966600176905510025634467982042056108751008301333642876445730315782911269263524204680564873949525560234716634837605966271648532551105555581491589082968867600585070761514984868572302742884759722357968755876386939967326436592545616292077515082502027727293908865423526281212669778133022384967253837227910324773996373810020774671445205975751616542174978534759798207369432285684862147604708988784170001744357753330387757074466942427563957961157715006681697531939882998946881509241943075816239802800328972061602848346004148075875706256243345733068435306825053777088345673590216026934926252983289338405446007731576172103727153098686496427986510715399322002706719176446861412037083194531341214379776437209950847414997228908889474413235023881294171468119165520858416834511087333670916277193236477986266534180090574578479361330293119302717612684444370269588998867216154900544831799479710399975459110325404631288985334616617239084956704652480782143885937971931660885615745406578893620311788879466964726673929606308857035334988817766467952446611645935674289543563649186337838232580036694078636757868775134405385532776567796904421965096982593930082649409675920603187723394319508492496693270376594089693358234140085322944375422914807169842439394106017068305800214601934977176438068491919304690749470653423449492512393955281352827586456859771888238179474493471176750407853277797897997949379446825823925148829286163306490689063457426119691352239072695868231598263462621514441359122137554645690516296217144944550812824917668759322079745496503239682831355418661157204679853259377388504825577969491475854019031286909043187999304234234636306926177662738979588222905279893260223202924310168446547904448366350419845087986141236104973697729196792641821482935298543675379283747493635819637498519719561142281142386253370782814264193135687886381301993697955665153489106199706593690729669115986794427140061890378879742010349749462335461709293198003744577358621254714256400414340115482478130159299723080382875438890023159659586586751489774451811220437989607891041883994424454612657111550148942443398700647161770515151612441080125867394301600898659027674443480934773296812259053599894597944149873412269094855722303271510981586899535456997897080668278383419729829097550587168626955235790036500852676251227185540183880570843830845653320851613225970107823130296629484072983711018985765372358795470249009355184561558825010479220718012111673111968007384492326659715486335478536605501922906967418941469937006918692379295535765433054998834954921610395719234855515513793389955658893012666504467667266087828855230505353779207558935864443609798425230637313464948362850278376375142948539459584988588514408325227461511235301492637348508775058452109091846029591493193866356441569876241531766272611598752056992497599681480861140093106017488374531210741625111525423024638718178830047719833484036427914793893700818626474694692021649241450623129931751663569310327899011701106231417246959661840115055191214624094730772506236723017618243958523654619623059795138648482647342946119681264471846746125782839406884900846639214579133093425527468825743999403038024361040936635077684717590531322113817306652459617600414105541010789385463253495418288722569157709107993464061023165479928255795340360887759166310638591463757419336483978808100163037243047869406890813007363426696665354617932055749859765414427194784081490736956520089007483929072916683695377213804133730392006084248708260404206787683832335884186617824716484024434481184220351438607982953021803076807822512543784138045515816649087877858961050550682351841545324886966505776146587506572000996340995219163522289971835032658755318856328931719228835804161911053830390605828011325097081386744750974396516635393269881353195466429333701622824663294358852874907106360708977364162598871751418651438024655423857225205137185361037186760511448607747826976358941233775102619425270158646865092293037706020925899974812663939043244531218404701720374169552143788608264909863575517720847510511299509479144327316823543408077194346999625626155395842403192332103243972868271807973940709952871436436690626832897987589465317974254506963394134760093589932161203208335588285955942393651372362327487245781709288652988940294890595721219344643007201667751541099839139747568825238941392941198131554972821947751519830351101732017407969938210208835194770611551482970831025505754659360797342629294844288084261464113074412448082308359828382662620890700456566208632435020168139248506257753183743905833207709490769603460722417607931473582876833199539653629652016868070539569403148186362393555039422092601319379815480017439626560782362096545287553785386618743286100051271137388748052569005094160627907824997226081552760493893287496919196887023300079247251061727939776489054269374455568878279668901106852342744220095824210086172197670616746385561449303236745779753163547640935525671659365491945131449232090600105336331697445312139345538036918048074227072176630365036737375766165481331059554459801563462048231515576598919346433793347754761307009136558339057207074279503074812502760555441774748477956284683624787920087906608346055225009331305443319743850163145110725130156941129456329282585009182659191028329739317068318442457958873412957215374336325424552968754235123931520197732343120463371163530239209822817811457393992271863282710689112756376701708663069769325338729036057330904728276019101620353925313218441441478289869903536166297105026020779217259913869173595118224971049556089595261167871064469919688978744278213937373455464718815997135519758827476897191773352630620426975246213306816310661810885067043206134402360288396381612465571701662182356134118376604120140778386556996170191878922030115123860583661490853587891780648216452574713927121701976609417182824665095558868194708144607902079983507044594687869157030822249611265746026438624970177318553081049541554642854119937093139838017315442266638217399861380900406466656739588412560603544703306875874828988198624928502946489821019456448940837677868136248454419681140834123576737001944234234404133240592083151204485737117461828788413104877258556801040851979545398645427140183212278120510731507805226404169065196902668948505422089504886891194683509136874062033624662568774688545685318625437842380231814028913410982913525582641730945776974081574994459167123691879751822953691817630320384102186235422361170648228147507670815484136111453712408027466706459872278357008936795557138203629651044883497652386231173937317885923653175157653108068532666120603137241329716185621231544775430394122801272656973625868549775871253156671012465143903277858407856906485392097600390893015550837846461577850487869505718382892891344292251642190868838225701883530325353447391243572960074568124580167363748110843460822649796944593375667157804632100279455752785273862586322541344965834770593252993090892245228057669675165076396592617607347589460181000230953294555465584346096806537188352938880238078295406544961915856255646352672373741213034782433731090939212214489461471600074303096247594561338130547736418161061097688371963771284793861939524036784114984555103005245072665033318861626419132300577067037751786418214415612347232789667554365722033951524257033834340295145761633336323988774454768722886916278535867864431140793877606951317473503209006273259778186961896547802336974499622646044351744967891256410482374053234928802751458820644146579990518085754018889843189937327334653291533326722368257265492084399684969136288787643121913491346564207045069732165892209446737994267343542546319910850363745899466228180079595802409281589565110983433610405054120098376839014144818967232110249224812817772979374774696805334863796775237587665736207576319124962093231993613262135106261490842973320491311931775119328039059382913600415129436242440467587871764257360203600703097784287440103553809725448036222784074719085068556340384099663737891220607296144750937346811148995802493354455677379547169536413281240925339729646545931752251819142875564969780412340786054467456542067032879956049681643242963141170731409405255412579751700530207132859367388647284056140186328705909929350670744810891745670226579058765044607486116152246531310133653585459467059850786883923720931404249651910593160641598012874738899225313421730914858971000951107167753260842352206879292658521724677064473515829224696583604726646447316336734397523980748305119204115616916609492843776803836910241302334453046658351014572856494098231733239359883351812052179811525327195160137701394433836796235637710559588328397824723328022196588510973026886049447389667718727612651957336662656535169050011468341373848348045055048205791329614556758111324222520682193691069796184876005646444843842479732243696431889365610016695697342853162961752857524620765878427681203261479075587122772028880798002008941075477190485281672980020535105184206884830290097102688298419833997006294414042799671424172677183610112165508396061576091974063578842910872760128648565980095490044474692546737180052144363514306436168242647041593544199695782990537369530108784979853879807258115405245949374398585035591312001851946094591872440327563237403036096736859312569777674563713095782510193069066081993925897664511389848929795934823406938323521449781016215514504973786338749207627625635714457746453626591309989231732696294319061280173669967386013835998631027053551894440144833830130126534194340282934244282173524498171838542891134950138147654319024940175503292479855334130318679501668628419940440612405447956758292645941479091504191035010335352285277251089883820754807996857031310006472993625119610633379240223990732973227469022371789460932313358642812512506149669386886477718532479469365755859322595976353420817319562839896136101129166071789142107318456119419821744761523698089125090399932540862225744688265314207545642310839683402027146195152780492868652834575681683974944409342314859588466519220736075989919271149305219366548852703282930244828251664722726096217875650539169277157140795990680417855828701422626822720251274902907996545033686125539315778968656798284414327240663950737814850358796830402159159552288074546951660200950598316535115830686215012917511194299750015949917212478960694163534108901718902370509510433942755248908237359401891042150274659301038378800965707260016945240770360114061086808362926483092277932859034834293706951033668560705969430200354280787642556584568220414285983522641559098739474933345461412624668019199245539454025950111370203455136530878049697620757051551393787338714539471237303347518937546907309890775213538505990061748376339250220248748834131581803294922346254645819844891892289339906102818915124292371584894732129822773458226119190427892399949338533682511825536500124132555233354314324768649126327384579267395121540806202487424986641610820836078328804333422429508188911469741611770415434460739432574665350575342847220406595103776939485030007043847052613742449373892903449799774063186303824064589204745287791052326043878389758325866041832328803542763452231304855601625383639421537984573901085087142327114860547066103718111354911595640983903527743260731519951813417828778471756843300708946200597132989233267347081927751228173491601823923045851092362518949325699373442175577982766416965246794314702542473034209036221446686135840873144221238690077597575902546353273947421303956568258862785116407606693004958340268169358203694923171137974431272429265806341388358501308229909531038236347280357515022961094741577793363355197142104125188696147575344976736455020793805183622167273165672774682680349035526327743849529979203749423137249178650389680099110904808840320511199777251889259055810164915490110977696332714915899637326140427716548016183293688177916711831312895067011755978069383012432668738891107490608135321575329216395511746831003733660662932973364333395293276774584739195075347103236061094071812187443671456290570560066246000622897291277183750582069363838475363914281039644560514217844784042158432692375782827313106767059786741989388679562954493976521205454837790353569154546268266816975101574569600395194738982311479714039905424746465128634033467848786946717551026356631720741637278924498178997115927038046603439970590262551385202640186766790726750129496412809554031887831059352673829808929488769656694875047792149278981477647164637202891051135990306832876927547302543622972099483978429199252294772229232395118379882197914830528830839120756849263160294504885737335757029696250651538996350321718045340624126729120946649367050624269719072519421789167302980127156704639124122158252905177439821196790452471928367406039158840130106321279532141006912360748611021923340751369838338525286293077864775713253091703318622521674187605360894864294598472103235621670636365310437669758496535147440542534115961905052415725708264013880241915091025276115045736472880226162608955528678286331191983791780136408116977438454514815428752974717973795914192586345019796500150224993748976859742097990886159175887481240659969880911153438094161017780421284102809457888535607525035606238163013290126296429642131378961485230862402126287672531973497043449613292423597270182931339812270124047170152880578296400442128089909072819345931856763756438502612312441203342841936008802206715365391129179132129300042070579852180552054520797717219135970614297152929131926803281397506142000349149349705187315659857251769284143197174217901899791055742034062042993519216072894179051615659234203094318076328223113518363275785752309462969230224621050906661345602617345639095351611594775447334449655990741646784564744218629110947207879253993955072982621748182191042512791969204181953603402753503347553037863915512611387127857368393014835303458119314834915852442522777794678611119680056488919828961080574307672835173057380469252348738224525952749794138002069302625939217449676067420238851751086612728846777295338247542062378118121682630335979515906449110097318653843509207036680124575693025204757475000005511610939180652267403070173639275853863396375032572989051476273849678323256599288342490264661297985123651960090248174909114478321590578676214608277816227843487209602571140239485565079894738838871817244449611309480843465423237202989874054488701497976949943649653134015185022450095580687630014451319956973753913137011166744774543937968653397032201115187050449920371657404607240677855591906333066211708699409218882401270832915178586337004843849139551938749164693243180018340182384373772698805828618864670251308730839573424533187612236165977333268456509900187741325269402885436274328961794891525954840737627236035517562816686586678679233334021409174185812099055329305983232433338701682232032453112116951348570780129378621683216720472905986286675276379026028678467511022229273087405472754634713727797186553636753392638811935254586581690784864731539480651862215065721137511127900475075119553522599054418600531296510054306609386262392218279630849880480134151369989729926559528123421521601412598779812540580750675346050864045637000185048661750995712085996343461889321670239250415394521608631437381903032019076098336137136253784402019828650486324705803556167266368125355987213120141084961504873270300913757818420265976806339079350201320849094399207367858660624284185009470213299372618551208097021863914695955611671427083837320079538864293560724950136044337772639253727699899516324993418878229113636904263353765271374736210323898057061024289797006991432855219312818868141531259766956785742171752094442293719642519702869832144355793970176870123617013574065299143591462412851599016474281504022325783181698988472342755384078777002661693584227447095212511663532159380667528346952638198641622647808079252675344651729493410697140880505625740043942367358739809690232916531473418588958618831610605235318986455118534016019728998203115540261599589318474400190300934367598652417060146511060730470607171598869355501715459802167384524018395238835843294949467899345175989426321018339021383127383947475548237666747210651816598293578279799415908088349528495282387487621103270508153854690217740976785966480120602295508303273121107821237762100715866678091561891628333926310645591445147092265231777233535184580623215538171261434911865182953249750791609545188696680129088737746494816192675592057519252003349140103830930605347168993701243913226767989119392628122082219050556958666241867802657470403007944820763877199267748805246394439544595523105284307574789642583338285041345309201855141679664013208917489455054087154024131120853299750758575999207977613769449577442703679761686299513072658788879516187451020416985707757323204310892371369931563662741966240425541876186329754747885821495365227335956862857789086646138706487644959940834941433675316062672612273573479386617688767896354346368129237621062158218146424578124119576687191599695525476419906186459207099550008807388136320584531094921781005867500237613443846893613745067474555916673791191839744186379882354110421380525294276004338383298459987394943378156863687633392714890513274027642542938884117795617159594140488977733355027201670388710930456772354103727280770176320562201098088390752253458909289056762519279789908722644630765274748195901459581323600855004631630701959322393604981427109187582001321204058695968128206767785490139664187177945420275404484092517249757386953404074350618729899075323899394887768520833042091747688613071979446354161021107286868454542949175718588867360144543488843989063699561106093651124729269110442683796685931920276723562453114751037631381069632586176036533314214252852042283305503784976542016108881464395566193760617187885136043371044018244212980843036487621588402788521297161448141961331061610605726152247390105624121387986778495352438274973123392891333572741983752166706050803093588324405893606772194724327335806089407974993375827785541951297903803302263933164387861409987461882256034049436806179580074897987711219324473248723219200593939917317933858056698231966003699867663702997799347368158851694928415503901121610055976759720093074272707676004937698188832173987301552511113865269072033601880296868001111356258997501029502750904407439231366655904065387022658631022730608044281857857256247720846757674810291478606062137901874533030608867113427749862602218267211880453763106966930172730729253159698245166442430619611036118336028782920222427245376645271083648695005219238126848925668451215063816374041514369602141761227769176599345885102561077686626414798868888231262914311480868131935214904092434457635880972079098655570899729837354707363091544166338037560013805486965999246138520055068478251529669131701801883708091078966515697620407390600955429114034340550147487587747767141807513409954761845395398491838594616185060267355447157595693518564908740543435881683820420305494320402578031360733959616160079007934353531774487294986142388399066134425828345508952190976843627862476159394034432431425154401559696815021018246833128408029054220042168822861419791553155959482435301636038272649229562759545236337644311406920917190343513460790502525260022435882897622279196483773499147066992535235386594841997363521710868896641917360834029617517044322160239792984968845379267696554720329423195756354181846398761577096394997430809676092773084421889713336610527851880149489977555449446636972673252674060376432754935152280577344504763569680975325221564825378167228960672935928492107747847006994699327900387705022018036215782023801034496133666771617700028445263135223586881544786607397064923364465099139193936701019855239081753676392100421816849046263713591665727674363411594682985463849707837573424138410302615567558975709255702626026737710484149306848497189768329760287212210733615408289602519379372086964668493199479537750341757008690033849332506944767854351693538426038093913491542557970312923023340584217071143690941037729192112732113449939099991721160283733451523115610970980824968929179142408471336307579087609071387749620663185390834046084848078716675941718169955257545815001495070101185387326312870117579034150902462288102472148448869102413350316579194224150444712769675759475203058266557609502574594606278660862055524704094319975571323698270528520865682671757992083999269987444142914734212186939926003293857479900032441971377421716527072383335780737787747276766119302371550648010501311826552102837837478513892384002961454874474765594660724294804785140633045073585133286864965726651160699154559780790191370006386301396222930183167507612443795491013810352212426902766921383355961041772495794315530176974400349568782170936368260769057285726743512020454190798791458603270397262361921472176159923539601508655291897881799365547691894756854923629740154113431590783779626943585358537604256743822509596955218482573975455182908645242063035257727082317743680409826519546317514008438214911969624748066238764590465748919194538282514760942761135686933658345194257772685093809728833323211222083510770551436282226201330210683412989265766026859887374228338594569478330366837165214389588520649026399676710779213229220131312823642678596975302434104723926422465545927087773643293426217392413547862033479086668693039812005681958311707002454892004570837565382353880793397212465795641605733047036146639134133208495263255541530802143153437270657866202636240256330905723964470706274971493265140208943179037531064327927800243786344155582573060139978547754737323910754773640166041335423438553069930698937641125268379982547688988640591287391433944728391786632277873280028142059603854664138079740171045792872315196108884759631102873752982655799414232740758386811829717194297714802902517191770320049224591730475867885191931737002674478874893919558657278289539565860309672559906116460935901058211828664144621398388767700061539198068816553913937511441638341778641012953200274905813064567509186356996508542112729831475315220131628278046444136661913673470933958145885009325467215728680244164117657679769109501061025266140143357839924109035678473455134030579518649440182777139166921743597972742431482117146770625865225561713393807054924963905333137510219743731477455846553049869165961517109853503135449881482423821108326323642164113685558283380704887651902588202404090898857648469515798617323021279631564977549212186048569242554238956939927756303523479611717568732341798655893503319694742685370956190933976035137573823815381094531411779179233255060300380528511551516212487280576143221565931282439269943432544807491627121975395936083168643603289527550497404405927081319144133284743072462742820785584221108694939334664131851981868062276165282658820100906447998974254886816302391154723249751154298668585074201858036113545969539497792695758929032789804078699000511970792434478670938873581235361301289456089149260016032613945052527629707763271871655021962720105436391462066584558549183076526114694057991423550199803622752175438609859402257270843155280911082299965738872056708997738786166776048061691603912860954609764498337173012414079762055272897890476004928962064139406384451277372813086838147360870471349183088380498036560384671475001613658120885176871049570295248103853548991327344771013766816475392578634166388686955088433582479806999713962059207208923809597539166222974383599769802127739554465404562653520084164077825176779650609114467511033909080758948702850561064948460447644891544448812784929459721984724412884198437120226617619968694323937789672900220535520982787519372731496188379521270907283049738891443138211937681120054417986426789885551877640629380498213739853527939306085748994336039531566107099477039297808714380785114361369314175602930242490693353689126012286935619509521627427554917587390554591576896031979713538896405160739171009337244768028630890889303623366689161085267680823255125152584853520293744150131219827658364025501372449183769158780625080752469919238034988459224687534893119519357112023391376130083851956181885518689738848666845320206198462390780725776723396974204032866933875195856190674705070444368008267729385789569376905526851944013197740848821653937974579624745172212178655174789444529070828393326264446697986424987829092153798339069982193662409402577806514424747888004072287032543636389601914441876401475575169196837158111934332544370707141259931990727368745884214362958902108694669987648786073653035778380453019658343279118947515119660004764264267937926244329214572602186938716237512968873679812004023454755377294670941497860103679021740428858914027308039043421179415172104803029026852176387991682582212206995219710147869549746613688499838014607707650639770357209136557200494665052854087810190328211821997683738519471623160777854829725924870871067984040537274313280980355355146765183737379276661376473107486427367032545065595258602238951735300341353644884504009635289672246028461499684728829191529392539328252384087201196330391346812749599554028926749763321092561744628303294814659630336668324989756766259719932811464428363887734773137357658234077637523797958490485105718739734318875566628715229342966475181328448586376621647939206390554505130558907959663258147589907651190640587549970404015461831744380538476944270608748809930587125299388508642466092230505003031700468058960319477733021453996342704096470306263450217037109975122284106078107679207965812713277289763534480809553349967440432460177793515823043523841733138130536391389118497102264296320946877170684526143471598116212700399548954149164128648111384944271134903538546193167592232759817559172904827454308444809774550499421757939941109490646278483191891760936107760345424137148717898622378352281676165770341324194605390934253050505814128058875265122820128777632436667209042873485632922141644324094912223742888849792050557133869942852840507064858823972192146621853600406671739344170356418927578452470673820241880945391078519573156402788746344544260712982004198365938023905006285169730807754012670368420766212647132591127725420327191316152231540064391247923074005762407328980241181328929633202324534043669210789131226463273753308793524125462790236662818936774941256635558760901611453588399714121898871117093294909904379219278735373723996633095571415100437209828795778036716694049185920896891969085248130171611862030212933797358606436019677239297161649626105632239297768114121241686005059500152786483320097337209314468671588348903054568001776110250101207852368670360754247694956269760151837399433457152834391514547696312425170243282064621730313486256546539592336104301510320451147099932498216114950659927300985035555879306418192022160445923383649289140637137341491351027643289616058833143248525332714340350710778680365915194343352535999173154221883213696616460861125145515721831314137751570153001380312519936641220613651696549481653074310524116688266520151622574416874321328349761887396597969620861641149022160997296198245871589772848181336622856155178268015685233241269067722744959938694130755841987610850635062720625066536222310735778496636963794986985713127183299475569961754362005172673758130789424703540603956359073997517966720301758053863878637753287598216211394357470738936372103223928057934068913378823210501870830035477854140420441215591222855109514821625095523784061851523531867914858435490275363541167361152891958785095650350428915702077172398320096906809039957831024239279193599532406157282606653258260193049169770601110123832796181085120168663663550171635577488196539988466409699799364391793561105648780077890156453663740593398192233120599214321652520041491970875396672622669273249709274937452235568409973179088474564309158064300472570787088961367540420807907188610494061323143013980738927886064274681401266767817233613996533823584497403019655268246501165275686660071093649539325658570110043495212423016007030391244540004350357119519025440895530552835087912410626478481935553594574198545096129894553708992251208779579329226681895930263127477654053052207817626245679366368970783587319554808543635111453709786868527757360103335435085143861869714122570212943330716245103786612821693389478747916184888318148173542516033466116927558700712491957485156287977732544861554084067671947780847417950735260850461735072888759798513655179470492238682035163882963797134068724234515655891051232926369130420256926972949789165990619142128967505184906949504046466823254579975583009542641807023879669260042220356968997719179797451077230128823983279502033215893334572658859619963958328995581411560932025041355173458171503290741471592802167828461813733463388904088273621733995215296310835407288969944753191870194354102275798416984949452590138322968888202193169513395852623979227540901146234414216430997607599850599539140888306046442187516448959585998363303518235466574054016042913204091138600068960623669836137454469946292721058079312497076426943330284265227825985957417632372590974433153978470011540976767242584192218974119337506001607733656336610716227827152518127271446408574522299294545110991922442692023313625969738004721768294921566604284340581511129944639288079806351767043063719583914377193226894099412067373334266342191649249266934403208265252996265850272222078517212716024626346461528230101422544915180664222283171924360519458681826725758117561797182861621136617048081749219367446417152274487536861464299618831457195924573879493750675852547567017575728645492390601303558845499578941203416383890587662647256363887325383502097269424850422921664591208205437723591639750177819475419620714346152076251389910013026577832035131680894375225774123525035323899374066155744268117557160133069284880323373973355992778207574434397034656188561123824708734743553631822398770613682284757018160759855197038479322406256695664134327323743124832176440718086717872406660179214656357447345263244291590900077210188210958268447652793632689609639866538889854009992608857789479148477908569904053613904650596892798106429167445383387469687964989105615252170351446913014965853005207975313619079467508662877679098018889515144275388498690483835294207203981622073724181292918248793142356056355032796608221432011712870141401064775976385302037581579728392749526482493115324480767826362676911233694170782965767451170806294855749559994863856041891847207854485417098107325689991600768778879663601012290693549768296090646511431073360906153727276523792412846252502697441132895696176005961721990645823799386567345819036433738817965174228945410571272896755344185076544253833667121438935606856479449010275991557383354061893951887285721368133922783952563284064284075267493365743204670558795747162408918170228547842067893262540053868310665143757945283350984487836838209054566314199839181567976485462782593389233269334644822798081049933102940447349025978319075503428472206288940478375188558156506871027992807154591744214169088299021610689109569263582556360230447729736889824270581179210510569744225516317059138411302537203411679507806536249620925260474560970710337941537522134631922268334853243385545815509448971248308183923697378633054662388782195897050074991433848359056830250029761663618465494124620810901525025051791448065190639900766668620566230892984766615194853117967460549898380487016497173237828281009728716734526306858156973327765856662595505115657901160124233338164004494440563531051706691303588486726323995922082485114756423148834573090147516947178860044705648479176628723053380859672506400547706230774520249343115034461904508575929643696262635435493579128827939987000577105109684698539236762340665967212208378053272105032636821432155600436496239680016071909996161608065799667597031682144979682150635505023098140139566765644852728009414190420815519590301523307383253173244498297281574558512915388850307747881844902937639913124135003656107490856179540912968400177767824766884359775269702370694831405363197168798689877811183815720458470491941528002563344290613634845917787309164677531775162270298564595746986640639103107055665135861710902350902510853991922459259892163509886751873951599967451279049283715561628901020921733541718337166647256981381962989779503340118416652198942838502367227626761736612491007122902238743130110672451325280099032382806448248564114732621115348084639803545518140733131178546165112223781206085138428373170009458068745167527175100614259150126551499916044642176644166886238314839632680645953490339903721237563198500048639424435640276722388881849949973295048752864499589571476752852156323647937417056096712006177475999965203943795849845837008078197481455752481954740524255913146154551842338668453632753007216434537036113046716551090572046791178257513658856167939202559958284401816232484705623890672565463005072103199966860046636224030453051712422733269997272630100721611203037124398492036672194388643067981604660232054435376195645969095944154812303118309886251726195757667169837065228216054805980727351506171823393522477795851032634347289297455838450678572684955580895493813778403086402306092676599391222341142947899394051954261426559074883472667490414975928585564687729699554633704205698259022901929134486449486940007259268625752254900691569168436251117966433800607956357927063545025044781288086102261440313701567185914867861521282551999046109353191886743236569353276588973782528675759687602351931713096646340169350202011937927752810390490335323625925927178383665831864920706923232041137411505406230520580529441636884469803175595856819246614600187168749579114075899603123005640805819511783064278013340582066254207887587063646267663626823650735335148184746695210916938290611192425993608679037496330487824623216154556344979429347815174583828380955723976232803285284475275624589461716056846083163956640707847800369402180338397730337845382487419941898209162594106297662274578451655128087384059182317866651997832405037634812939176021371195489697298653345272089118458362756129824070212531594453605277835034408772672358989619584560205905186860625304553890303031097048477675501558118114174126071070204481435681174711943567429228119613711454448118679141861244214272541249450408872596749193742657088392512117384492551267079028520774336387755519696318839403357028644560480569125025824348893766741665056513536131546368039539964070544531848577449285774294647156573512059766835556690769428580921155304081188140664917570599209218964261024687516820170480196583796005707953691576768370583343870365719085024400460249120713857933538438370238262601108604224726388206793411861486678588590382335940765650926100107472446537521341341963310528392545543092912852565196296699112647558558574156995056239259180184712533917128629828461504992634856993083043796567392310584525183054118723907541957457877110570507996734538781136740117455279711265410681973613365294623788508704193239296207886422072890468210385192973965393223243045112795492677476825613178013194839834303230138253460725416427794057912135637833605462716582977517894330445615210785850457363829709290352541092454381785876169535454912187773778110483485447769310267714813895262787178482966333384467217422703611010810136028580664863908875750545577782992759174459531801437306882012050898047746711232037787919653880465611397763883212343735166077948685416015427164033853333115536645781713983410375683085804554677840489294404958372132779543002924741499188520585216961625069342527442984863301129528555708318845362238112284339942989870590823519946650496201532322786605196711129304279045618560632787591966612923723808307279223382468365540878675317811762161768459235666220177016686521221776897810159381550015860486285323966824966910902650256129921434507156459241133273454511914620127459936341463325597732564104624733958719284516134864624266439996583240863683022706243615339423827258645141883662961968267933153150842247980982031112527999979091442635148593260470424512084585467481289832472748076358442435032092274018542134243141007888347667444966129571024941917870476061037243937862504438798894239546387960503933817002518240220325843955847297580279389328505376712675381203058974491013330613345707129912140010065129550681226357203727992931566115289563157458793499298215878760614328805234532226167536210143132205634164018629714313691094818309484797129099551924647758344547569143227421030154349544652118033730486334183067214543105624960743256689337269798130411070404151946853098177117169258002595440758047147400499891453110807607466805717168787365712925346480737972312245308887814585593887534097127936404880725401922468847494984959459995857108627511952619250927416753573726295045904179533502972112175572810986435416071404364938463557626681204293934388835629686178189251902956979286620027903083364830347127060462020943118969477891101975940406406892523408576150979462860844131145771827999394096905712289851972342413990602018495019960003709258672060116804223927103084192887390814302692346811837568409294929524907514967953888682922498240453729385384853566454047985822425295908299217811240297926700657120701986116528728854767651900436785055081550761887872053165481915316894500294616286141366104678134102908339373971141632116357521843151020587133413447209586059574407580072736608478311460466031385672909467043987058664597552067278986430350454019367295022573341596539619078123915570908620061684600490637467777248579029191758214527799507689889244181911835188689330973543089014206007666282576966132702712958333808448746484463658939719011550130591097693625631431983970040030258691202566297997136612981369241840822572476683251693764019837198262347561155188760337676415333301699195729300487986831589819035117986395702734009941452368454023690582623788714136991730345358336281403334014747317325825664625378873945378416033965537850731498780488202530142604040903184554350099771377296161966669122655141901952994750648661678601410560991239795070178205951030936605528086670715754402454497237519508794824611768894650094603155249135248390877647521463071589057402703688267971351420549166093977998882075066230306976314029681156390855195538693648272852666402814214433841791492567480529335229698227509873680300356581302244389651593108067669554491668607390614572737839444710544620817813096346352518371714852543650697070594457479687688851558667933454526021533190790771419495629929602220284777192165988194279809472514848980813004602266708879428349654994441422609760876580843535367594578936369721785779878534953423739313774415180282438188906099890082400125241596324705222676825756845114655171201137105810588237583109442529543182428605317772700174926194849685419116994926862633552546396816825040391152841373114016707809660740689974495509231115824888764489419303317723787468035738564301052616396076303877685451784045252148958220041234543062114813138260389912284019094910501740610826403488100480559749854205527135180017558247052131334975284871381919691554037993288001530823048350425069159827362276538102580025259568672732745244349477451264126885050548641946489596487831245618757789028593601862226178272848064278247042431551633526014973147074007208681404117554549066185759170624497979543957114854244147318397947123701153379596917697801811044356279034395287207706365534845536840456399122956060623160563176214905120763672267622917774520097788330172045708342349660002528106378671415378544696556274923757445490464560553297722031907889287359352616946407498677312299907907407740476065229784456017387144747960348954335267720492314518729163811467153730631832473686082202409503396181379000810873420047325269010174031739028463459936568536229543351463297777478219155903882794782626377899926117359724968822893666755639165030131837141761308639461508706781616590151067729565014052830814760991721064679200983990735826291830256405136896693195512481842249345098758847481625388825264870901091171438118779203127646800330125265819858596992203306657438646069649142684237636000680685228030336970328833244529509436038043412941033543146790999092397885541826085606832244088907977167334947899596301688191713284799295799218758609282860135686823770774845969405855868478096506041867580277350852962904956981956095607901475520694742157999209675677527440085335399430038127195221930515431877075882236083530591467898060813284004179455428560162617734746242955631769122167738439147946214486498160273905740564853622299519613234025849332911866432156467793183030184354915661719717009539099083561256723347806869110833642925221334758500363316450305082737182413442347291651017364804366851520317656045987901603182067780242529381756950003581873417028548338232962687303993027737281302936246708584202881551454633681392696157047954808734940262283267294470669119038682670134705017506805271479479177368892055573215306187847105143779197086994131065541753463229686310918659319458116922310978891537744665706336324970397182505369953869993880194402113026494004388790405872928774650886131953980553220663114830397746670926701360112969426891951181315217319907309015514130985040872030436754413001794411879620530841616435327288979420485113395692576483219257122254993520855650410273912096224927215989797735543896793810118552537872276909923472664970565215219712284491794188735671147436014782386480823246999530795329424807204135368603149721721138009284228807423922347506204365349426298969593859347227473021860548951219383486544468951083213978541922974193157598170071527069988396050675963052180338557711616911021962972733202574071046548114508245682516880507431937846821536643326922381824449116889909163700942466810784601721387368207906204980970225627052242940559613990544960570977447193348470800257207187783055377356258317861153221643220265038783380135699562553197708864749275334815265653400198278779792659512567295461723396889112854178275951435508476789761886868763827237287588762637204908168037157959499484649862131530587913750190933291360275246596415907031882474494368178102522022342901448776589049727677701769829186259749149015171440045017091924103067545602367411247498086295616615752758003274320459144777252876566452211700056113433063116543856359869131021821723065432024445282000705842945671210151019741402917066043028850228697090812855273904291543662873095091512292614842507743249367272595353048255859718628715291303565453412077292433918535925868519390795741116016263319908394058983340572510481444648350016334517172352625302403851152225667460894026688768856355116812653475999637119490502602106551730818159046271573638043802790752230246247771747663831414171735583016852791243350023902026624621074566657755284694603157375808895597375936492049334221055919801581004414544958505415058177034919791869497581955242762900996645946213135157965032217627362354621380187103411665214600402521957576350967124626620908540123712183259674138659302786707692365300708620633066504424102102757968306601217756041605498850935412767214249596020801188107791427303673692981676504784666130296317705877240963922647792099551244667477296055098191571633753429948028566251275292754285033892425203461161017632324292536482437319226703503397875286498854567671966948570301828589080085341802062324823069806935563023504056035797511746819049309407406714329859418746973998553070128222109879035568086565430815600374813105241471890847305965236447960509547664202232907160739900822266945339322206525267153224365535219802805851420728485557894333804434662037895874855562045209637340814778120005656092984080539454329416960806172641741356126609289866374218572529598641007059613647771520879812797734905247963383121611668135658432219992985801241125611540243237695653616707387267740035391802156517394568654454565623454298156379526009939137435568647206368773515789758282164044198778451559171407958813505272477836846007207854200941229560412896656701142006730130593502947352433799018842119160921674954396384358808580334966964526720169012376691864164443699247522007763359179801920002877006153378306635993663958274517117290770282616740948228903688579564038936012886118905082200084589323871064261796179890924325161483106757399876436517955695927740283443176159115039934165963016266795033183927212971775218419465817739962147325793714001280578818761475964540132210231990317413340339817667864841410874026329097476417413520225498969583691870809217155349908541353043555539825261402343099847726063938516706819792768007153252763816524460663844652989711665141259220128650262578318513212493430081578176588014614638829081185613595084289177692181975822262725132558976126420943481271983923183144134326926508883081771662697674972159907281174220517137366438480551044693619574819177920240060719186145446967803159417197676737187133108269072552070987899471972443900503825087949598601720966860099276731802377496304540324601562938776911968785698965909806284130689937112726140599506079347890004478749822805740488380299078098444397815251770444216576717345463268593520682885575937351057020086809458963262587458115937338701413765727457738172113943968260578588829133434279164349348319963984682925994687133556627375430144182316496054798125515991912131391638097937901760773908943539399745866414458272634797656144703788095754162674822334440955025843721891124760568378809769565819549214430217697335163463081856183312740457761253399882693780671245986865226715486553869421152620630396404963027244167820611097617912772029755685519461214329370669259383085361903644944164920057370974144856230390584234258221346542763587424661359351901305403027190591200198662973051864884370765868214926959417077808063301164911629205052380741287722303847998506013393442761608202566375326557827303693563998325534245304375833983466956724801113644749381890831752627026143573923603513683855284860818795914345658898400253140050786917867328357632371825827162772990045529495073570211086555384037339731658356700647567614972986396749100444511083170295011784525965052932137671399436611808934741106259959535066908315385674396515742818724143586133585906565848614054339313971876765149932511313714133976094639511908542476002448554569433571658033595073338558595504486193125304054944376341304180149629322949672195220305581423101149015149275664531001419651936273319143037293207379198326937308466638407422933644315300965949101360239179120463765372359209923429890738461203548107889433465215407582797896216471592139993342828593414336733172474037649117164277624754244751395692053377971496251904745140898794219238141088675465254228448451202578425779859335066364890542959134201017338526761969452547556770883265308563541020663518342885657701348092137663619933154234782325820436669566303214096338543340075532699133808227795971997918508666825372188953509158671790081626238188315411991939589675473467549288817812502550957750108071121457734008205600423851589346329058775530247628786342220120227000999965556880531807275109792736531542796691913537860963179452826441021554844599349154941032476966466290586409901323884147253106209380857206122229321824032631517450652018075391969014643138286857677157541733854361366603535418085030112284167574508662466841154564614202089204406017884511724967460711759075274472329685892699048252451305959674013605885165729718878806766608859161903185688728086355616195036366425495724088663267008761739272567219383290401547969896328825544781086136302503411041019723898541113833273403666565689053764033996086206206332522368852401869252475661226609305918949130667509459511102790137015208888500930281365166881107023471819239073270727119723034252053054756607742378582493419472985714722921808607964896376597636173748804862383158034601713109949918155846009817416971345633774633882762837319053087429683119004406609927345731660106979390350072362603271771003117504704705475829492506684960507890726641200722800978300855951643103014810955560043585090149498301600319657707325686333017887214912279172824426917300717568569103560849010085818627362965951514400744593588584771183479116514540325054191317527346115251015365186981771164818816821044894900285089488697184278397805626987574381728291768079686755587759703698703907392689636866063990985266498117082004076567168624380948542764746424204997102325074143583887599749719469230807585399105760312695101097421149442542352571890262278056068115749073111759015786868264251438209140909141317927938828633722649054220414481155852212461304619119717451035416052530082313393935674325000969415965713060786649290604570952583598189815068914571229260321038906871256412612895684104148204273142779542788090571978997159813441594650879377944965179592437833854682469999229336964103879313945858134130503540348218214203572934818592286020815541907816544730909245597440338593584500142085356184178228472816964514272890074768409404331311317996333690121100370797986895271641430306247783573131651335243290525013902633959144494757244103642225577522958810024635651088271237701436024145476631897270602115031603023001676935922697055183375473335679705933157730383059911312211517516743611586538750293235431250148814190848547404099738136312827642227085063165132532023312638210160740185928296484202500645186803575192963950055757770112332687517983921390465419079720795648740030971257072057155327395363516335413827408362680224974658572048555502256801906466928530568144586080484708906379622798209912034164037172869640584886116712257209733600320650869899310114022482955090083445825734072327651904460054331258959926230542973680253958324010125897211751142077646367589528218888517859044523993416643482445735015772837398113750504735095316654256728447182525648862635977652531669582434566092431591006282280146600196020904350009567224895667796271092690572131487565445347572790470637527925379875348920468685544907682217160192568243769251687419601604952651133936817657763922414864159435439208102961900647477161227341347763812574930836365662327768677280053985394055102476094547388070398973712328058295378011297612759171754238855896126274301416616569190880395274916749836502685870184572147297330570469380104372569978231786586345501732449560374424857616139037422069819738540858760026547032116752916636174161496954457906763893372476193031772304362167445124432038635678283317289485781932876301691502830938533300356292133013182712999637954767407638656922041276089742054736464603803302705309928790598452816339215589147773350621832206665772765113026184377002767116421527450356775771746433478490165646524969943281621664431914777998548773002452226169520336953149551162164757110598246549453386928923144874783107844784132411237571383385260134130713509056127164380704410332101399970938825930082868631479506182127881595914972002680059103966764313847615827619721352566405320680978613623045708436682103831347574094185213692735560848457874945518298266376033062355279512128678896952831435109013607446667540097581066760710819253001840847648879590907539549632168615426942789779534088552177518236907175408407883327443071146199648231537279461539011697791716287701315494360399725799144130365918931419824209615835636174878074403968934630980780629390614394121061309118246236276002604532386815808022936636710312245433578135298047168948844919280589080135472263692812242855495935525603311784328438528178431331606286747682109881921732055789302482553944018559523457176318809918129890854376139858029483625583427989915200568249150746538660059845803955762859320252483396359744584019500647225801742943287089358628980353984226075632759512581130274766755503471080434136408706501066212069761773259463186660604442315397567398802270687719013397828590202652001742298289030241994069712950200148450922790943933580955233151738430713916994586211267506104034913185031970148696205320363169882017784336407805863954256923947879473604468889286571702530884332019733527308768110348885409688600341059958728444490416170851627461111991927366846397054946235991630273885576620726433858769158039143652679266492734226968353621765187109964164910708514838717170407065538562655975163693960525746491131598678092504594520568948626610512610263135007486399889438728471932884508979723340735049750662048088106702875119745786279387477120500908310429537944331657538542291429091246876707574514459952869987409488531188695907010310631974746916617835300786610893279449115578209912810803648588932628052823010604734254533051279038093718426470489965087028380219202877558620354544895325810872728950487998945745755815216034516605660108835961281198759218715409274453567433060651438581570929070846842964506702159380702071526100393372155516765265003315800335278580134634008545836109063653755313544596988213092047572829340136873534435917525611954654411722965559785819810946146928790240502832870160759476534729608036016656323962078870353560310717541612743809635567437504122017612375689281470183266171738786138284339309584410456365916982410771371990176250354319697286681336425255947476830722053002022356461007126385120173829591865829365852639582813310602824368742285608704333665862899412372882262581018260327987033247037682367172030148409449860333242773563426206962588315932407403332885930738227939642429561874458894236765975382594176073980288942895534661008179835419853894097137238713127638394491177663939437246510517338349846244225813390262167104252193192708592620713816091696308115702445370646651812374075583542245012295421850556746166067548881464584296206223626475986354867625861901606241249048711807797959865596307473479587927981294679957783481795905336058627341252359097511293453344019251953763421078139549816868091607256965007337896241623143933707901468797282657211518705696820644790717120079374201929517930403549652970341729030244938154546429090734976423823019575105987697090449628707602613886432274238101283052973947668656982489933639550484768451175718193575241708445423143585378766144155527699655492378061004406073741800183704895152600409318029964638563109806713783817580581223132898900414188879419539315212312290795174278521935519314296661616350313146544929833776108254563012780680610419497532583213492693128944012473054311641317746541188424080796923814771920140218252439910714718754710124633820230270185332220550895822225533835118032979779818634500515113408013857855035922276219955783765779732711217978119032416263544480863245187519508835604162125318284963002991868928008172301341845493998052338538108553220501611618381041127907958879021903550892059362036625116037711153220323499538152246536824997474579610436624635341312973593692242569420368091627688148808143989582160865509804815499462334982401555263862286340888418467946978238658183187043077595399392539080737462326416041019207421186875132989852668764992510803610294873635037799266001955218375307623839892865520264104186876603291534908704250372376220225944008295437809810673608386081632801175047230720523599650358913796708315604338326890132229334564242192053061010540873321469665692319301678773298201641912240439485686587998459397386732963533685587465900595086481623153468470351663945177063656678477126523532913570307782766532367098268237909354161890038334075671824280127662877088305355171805023681914076524720903436281450902108058090322992135591168436301176866773271703472339501469924741228810006565202413529920342491912283167559029330960029156504656564364397512256791060416380087442882657010691052109379431182143128383650660691099777104342677038516887245065880061533097825253210799048614097681603015525493028603084287952537164598280281079850061846003220286467741703903491000945831920891624904934412100785492620574010799440094698241906084352382204363913332472815529343907524675417154435843366864243118984441430282445470489363397428883951081618583906995591630787725825057960432798833089081300821152301348348998332114090005794992476193213054007693014022998024771466581619861935731965759448450640436404661201650709836739968468021130837146524231871340187802847335304923198470909670301423835878725035345087861641140769160624849775688134477521027790922113048515664019305093971469431162962441029417588371860033601070507592836939159035681784493311982724977848146399328794353754898457271665520748101660712252134276700344130908112293966183759698439971916601139514559044007891482394085146011586519863446894317498057066844566555637428930943157582978687286997678039895923315166184660414848891059741925750155791080725925142699180023584049024294287119697063797988172032555531486288051201552749367371636017338156577533486315454116446743921312762010050915748445185978783103577316130843033244832400747090939280203312251909815021008069076570612710216562945170560867541664369129917704402489081093068403172843935402859697692157653796079316699290606389733478376109488585587526063442433172596161754041840680373092416939611293252845157085042242816050605195781436225652019419353874355605225391341797796723415638174010740939096033476438198316675442830320427724862842041959321021414449382809024963343308649405542013060195504016200406247090676893274754220947277045867062956933717377405416072452533055640996653552311787990055480736418907803930899994233368446883109849723732330838169183673891897771790435440902337832185490070425421423446609488587391173151856432544730769194508749037217042976219815313915941756462591418869480537693542132514207760400120548592760411451538888800940074086723144390838555855954060813149224875980758444798997288620040673725150707791060839958794304205121265339766748446123154380060479355401438402184619101707525835389925466411591986019232164431282707893562442118939547543628201820234625847837071377158338076848566755384893055645001220597598175212010083774659352400040230802904717859229732224378908689694690962186685419181319127076650750070911672687172280168780862831239267698717930727379088946335029891822703557085197331564426861432290017229823916822652480743134395907952496867442683009598901267962457273485319122803163169036056116004122949378223229995791096657872206070431317855975810785638058394132931368018508440639403238931759900172872744836940531415750816508019336218713031572180049443523924528258479722541651331137811725743971993069862225806923552052387574111662995600933378984615998194230323213082282074636673117530853764130760210166611156420434365276210630228390624787794632098265845911285382405641649997960070425451546741015232665411583349047998766350910498657044587149976096652024152923662170367386618529176422369717621330248814550119271836268203736200689514704818387763080020998741372769403823231697546755194474244621677941483903835954884348953840615286593963565637393272191645904151763950451950712183997672239119144341386588289582595951929546960548603945309548690587589444646992139527783093014957912007435946761980107994208342311560296064042347126597822494739909654814591470784193004149617606664191470857112467474599391239524498385895203399653078420398391496269145218087340556454367628767040290821427868319124901764653712665468582384364523915682847220301138017488836564470603227888378597872838279809135779463189050560739591513080006492697407979369448126479690609569636958826063412421005347802094637716507284878712737387170140775053653438498642930595991658040463501720583537539654350168584152773093620548933948230501201615848051745684105867395158139707166388881839911010043292083373880252763475938265472879612244382991413693848370119337795429422258347266692141435509818103817963375517641099952278519368811187359348784892794842271718421924534633601273084241031064674265160522559992689437051049034131941585317337268679102279617162134588867245522614429684860585683938124554590210675498490330789703650819757079134021346441267468033641388682631097615012797119265652938746812311839232133093284596117690719292113968639792608143021955484452093210469094130411630092787944341280373960036783777166600244397506963548042907290225474199791826473021900494507750111605977729660277119419609671137217017635693671827760562039333564969550523948197925568792906582264254450523925561780487818723913625733910442606948903430385863389203946257737770825184845975703790835782422093090613950250327590024125467813276444073761944835569764198398739581551315907989666265740283657060010269660529939702391713671232892110997466013705611630890044680335012762997375142752045105693907441035522062028059182886023080345230237840023562522619582649002179956544472257238459390897466557750689096287156592887052576953423444509259045048407870713981579296662327339730877009741610140574415479314326062282148474522123547420015879501870122318368680107721035018104003828099424595312293345844369995460201362456459454294455719359214137944506390783846554868124542158929910171118478508933211785035796245842562520981094660806846095379273449345292480754591849119545529161728452093528719942596100035460268108315941803992823790284203478570214716603841221050389931658423974388943810236221233734996244683701872395202509603604810854225612817550712548034705351577985504071860987706319418260937071715161069871194253089288543872937121380179796180672817992027096207111625262955559020544352741255982032904936859865877614558235902082568516468704334638870714296101749408652248880390453320324108819803121681569905118545264025483848562575868573854357665749735823596415392512203130651004256099197396199787898445254793261185406160700349497876636091577433085021948708391759207603243524560589266354749957113676055757647818783647439788824556027856681807889712931497688059273056129941291431951287092428472836120157513163996280463301714150014431528517869549036647655188495421599265137102552885705617487488568436194004082672375668270917020986455792707843326277211434178522298606109748978855772394531997599439818299883747080229100502289159994004893007726620908516094777732366604884367914828876591174830687233913576052575529120957296282558461981422586050088917803520245967609966887587188462836137318129180929522223262869742420927607644950793432027772944461688290704715549062176550368102628787704385307619558259396756690562025784575802738096406699764289023032175428055100778942723670946514136952180227210867390374322169664368213829678801642415334131016595980287964774241581159059762853436255282576338136517540579358477640543013086761313587003634353749645853560814360472634902886024492434708725236830845751301595181814926653865757445504800467165555898499435853932753033425345107637934888816328067126268502081361595006306069583293025135151581221322237794830892648938398653089924527862005170969425458487783532670326562612059409623230225008440486941890860930376489773640387269115770132352024750434635256256087274441272211435868818064475626700031114396386824788364652620547844954306365437582392608745256431685397917759640596758480515010870789090959725788566830531969836558996807446448450113599577334065978936148020146960015778393237775557710014379453897150599938596616174863203441327727559580132445380316896349434567320106017837629162541852790887138595003773577753787541262035729954593794579103162898494548490401358697486572041313286051706952715161887350461968654650931740040542352541586197066280051848925826069429285148537917179765827614559870844569620861280370976155468507838947157283208469313933874303307897224149381390756408427908970466273006680567049830309373583923322179637197045930499488481873771360250064981945490810901946266475538549661617459476072987811169959205579512948304462057070457011958245050951601467925340703393648460714235104819587754467266117027988577956061653173509912913247948832217696113969480992999869396730550025160861900912766212335112374477615229477318466951699609866681888893896497402176551279529804562033976882734712393838039520113908308799636564700376309174406443264461642057860589049084799964815163475378973028142075175165836574067150840500971727370645363373499464222196902289638113714000722646503892462015207339464807298213639775040937009131557264826823479365996852175340562566247910580689658258728886425313783517240606566447565320089787215588167736848763198184723729353670309510154436144018980984959785099924604126892035834589420226205833594408532511120870833184569458749668403516423212073587927104792952292444835827037533221190154079880807211530991043187975143301200533069448236591359305039917049557550497614920316957020752059062527638492521932617966644227259030200944404577730926798612052511819444290431327816163975984311806629772609586110024645930746798206984126615113539186353975650650469296446140538367246168777194840101397062650193118049508361877611528321068570557782559523290857759610693912927377934880636495644762398583264541703519072908547747272459532933534332033870696688989100693933406018030913405629237621376319749883729770617478395434769549157020832423549008057054552819820522919708139746139388765293381153372783174467429958460195489789713893815601287128631202493316171415395509341348255799632642898470722952548773984680238235565368566876007694865998765443514235954043993874141626669368679277717263667789775701569866329858624229691758444585815688047202093078433463581008480874597742898434544913940525145558657511340239692332202436701727141665375023158198220835446138806508821659436311845989839803002384165565229320716804959179819952413549893249857151176129211249134561814309434539591779444297276006403633899249016622891604124861894214504422129486931281094454700393621473289433408322272517180449501403219379388585731330566112893988456995039448235699255971468115454135544772347891635872834939024895671024640698489031341102792494818376134527312945204441435239963469000690197274425159055907512930766567055556659991396976373885351275935973460034704116942858127953735668253051764730601438886146209930563938181506982793672988897350944614702677577833698724507556586892235558877419666726054977708975047540032333354365090475007308840109407324530241673702220092486393063094116733742450956732129527836446712586640481330234076561253005426146325081812480562425386371376886300238203198513968466486060957136342754688644165925757537034519786347609024660208343714205182536212329888366895167771516250584732761868351071972171325017865391799192419032416500427889749922596512467175627821285943624411678893428553699165525831284374519899581434690633058472719573652413784932394672513712019869128840240835409968100280473081814454162474726364019245088942027956684310335543490600073371482256575157139170051161498093312992556552755762022867238528810499471274094285858715819350739617705157296795966942023322541043057557065307749735647075411169614939587532544792151135116945001573408866116660764284728958170504338722690644950266964556739327083280911252153175258289098647190317299983934358046517549485439484009716459564702611811661653500132533237475711925584296417980117997936969224039323897018111816249818792658631834485722516979998003648909018091547043472645239854394343284857345820955629655027225343293477390373390509433502476878403145418127267142709959345548079648105336054265177028482844208887134416774448728196324318917035284856323592131552758224002015866544053227315790556534783590443593344712814897944100912680574747433381874389263576387591494519567568734260217567053214214208498676649283563564351123152324862014262444486984370180592629470272737267235243090723195575787433930479017949623521292856599793718816193037784518714128662489146138629892007369652338049758135311572577734691990198061990039763651496721355508307044781003293265150018854727570388485724545943713792652968735349671601758485669691286646538288764646740271857570791674541524677090166696186464622440119698989005196858741671262570817072201710883348884492651663540830371706213674395774267240188238124546465111986075478207037907763092859109536528083257385231105613422835332207202371498488633645206768246108544510960333671830329188759116655981190756690825220585687854485017817601815005827920032122694430208258446751294713144046657679560231286797443792737720562449079793875523395524640483856352689518715753402768399039472404152744494739553429810416346311938186215174460211374943337930394307841817477326050671024437350575233751815488919129147310242225829205832937500848143000576577663736839958228942772789692030984854801147600629196230344119824032613302152996725946249123496684758450334748604603393739256747556842672845582654109178038326697826252077661681500384830704743890157046590963986211961452287877334612281264884335453968780361483146856500809008857979690683967819228882410289080846151276730014116753470748789675058022617716114161513640001657392860874150909216233001363019931919448436960926442707159368372943348705062611439449582660058261342713024327231027321764531870773026769544216715923925174021575756191981995908652087398741105625726344366779224446802562733645207454344211400003650623425361192969092754168144088804892179630665293616416391104785733922350747215767979673937668596453251502756773354042987466592258552087715809821218232175900747832110963204833152156789388732238711401479507371668562498708943727720892609370999815606309313578380033149807894948033124951311617201464564020642441671111860995900415210352458483634264885875175241142341854777383384106415960098472739783188527636402292269221854040493576885032308925527065660109334960978083175995568381336888223749581126562935331779740250349612045325614695605950013968224464289377502740687551781216864119202398176716721590065925096029816619899480390364188903943566399437649621038104685571180907252214347733152946662001768495340307734287240369604026287552115436667183611214770648588083468995941505802127984909125920278953953811628073341512442203888630778655833536157278920558326360116920310393459596952624271424366855336989303359606400735052812215428931014235153349392226725843270256768434981693800587716205420539206277895139804437230592125293937860483619649498592906804939449741746317434637175819081880968890301321936513688606408845560726763926739565878267407880242559126669513233535372345621092437570969688598744320888182319267908313238384243001774425509903096508750342104945158081913421896368647869638373787208235156932190787439882692165459839518769643535868265792106243398651942466743329598559937307347985692772366593765797494036539652437046060223669779475851422206580346926480114169454429845315161986850911799606708744736292932536795848881137939358959787288815767568797037568765243853236340501165536656711843718561944616971219252434519022142702005698550950193958760980002559124073569986899295731825907918235368975914995844439956893527416141632168318240579860394964310863411295016921552011414510239200532937660049352934818620310616978271015150763668180751586757151532276562949180806177676979264257410692263646067730597542281408963633720555531459326641672460059158554202093326215877060388514952533393532824561273108453017390881925004070310794762582744378657211714334972955551766215641240036535207101393445916560652199930889437023538648642918198498171363391421217674862077767380871326936880826660359284111343553190825347006306041172309875465725557381350027529806836982289820586261804457205031286580658521698996067966093865116743714489557748179774310638877942346375123487371566659070340392997280109941075007737639436284651920665247566599417164112822874436162269808963329771453356684045006770297180471202665928523103620172868544739340595499036689256176368773602086574030845900878981124358683549146304336441164013331916049373716426384149209873449755944405772420820887798685917640744188509505431379119653916921154093885964130412939327797006970652458653751056020936462879272730526724183214946954915111851036380620509491704892806453779228566046821157836147549849810926661309537404637510477989912989027054087675524851007549042386316853288624890123531184462804143926776741774388526489680269775066513229129527889903673508420913831427664480831026979361235220198089822220781929276601758970333781346824316606709401686126906649899217446696462157332138278355242472538372922977648110615556948406573965012850366918774530549837729720565879714036807584300124326859791621634215042697421612634535393611252279464530743632761333437157037522146955730612860603756166292232366934289075681736508391045011708887671772706138896932090258155276082943092995386274637925312559902689127985487740340997562162467714641757314570186017438951076831190123053597150517388391434711038145916007225619089369559362998784324033657784431339803262939649152860477337165566502046605706721879829498584643941036232655848329308568613243559724318739120635962744039763153082953438084298285887337249988170754390076706282506814241547624139838222631570443603040813134600168841499985702590586359319052660162483600224380187247911993581802782659753612750039797279859430247026096251509427041603989901924209164810049186608493463444329105294185699156702822739628132692464847531566968303545016185525283897208132277876152116009920847696168153088471354367998871523115984873696483596292440195459616740050723225217482613161825593814325874358530082463425318996105168293965541544647610201954855488121034776569102339957016142799945473505098621114857985802465780242297887962735568137955791715418941387483509399397091464230130474850021762359850246249647358548251291759876483035867695099966397320317619608850282820610253885191063983264793973090618314051062289277964653666498188194758354715497942282825035740307454031806913629848055392942259083330544237061456497472838754037747258597207439928219603764455958551906503172879661278015859183570594394262109629589682604460039667882548588497966749674926748185013593476875493257641779799325407828618299199723002119308778011540923957659213940615127574717309999636606126269021272204440222622714366885143294373251279268311473346958570546141208453641401628042233575834931704252332450744426585608849291985751253667302645736539854593043054725276972527013987171346329142994717182049084529844668897135721290908669636319555598375379789965360305158279496226828079278059395321337253974147436017703977461715548233084943616651303137991460057943646042643738488013556037336496709481290624780061393479234468561462404987591757101983357341824048430831630257163954865706289852056871507797627147849018139807495746663279704741684900544252153570536996145455180391468580279638523694792785468261239360222081376885344419472310110766249406846579687718231375638888669844653911829072674794696865338726627242840738791288927460571175610961688518824316845308695906267020377704009748030064084065087237500081527600208781395984708286579602977168064176942183330050016020222791951513825247011653236431735068289097793351973844132528243927304343460937948277528278116410326365128559136250390350773758768581219587742392698824534205745379461473273237389441494807041262391859973533380299803273949506870996624158440506271450752381319622407466535174251341922155328276596086378601992947424334421134261073742600918312971749280885009009831079214081005039157104564452474999239246256730024512195156243399039128201786883103235832231686394810154840160459601506421656101725290409347701445338508268383779638119514313175033468609849879267114219482901076826976060007950743907751265841385776579579213549936464809909299602552354336938213637301869390502070394109031803773276221100975586584144684520679288286743929954408515817613628021272340611219386460336891119367108527673715060291198107019240889527101806480078053101589623397135094621874284805666789515910199281700798172655888886592550727857531908006368359925683994854853501398322463615808412685485564076708787991542658825108616053600408166096503650918407654441064831261573954473755882020788648964684476762673785891784430029751200892668409804787899650652157522544170165642125693497212200351341222819974125817225779464523110983175564686488551742753324548261315247550273900519933731536148216633064876567725523389671679694248261597665997659972590310353406657465579409773633922721003339105371213650091125565287764818647878616782978736459991424533091796993266780754823163367471363703915669121524088524273480731520652158959940701083714841866162992340767104866886542976755330191581429643731700361928131375075638540955588256045765786582720617573059928439503702487637785139266718131199042456523928837539160183033129971556353830912658388326674159583136653660101439467349032459866554783379504280044544101183806426371362655946092415257195923900558442790021886511049069675857773757412895818759970542984104300733184953461604232392380775862760824560819041809782973446006758327497051099985991922916604176562413806015943366930565978437702294877056643916721339581373628252453403881780764862797266465641830580494365942466227339498376391087633651904940398125195463842275235404600796881292085705081833635246119190685598420565787629844241526557592340088068190773897133299296566280496128810319229924717319947763234828776660114020240379231244130176644057138525021171580541757759302809574226393179694811144281805078341459998001408941539896697411886558120277599378572572243897134017432148558820676838839938858831226309462768802885387040891562273486270408353510078640001347633793951840000679128154178441945829987153239585716491371487975033739603085152243437196070974587688794469208289021029318803436058952424598526626080183660227127884973571407052500990484631649934147273127865372098362462342210637370322472142450103620132277892004504292545234076791212635414868127095697916687972404211403269747731127460532688313352197221991997493524761054449306709907556597687892838443229936591736548084316927820753214062080457883877501728415405499741198592087112100413790307397039831107436349310450489954075343614768660151413623592419055818991474137630938322346380253810137545548162640585103190290739747072712956896433111122569425571941330779796367267755433053779312802231478797204540607944965644871177894961324218525311747895087120552500227994033151431530679522419411662574531447969496780099120540457810246209940222590486210012933295598823872061839870968998384577928357896119899797407664495693130443990943846435567828765957374538914452798190265592068481194904260482512759325588410384494318803303536560361390286562545529747137237806547260575501959565006735448926115755815072958563056069577379060653776374580830848965090043806170320385384533917038860933133008503700160122459856279463284544291802653499967648171799520499657490227240119572725967448485141581585264644195876665405116168904715393363074719132982134948987232284553196711953483937323878716824052571917508801258171776635351552860750372141282746307366746849956055500567381545965699501520538182130970731968447153512594106041513957648234588047436184124312402372346693632872346680894052715309002407863602167812601297631548849371442214938599883809172073575321459354506912812567816323970860139200493765735865391162139494190441046348322789254004992381129128962890380201787994867847512743216405141522496620231198125284698760170422505564074190966580598774460002207509607732357523231397250982726211758350990576738035228735412612560705950433256368503463705997430716353181115190697328894222350319629362856557261729389625251118420977698833437797782500577217174646312880191230725977361780763932053865726865903517228907475328950721765923294974364474910142124320643875730790210125759598696589338840029088816516805190620419347643741122397561282580779297437446174454627426954840916022846667595371899758539108005623264604922563533814947589162008842070962223832413751031808522682396138348473550452083577125521176643669140978027107385535635113642333115197480518852625510990361269390257293488868832850670815510241252802454486936066735447073409774385950003318660655536006406122442423385596071737250139344088966778691559524039735864464152010244740106627564768525184281504324595574022633535650987191475110062110087028855356599874898732304071192958352792060574202275708246584698462229738819127922404355911052938380158456402265913252050749445380627093443483577670311029737470721883319274104816873272958457211397999402090042486123157536662525118612469144841524876108167082348694283620331763625933447174706893337284727999033750762807362059653921705390261994475202417612929439516607973943399680011032834654444820113900482709744951835752573303645558016951736876705887602466533952639590914921988683510237373823642541267635155495261627691876349695780234783529543236593349313180168426275861468095485663747358314125771673156471712939013529833831475122073291941593373865483314903175884878519948890424094384792658068498081833016709726968302795441003476008167242323051788013974681255722521396794467985809121425834726457428788756277681232255849751071370400413272291402895590479579490470568792396545885319516852814287841190778175848127424908935094198274641130363626858220288174724531826306437663847654011492959375688847326214870623085488510871722237702660688981949962485318135603586896827141662551621855003640955493930837427636249091168606166895946157975327138548819745376682176348349436964190949937260947021007707638933681907686755600711390569497590368515282905012586316246993632496053332114900307586761954894789397172049745035148396092092302197509003430247170404395771472595512017231999539913057230979864158741719065537294556317514400271953577855812046782615842136439978358281872424297052999502951526930648018929084664209640451746053662283381684343586197163374952231336902326536046674387550733435579571780547882204074873018349725239366828434414729954316757579321186960559571538532634143873068378507952675410490594212656349710881054542001365014292123833011236778071919720059495628910156681738632513208300801546441848023506526832217190030416378535551025757045094404403778097850170923064789153133712798019947239870158586441189069173540423626900595067792991482949818351492346800060552201734315545405535699548892828643897994789357257141464853094592577224992254070476130207313772735747739507583305843969048666596695138726826185506706250459117193360443648997970044473445883264264859302943144238991151577132695155207383821720278132368011087129515420787412400545153097610919142995301535464444399879991800550864752067171969846036246347331684813631459009299895937781055712946403326105645180256820113396308842894907380486796966794315435990137320515281216302605923734633283884565250890473540713984946708298772006090807231265798114973842334921978915474635448342455938981985399427220130016462746590476254700971743201194339946011723481252845834341285984748439934613860683986516112366292790464960124817249632962332595429653780037669051809479769916189074163389379835456018019752654463899073763548438388792395407467367242146209706285837072510812199154838250099901313593596424760222664367241881539069047083603104143316335472921089762618231470539060523248771203873792722939020511631404538976103688657356578732735887106661594628071071732886096158673968560533639819290767543816713306845505168369977055566403112067941252792916630115722381372785978814975614809116313862050246993045287100263700458743477074794066518285546827290100633751408205698964138910057258943503587619711281239584903290338916112332432407107773895728990396353627925895584334632931955811849625811489271854479267731995653480189604167895042582956795514542836824556355737087214171547750615438744120656495473909840220695174955713462665805095459473073438854535607769824712303880235977742933118772286851013941487247168232645332873893023761185369151713121350584243713295773066928050204566305576381887053706228664739692376986661009501610884150260510009200274408590259062767098954420934061984305027116404480171927792618827193108224175662786144851258431903524736192215483527132240716279755666545512187522990111398312937978867968519878228185915904962258828736240564128780642269940285463317479833704130782007917682890685494672854251939760174383841714517119832114156016009187035657826932389136922934653540265397682197850253776110248498273305224196396449145833514236662316512929192403642092910818622753394793049144648904504129338555442526494707296117635628881868598795165959536299605287870349791295541310847024217809616773242433816623037330509852550896569293310797574090858728953585333664243059674661859272894843992098755244393442592219996850581867206470297879566761749054082116858327905142103805964886804004129312491848117811124031883184520194409060648498434495691692098362850491117472270449447464138565554872985037160780459311208629695325985262750476507790552859921920172364060345902073346289065172812465826730731232706694941031896873501545273126590677437687497627311872010468232340176576013037647370158739614171063947991192388284256367736995624059028485202308230395780703244535269023969499281815301693470027189360522361429534221101597044629304921486591090072231103775798195079287031833079881535108666636838255546258341522826548335617420513829762448567644130672424712178520634720386472848917352470684357202067788984520793206089528904488271552978849656753022248821417089248215079309300878265346315307848383878041926446128025377620284045089037629173742532801305422547045970448037186022089929280284366599814457993005720564757715840624271229246884153406962953917662242656906071533278061271079702448652776173596969950857404458940390080253925024816573707813131807243886068058365379349884030586541425193173844245842583823884847856216064373455734854444941113147706751848492157648163786728893627718982147068848751810920372017055401945100040831873638446169140793920127449834036127729566422753747582421012354042308014057053199104633500447238316792485835996980564946085075047467053983421644692027458696391156589947230292247928535556339194801660069105304198055845461453170972773026878612267402880390241094594274161921758340302820873591317875060853442431564586724388656156893417890183531488938187855564478385866585932608589389932349452253475475185561135297002011127859430317001111621115737119572018442583739544654754240992743352841361986928028005781143523674915441178223758805401435997135433432261059334578595816217283336823441270034839463119167681244923326811964867037636669931676984029618595076986076145680752036916189826997579136932340592176764962246424138032861581579299417321827188196845743762138994655374870449702029596525867440406867023016578182740925105111084495540472887835076046623573336099731791619641923024807262288167520215973528233313105035014369600603819594642520123495157777933732116273211070124950426851641039510092587695712570294179722472031549090483721812851956851140673546996246982570366981360333724021055660270489898193081308434436240500300391226940756073609382361456454095101832346964037697908104934843574102885863894474180435890030202851741548801300695276735129584163712093754815812348824136127693192079524979911950966772011452897617148847681831202733892065539055501806616517585008562017926646887832855169708030406532433854697903875017341058705507469040740727874806806950858848061397655653827219588992804423172465389810194865683092144546513124962222179887347899491500611973783708709669071261962830920101276314621329026047568026113205255883812007715362748771563901781732115346032953606191282273884933036948846067706895359255244352122692768393855557043935712723453939928902453990611131918212423857906183969164146142157724642158515404923894039970929732609901071298140175625229195780948688029232988015881895449419895207861303632924673291888457897380365987235351597281184557870493116451367764283055560702268808051471676898621129913878593506284033621092666168981594125891777152430130944268774331530234815268102240937635915806287561171243450099787972179942915726938815358266403963591289519361038168530188443559770813300175119200157890704242930590466423002061367827526280397165382240828690285847419350270420438835357111522192003495376677180483008043608199735187350100053140732369490529875844868583312018016703492550807861580164825352376708291648120058120193763634689693666167955752575796616865501625481810198493810921906821405240120774284808254730164708529815051996477505989557558984235263690225200078608092181076279596674096096299121129752775561866575862659591418567299837216251533653597502217772300928056005639812608048411733254078240145530834909642250574902486939078539718120142924693825130350614518146529553960523502290658150171351334286369201863882370284453723980173205910544836840697532122057886530224831670583858962592570345792953115792745104148742180629705632301864645860898126924523846346478419078961580942954187500116147999122166976043747113136339089188545621267765861245960675484638874498861287114821724264806117679350989857562619760563261237911179415046228551139329909048063657475891119485775994236478824406755805340573299545602129201688563119298192514575526541215197058086327660809401957281190206312931112801339260762496827529117847473862271237427622607349741934636255349843960881754316519749961043885678661617347979173485367472224512061777426828449235284703607399257891936065423951835549697526342727516505264086433105391676332906423715152091463262525894214262739758754074138134344222781146927211724464775403689444292660358894857465759328453792258516314173165615785806916142663533152012618541423146451649859945187652375331319555261055849485303064326300261867526510805055973002355653903363300908953798894195777007249651379725418785490718205325532032404044533997945759350906580512996992596660531107488191672158023214877935830180932618819118307314009432261186927045633247346076322109726683546413237446056578806726317921290997692958908232990196238417241950583430999611251406454925301830540966269297278838643338406324972524270250110093835631225754793956184387313935462979038460776285788903422832347251648628211274276611137663919446292744913180884351130138006187005224608550102347310784325282117402459473902843526174430630868763468185488720234492617171277521195693850114595659743167263519700172856082760357638304883333919096622134107715503162136579966970486481461901156536824525206213533982025031939440464567419467065322457582474795283772838636573880134602757869600843015580235321756838667745974558001264516402133693829622312859503784737884095029527188128577393034695267334954222542544043859199914240689004563656783107004927278923001522207394398496730706403461267748947346204876148489354220441881190689623996959606141864042567357496053001938297307364640713798234661287528172077176576197205821097672231334788203435979302858454682856262134238705767533716423124073818303224383981549669088170779360198187260581956961710963700210598924023594214473662026349132416336588239083557140131198607890144797834951768978766373862275776004121516764743652653266611347682951992707333896140109516453615817658605620576334041980543055550562821811234843558831815205550244035032693139714909269364887545680200667539139315659851575920514707872379524325206697219016537429763340531788314432302865978410397297531368647542348563068369316317257331083164234526278452257440965360917442364092992353598595299444310762974533348321226872778122336301901056988184573169999619782153546766501240636930629300089798593923436082540928341912466537818707098243093156905760443130395088665532738794612465967339229170280604130414200677145260295955883029763522217452961107692462817137112121368448277911889837015008465536376017424651330251746084545212215633130094541741568505280025430459192314631286905614062702761119407555918485138338875071502901723203748053630725342154311890245969783403248045860173288949877217109500501904754042061654939015300220929098817390636550891750307228644384901304918087571547942687788821894423220811106152515479926334669442958933925460020277775484468952843596736950041711438955470549519882185390455669089634284910108127756730436151821395159014763108250979468276607042773520998644493647832996794795167002537972627288435209956982288631372209556302018479946904799121388296070698063392467836371797407766413489515865677276484479076547452367962614819493635442744281486196987964408075897316355278785668101836852043065405687199841705042683172844060213276961191313877160646128669369877052879490224068966761567767565140184768941344711891016443297775408571372739917115434461805231673417175143683548084863604416496224386953324810223949185733762181731894177078266923188274547501582509847872867444463634565297232823593555003615257835780696426371338652761525218570742420818449758126776973055144283294445904413684092050252467789299403270690917990612984895716150866311530962812159861483062705856642309952474093098834347209668632010609235530411209176090791627277559535559585933628814370021883053894155330191422312878782632397570594430006856382571292148701778296595683721423300472627373133729617921023752384801896826463577655890838682066200307691098099715262600710364874755818463634043841219442111420132077628493970539069061698205597844346191945465763151249655217480443914505951358815540965061726251341160720983210219529029997852927997252774332873069032807333186362151804211817059599395465032610585177957504548349055756698816710098953707864788269708576980875859096666283491355760454138468575270181887275033764257848305650580592401598993888065109137387506142155515148550572221035074573613589515212498135894786903531584917127435629555863705588472186680390212445831473833697501055342869692514463985817825075584536095323140922814723508550758899424525388171100318008880118061352716191228954041797443914352058783941187991822322800617870138161453816408702362763227917952115320145912941585997141871186045177075404383400607661329475106478218661685581676215240563634103406414952573660612029177458209610356010846640816150648480259143392956252600705930352854970267121797755922142564498725235202090621865655625339696175364437504285096074343305039177059532788159285066337858750333607180508451244165002899188027768762924301438318831978938032291327388854263803104156377252319154132985989349828950414132284140638467080346643778572700669147475388606495968569709969020246566263846168960464416219118654080879965702223686277889499539940675939669137162230318077428824334111034500812898170813829317509270183534084016221052585477987543629939375206553340124912192917562595098184174145915765506370932595437402017847252922742043437282161983833281067943817604914735720869535586776336232717678500608285061115667497943474181169831612783878032290732428607228969558533618053567748949310297491693839408780938477711203938958472929318663601332458979830315736815603979807599519708913820887240368971572516749049590372911489802165754948368573142650800411212777735220784466132467141208923319181586202296005069643361976921884350773184333413746291945948244455567336175684045292257351331801403625774450699493954591998457439614186316393683981169382919113181327147033064003740440968462490003294714311433789489085645176615397820838804983488962627093496967437619840108841091264256308676701224256635029614814739723091821202448343356887599152180075372773320884586457781948324424596567252559539739165170500278035591228097101637366716325351638112279790045537517142737151493959124725894546311059825491002087829768364815194926120927455146312525241526462846489998241022848753905736859848628699768104044409209038764558204317892775659146732811909418288814138977353989152823484820688827133468021865715825879426813632024245839510936163551502438451504080130647991229510253761349430320821466747776611854425222407771231175393839048847784765099097743704872654914386262428644823118097681602408349412672529300624554750674564058605053164830135953181635035108178639028697051546143286283194815102075239082893941727991623258047896108614697398444404794670670415699009423172959569454288869503515463903308744131716422737902376519298814826062967716184106906393042595359175558539028987174560529625255731234268811307749472707380747740680397770098124360846417535905862183197063717854341514188308910079707263827991905652906590658858634618816199918665807021156874807703589906617454455413657529982003161974700776152836531893489409428638471418015273629060705264402944014453714042076215950216762302554911839394392846854868358419846385545253274106223774205207199795092726643240284060536810248307013017608270209114219539432524456348607629806273136279401373057031773975874859324752675480083123890269213425050733620793023607527068892204954277350430546374447067031526313428651012747105129874669942041328696667811217064785573330295168689366259462866222154038553614519589001119981570837077347857586476294124217190898664130476926110916228903445102279077705543028974079798781762301107678101959764417103400113161007028603801516433536686044359462674307448914934481111378521384337431449054678889260137199095196716323253179410928708257064401819876388757934526001702296058386738034567434484220591105115499046720944937570180118188199394057473119240986532662215002131964888419239277590227973281803710767961209670692726457068814198272316286085433829475897113761115413079879659796597080111244805630356590727312332025752007774263277213639213899163908955625338220991782371967697365469076320840612043513680882991935481626319826200551090043588734620901071027231470828167363901456631296348956018137759804955560078902345360896420079071782341028989383777106881973966223646353824383851509140626584576008600327685863338607074157176517126210005801057921824078315679567034652491948786331653551257162074107178776053943566943453406876983885620285702659595568106360277190046328566304516472683367089195451312620599673716195475777623948424992149746177744643852303022755982496180078983297447968501825174613428060614407568642462604783300274601819458196944803557104029465701181495324155743007324617625980540413223385141009656465209066685048936444732193511415768237613886691833508182335388654115456906760583820125703173784677671503793777477653470586982008296891269053023506332782979031866818474880451461402894707219189418837660758775991291958148503441645766929083951670991145201867290841143430410520002198042613936689701899076376311299629995267047423169403341918419995491118454614220254045744891542850517669712736576199114292579687516363757506167757391162257341566644357894405933308344170805285360693696195629789368702814160098486028355960927438095362193706118232537018865707201035020949418019849486067843479244004290121614791205112197405496826645725477337527302420611087880988680876308533832602687217132808603336203585108937515877818527963762881137450334999229557274610180051160554909220112353372100889738860112926381471596650035114096279136513608389877831041892316053379770981642645501381447774885118644563594150290458385354785213107862035819863585303877391356294459403612993151879098959528859865386851114696535199901142148726040945477152913458083374560773447935891054357658538293485751162318894258787112689012816611529791484297517996093647338222223920570178894915282782856978253522662639759392502131617204345050285844453252374835380846563721978460551983566681725897745681454821554498473092854505250201837616057488534585216535424434469967668338341635684996402115583048807398811323730082816516722760916066170812663453258908035989777444904775281038063358644698657621443979107633274192528799699134056208627013642026950283257374495849405347536742951906554853089874978402154215079985420503029573004981366699544680554889057255941491531347577981486699972356195379326085985278298307269525696862965061579039360347658328415534182318287320275858584442362161063877055212065381605788443190725807216806541303470541238581840861930588721880196380061102121215557619257877164792355706272613102404690840129809495667251132887937892309331970633350054137051646083586622921030306748552651819779311267209829467702908306999983936851076119366717482380963440483076013821865660154522366906817996170027907663445233162430684591034249767581586786948969821627459250801952251428071511360649396634212250264386937170099515916199334938683318000847524945270748845133179931138340147073362458912079203450961995450607108318839901989002235015106148301514862630800825786250596428202785170501624489553351968045693265482202287928725009196849216783185919574924600122416650130819138059026142430717141011240318960400914630232753509423202250876493893580223938583342194618358859674798873731375776634324536788619444595037637754990552744121645193506236190279206302705102903755816412713100951451362215909729041253709584574021104928828080400865772599361944939042054320872817830462115418479127687491322273832750732230997847977681490439619781159180566260198915542449896319897559511787875857737625310354284892565096144057758571518311376549353317485397080540691618709705275555777783403797246759445094885183141281792396987398624910591615360426123083423712532813480680047368790610643999940396385949718569241280170587770051355379606056388683304847378877146166229107837014067001176449734998611506110721483575114550361225523540306721820752226548228931246402672831574196956540548217966601924421318827608589330302495100150485968679050492779566094320903849760926236422180333894712170904995047418439150264069015726712767388567157098855467300182893874231915926922718890584804801081062523301769653622594869664408528295728477075887950127264663777964841211927343568270714421703631512385445902033653715956834845672659274176611123830677437873715230284209177639969895330351475914869714726163783896479224879512695304900114451891044133864972736872910495036428962050571807404354006220575528964965909085438984747844578368429673946531963286732479986060300978725078827449805348083343869161842487694970221695872038343478723554076395008046474293714713230552585848761698538009231783643649090903430287796606153335475945358363319189491955065702039126993346120676661589148971248266682892292464136462837883699171899996184790170824432972731800887033406029797795675557213260035111631501789891692455035194036351734516430202388210621911214108056265050305034115576051454548927259789707330557600128812772418528016502778560316829513620274416448157377712488070233660509059222715121710848056090383165335635223307053381883623551876386580662260434906457172495436389539450212365384193923723330065175321773970624738609255521793409156351419607135993419300888712787400491494151448127538266221440851463000815067752404400235538395434906191654412248236134684186560497612355174729433193515997111351363053071071617801085017900030615825499485211731564683918206931562750436552977416827769397657511137159063311520762855711672568916947535218480769827373987897777510434638808658936761026342506234428077264421568219459345042085287892139869365267153881525185350364026917497546328178110640604369147553917036717447036868507281409190840166008769596606609883070349622890714339170113964104671284757955889197539954294916369042052539960262438850183743177431971592136780932396592522423576362524237849977344896063368207556383476375398988438255508784288740888153907253643299921887125176402453338841742863573566803562887905252687443458439522253464285093158401474895005499669492411810994213376512748777679603382731115403091597319882063616797977842059649488517600167265937818504190752176113610544402118328493421359444623903920961591665594831191467349688180951649199720572512335303918914708508514107497044375357081240975333309159288235431406086740073834232567929671242482148689463624639723871497335310105954182475212570580703372035647742855262789229923979463072922905273102202875576426217895457517757700940913012708571353565672984338939732698995239233498703828571612886349460643566836684213130815105619111568499945201040551520003848615452111394250724563883965168527741539407189734901376127566073005932366403842036950919132238898910780335275059842055030501340758936008548816159565562913261960330042320518712822529077033662586733156074908836702501648329315813058565659088702103061819825029689452344480230145120224947420320196294544173454644748281915426208209008134347634084509890007649026832441520293192717982027839284278712061450237155769965472790717602100435899599735390905791151126705163678881655111911890115759705985975713669235949174683807061046990991870988980349699531349281897848767252100225095306989078285310476765889342313229029230811886175283114460489912540141462456699347164746833791750467326781391806802300522512934596939797464056216415069759652413089109221316538798820371491867852732789268129807009372343874610641369611034849470883188346887641747594493771002031637188827248097589122165628201769578961923891272136326337881753685530090928491952115418440801740825235788978216672552597490437295413941622420159913753132742359306204101863271901047240641188895713291112740666881057989507461102834655505724061461637010493398959654931287613072829718778835124254161645437826337204240502616247350492516566241070827264973815723405374260171993214137164003962576137386651023337378644083796113500006238315937100637480248334290707720629449997310058377896045030753362105416630527436888861808841834556349413333705283557759317078285720933745847606623254569729807426705324996993273329129991210519328824135524341490607579947416177749699979376594212641588925814202354159224973425989142923609817926091318526061526864452484343654502320884076940872610483658461768420746759204836359111322722227920231587130841936834417246328358712454275086916455661817973968147632860327619011528623602639607693921451987748499131520075244114499572021455111448190143624663740571142554950990203607748597224692443610149991099683247821920051180479307682252314503669989734553426742572581395602841205232843836250335236414069523123433239806560867885079963098050162279422090296021244818774175853127658749774777811308199589605475444168461034313658040135130523267184718294730620620807817639160090604111387134939103585059087291960793160434192081392066170969217737526436261340179791656335423652530356452397488772814809450026329265755532042924798592498555686937652023832064713253718190246624264248772809326058566058565460389571951357337325472613846798102842996744432222064414178883237576412684661168068413044959502800509889390387554116838062996167956075929082798290196481105070154300193504586567188121754384822516530346624493677061155289133510810941862038689164876297757540264395301608882971940367757981261766014467922450431091326446061173561972682761807660976846289676942524943106242172457617347045170558799267923191850163694620992553156263874724383973081038404732656908381625153081232138662528686810404418217670585272267717004504976346249488547344502682302814295342627663340923074551251996092430359142170114268647751809046579415932362475027951553839419537356570972225193733617352602287066527662198256466774215125818460408405286973605348341551524731065221679053241333936341608629050534621549410319086551814811489969598785602730916005703073061691055653814296873103244377674072310159151943238094376857054159289961182611392412879024297137763559789765839157029426647675231588403661221636516170504790027325022770878809146452868225055394470819121100052167960763017628411121825234765236499048334563121697507244514842612915632142711015461893228525696792135407915485870220938775648050383440132334067954208461789348676765028336501993318612500227677943740234004008953143241333225916268487986366958155075826626461919062353001204603167539205384826554104305290302822151220147369764063200621700039009477450000438986581882081356041836549054755498426764454826413203977378111834566313356458016411545560725487368335744020183675166657011625296331104741702824616529890859644405429749434242076380154930480721696947479289428954072134657335170763430876156831779390316094759475861140752309211698914964354680969217456780284453012251420356895611361291885786369541362690572136121526403444566822036585994021991042893870233375241798039724622030276252091259861211646771153275875161576999009100271369398071443740767521464835163784499389875354986124772216814347061159011377831364906244225641683532666223301650093429356586962521456940626911815443879206693441993150800241745725861168889043025595040759071806007864603555266882656817117521132914012209832299613730473061464691815802068540889787661370997216670087114526368334392090230138407517010595499714059537347674673388277616411365331295002986631041849556824707458017288640207773752630651346168793742958228640833730814001911782384045293396836790137857524973837156598852410177455538432567061940946242656982924940637432932277462568265531948778043875809800105985175893895454407615866701432716376476645194047257649562019644155937708901402417879679787485441487929184043580628950164034025345607170922482023980211222417581456713248221788428350159555131108890249449226178534024974482523673996684287382145333269561082827224785061533544924361873405941989311727748539162955716253510177918164738989963299721262077773701748069726710537792370841608248396898126929431486920579517930496863956969688682759329554203842121414806007172896271582677530672573129385902973464781244522411530827318097532037566091354414596796668000403718791084547378018348628019070262912082179269064936963695078560318357887716468480309736647069073563114433331152448883526174128188288351895735717460855879747751415007947313432753570734212470881904782087732372164092183013662665959382374108007834661682378744544224297835871699361910130368057364800556317800449927793004018770125455733723219949701981753239357214215815147373638704060462903881813671896393084165801952238703534186369809877621535122608774583370325275860251838951386621727598883096714087560482076344101494066390573311507061431615125047871443921142772062894702489548814454504034581261562070729097563511650556687672066518580111307311515625288576435336639182755830073422890513888232697655416394019263706167638094749471219230640499449764922034551756113114717903009883754539414178996942471756954952617943726129291399475602971240017126688004025188093463086006472569405749014509626661583347379712893123540587796417715140057207532076462444236948437895603916858953499270122752401328768884414380908935102782334360667087453961765637857587608056838771456026362765598357637029905984806715359021877831660897208053180501956508190239179767393836983551070360625203411311670712613735153154354270818014598528388935983775906064092584524555123544896138384313393269695069887897870812924446713498775259718549096664170320393576955098949145577228374567422899648501790123990774755199927994699272554246185475859423785114638512693854535050360523528381992487456665761228552787068499061393456539852689535469025228865422618335936557830342257934410843770764538043348932447359483937639574361529164588296077375367385216455628610308099849371540719469329359573724337696233539204804616453785625978875772863070935626431454469763314842198945467334307831131750079199894008681028560955094809479646467381367895268188736909602612008666835787203438922489611640466184806234322326657172619356940659261100661491947344816040716212331446079059885098242666938539392225064671374249349304041263243173540643941954716440769096024706774683066395459824776285367030129989572482219244395904278388123605379054777783273837857782933648823629052068578519971566373779897775073070441712801068416138270162478524623960485238940208353086164733967019595148041287095940875112422274301694283680992871100967532947316846076103260028903647517746791314154157663048198758128895290096622626675168108339469140636512021190950362180045344733159738018489090868801668150748200717819826580051614409694049706209892826095469970436481478836825880890072327676352694021446035013379274460055659292036888388786897144244067598378094147203206587317053360286060525266164010478178236402596942920605648994051686403730328676183255127234967831291542330384151830358066099899758027772846728750652710033061717117221946336641939819489547323339200652294194442145517618014151524597313791037867250063440934291035941713202359185596946940828517417385056465514234603558223078050386104843128052823119389810413969087712404589096453611781717055526402219198987254138158362456570282010050962771087998244952162830731872393023605457363470124887083856921552953904707808480450532320906779917033679376123477318518058005781237890009853439248746653278880239800460261178260208430564045755133890053333962091495929971268523316436712628232609743112411384482894197876304139596997888142006178709108686003856060751787666852219351895979130787594144398268150581655324714605673435645083842397468625062180105470309879518536527829585146677014198402071381657918538128017737240997451540485165715269191255724800822819603675025841884763132656030497282184614751360653776662801708729969793109175742965297445934477410842383074050369171928700503893286987215592171595750234229543649554581770211094034594146012717231461557639723013565098467041126726272140933936388143939403225897018555646569163185768582536481559696643686216875317201696884680432007371854893775874800679198096150309450268852118887863452910569157272467899359117634670623445795516115939737522999041360206828970670684383518497672507354256582936581862854108904169770393504460321218457982279972700181887487924671720876249605310869558707206642297501773361505688381548100122692006967180891115892495847034899599338385379128673940747824223971660808149707226322009911190388377939676777646664368024964495049587416877610786696751387572431681389652824341194837636434643938196850174636417176530901504961471959762182040235068333704816685071975558531795980495327061682605914428138195618277000218991209187398792322892903984349856010359311929870652169221035744186122241501507401608651710641545017695065618352497927863400214171284546546114515946734898569363109458829866524954332225025321269576764550989073153408671556986494673982570842212461384333631100657214240939310827654520366776301504091442315730931528088583273195812908608821388286862097223139819936642248164736036750795798334792537891266633451161141294504905735125837190126477736218181458100929455546390606436621385835073168215669180613685596407068618735828010828369512834282334286027840676214887049096317871992918364153486994092186837264153745516075803443334451713809642902570825750130745332985389485649830008647309553792667166457410312550584523694866507881701860566035020712593553100214490995898804446783069091113014551262684424143538863859765012606161873838863358964141437074062110184747348306567982119341576928847065009485190180984745634599021619562072250680684543949626805617138654158653762465903963297668515697798048782362654435878353097183210749196495319954744797498193929153483349116412199598436909525875254169206327486720927684225954193412792846377108205394869207876903653551135871252131338093695821870733857316529055922524147281390661991949354081545606170251433119189350387916727555860978628970620239816530023874846054416143974812545557192263771959711974645089643570773518883389003496010300303389840367919006130533389767663810141257786255049930394747682230522508984335846876756986123664222364036278430841297226876485550983924486635575275792670059245083776109845031511381498705584387186875520316255433522847263208549758924864988924470935829721591939892653239986847810623807014407664535554460948248009226035399107556688561273616645975048064716963817421495499093786554396291542186530995030531625110046075693151875971540459135759630240804577197818236052075425020878941832273066955467856925573935130323542042297580517631401849900138983634579306879125484080345487173012053103854844151216979164134488173480596573869513997335625465330280151940045711500774839120913681694672709405391114929361847120696666222622256370141158108044661724116333187482563457099978473911800977420448102493661977808052233067648253594265861252952883214663522079227601162169005062702822237315243114233692432218301978576387205311739100651382099630772792931122638949199576034485515944971084809339672037059837650316210497124558503933517387535461388895812065845150540255978649460249397789400824545817332500347134373040905832341321290430825267371896188671188280617093148582441145878930380441537205409367874597529861997090736921955027681265123779392664087508306819801474826781404221262292420638753013141087529949744185672496133202088184851298715655190343976565736790943850178821102821573572658574588807544968277212989781863197761357381465671354467854554765960988433264791088012167843764467964736226782220790293850253028738662526124520498310367653090930406313787584761807252533412470592771696266331325049121757696826562769088184719210446565320835375522951668211733367006398258290369385531275404536197023929712006372597557843797576023478454013460685983886505006604912047312448839971142441681827529844963100217465645780779678088579638352856769283904236034611045323302141302930951161783769922414098166018851486320817295896219440336100645667274772304390712834931433205454057007796898645038753975620186257568977288620450451363983572759186780380747178641688025077750502609196028890981234534869884195441011398779227426205572009463815245605018137917900049588871997445101986608368367958928419147873213311492981698606214702200605521790881840915232845571801816146844469002080794642694637628416333028778513801910135506176730847609671347368201106623319728819527623963520065478421276747438811033808992494156706717409803601729852495657102002517701611570791267386004008842546567229198389634386193637093349401021986497768371819100228208129237940896625780971447635054752257788442183329980686729577574972441629579323628638611260065475346572270830784942815555554799294255133626159011680220682212572006157058970297682883031435215567612781574488836890494219254133679585171746202476433211720788964460892981644195651229230972760141570077077443532118355252304330611011729119049514126686234053879780669336295263888879925627689874534679475889996066553048379995538517932417020517431144782928963499244408126636481301989277217857821456638466079596587425704943053875281666509308965917747888023857580289994899414415235573123963374501273245834453748977135046600897312373838568030928976003616666758008642967105765016070103139856523612609712681656234926729747564404996011865643926121893474833533507135507809758266782502556011698411858809976972351027566123090186332267521357972447140896563614610625141094739045130810222824707294551500403941606373641964195729019483999556305318844377588064144696718560291676112337208004170073590798649183755173690677830923187281960646624847353673876646478496729237072562758322063827326184398868691049312407382514178525533307641677265315955777351780902665905688876517206985168665120615987337284403461034496260562128849777233561391312588288621281588270007115973562529532733019550020642444327148850326534144222977362982164012186258051576282491938050696611368485013773174817957123196730260510292532720721180641456983087781873913035810103741904495857636756280006594815615113964783037244380659254441530568334251553728772905435879789460827214649892319359422532789367743774617920314013149831162329628197439047249465598512407017776297353126962890601314311850418087577912334591432134405749834683147810325780068781153547482903909211599152234276448708476719515845207263332305143497091275257453235911776090805032133243389583669849669052941809117653894485227741049001489038183837046385000889746265507119031838837616643119719076007933996406974508642318126954325285757328019289019810917233769301604465963794916545072073720479407395605802184555302959314815686626347800125175822732012388392759730529896574839181436678359977398535405576172530933740372681351160717081600942254811786398350065982664706737538407235712493904556466315232501631329005911568330288515613209169371125623303552845497388173771038894912194622832467562753405336436547539225851472604941915587590039132915628849848991355696509400143875423424964649023985757280826597367306649564214626320520622789135215349035348700652790603009619392732103210707837139754714473852447449906572572888547649115624835343534292290432338040833538033755760200727950344607729158211355438471346628392801664048083879971237896544781421495512514807670652532642198272830450226602480071293977497132906297998856808943031684091853074207970922085727027568234865213598508561598130910542528244947231581505188254022967607194349778305502097997660005121667983517521303252573772167235695413592993760774813437931856141410112775145219639167142344112588627615378642456254543230855976518894464862901243404107941042644077017498896764662275547261185201696850874446622293052355655783973417082633493594905313004854706532031815783251623760497447771742074465769473225361457114044510807052584299595627768813805396468784692654643920822654385703458338332828284729101396683271407834241450857532845781672885337948652963115415363392461990372081289574565369463559640604829351983537335125857806226337436044419998690862265017111249732232070648179843496011115005016873671381830063152435448229489918879803478103193663917071723845803603665348014458185261069060687074445912539292480956902161106401973054325234532058331995993173211312594825721608361016408163137559336765307060666284000725406702234828999968606228441213369961575412058089340949633839686714315340023774619124331956597451995626328283504387793426730625462600289731908231942609022048845150335759334935424256368055887053336217980875841452157592333693911443021965287602554594240928778940747446310299172846271388486722228482292972597093043721324432214543663207216841138528726963960097932487304713904250377809378448089544546942185112045145728557489205505244442964089140000061514721345577438878425567131572510532578889407458501082620759630319448303831004994507118859340248763590941340910056309542047392855829859044606325711899616334131009143050165514901601934292556240799415009266272293193686906149049136760825745192455832533641017634502439071269352029688684723468782109055751604291239901840861589385255556970048185456517847057579874352768113395366660233886970604458690375767134755620996989371674485188500025222585770470911483106489506688041807310541146660688070284035631578665557032762473467267856604802339261002474820790606254462052454834133130342927094162430967226407831820724460436444996513512534694432422544801376657414357377563082767094926748202846495846751210745674820562922999147528959516037251962969929671703563099185024740084296455985272470657064665452838571441542777142351387920415353224346939439743743094628971678443726178448956500566410177674300314216826976542735511194250394426772088680272019711296577759800608130415884261420781205626494997087937415964510870443667692113571600227894944343890033558166538275724262413797675159874713913694816973416968671660221779687562977345007369580088645085602433817173178771943709913257135562908136955354683384157930597208773901753781738049863301918981226369131565438936507742657190927702486942719458760846463347354461198891480651579880597641682366038712702089430550746119398350869292812118548514520622004086990092913458664581866355227856327699495777798136069576867943450186483044896006664409441779082229243361083580055156147179022392629203219475817365424902012745179669549871605610256217546619138821413297602626076180548080148608723148382287592869277179456531140230139274383613080244193182049582241259104155730416625745000483052862442209269662980746434085780025878498498161476955954334304567990346413768972813584364975724956192905131328896192436083110149845331952775794990467124528012409867899915754002920885368803755111423500584901865496504347061568787482802644591812002256346053952364797890379251866572579636503283832395179111820808467703746670422459772377806178646721854759414209781917785073317614293809397260367870269762604640179746971308339343804058380823128348737632303875005409251368788163281294915471917342567593293082354976742818286305447331158961165909179799355106647959677843967451116786296896398502784869380579537555870995001767910975213756602655069763372024285779133012128675082590435913015588342062906056043878219112251983610863386637700129868429438701343447359438880383782210257933181694564765301114369524612981870633697069083231072920450129048962252496484138091579746938684876458455066116797399896926718449025081314943160889469241962709801281306835777723640686771484671657176412001488893330161477548079329555754484210293345104552338259028537215299212465741920059850135114661296287968420937961034224054516997635203682302808513551048239599575537382177970066017636348072055912806237610099495205263659600995590574673114660699305434743565809254122899114665010944365011085719738724464498422621785175230427778689098367618983180107938559386811963532837333715732209677141952414710268065698316375248624592086140788302888782360464398902812234477525258057133557805842078654123734653749464817994359260408778777939354572751340268459414809796138658015017179891359507283319232235478118537281415204372680097759764453641367051192835128807556767871277056796898248898946526011443626948520122866688701472134479546436738706997275176394881782822435519417792228619205571495681084839413225564527511787151863590913418715109721642016468317561234838856191168896809779184403917906202431024870283487044086184060109376923190773020068481105381212348680450096128963813207370492270217327282363960055480886934321719242025243848302942083159108677894562319183749530590239868331471091040367321103109135542137482993911783481796171974246291017054040881904343327463177143934493307821590140740234270231836980698992839637148505047780550388321374785255059655533411038593115232945993741202053259899970783709415509831677120836400423042429290825837422777751963121677098111802395311437494752372623989001836810716623625994344534575722532312774816468589678183729735988709901067836537191859494818359769713008451360112475252209170812757718755712061117341912170690137962183083132465825560288640229185653975247904518359589967074482915360679208889234833456728416275083524240188933597882059181151001706536660954300423260561777810624122851316376487160063389612254893624369098217031225851232968215272071517962241105979473203793210314378727907764416722542878137349652267323521097082956350104060144451368704775508579254185004448560506875587509303603472460176287792584931161035821600122612467521084504819376836152249600582229421020780541428057592772610716967996153699172494125518573951428533374940204895666105957535598856492417876033739326719881857157387361486468599541237956866384193678345496457089217545537352603775262669426448398094231710078932085798611773506609364274674309079491911936015369868773766897426381162868767973247083196850332645316025351044957882963863941634086769578536148339916905016113824666329647403075503985321568275265813029166500187731854973849307132852645112372822736314391046493870048808946287912869509805095846914652984726642847293468928040944057957886362422194847708665990726985232998414112170846053350960017175123161112385474039121762736025825756710377967997490545628455421959405859125088527627394165732779695546846858935836101019181262253238031514838974313649467606247831281095320275934009301309994692656979666991043541983677580924437436795116434454679187146015097061738129612701567890192587634049985350560719546013517125108454474978516486404480642304023062610464063835913060973017478631605153829781169839033598221941925879985628639249040936162603657265395061249764371020688465028987806758292853662580545888541457729648210743445130979850418862529771181760180103833563487166364955371066937393389936502686703003177549137960707946260100561342767466546492389145254379444281923316911350000748498470324051597599986210844009015351922745370345202622694040623282320683647723494832590597465144324864219616619895861284004024984038630293968043965683190940065153822456844796515146970270676135346890431304753866541235298115820791183414279044763249887888203172250537407191346880356536619839081352696034703371968401018539014014586246841172531005545152819852319994448019077164863767214391734141441901172840867997690706999531093632492378310849207714155406834858756830719328519079652986354220298956660172627498184558513036261178136343222992165643114251189733662686298007758559842769104097310321630959315239389454423407921607566885403438365562332772273155515599194512639714736701150809987286605294006119295630017550857084742827298326176281740552945075060641649672270922271174594581555669928393011333958230635141979538692814872470859205982909248205755948594627459077718011680292249025146745366480731163621817334252474497542848599371816281681466880816571904336901988235703907336525053561036063238541277549877032367350567660176824320820986893366942869147661026122245073839757831462182657556261418149572305481339289071374104247667230702838150172368160017752213030462253486387131721403392223203907764106106852473501582337467096455637002947041268511446923795646933750715650996096273757717368592967586218038215775173486282183463869796257240314846547908621609577959893441224284871916223289853616784644196317471051692351220837771162882822172600095142304108524532693466504595844289009176858996330696912596478102947664871795975690762707798004169021323624419560086584755585772276351040003315489389246093761004856012494383253429288955720498384823912746106823964029664489810028440201753375604411441134463086492723539840840512734321495046909121288686283420152173422178192921577168774835394866174192847699608534285028983798502652143210195781349379827542857039646090047958695160711513212271548359072563850558388465801776044376721755817589241246895571883801325925494638090840291423571017603324742310860031321502794604152307563586486391291481647375008761901730992042666689531893988262901736627407751397331916238536148149636184407869959099160404924943884729865117423303272668777261515859731026123454101446232551407019738958075538331431963992722340680681649998691727532352208076264725980437056334928351346034167408980698717829497850013054603593223252959237537449911829843517764113258423031367660996953958605763007733138859893711208132440323950167414985037611124816968916328156089564226824018612861040760452778225599158373372347459302320827718345742786040650494906540879180501847262246098041437749422135436346081592485952537239719000580790267993793081213203163178791032895317022144209124029526242188697716501010170289634336141746176657090707206269612883180958958644093337290080722353901393826610440494901277479565791538200083577635401053014047583866961432483369217843192434737337685548295020864787720213307797886971237451135483021314360098995845233560353022461637152043327006949113815116454433331004293261258144133559495213899327914145231970800169505455026822251190859554268153067063592326818196477885085298263261103375035232416238389918475156237830810752442835279152366230244251299524781439633915188299451618059088291215048826355376011531592559697218696926420409050377943264992939345990744166334836862711020196049945220816285705409638188288324092786280338649143290363429915801717901665481212298048087876663905186858866990747147364279936942068320916785678833852402503605026160453232196341010844282547432357370458747391989692579502876416065282717439798788615690223442642682965874729896555295408566604376588380566131376512492715025599661834143453774459927483821219353035132775680749145870298492855506043637512761215670118865028112573402316814925740272858735809651487435316931111272037072556837955368788851077940764640807394944398386869372904614045922024882879896071772257496580894042925835554037845279124760779242913692993873467480489031081246883047835021951798140303032462198303643321079021394519723084369198360766911936453418807092293604910263353465875746301847333137986928926903821292003691334732670176398022791837306820831821737548157321071146969089204451538693848574101954286263314825825993960345017162119271690873512278406210348799218341205263701575714102418604732632351799943594787707028420374762935270024288095037452905810265023259724753171313674413311116079076157772579748757341738822302091049291785356292889096549806512718914466536688263048863456293519019543319678259324721059481525387756267965285645281493733199894231665701785018670958083987219127319077704166798256250265625189887095425757868646780498051743359162761129354595225266502548313630277872119663439136415106271146317238286310009392233457740465501046252058524174290633385076042940929923480383166717295989051711042619862253068657924035415257289609503109800948366077279856999490523887050057582924127797462198070644851543243815474802219420364120584802777024534380207539684498691078824944582782865146792713892852145708947901468087283994230355374414399255323045596237256481124847859133533085095360298296340184878349204247294375415167602531484786088805364492470480931373693886697955665522959926601016442740446458186523130185209146850348896402829543833315645608973829868555710238437132704731893491469697407850572672029898850897754724109286809413811261976131985797933467380098390906859734792671703831234067668655603879336840457137435950985924731644786418889167181168486942002050678261275133888153689312603982266528493514765806611114951482225109213592212381038601578453866094401708156585006317356206785527597569921308625868690636039556156633045905787731658240976808209243637666645651472849025842574048733312903865351687533273481357015679801641736960033020730158630710773687580369719847335222565903611819011116108704931775120776553503778739521147943250169755286132198377164516999759964701060367677828307273219929721251959911975264617594122326214315761297244576415648756166107613982619290336981257021139638024451795564590223928274508592612032058513784104860142490168693111689446404616724064118761963139407366401804456956996466296466493234230463655431032455034855832072996706802736772269754637926723478619989516838241580598638781485262059222164534262628676912031848636952810910157549788269523325398037315589274561562538791360073952087060659378392979121592587227330879817180647331123308083764711745056934006016705731578100824568322477323191906062456210642239812458422246852068324375560297205227280631504506110998302186579353799238201290621510480723424912261840155325527958650184240521487887475422534419779331230872672977511834989579424239439681459034735902226253801426757115842278440827992927508659021631205758803197464222785511298866976441948864605338556985414435714365019768392047219265643197944073252670300858520537668655084351598381152498269708510653065752240127827962852312193631085822500865616939863100941323787969302183707323829567089521230158704643359439278644419883902671920341959612442253633918435976928118526479209295688049640558404711081922927003008410293434215545051518701961080465449737140923504307894261433630509806016420120889604983957533467859219850702452602883601965098548855370700737084864931699222622246263246886441647661151203672139345392802374677350690124626362930959677265716995424929422158353768475255430330679043179707526110483771185691498166229486972249305705991338066665880003261805027362148517109956602638264370374585241713181052256877323873238802044451785212583943265933015705501953923016168706139071033474141865538031799091677675947974334569904155203333538625979526369460702643712674933121972060884487069228019422114817088301998929896959767206606049270494263892207708920862890698621208156545304926118134267784280654979854080514051018943920794670268027559779021361063377145892820965367144491980480099615551555015693999191651772564249047872975612960849796470284290146765855374576917820652118579596445490521991579910307644297435060546089140750334055216904929263437363534845334229416618027296760738360822485926238792995861647494471417626303934415029800214426135994172731411681644153615200644050092962340811555826099869175261176042953219540830297414599564175647141959360206070890558600321499505764384383920826897826647387725198408612981008048358760509347274640029496343621497525682066173421783156614524264073550820016801215392396957594528407023696258858709739994296814319366894904017978023564290940531222020810806440479907106424751176900683339696065404499825971644583668209491494143026483848008658204622437933264360838612658079757951015749001330129166597643679869789160056946996749447118897012655494491346981296225983884057178321106293386115770006525299967152687499627905866167596989920151372483218473395199590675585407428015056592372332226300381806168751348570075747009940371392928550526073100510315830500953689685405286869082710743749009784418088150042839859513740096796333198440896568338603915104732061231799721019636741961942618703038245146895281478526124666480002673974032593732755990209495315307021648078567076223756163558795038937230674536807213292618386769509223239906151835443159897048670355920897061452555223451893450449923331135051670638088010833662910984404326859418413328622893393906317004990255646155960104170309550391706821962296515021690157763513366805185894828611907730555176123550104163525917340692586995460570928162138529503014049156084099314254481143987271951112503343956412278644138073393231369766582258399304759368807976664852184561482716836282246884460465023495545417344865655725530316912707646120967279881371394445165205526800656622086315359378716076636212473385193126739801423042755319761700551785344420495781507323805211921026930328854411442609990799511975464586276676439885043664751311471018625386031120985446555239333865906883040531035707599932697409326663237663747973803023703540157698629685475400909191609506435049482376665128169127270603902342502728648262947646981701521892724620784558112420274204442598476618496846976477784504449679819073240133910739734110681100205293030088951906769975420221407755933088315544154484608857282799989859739072861624697803627778315126846086607080232109224281863713251221348042328743167852332102129717817952853432085243933315384693940203541861919199969827268544858755510809740893741181302594813473621178417153132113577318431571203460819004409814405215884977977900509586046173420297463010075290175723943401598121373135763864716850920304715407210018008022475620165117861079512477814602249103920328971577466587551165250667341379411398028050790639367641289312703854992130375054963860478489199815816996231876161385072777152362304082290517125953395582355817822037329594171358206423229192883774803780730516733096270340069193689340415767289568781904570158757287621312773593429264321631834388916800740505459625639357692317963630315577806286520226485228412359067766470355909003850670997563925741775827752751054928785404350995853574454886226459782648102665601313120108169961851803408372648830004841117302976892241750495222588390770216477131271084103730059360267709225355651437069109718722970399731889432751725318493577311618517510092397748810434605788400358605308480626698539354872738961184202937405304715856035641380604722477338117369927838505330870424796647160108503687679259683280352457733381223999924562617538586671616073755078452945593349704636980335425268851094952450123531273497853972642951402767846651201494564526271880951197778472400752180427779214741616445227789249409395933371964411507583513557620252632299135019218263873819400814950998233875093568313048709101572853873452747128534773439309224363376903085956331030628388584926871305332668844030563926331003570029115302652952462596049321981367375751333539303815510827266797203619210731984318327249439533456732246980142365483686055365715663291366883137141357413914914841884925792594466834225471348573514283471706754528857378887684253502885111686140804231263326229261026699656157705966651247687161104898020534108456038999919920441883970239019495590983565673386252938440418877838744071915016174880890104221205538383574888245848289743869977985943693730849046666613124305173447409784505896050257842118939542411150674813356944170452508677314356504030203891615866205312590910016396245538769100758924364949395936144077760670910529377929209310015659421967582385008762509734515954286491614611851171783221507028859477676012075509395147656248509401580513899869666960327179317707634466303225843319557905235219481310048867014849848090248381162574590179281576977356016872728456536908651090373811771916251916704127091124023587766101026595526606321500228556871969714348223551309498246127387652500433743879732670574163573133992701754791516576484331531863988511023720012214948510203226664290703903968478609843311653660857678954590278405302221825161385635387083224623538831772216301701026547456945434930440262486241012686673259170597626189655710947774790439483305029018571735245382462817977264439161496161096544822229719675840139394365974978866604934382643957608700203126508302989123076073264262492114206934084262821519411923511539510400548536009090964357585527375869451958768112440562947700551244863079361857244011305446526571551324554462054304492324913938499830677391885996175328398177615503537001756976557716224202400185023099128775808529988703748309607064264765076039657434341777824044236300108806660144592077352023383734191267178902335420081529691115117743058559918099138317091456516670427112716589886013478265945864708349690104708696300632440824654589856527446188494136637676422337165268918493218831891344997494447225223825475826712010164999207783854391611643675956948829733452037626004786042217845128628758811519536832841528179746686271021595978599787665218523421488544450402876658405834521746116915353859367154033289012035708426136765114713149654881779399392187127192053869292778104910684283396538946054537794346323446673492917650954572559119184866464193783160164985366937457609135347935235861841377846138165684123259375079744450984688374318783604107533797539791296876652547247462143396550781918520888505567630913631389011178635715507077835154118447122311208431840527206900800336225316821526042707214083937383528810910592930297713065189923437566420715365969548114289433408411336938182127449017315698569473299375718754747954043155737739026854361029305905950398326089032223699468860451385123873917514370950633611773826009581251645955287854788588438148915029711250442585961743911940612127416821890024016531518299080047097234310516286656848167133468834146671588798332631876708417945170893292356495069540056294484393520889067215425847283909668244751290096413334702579792735483087608925813870193953201778808106645089922788049523747226102421380079033365491970509935516235707725520475990612071242281422987500245311903174002375518591329169703127803576311625216500267724036768911138614648013011778293633274492602528513285506421829332363029025296311329928054441704733442834312075638263238665859564641988462671249188045771843382007574107517786769585054454617348205148045900337950059622629582090487505234229270511325297519624032408952525337014971298370226553853704810542888664448164155723434266120981993255793409482286065183833272359143708733458948979775883101207771138130104541579808406601499976349418918437112498900949494051019129413579667421754847332940504503865711929518195694142153499500369101185034135374961659901857310808714439766831084425612087977236317196843901402793344501852831911514874210993366672914342052979910453352919842432417708422556665309178709054650698861560526502034606934555249244009747746323646016850001499698180703278525808349579899013330838244370155301643852084661008591753025681029017312995306996104211870197479893403049008573526639351439212961430776045101235649523070226418271202175784437021515703266327720310881943783770400870811982325409614261074084349126790995931428337704482474616586671744804440070686679280626087039746948199940718314924371486097266089011711266837241930848516148375675939683703242309827889416198835322931827857997861738071370983118285390843805073329504628999239523701263130687170684825721944131421542909183932373115976275998954116011685470163860196780805110559211971459750207269506099936286553263022766045783394840166864753121527873174796632487831715279640426117180895732710247654795481334955441821468319598725261779333196633132729747340699602963800440489125075853391879781892177089369487233968617279139429618187434602350343500778600100900005724444923194359180911330168517049950897876704236964391968950778322499432625595251344415945195542623857626959040969772528934444853930611649835588991845885442690227440907475707269022030066049787859329290403822195007186584757662401045951170957346440658420104323205671689053401289481954836081333213305337930240781182444241751070940573060754170697811044965654759085975055039234660049580568437024572319573170511366317754179024216162322760834197335063378875399741429587317074661278345197652648272693174316049984980318543496818674336889110443383779666781514386253659194137449396700786241502711923324571859299902716520773790468026330200523107355049994826612721306351739608592152868179000052275745875907886491615757084511152326887722831794076659475238744759871370852213505855114806847501158203116216954525126722564784090438164204286664760186687093857509186718407048117791731116002826316345069806140113959994492215420977692963520946287882735316038034615164929489412597609109396199660888507242387682869488657650042017163335439389958777061780681158939779500414410735141615951195080615915056103017372962980339860588064756797365834972521787733792231517232328525880883707225311003606175686468162472004541238661470147213949942919942246048975106254496540075269022314554079204966601048072850743949861161989269354438238817330586290206587204125801135144352966956025844972596967534730531425334068157175148261209901942016349821364405022473040601815418320696856151141660362075313446018698726671610170974526273094535990827640711181421508739119689777575037427482557466280639831158020676251041254071631677255761726878534337624706133495277665645635252677859897252758840406028223653939955290867554221821193161493879551354115397565487228749495083073214403263502997647607771462031319632998709986444588933067379145925690894586013310688158174503106855066389930017556906382322196576456776201549776289288045394982184282072485836802419168223838790931906223433378007019154457573968882005033238863825495709038645866082327149114231617987240657951985348134297005750609156794861777421070207224023684425342357790620786021519890704078008563646828063467385170707621787448710920845652175118575117621765620600322164046357443866900949389149253232029496265327689125156339523084277451453273403920455357008417006797700268105164609165973302347670271909311821861829336564327020205203467258844060389835275050277096117335393989791342873178932815642674215087511758259136286453219393897218634460554744927927836005003049818118963436679465578540996714090293748699122016125960918584896285125154136050029551842244476306968390826028267987698536125567663068397003837215137940973149980725191933405009146230147093069065463790672409319152157976152620857120457207512863235260582679760083422944312920324077849095677918040499704137003475743240969794414004717153770184847950659322788832825217533838417849351920070987718266418949124211391404160754670371191693420472266534667829934616127880607952679793326073050981465761760187953149801719295404112724277661698179621944714329822577141258458404186186540446529809584589259053809865801575179470494342198836931832697381622246645658304891079924510288832305989911889383506972821021684658544933811113171695421125562205551708271080407368739560685911561840809868353588154730387748775130154112738271145648660901535588872439176024096926654849411402525124361629886715373996597400079653180722519852446601519819478536189950993963322341980108810197632094681744586901015777072323652348878928393040597074134300730456579343738393353174078172306266616598399075277250152941146748404261940082662382511084705858758920891557853267494737609270728319539963952549692857220517569114971914045619922983539753765018361134608735306410907734036755337527393029416623394816469062469860964678259721309289711715513597391684944168877279950425829936046811450990615556556504509297939655836412471674400523695861282357559423964824995908866742997290194688560603158483218534108661820130944293508449537785032842817175055042219351955056445934292816339509403822139256071024800889247989426422072274432732350117052764703710186242808654763801955986888474596581231132474494400486099179768538809632184407050510370979837241762099202183725520723914388948358252581894489386246141847435717087991394160220327825111445999675772834767137896002791607534666533321455738883952209436572840108669082451695870928048360309231358739564686408655780438237526427123758270478072019713319849204216067095039842633028384406414810113260767219108439749731271780284560350421586278611008507651152124188860456614790405403667474651887302315808850008184531344250915440993824896718216715738390444340726466213174813929439056938436870317733922424571487652638942431479805137820030969761832896478247299682462803669151309605954096015972508605360385984300494477695897897453976803562386410234703246083282471895903321334642706913580113419958676802308467020822143055524961286732832742254225002235911418088354267912894284267569909781674988970592806669347791941826885055576822849025176097141101025561507629476413666048551753842910934363876057510689773134658026405951340839562728598309525873076797625450350048599647506273801992133658217173544317150536014768945817683164691203968435355300438309044006673820463353147940455339134601775699581421143035709007323296793747564696977159609414433740759370678364401435117570398601924155928907182104490332518187987744423657974415221024405145868148256877356729635101642337414900918072318659824989417324504920151569739113668108502228183053090611713426627785658444250643849288591637120980993891548883204782532927292266426368893351898835325475296486704099869419407856129489301685969034173178635397642559595624017086301029997927729491192177249163434705559651189162382701030068379307028118206544332946746664645350660775140775490078262876790134489754914406108685590980690063349060382724625957866435657091936787098953282317744260992071486873955043717608103104979830540074808571738539101829607472419819715900208071452635724104107466845351913369200843620444307146012962290278217732701992015781666171792090417421978802654791588086828772772633360554723853526686666114405402555612480235044678988804081410983806780180435987030863652225977838707666899971131493929444512516456029382524700465120045856314033155347505571789871848791385118401655577401856180153863035258319500379344371289671673269107980394793225092792943188746455800219083098804824949361104183143910098782412314891929287388009572039448192593610561084990815229090724424366655619329576608277303115468169152597150302732296098256300861081108083511929631365765823100204367578799336853581749922013805041100635094182128491349238874428531943374746002188046068260873819128281411329909902538201215995818976529404560882654335054096717146090513987240480402470623357975250644721458940080315278292242179442071849914203840331399354989136217530562218828714996510094912429104538510882181738572707064645152767311092323862254740537503495428300062104437721045882909865090068227326561912213055398760696532176177857783387089270306218953268722273857003976204654176860806109135474443074078555171830682554568220169801200126656917785653860698460012876824357711623877235302601544718363521662537348065068032433141667322139220265877232596098883516037967846198995901293217115851768492299034887996277885782664243356615385056818536825037418651509332757422107837476762084633146155950990620333918631453021488044692667029253255148329968133828777217010660402163324553490539925442007349765599129041930485259312606949575508200469670079849708458254486816200852228030093148102836769972085239479448002104392558713158649734475638912116805190038047726451678214825616781575327346058462679111348585714656228278713339634449567885789313314869083192055249710770624281307489968777889491012860513125337071786423869656314265622429906273636505993909777154293778398198289073342799168008962517625839004914993135738149653860198400783740489817635937100067065259680759612596278422537370128284502615495835010152254415595513765669492387390661121969908079548526039686371452533755207896444236476402615808474205363884502633943454661745041901820145400541327241099725982325552046421885215339328107183031927062023270243986145226160077162176437202932618233895122762415525340640788417053894076464906118635753877633506167360821715722659888112140632259075312362601336675468919374776612139682187255498752979533653890996180639650625247114493938428514748156302338655063186566262494484703803933671735678723279549900901900914746541502666456247413428511227796888625337979066276003005546325644962042634358328185495865730193254281409442982478375351966195383175406142086856760648161936167799667697885346311986130594007545568096408949313584880702648872434527802986423407907927062247616335174680627297600843308733659854859846570422473441460221563650710440862185840170378414894527222207115211461101398191017733890680031917322287644936153309089775164326821694606731155015589670144677869445359877148866650602308608196448847593713991277484375929501259984563972740486950504159990691704032756692323412278457764712921604518398255460408994655574075200484074882509777435591446005930335411453726826404658440346963078199564373538919287834250871024582979067267306522464488574598901793916873230621591926405130666481127512258812017185615874893645207123318710291885155379520021282266056924902702279831380795241274685354225196169589520316377965669156101838050358677081084895924239893642945359042802626927759660348031253531247789008094382809893040686645635866176090818086979377272053778813740324663348009934988578727143499539882942107436778918141684908432445935386100231604828408018522686538245335345142382104672622725749313255673227961259896269955038162971920537404217835580097338376198163291907677517945626270499532001851376693905082526213572207417276319804650110438411494791427619738179707670820632451543331065915650668719970364012311764653450695451277276356416747528882481937802342617331906340591929279548662507775793249971392123966297793477136336300574080482701884910741061400387734391083347009809655001764569857402024534240591418692078506261662446449910062977175978439439958910500201248239426975370842164409727981204333116288037608498924861844265823978838166116794731175850614039286769977039604464026278625353042895060672025149451967271809910609886350908568214136317859578509374818233696248482479016825946761530455995889754879499506409388043191636916173322805536226928545840753642955129089579890323912300439199157119051043591492170204401421106406864685974558968937318862540128815485960668277211219649718843243682195315891705389048648553882089270556671452684250779074763144865907421680960464566934270224743930087519287415430092544438256846376154244754152390099940069224909842416428659121838221186903214052413874286602031346337006009360393538477137826902503041680077993661975294397825387960069496853819929920032785109556587359772433359093420912302486764816392222528653974309642364492246438683497704584666429823720521538469754966849316249910315047294210300398512352404382888746267572854004300550841953787989791549396551498029224268864468219239192794980942310611446082588329803372690369329961907242260037984115256950923865720152581833734611624335665198854022876000104010732481284415364588467081296739011516300778517090759377002719033391571433317011636211758955034290277362715727481642386398105841500310454837481779036723764268578900695057243507916262448231363571884321012799603625684374132724554350661386145610785174662609118993793371825086114052345868993821001682789504937775542125770201823124135990730698079235698246832880352988172439524070477686321817781534701043579054805212949637209163660550054824142438337965040330632046341092252633783310145964707739052404136535817972911194618165170239736707052157585620503090279900823726027408224830869688347738659974808194741536602711389552801665130367620221982907290957879241012713684855882783261717722328031419208911719140495721800400910320295648324923516387423024060403192928305396220651911197441948222929185497652546262394331573346685946537214954177863053322765421067465333793713028969428546079806334436128076043749521198748697722935859785052085187330860132371273319173353734204782623151346939515376496305620662407288636049567178613449927970085678387499252867909408293197518815500819838719148181756631664904769588248228117437327217369027079028984737600458798345289554044845190933347881877502036521051688537442391828124017593383921769002460453257315401078457403462011558488599304450770742556946749149686779865800250774562659812859159381987930784794375773423605495106901963312943389554023029162906788012839394535285594341469099534979060278527965996913008665764986209843621231858638430688233729618217842771944576314674638946436453482842534393464911288797678823524224402470119615776764642269129753998654056490037271037406574762427761876068080022457608761944222149433797244692366856280742046166782902097756014153928164592813094760458591061731457588567619061825651139883228485380170132240461807137437912006167448774079807958556344031658552918369535906606352213372168679699177155947989793720428288548501666874508713614949547583090303115148790184708675646231289366752204422209066636261911241580465329616169973919169590480095367539250813672939524817759955530199295590741894494500311863768798046115117490990002683516830193723035160259334045154969317865130004551865666888901958210624116514491899942623298553136065429614411326299051001994921826513854110720516692457870580474813082709867749694718926661782101767772114077956378624113826653451999272150849200943157516424298613214033127567159811180958088250489266332422980401024559817518816100570832318562964838697489392016519447540207372273727121767685365956684564280559918096456254720635491488330166575209778798940243033543922300011355710312625883760477497324149999830060761295085165384092024088676774614051247692190079229884072053667539750143582736055941457115940304857031339346566608206846444950691239257044868135657882959540819129727980093055858978399048313749044955243919669103350305551693017616242022536065503192311417156204577616548047060598656713313504830552536400536212109809093549227144105071052206604615944184706354626854082881239181885803193336675019927076608623829796013259615684606941265060855099731969180126746591072790349616654379183704029942325427140037185689551340807841596017572626896396479113599199283236529016411734348423341586025105552887691737051477036784137202037806143954934652631356555364207481887411060879324593193430659377260243500108934222251700806561537574073338412518047746943404256048359098455997440210815678601033980892022880394691439479969391546656040400513517848051490746027263608307800988731603633712897848878350306217068608504411405841000693339150113693411318186811475698889653073910536897063184221384906792698709314060616140598528831619868049589276559793819584086454716826615819771316607392228471376148154681527693706301692075011140167260669879849466325844051859840472145914588084368099120953114318416366304955710443208118635928167322759286640029365801217744988279182281611400586179640324119640529724618824507473524336680801830790296920135303495549703775038760268577708918224637920382905443427322012463826175820024976363414684894548053495769694609167656533514069678911387144963569831756560269311172971068081091825633445942801240038411376521430272172881566931541910884045612998084744354794638351987792132949623841874001738050295073058681190935989947130205111544142067573679805871063292025446103226704812130054363717828517058846953844302221395030957545063193582003812011624375466425475003727746625779350371461164340057034680107724680819088709562213778739498708626860963689794353660488635024673982681789586917369698248192703701948177134978733610551331723519306746319314801226697521024915439153201417711677334257725791407677118235429516664708187952122331963090928525951141973414694325673892318339409101378432954969362896942803827607309716688614272219683528027470577622907391695361112008435094049564083080682023730639451001705445136792873901081633651326718645435232941638169843394196949337517704752338291215668506690691115227931241150876487850150875139834173808166193265261070433156305194320879611798299850726155154552357321365458517429570130082814171392922853960526337737871842904850200884894113294765127623038502002116967378998666039314342237059081063185195232330474192880884985079701499626015963296671105346237495626947360892670910866131049968121328064963399551280272436303141801324460347948480972311183136219800252051424613962465952135601845685309077718149610499997972594283042118659790465413296093840939672735875100160773643767745988510917649255567237424754034032306515316909630708413069374764402521010738316507889419873113106741041572365576033307122401526348219110496722050412945355420377215550868257133682519631004075667321301163856852912392695451403079425950435592024877293437955606174618998667201606791364625241219878147960634929345490417619184933214948773935395113414873362349414828610913119799504873498328627051643767107001441238955466412452746130609649461476738607253419824102180767384588579584110125526927750162850116110552713628830016062049827741205016421058247738039071734296179474043558756522409074240663136541692005060173040300813229706247073029670841387562379401150240772970080874370021186796489425397255925697310143687709517477197316250137605303551374457957500015755701631649895968868909371131798799043784419703452784431404251660503159375792747692570130211047275385844658119586934434971311572775537823643249192794167578082819917320449958956672901372210219521824439247646659464167897066170036690246786813124451221110737008358619544291661863532235145490346938898034246648312323020497970258992610440006226094462817969874385254004738197049753087720210530041252393598067839471489108973577041086197494013287223495732491920968212080748087051776895777732061530418487953005851946980206419442236836132409218614291866161228301416152563026030429901014663249846946107601387536835340797639858506362787152405178693286564469223123118247417307194843828780993268208676634816005021589763769170001724288196364792160087560595315307786396230591310463795065911190934887214481747548263009178224170415436243041464873526131656447983371435800165474932756003743252839320789147187335346153548430997164099679772095119759941870031656394336563027305956090757491616011292047626582149480099568238233291452963770176474212058297266184441968797109210894230222701569077608382519343403223742725618006332442770070585607526033772044750240820465688609592954007548796431474169249731584193025046557494136512680797370794658063667735163998368884313239842194998822038983719879842910195316095862169369342634835605522740128473424443694488750499381337797227465520924689130836430778421900354202359131137820632848892549121878903939206214597845929137663860740358180072049830151172003255733177129208692694669594529894011498923900348374353094410716207223683242454855818270229562059462435835842045676136158898039165951908769692491160487665637239373678894951776491897549529385626383264987423988462422843325624982162454128749680185682065212392154816179235347848580156593444746986498265077488026194745714310319124417844194634493368664085095143609256661154152555969581001595304571748293037894139330088900970144078231569984304989145067606056288963861873102946598464060685886990032281643104588291712272802547611159135837280598860009979464298392380430053846782331032099478129362144391543732081759132079515094046556527337450667118007654711050309792088012261982413824186174610288286293739824967183254384664445708015441118792017227373089230258648869419652070261686847639884035397505770369228500703259982091361612494130850687697392823877367895102721069419728215945484350907893124776925203025824494481641464318412867984964746229325524239101499524859784491008582600213786442697224932094724620116965584480410541404878190739818114803290318482963770854232383624678487196932900103783364538861554507196049928928957636541797112917594301818520831887794636468561054239663194928551775379012961856890938031716958408109439220514761343522315613187639912493798458817694699089450032102848691468406281720668033572283729071814155925429111241157495337450006789909627161085136349581984984766451866214078974172926908674782866908190238176490828896990238462094125159049825257360051360769684296234648848963050535174542734855924071456796300763662286071995607449888186122908331289064816712519425247163274685567802439077304478697756215839850446508493547591411517455251392249377860743695766811218964471725645158899718906143249101782110752197244029874594548071693369901439285378480094588740470252118109695174470741123037363799165308020489872168470163546155927836845115711952515127797051609699579054295382547867135480835497303395910853670077506918135775888536597553631047395454231107062733885638420649001538406950181936876722534159966695117432689212053042797529877110925426539195644771893699025265640296787212552497281916618380385293082929374841861742437810684157418722636504501472752186725180953485487476394869165055161966994445144799213149783035700637198547916309856103196075743047839021254026609887126207905556054548190699528505177825564361093431002289842366116266923751817447986178895742190454234685334192087997463166498250963927891779677328113201419013723312077714814304093244435608228091188692659630370218156484314801627706134491234409506400036517326500870381067921213472293988512551221038080389383799905924596154906640458527235056192371305849877019599820495919924432159658147696446183333536172334399753276005534513614507768061226447538683590212365544726420618655074760638593706614146457941989760211702508558229056215101659892888349921498731502973598226049231461090244490306974913413484709072970795867437284790396266812830852057792764040277879057214896053850572919408955861233525999123243184836317447100204899423912556737714561683942580537869617484446664983858198697125560879932757661442219949251939059554378676456119780052520662573764354004665280585959285874512225316413995639785394595654191356597918749258955060098519595092789049889084632845828064899989054251540134034650617301879648925785856808042385796792270721691581940589325242711418960941424613438634331334528030705755714102125535469999302035392416892179016903638444386086257679164017475749356448380551616857563848224995158313499800909790127553769241776604610333352405680230486646495181863790108315322784530466267851920619484254594063956261435778741507310486861981331988584677825170620946498708748185112490826519984511357720890560639843793616879314642576110867882465029186640969111758215304793614629968399657484008928483837522551406498027784928111592273473560245642022408306387871084340474413379600565877279038587386509033937185014501449211184984912183876817070131971855199307082540399965014074852093352620015194846993149569623623131012602478915373454159020225320081297114755619442075438165691982110711027824485977003820631280056427414415939010125326027621426671798853406175320784650150592179295487578944087395741695215999027475101458227758638919783756413854109583748235816869291062885228245815439583291899214281480261625417879184244759370155056870366810782102000123988636203217203824451039727470571419884938845992544207008540695510029779494372879656751879503181836425429392361191139536776066764652734354661426527895610273006938818361459808554653832572090294221778476274698146979536496718082720693438907749233438609939955542628970266508126727344607587468884011749726703304513084579051488184909352133977415705990727761722971757869047991244000025870597022918488984650030842602108632431809593468096807440529523359248665408251553723491013535261770410971537958567714155096682624582221379379755580339104186438913345893679905866269669465170574793074052716284430145888646241397997184318010154585908399161683591914350861662391314873672406980339778427983492784627712286283836661941229758182681648744706887499582229168938694562386165151244843306492722790448596103027510590312338197037630098235526666484248208599485903702103286403288114484458207802613168444249097935329917938478082732512154715950060290077807367918559058552112556311852174510585439246911415771793178331843216373615794986139983802593488826697035128602890246032795022085283903492017340925458644870735515391921250351148472249226412783784167588386689503583971105152950448209787775882635763666125002464111015877559354358407584014183390863452988468203470296866458780575545111334328531994485786850947580665782110424614284669762116295103879913415061165911521274139633770174872899848001571304082377044202097834731939249159022132981787643771947398535965637869042007891732148294408804850457908997219356609368736563349835246688249976664170523789073189337546820000161555637093914705973735000634116234645849154757356690274155586232485748964491651569325416549777465863079937903951425657684639601340888324058627758800668087521700429201769619566812128175730921624302588458513704927735505222218069491632589949905272488792910896482936274475279612217365251825923268170773277490603964526469632168482442993550173667238989560537562201390502755011543004572872282266934878984235458332436589843785590902239106173824632988110847705058239188142728609790134377348336363754873685431757033007642046988305603221579876631824704921888975080675938589750484968242269860961714259359580623035415073593567759431200600765352418382708967713344961204616974276008599783929534842662152710789673735800887673822348409470668158550634680381330575033289085462316244589076058377600500495050282846455343963177027433846061979975023464145623062079965228284920281398040298443834465013800970156455452232984621187574273038191252763276165437876916254711712131438883561765583141749250826443190024063960044822967417278938098815848398040012998577526906089173109506270545096647011540827561739537732214084971327191182201318960067322388081332171968112481188051638121497615553864129279888614064846717750790343319503056573011160164904178203462271020370050139539943244480033509573408104599325086370290063517893151740806725608676172655365174742834520266520188083134845902802545702667047063548024879366006907480489624032279843409936840098681723469831888008987933780231004678576591922448765822170670548591509815468534413842147225227743581545207213324153121650007821332614487460625293011302544621767771438513935193660401565381649395024313457639173668189770337954640718627830515338788703122274052071228362306434049390540841245745707110877185776803242244143421359602358997218231183540543190721887160628088763784013997242898624197172117556581936912553073841815397595611557685923629546662698914326029782834420045199686761495826171520380956890057918347808932061449272177369088916670752156939962278647502826815263236986598008481575290239723916459089796033503287432360178114435790304641179165340380178019405751513019197848184906691101981944976767744199973183545530485363851140447266222570045140116760467972038266863099084196185431198874310710614090132363543561361505725979903295214903487817533786013404179852899601613564404658752700413608711801077175164676146488595646461268812832539838107131626602353943946940508631674065287800073130265285721036976411023643833056497135492955360349268916034625609255112673479379691510240319301466193351712755827417942914850210278180900031352799814243070302902424179610424327927114047201936661533936524858127391298941222954835227773067839082680783518177705865695651468778478123697302001573078152975444675035617327706399901382535462802066136775507278030052828229616963219024407779312666776081057352115959024458509475750987875231252909183958573729238896207936818759273746955341291604059207443537868125245078907491216373376583849013314952170848846366169691329084724489966427384340764712238680958824670158856064112106462913763463676206005310731256014403003910788159533462222175048906409021335524109667471949467661446010482620332312414277005128633787718628133362803304570730536352807248409738185290703321436534998760208220079331474173522463392458356728376835806632740291976685049943267212598917117194633999324293283777485837185219472525253698629140941872811323279795936301044894459247697942207195533913356175878567413247908683653233508322453228194389144962880437469967577894234844209077243316620321648901900225063446817521945721154483846128792212187262624134012740518205034474903460367000447653741368579287604293852705189577493536546868533482374569119546065845885696628722217465233426379650836960620705326186073022925035844641810101709854406514459096019074279347136600520988630851418053193875796965622851465892334058540523819783162785202459897892140860669991672124086929001324184760354692545658061111058784811340362606956020602469665835094541160355148109767110283208959723632221378144369934912692119827520828346475104240676516322504325133590176966329251734331567558346542014175393045504861015740630720955629935518348842658005965975408332953088033935681270136833076774346957558119972046977927607947798646332605810032874810764302712703909419571703754662806537108209335324261397690007247677696446575323087076555987159346480571331564832589468932562984851897432431971576404919273702140946235996154092435112687843041825546386164935640793229767116175928427217780273689578733397176131385279642149802783098872019933088678669329440111194530681389635728887260664990706625577586102410865508600179894440590972215741554141038190731172588110280700905635559877569836099538620676149040908600160344973282212407109360634933469167587866862905718615809278271554584166335117632788121427776526477081776737423769178816680410554415442159049302157530229234389912668694794285129190117103808097289337673882217436536063024466100102756529167705575158613195237085312932432238748555972594607713244171117934297588639753386112331036086848454203365424305923450590849797704786728159053885539587832588552656239239114607904333326230046102671011792101740841010644533464295180897758000503413558502583227204547043455294192532337702162076430024298980771934467809796035102139827358770741675267397810377374864631407101684179917174997834583531185053660715899280897978657213798297770610550768985374555034086138543100413079217898997743840575461175730747537340295062243623088098023857354590135827649313542730612630485982461883870141088975376705497009571091095026334818709246302838330984785015513590282905257929867239579930726569176348729424158659591573348525670840521881195971160699110568478330449362605658071924223230450398219214002177886821900157257613872264129213403578787086057301342725843074467120076341132495517599532497316027921718460434994224618170565430708655978152712029407827024303281191381309126328574457038359339847622603249911569578509694768804523257781827139724399325760721067997275250079016107827939677313645566228691019419569414389555338744801762952781666404878093084031618059820491582966491631034754618672515327204251798196310866362902558647633047273885193900947638768141868097180420613068911498348641443247716387933898326571115268629905192719215001806482441576870624769520099509340989669687831838245828180873257332544037318398610692732128065343457533014467039685492730288105295443063967551982542601063978634145802638002641723989198211052148319139352754617275685571889740841330031924811903623004591063837012183263485776434024970734989278782749646937983083865138804436658873028573882494243517559282610181240785621112156227482299246506051385754076149705261178803310006153594589129445003529716998864349770195230764580463986928782344636830432364498432750980294769820499990796445448141772782279101928043081186432073598420731083249042973993354916723342820287300561850181324784492187129611462869115530665565338452883443739719629483977443100682329049454812086266017043436559631222540188596665849470139126720256994887680362075323077371330735004299410161171413704744848588409865109305597136108410003176013728103162549790868724663171548257612264176057427189289718404741237522262194273856937179100013291558419616537500250465452548219532482281685942044621181938292287783749716747544333663353892688428598340716762006983597614885527322838168391247977540872868252018302860817793901882393371315181861057814207222991090897178092459111571022954259472158456974154887592029580191255860811545663861974903808262217027057041147111234238214362261081160263664443602643678195446484905074170662296748118075200035721637406413331644076695917059926492725483636876338932324002243762318183347504377605028504969267394355372043191452984511075296766279975499693359579542312856123205045571019859108804387271867136962619964773032120341183733514366880258156171419501684600590794303602772135700031403404484867604465516746166419409097489046410290278865972238326950004455262222255183777403694766932171482377745603665639905616466769134466488389923645935135401375223694607226952564962136655091053649493980116901179767369923147108164974740101936039952236818748531546911278535666613739923124498152213413220836069297770537495256248381250109478187787168380790390593459843299833888041658058942973258161664514801823208835136868360947048293253935218221268515525803593177044801341080363420016729131814272339740429552396799639686692801755649673341246156656719371301586849594396273149000066229344837363004969504751947254587735361497932082721725094374155233733900158069711037573723268954617316597818272595793110068702417334521273708795261260319542256953322765651015766020687204365756476634928289690880809563579259436376454724569039775856085312302832104225072064422079958993074583504182394456766913333452981923336914741216230668215327893546738549622342858915556505050115588043404799053920242284176062457822885150702729162148827186289376763317097985256454531787381233991221168395674140106224358708755076652871538185230864294709473679583344061460609710283783476559073466058746727292092993991842545987793758363387014581361395179906079947125136490045768146208559344179457105325745247190812824036543506823169419899948008438003546067313246738656261123684666724467642206109764025209609834710801637627832651854682541360762798179896133582428274850780546533572122495101125681812811506968894663009811120173660706990584855075624422190604526088479150265417308598002979916217921856242026992890696509480697309643278730701255692140888182232342577075232070934721306738636396168584742408776213396469304076453759436617546043028959221091842790384346323852819908849193421464635383589320548560441964818826257120104334054702354465458590597477392798452731987395635157741995946835864444074302578226508292101597157578550923661920179276836022819255946200442750234930823822748503294890306440888311282550709318348833642678271506921621748570714424996262131128334848284760837594556328419239035191380768451423502765364257429819849215099634702195557124282034486449463442760011756343044549128329207068850872159290873751520787119330109938286272249448839083400989916665168051409614835833161769553092852110527071258953023550512732595410229449380329035977467066580809439738607173727754247922356593660166437486139119503314947918489775826137724828165102594199967059463929248467478965902434651270240221452000381150092057472575121811600224853133531345981501489972398264651049911120614671728412458685275052413425856392631175585832559866899371961442825660145073748527883462547399090228301771981209333169881805962930112832534716535632790700691666452968453258897206099707100785664766995434472377978769437901462615656708343984197181704641669115545373402643337572191384555100037094286064385348426038789475437556525540937188897191723146573453694709231952734150300359886091979359693727977292532744481262752981110684660834356352332927545698340191951239687838734731758033814358093781324567002925432613993184703341448589504646510842027827519437693713564222452670683494745368017344882495370605453684582017649604915232648292948986453064751071259643234774146030249982356899091086032468354943670100879775511525312515924903812403438071151690021930231615523320761427033679173103555479312832659060228944473726687334444853633927361767081183593434327813008076416384514833663799979579540106904472962110589260512058601173503048831398326237822254091553646830113203441006493436807319890139989980650263440745770220162020352988447002091650035012210436390720529508242139967965337823609415934006226653615619662822679154764916623553405986009177313180031641868795626175688074163602911068645632283685177974276673177978541683764657037785951974892444393413693617661030097683131875547645262739465130549443720169921251235976156434647633618055622268450502345039663698297870094833898387658499580522322901085651827486989900234833568954184441828259345202618560874428217406174330693526451216593965169254679080938632466575150763679126374144264456653955372027788819495746457544074704231962024237769108986680359340474573143337887827560026380857029027322603115035323759455628603128667067977502676831073429489571649683481994918262384110060397385035127518998513871065318050231695855552523071714963805259349242347840168162388064150934721093438991162128688842185785877041621500923433449425416815732600275674404950405575773407055343289569488177256603151969352253959149634167609214307133006777924125854017404427037652292786812793962160871631616734858344777953081093021067310481349517633711355519596268293771592883742635669216619937887559741271795646755946095583910191958160619382603462179458004728266752925734315737430067480231132483321625906111207892775046185390404530481725049574718653391775193935872481613810098396380554891873285205483530465590914446644435092556532990824338241693039962353050111442720061367298183570967840416362522868993051116429191630208637902365256001208770950224258534513844166951916994449950076491416995445661889936634118430420699069462537253569049066047262453298393470305542096302457778335890520144751142657258549856348340111452037820463027397678620499264194280624499909887685554822480679399467281451460119304069249763270373985683408344751406173704095777416545321727123372317703708329920266564284530835085341387165506469776421605416763784390171802496827931409984425449550080210936454828147425332636122420704888072099297794954352691105543045529341706203326833585094468445262001095019811280450307036006102880291920813138973741902451887078764377173511424971981470979224675362526087747836078773591947939689041818716099021405030141889062091015535594412864884547055486941871047711555841954513346651196442839661591060512594205132880391349673931264251224473174303175561032381983481937180546721693751592692659494106588794391448259847216926878597818069487958273784126891155064875051877472620717933063128025356594976278188064236587070855413465055975000442172293685755973159895309718225206842777860753329857499625993028954081588728967087030420661909729855576496101563576234475612937227855262053617894514459424765356686574104807871439117863836373902970683224567534976272294153668721843131612320972851667353679053538694869533129799434733580614092679583819904093637366208707660845939106040189087049014945656324023157623146015046529364956887825755167300053323798955558245059981423354898932105591984229206355932337483472839250667367826109253623477741342927402297207345180939282032139462585564743132952440101863774580366901752295394578885163209683618856797231288485604352888251621397468631174270191633248319662281615507076978492166545274861925341721824840071535211457675754440919386119318644419864447172434492066342082377129413278418669429696705919819784140483234422151668008362205648220100800572278988339187756516909655001577756071908579966484565808409673105307734619592196301068495811826882537888794810968065183585786559405923711108434429716813586745920494310176560911935780707512157525711243861202355821600874320233487072323846911122082019921309356812982578625255129845234899314683742930254360657126415979529176199480527444180488528769510228942288715167939311697441971039842749571296221634756126225023309089890202745504294779194737372254694169305865339012085460800057388746722466238315616120648258885469565033396765555173217270803973280871266690838992932179036699555099508142533732081558553226489307137107487910121197874960082083045247170342850271106172076258122561881470924201374747043187606992324963073765433052614448755412419001482413376992719345673513163437829954459416152505690619950585814176051741824481526608823517376994048889055018019889202753177601380413472317166426171546250927676662328733221782376938843260354334192108838739059088170097661373387976882467172206489217668858659717748923039516049798600370034463812135265747583976434483379947186448905060316058449302269391655138190839889429331996541011047416349683346393227456075603155567222526506504644862513889004050730149892531836339716708093805473245881632727778903642355650178151512275636765493273535456870501213549358435557469266061916138572915128972344427000885435804160734832077845509609255309347725611507014936841498371770628184101485285615415445316135730230912067917391531650510761142515518902428779527364749817673049072509599846930389686226811115550738865444609529902969797632359857075370468605448583992359076496185503157178753679303594917796928682138376339483768481733478577950832258496188896566510252172245079831385364476429054881656517537392903157909034465761700206982542312874498575945886159076968222468668363346062041902175126989453919152707135255047450388880475134971190603735396218372119051241764796460930306703957150539934286095328867281792842535167788873778272894775896612523838661224067282919942653853843895242700974364539876357318371121336420154906102767944319724001981929604629453347135158589550417013819950940566133651864458656791352043405584543920121928394938101115446971623612421117266572968126134027437080999093500554906751283460042465703689325516303145690858762083014333343567783313599099444505662333020911043162704643652479925761616907561920509465159421080409243195407867232565601541117147828340824186790250997926367072704715693964321531650345463014263724721503436310430494091741642903624391312606885677285879910659909965712273307673011622612729453122912534874328048876249065051474878248700897579513551064119689062206593529802219499097363001458783773376186572495359200720447096552601724359400620437855743971017902041048664038623722789967907893772945792477926334448505773680687999090685339033639111338709290718153803974992865519333755632583675052622730528315284419095310495038817597141403557153948638028935625579166193194862490224317458714250265255510871387882792965506156155741792257201879403304436394737492496916585782271997100371489005883549075548923861502433049826546749119289844720487811028016007131796309756962629572108918479678091114677092873078750450316321589065631803499651555851792150512078651759599783283922733748311980902118768905750412118293039428399507423081191341390910940026040157145020698188408242638648329819892033968229456525176818521349126782455619409069679006087149666847026708558957699363631688356576267013925854167743391994291246361361710031616160468944146684654091542949479056626273756556694211781166210523513653642086690485093652014115118466586508041043887481435103028117309611059477504994802502443487754583008307626747793430402340670896628315266727603577015630948996369527009728389922004679683386461641725984382790566029957950770935241618523635055129766381666313795757837323448137802447889531360294894928898340809108808244217657625515932462591417801995729753569366644172592601121824116060058029588890599326098550705119400572118587757476767568805415522778378575340159089792401296968466398232477722218746062684769761651805506996849978273962540068434296777038110209602796690903123704863955003846988968287226391452745258903598351852245901652390601694804476984084499096394432128746208470251189475040026770831531867091202446084700493803521572201701371251202125591937790744179362489779656610135614830143088272642645243485000217449534146407677633497912192604468085222135747736601543009500849800025571112907025335023060474811557115017129109699366000910358357695239574234099508975465935501243631007550119486568311427286478317243485975205887963111716364032810437309926855312999296745903893659505701410992187521063002034500975321701322698327665019281985786498745157115839787786570476674708308253008876448573426740004887313691918195756365940900557189510884511088789242322320091411199174304988768852392786199667362042036839789239245138905945468170327203343759183307299771376158869433464679116474472689236929817852406727254747591530066202729217843707022729933832672725961056191479177789968678108203077976760934309598753653843210233402005481216856010911378736861577497326133730780126001878144040875363626270985120333322788830233202387011368522432031916314289288706194857621495296489136209717431063957388307500026304722222577793816561678265623334510717505487934871535712279831797259199757940044923813427190043139639575244847899944528963229729676355829919207486549229793601514213565128197589809131351428163513335979186291164847695726198301114811293661115792662990026268424760701340724205994753925821586911036545191822895647353724116077277011123065173669524857603636504324532902032948581061750263973796366385086709341698724651604168950612992065648052726840511881828188360447005949942220937082019233166482177480732197901257293279672768264050520494136900419484317904619717847096099175579722115924174871806762893013605370007681545034487762155473743069749977457554910776598054440495277600736191009657407747483509525630877201708703576540024330396086721612349249793682804842621224613355314660188249351710638609931645135669784012121094731553597558433309538172305212365832694158818855493666286481756368870099065376468323716742269189146961953453026134607817800498821288653130735623203044917502724224930759868792502809720793195441368137138009827355217195338591774259396300036038051359678430491289087566466440613601670798458225549561187396516585856116490480520602274793516356112480336818542244005657958513664523283093015243812470479476378865098910870034359821378350483732592468923909468051836248885299737175358273595013404513465245264880875662457964003003490037388813862475591733451498736026598997306644024394929010728583144481358840277772846842897057130539318680226997565663000115648614479461045312671975253544421762060583060573030526621564947869522601677650114980849848481853270391115633307124415505521181648108742094226425155053419018309653997521059712197982107553912996617565508601300511822397206036186356136470090170367118825098412097048901407658851243838072583580707355134661960881333220057804276933408354507348937405107622114154873290500605659850333135975138571214386247317320174409802149178409703693310672423858737024533308566175311209369493392624979554342504078410722938112792694060392898177820814015059994284552947014553536891554649426404221545029635868636704568406194809306315204538593711932380756235662536433008284810934606630929631166473019902426872764383714604297483393942711132478692914067560245524229018721708706358879211095652262800746958839975196867901670865699353620442341967309129309175268569673064000266890366539343950584184386668907816893950778701833799101786153324563854215802987271317060540457967750282699700021822896541340489264762796351917922760338869795169850594888798040695640284772406242973705217256780728517994692423799936927534135304842696342195260722281343928096171438256210431319905622285486580594363078944024023674686725133871560304299875908774823639721504399263135064910427417925232092337771805933516046380412979703387941035028342025425382176186733123868755233432521430479454930909171349314185478726311412031165617440334188191805657593482188056222838828261541027633041464359830130170058661565556436070721438640019181832126074877820782698526636555450087073730026330365780365391897265357771155893964196883302786687771253074094016937470642465065179387322271285027582718348006567187006552444440466310000634411036157264244082697453944136106727389097373297106751430602765412797783696387506079076034499685569905567972299719124334284405099200513577055893718758097082962315067082639969908581270297833563873393366426073483789481090280044336167670637014063220751407976032601730196554162661581965178225522302319026542829217977290168907680085579632054121859010151201220585442907486991756972906477832876206766515492868575664391723837377828659720881123336203770063971045565675952517661717227499391721928245186791187487365744358406015603809981290753445836638959193480190210652632103773236478984823861714103973648160299448291562523766200219000784462535825593301764458328474416035682596433051766020507317819420116259712309448079328555195656679425594105925960722782664556680803972377999565031533330130227579867701592848808252264102158563711041622382064278564344824773645099604420047691149708715114875016587287825952533327196655468109384404030514342770256703993216832969361421864814069408964336386369450155594683786878958266399001603280818711112619277900369171187788789503119432273267790466096848312228063358116184106742528603558896757316042826701828870578482314571182448514721487493024526854463257660195001162902075705241464524814145317266530764020573149841221397562681332993778437166431721833772590407327591631883347656713713353659157632800507181050836919987956830675073757683879920599890912998797055360809975223844939681002363444323089466390298522422295047238825802315419797133000408166803912259466703911906967344668523958345213700697737894789830480319102325808444249147322144348985883443240396232765986996411716779550503625723122665702730822673082192610368760748934345632072204302006253514923034930343786914336885714382614838592893258414713030433848183517019067639933598230869247410168857386787601163796392495339584309508779982479651627051581789260235460434526679109285850662027870033904544239079801476212110672573442501776801296632512184383565434568783849978083815841734131367647802376912310892864905941726444817062187018461852485843962442308047129988112977873333677495711197633948879380253339507529960784609508248956315427886573758017687603164326464780604860499002861416654604919887006373979438756684865829948317362268714386184188199549910517126526417757373348006535398897038623892253161255752631044568284916483157348906880653533677663477372466841688651580526374214265698943050047083610255716766518461575120591747183998963299461788683585195654840798125249683626850199130470928202273635453421408768571226173505740226041341246107582417757366068594847686201549527645738527294595795994045660783402933695761611405426690201480062904703838486959418880742967961107835790408796365857093552595479990708514275932152225699593278195921300684606661050875166820127630941544528168962980978834765711869797770691190435255211449872090594379603028227765469133678815214226196378664091515904217848786518394559533285338062079565186407682668403260726101901880134605175048342349200035890430982100294270285709461393549724053577172487363195892923421877306724742039818664277301105551107873734229403408345777712963902074330960433495167441927054740025618042799320218022349437852928841178766504455152084774472696597551481539279122562797918219090482321966801725527637539899413079034193781796209265406135760729624307238559999334614986046818779971457389048902805355105927148541766155244607949582239108338652558344327447054540333057210552152223984913071264508874517522539784433127932316683319939954494494258501693549296244134708793970636016535386571803591380070182093024313919014362687822168914008947237072234261827526263198072894845683664570080261150933957208351559139820524820077025567356621733953509790515995481775978129770684746453554036186312438829103325787070263956378195877974550005131346671592499809682837282379659492499925268631299043704825474059460944913055949380460241229776549664998597543482857763424337347090733134453994240065626109756435173855482339292759434656360954524613538870901191189941146113500718910174088529011305759309964170215733137555552216367678414523045263725696478158740891005541960597024340854649306497524018455497848674570601986711072422469036158193427180680596454506763849196591000695031260511958212975135717331551954402882463794640219904303406424801159731291636049384128480378474405726847316080918307178638701525902697272469480852628340090275566654900171088541358224712948137211758340491715364407054155523096829773737273340305029790746316774869500152688070296231866557351541439145653852817850508207607687260749635209234184856286018467651762315644254112099178885764475412477153980254487755289527445367585571741915991857231205448134565961422055235561894950523677327613748302297201460764067224530288514812510803091810810334320780317758130651076372087791455433710508034542127357412392591032548481249010786594992907648729396198110392088045317527904244061184476744876136930650397426886645764421535098803513855199982701442783451318103791349773237398174767871056675592363937561052489689934355125518931152933299025080057909300794563600391176428574970591136949225516027712843470088368171712918309660165291369268050382514411500048313188446073464634595373634509323893572811451086143024358391066611298525141940136977020394109409114688931759264323482500572777759031721240490518836463540116380780615888770674686994491403560079242368962733573416565562488836641586511847042999155544842042303932673919759075840418308831684791427713087285006102880599061257353011212633233084541232093288284600968104114228296694625239764591521175377895982746322627481813579155627511717018986910299941105507458312307919636489333976231240859231838627130761941791469597709154255463455285610594196282442724800430237952120790218678571774721298639913385833217552017248728287884675467184891458527784298622436105885630883031082137514772074635867543877933363636832739206306076392901104756034471710083782878866506203647210328423011403601009028286405847130811778186659500397541679850053625680559754518506283955417879755171615095570625874325246044036007547949897188685936002962197190084045640640532039618677616487055888855948527133037283191405068525426530654054888510922855903528538844682964591473590766235347524425192266486337484461322660543752340941125229374594653480971768803086574403877195774512922113152569471927866217155120762798232777361973530353153473992560397165978124287702259179532412703207687861931338535635592672798829979802762983304399185294651172224969755723547987158563792941061708516597957745210311883695404440016682952087757633882934343927949596514031713427302526695368334985781445248512283792479240726563758330603539350424999837731181992187942140304289125134982584418890777836252606485490756431768977129877949701369785089554918288744195962071318778547109554719457315598776608983618257262159106632811379925327373632559323261388811900134509335670315644325192939467462537247462589165641913754130936673446247776201781373798042366761311493971169451912734932989454131487191318957610910171185908797162503734702833704239459212144965090818134049553463649436752007627800303474648163419969812161638922578973832101601926689568547813110288542705374687919157051359070013508181840827901627352807811168522081967388041372734052352185725766919555755355920367563412253780704988573222732883977996765557631370326252641372341381406836087856885803288688495975804964463936582115871916617627452328965069950973426843154813092666787108059958658965061434116827083161116201924683412549464858132843164314134670907169283143537139802801510577464372168230526266103690929382272362819538020674657575654933311430261034427109314332283527501673763809713056799156245448832201526376088659489825780964553069730621619459701022121845322038294328076034265474832613908679179717309729835855446030682681071874930479455355319688368285170149022136575277220622939158073128420389347426809140716553532836052273714612262747819479223799346031507617799610386092479293495903930113933658858916655875626405976003013376193972059201765801252245271765727896051420670034531305806054794438222626293128385488975346719820237831381464707144063423754102548493935298157695063055361221169687529063849690597898974543129066785700926638307137657087319229015738160404366502429059458117243818146183693627230589011760490754149856313311308707086561957112734153492734697461483552877555100007279575889019316140202695269195933038346012066341595163778331272243656453741004190778054784728715522199387835078901296661209118392681848735637370176477806543869245572949058333112288406158910078786921212034821190577794027524422805775978475821085732512767544673859083861559579253624981978836246978672100645769794032511375086851920618016501424228924009335230712641415283581410455419404937884083187473511708019855701077030159704747374273896877913925280068195619461872063724487616234205656757312536702479592775194710262211493580577707748127243505131872956248627011574922091739994333165208726330618741776553393515353315707617525759327283953289528180019425406676141256694571331178986230485771739169286396358879306864938014167463224990666859371394427539168590248967522726538084191354576869442506945859271988206406478430642306227324674829447214519397034094915639599162161431255537142003020836832373784353510938958215213365829407225554050162005596174714370565422081231016374205952480048814292623339464811832380762343315570612207313460219919896793485440828977079614731995958359877575931076792102577648470747029762762056450450004658737804542713067315260035764049837880107869817355021372988254912391514651922190195564299877814125099374927883378201989330249441760643297950034438293270458391307260049848973604247781596983588730851130485266587380070331445258242292085716602749267504178744535901922779368568119554326409330399813874277353283810385926532262243062251715617974012759276470915298220442415706382116110126464791975414416428745276209990252035919213952001114880556918838483637194623775215112629695190797563091134109638608041242771066198984115468019267444840425746723671891109140185697807547519516060993755569939205390758767631852961728405449422569933628187639378001617547617279350929072838023513849775811803757334612929136501434763813938597229770987656457389578208965190353916596203077289677643408626086823796255411685066647962353147666985982139752500650111487407284487619904526932261510243954404629363684923613218447199390854904785529580449300915986507122425756330639131178167660692800148604393723251875544311744815732276980751043105344786777397430103802515794675595887306151996250017321358340793180716033824895022567034530072306675285402824390685461486712511638289772635763483212191794846519352363003018548433554383300534078233217224807515598800256955498348161451356307903397615500965724103058968105884304870472436674746012475790153117515455374886840277043456404486245847114505874966730526588176380185913393830616535407613960884891811780188807042677665856891494998713466799381717455979216274489829092071901944624291252590147919317961904759994133086226705919399073311224860242173411965525985112659871040406857158505175954394868152923287471061022835114444464805070750214926175047925454817314176150064081585918751554510073305486535863803912582811450294773397717525398083687221489510422548221365557691030109185350051806318846521604761424631088156981017053057182257570706074973925376392274833661236953828615408886774866469059323180469294380513540052246039678715544068865759571069892042842336283410720132341964640316696037869013072761107256933939176196362894236389392542521778666622459601009144504490487104290341291893327627004971786222920187806554189980343212626773412264058789386239376172538355369217478977580611460764615363983933438770216682229091691944964634118690462049470899514217335976144843064384697453419455117436839783987644776978966082714999725642324225259628513379617502559414026407307848247704594178333825982540321729009863726355188513342344640603674323178795766371899394759427096941739881823722385808677611806165450210717778953629616109396261877534403658898742402762512460868149017903273021458047579234992463391372384186918346493050865405602315191787238247937111675924944328432473470021179155055448050776264095890352905729798107149914725817057721499095194975336867229370465158467411201762652522680399849204162486083767313550644819834071432295385706585349941011818516636414406791811972136831743982096171763741908886587036911340092682057046236627333922908575671096034096967881363875140422598384449933662260617464613421362679162984171519211773051571048657709374843664567236150845214320854538123646963590526298186961867604339985254489976428068803068953992181897910237288981909558319384118026127386857341920960095626100272670479348237527264152745349802687096989479220891830439908149478831584040564304427917105618920859628185032374322663491526289999225969373174986380855613835291641907374783093461953963824302681391193764619241359268319492880310427929181159407495877185853206204366473362921503168051263595060913376074295171611765625024041462360251809421727735848359771946455022349559653696068470021242988432167822539081050857413346796668002778904329586803508337583755881424102214458703711882162536033721705829902995004089491719490628217618963222217054452623487632951082054348901172687177699153973243217640914646832135566030824834517727724606410619969163853130893260722732835029391029072325964731284237940469389071537282293948933981448529904545136353436830263413821191565300662475592471544723132454131248719220339257863434858783242062068257032028487847202394154164043701356939689777108227373278851277683520559986407592411073316906835518899888296520012074491565532675796331064262445446965723702435431210870839409565158603976769244934763091375819413794738663743351638208639461482793553022890739784042856544319097749580718151237003099386149850488412807183500000132047946148458242765317832147367219840359138625487254360147050070746735776129005794486622669552315474436025207050654087825453852421390492955829263557890664717521110469052528335185774601764841390372153220898778419297814557998256001785078806891789019892881254331492624633430806752163314969881671569920881335556090671904058309891962910211422486073233674548253368501787269417496880048542560769903858235250118381344532201370190457371848077070859253963956186716088141808908352577381014206181382236144504186357122058564302398404244556709921587197222977685761029286997017480533312712953148949570206463463845701473714321725936101684914341264953801632676974841740076763924122582315944947635719793794857556271527442999812598572726654992708770355391132309543017680012085748204319595579689649593028067761065018132015092395783008043737595332867700910956794310845798361655063459828884482339328311457107221390391604115144088968618216142549370178441423252754796369221442753474721309146700304223944044621922069500640867864298991780609819622314745585692903960964425923072055326691755909145247355333355752989731543992551601457591488999123358149977661983070081279067058535539626320300576885473186527013993218473802134303718810461222213054981186770411429691067416947197559880602693955816061911149147404318115940369138287516037452724412018945238819961088900473881184485977009756822182050945294713252528132740710059618559139156237167687006942462017949480336365091539143317653638574122306006001615716335973463931910553729442897074887224632481826355365237997276167029961320984975295916330121442315971656690440150741279118116164735188960875403984429701611316900840478522909491971576233498822754272611088053892960737510822466462835838566435009049771449085146926036448346369517173943813761358635339368361435021099893262219118887382857855765778324375566702640477060992654119902543221764021106442462077930416012422351924010525102914641851002057025255968162253792359893840164962457904483255756031540916702296638906911537708464451249269206576117811173033724342083040166830860933018553001745870920861683947408265529946866746500459179289772626653743947732900207345817303097844425227685329195135305586082722810350034879626420772966497789300841985862431323028784263095338337214184565040121416728426346040743910144768575353006179093201528347707448909869715651868837532909853131111403256980867178312979084016245985824327295518850327457525269533912673615435973413740657048853197752570975823699054551981638057139490553064713080764053867292771677944649701210926317616409639025383921773388231126277068347937403739469963340804581558699676170510774502698928084257422878881247028582930352847566553255876771284610322264620322897739751859589357165717992132671452510420560129350686851044665852033002100611172671823428852835937043016798155672643052302822714483887412514022151795439249719828130352311922977389808877148514529231663530039749771232462689199095721901991331762773553903973858589568979164036186521277521541159265659514888942363302691170259738260370703770451992828338229800441712045666900936554132613803218491741404779620685061523556565081695573257663821212391680141006688242780562870069434446572926963828371854845286822238126212499296922992592852483253077093737227753014734618386526461862038533692846700271233742856049464750188527534076300004388857096745450970357547567002055556432044979598530264919341096409273428567682237383113303081012928479333440662345168519534844483934222241193516486927449110093579200294834318461933901676546123975236956041159249857266699243357752909641326460593688869335542938055664610653409287140606186310224798796396898658952404354096408388605222809268772899921765046707226310295650763383827943179698385918157840287460565316043428875748447856973886375744707791642629345180153869612255202411096712360755484821611587252385469567840748594448164060863638181721766651318655722457413257718907759882187545681187879738661272418427913239083175439582346520543357320223886837064477099158334968595319469549231773059471060686613071481028132750567961303212653111959150770688986471858666246234955389711656259579260626195314895765160213763373155307675905490980802782200201748364517156725363180437776933539261545514354883946817314467023586664255926730704535004104195925727625830092299110484329460310684664977454795267763229198135435533295737976546304748375796443958943278166389713875578597538765949635146963797596906488690695955457392895307436140045877985500591278629797990409961011689028672771229235613018444937705757057144745690984505249536776749796902594294660879760580037812049638867065700373248101624423838868477852260668011507355944655938419489552742561623808603965203883963136205847752435934479577513131832625833187786513058654025462518961669858771314408729876355787511876818809464934171378474750473668919682818875824465914173116525726462205369225408370007116885883015212411868089626187957955112937618509916098795533750287909784809935626523105761274323017839313156256323983438882272663610031640602659189786372703562045542700596818266320740422397766612251828142965596737014389493713318667068095581207249406722774011465382348500198821401138343057011404837349583292167445422729436484767196890615579428754108720155589491079102207836152024724633464446806836574501647022519774720121338332103465972165919197514097031732245567136461262479812050800748303412791065167701098481284356915481203711567700845074827966243030734044695636150058645522695364257198686208808341743018046472287827468616875546504841410962919210729508836255811031689320984378849161069609938700057385493969351686224518244656163295286692196625218160031612668471309545467636339565641481377721102180780144056472793996274412981209466682647215505743325334865319459702418200807889987174995596289128136498986284029943751390207532440427631335533814898829637199842743144239620949323150699435669886365337343927037229456856622339197917810537763149683296422334503107846981705472139806363008432927801785990347444476785910589183019153794499538039750542249165405927085499947951623682213542341558260598832877279140794562269547371995563048029662423909275591137463859809888096105518606696915850567419059280657470711935777739298212533257276587393654313411619332437763782749139726231705081121895058274861956716278617330377141100198241529163208492290328524470215456577420560824137826487237895268634051863362072075924077131368203705654619503063315914876836251785365467144421628158766768668136718556331268283457015133512899788821756877734126200478540099097007921969861770440608027810848000518343656923588291522753063953304800658802828177985729407662826128602082549211689771455061118992282945079970642618994141493381431033839139883236126204540756839371011891257653993406434496149352354785780057008620452579975126743588512150919014346478843858568674062912561499166614044680277049363554660821996393236265439134898795490488296159912053189599563672601200034813471168843103808699238802129837782747179377593756193173000276288635458820304519343534135371283920985623630341080091596460853782812946502617662781063959869553103260029663294734695364696033012641144783770372551292598760673826189875437493378830980591626515373583839563305299222853451455569537002878490612816098758632554436031912332335068354497428887844972625619965219318958779144105148756767160562607563765016244673529504831932701427365805268410409333024657779202509686224872263229526795434476390980539754453154043473329332027875788526973288315117259872396582209599233433491838264116279565188260100802673266864989075938143813100992275357959076731959462044396635005154082968633124582012109776168108264461665076931403283286915677455967352296084519326122790769897584544700507590067808041730072090021481103488244091629453648249889160778452916086220131032514367480415033099459786180659918345295909876713216845257740705258845567924947672624723006126711288577684101797047728386399729564407945552408177094659570669790598113552576311769240473744660419218003512197396197942285748149819567957079825025651232239805771569563133041610274899136855659879231324726802051060193078671632296368395292083920538162215396717337876885379056583567264046963195261888497673157034503064670508619330306783827412291597961533171387994487854011994223393915415869853981517406853743085965722026332457997465537969255069426069333964787391653525900426886829919052701927468934615399234499241707470142357889430894823702771541780748411947576094080546164626155356223295107248245381536296059550505573999548507000977458759017444082107318211590653141991154509649929733215956711406115693039295980326815261227915453974900455070365703859758821562690951031474296339209730267355801403942026958350751771622625927579841798653242790632075759334600212951028047722260545116495246208775134708594929323726790319462139547264925327971878263268887296704650405723600482490563907199678139059554270393937750672165457449658932309705204650747606666906582661217235987441656218412710737070853253748067568162790987250277035312904948769089157555922614836947727586219330799880166445290238225869042109333046096005679031551707710323398845504305784449560428612554738031457652906478349708647270731413961284916085794922468154650453551068317613341146159343342125251204032841058172124522375513485537552157051768281089321161964940645253098847796274843466700785140665604910334560520464924650481732103168710711666933389033389967211705646797117237722013473878405607926833272164855943590552658299686517200859384616255510092292869312945113447243071223851447728586227044079820845190452605390580081220419197430529284622235148300865299504036090888626293669924663681003167481722570063263200111983173324954351367537463298465704663649848184898807771713408726273414967931825169972521508332704508935440500173538811415501242385225640383869031567228536727187034871482948579002575240615107192200507461783072901993032098005259128132748938444587855100453465736252777473220603167840785408776586912691740468386349903149344178226483295214598938876698162318352490563835462389269546655846025973830462845987356337246829811861519766775903667803030052474875478570975881115733281190118566446972445921733642689897363693560777373215119542664058843750425076223994333262843799874356589316660476740725135688406654314179585999726714253393148100924015141272473726710871817403321932227301656470923978106694987281098562377094724074509389339427571187124425832318957026011110230186099097758520909412926215266814581946123999566236474844131715963727934491987010297700943741399271840328096413897041432624021641963317176182471093632450453275494443491450395039106075188751245157670802968616010372452159386699764890388956357903903121221378832258461133932243311808189174586651384329414163101171326933766101269782053564417384640892309768272921805522196335487485432315811548909387483412848300488458098418594854162428709199722615380514732120262590769473273082460177880228858025728657539741709184235978397978056157447624744504808267312389045301498053709182130533568705829919274335810547813119248605306413654620429337997522427700178923739614647331202883143100812608309344094961504882910062650704160815389509839769952113691811436208665215701306781580492177783356905841234410899657125565291709839791905974871495138720974265438762286022779656543140280723979766141237853915334968942766848492119656676830823160531007798805583253205006915004436361872520954283552053788665760054770320542503157995350265816261830371003235010398387673916605336335866701662610335279846241763394975309061243907584977443549521377605059326688845447998106249600476887664202631351687627062846152688513759474261315657338285431268044603357264937471920015262694850157571890983843089316264012038291460795625052259211186950951573369139952468008433919479519220463218413778074938034025128215980449204986735727315933005884506872519550208247513997018226898915669227312936631868898189603812567591499329096363083622925777825404733015158955756134068958081974653624367744323228056684152036034999941139018683064921133331208256806121768751124970971530032476075719631292520836383134672978853976569873130136507144975311601130897307227440364072011113959112109466243777059460473228787373548893085345107700078951197352058387121802528260310804964144821187164269553954365486242343220078286208715686055143568337808471047402608730338108912657782551439190117056182916070329474262093147570360022898150304768420412253791474938740831424102864824134065668025775317553627101021015145371266325595787396322320327461994051114711843162898040979619607696103679269582657117142077572720227447477093864231204854165499635925197462748541460049146673051845583963505139366220055286570066372529806856985273661252985303491488596976696373345805792445380679522052416598510689952550144852654357292095191878988270833285012200519513833064132903279855976646537359621469744028779282434535255108758512396584283952006894994944274914597227615174980201181097820654476527717735521243104633038150461239764234945358291713385268626985805427743877807418610553955152568898842000012062072144776670866277678847661158002843366687833630617346424691503464533208331458742947824248819816504955663236607941999784186869790794267685648276865555414575358413165015286746748944436314708454137996160470357047129973145547636324263907550628035791484315316571396492403907259290273710371707778007908033132526450367779630700608362998305435509209508373545292624062223273364736127263429957945640753527828847238198279914496784264499360585134833644796032085243631651836732531534457229400131666392354447666715137497953040397416752868282611065500969739187207497049250584640044392429030792614394686598204933595402466941063533661094307505174313202441594758758535452436138909096207866167992862997789348355381415682615853930443910337747585718123090854764989034218091554772132651286475052983919649877140383856990553965816217881486915782937387254673295310924211985050051039870373282011873317381531285728846693150424855254714585805047737342703605206911475031887135807217030641872176969531899552182613770853583060754670346594541184916658028418233582229332085768802530404671561515469440094569866730034733335923239293932664098340106683106791711905681280898662597505768039905162053106913943757379302622138305273721094822321240088602272042383620353631707135994048795905892401455048581394551980152469766950400266716457700171612053049366278755489335060058538778940058961096382201313749984808120933728255538089060271994072202032666266792033239280328355664331276638824803423886451514323754761851046826269123797942955161076145741020307754262274672317314776602044944582888654325619165732163900645435198531890469180134939128547064005057464310395003110498017665172750932297683986751187512507224348494711012111022101406408689559379960198622421837543739584196159973813983044357472399010282416054173638576371397617308490940519969092596642832490692157694817337282601349987841511185879626959712715546643717548370194923614667888278193016106200228180951416809837581106989082049647846925210470204608605275259220576994081807142239191796474149468062279206692198120397005148441048094144642972318146929870201025285359927796344288054287407071826719091272524771774620686904308351518369881816891659568990079866067985768179550218221447450205145932800211242098637724752410148803708903456057727464269426874541572353443534419458421307836108300118121884724620391960322836556432655143621245727882662026548963044254317736439842542012654609417166679317827674907398138297999149594784248368196624638510256409077395189705418035668431960359355617882239570515123519858852870566529607642471300385215023280558522945245612524952649637358134485013249424017278020662513903305295706004297133887355772525438576713203941321314212442412712931620108329045268540503745139550934024936592661783425823275534868131503373728461091468139512416433342415885002138251183053017527518639832339014232418262377631803179719091517345049948546880520742352964673022692524449891473371390263086928737645443090858235034630571780879630437200371062344287595711826318198511075829730155002405890902318375957482843235359128394056020704139329925065853989722617092651163066277878899570070537338993720847770356375885296407304454148564420764074866202299516491268352650650203251895780476542091330784703526703710802492169694758659602491650137920307674494796783129211456977913739001421467820183687330309350171415467058585997120144423700306021037251423372039159286918837094575119223135517169451764066463505561689521622654236870135803069758874390590019162258706456810265488943731620355340558694156174716814285620035380572411434960734441432907426601497102536531130664539538671415946418492708107504562800095515593797432510171792980716643447292303176888855424950735568221440372294403890135967166443154554449748482413843843901588625140362075436077340272864563643289810377889048873352283531282366779788769383073669023136875465555385595658534019901017318040194669485023841100467105463922295389656946607149158658916363552000062017437830441357160131270263925466965735576496438088786971441106281837306710678577552728022560464765954291843076549822231170894520798970727531748185757807788532084071894931474726789184426633685108438039036564660453526679097977972490528096058955061446189633378047274684528770471606985540159219854862456835584056722660404107238119952983641199946116577020254163647612330116600971980504750929873783351170748924621419249217796555739341937481914430031460144107825001475292022639271233872793263430821839423232310688714600099153637877181064236919205851031418863001237405274963636110926896218679502753150498311894081415343431200283006694063995107795535751634126668017753684216235599834353992549673611148160195982690729761918207790511588362850729429238768151218126175490910188343688640991441530360685690059102722925978614957060914529714301652150037824081007115748039775677044297496734956414413284280583445715914048614114692274181911830320430997664586380952804814028007906039286975694441175921686980298553161428286438496448537685374653211596848036671479864202021251730042328998531530725009247808661897987733509292827119414153880921452797229204413971662433336428969364937171403084868060821285618767560128888563096424835663086450787506719953344901007835378543840287625583377074430161176654326613071926454680418026967425553529692284377857154977078235274689137323634618825197916572691839274944042816614728540150364192187084459529561903592603729226581868451355262692947485042200238841121086112515505837192167512936947848124934468590805113914362383525241921033813995231680605857022928703070804277377777464030920357825003145679165225148371357012592945412383552222511838264233384990957989667151869994059793236689392240134147493379961283695872192936946061162543100459097759701897727897654586998297076331629600452862875207622380146471561300522250378496576719205432057103366775236581006315125078701178170399885228195399809355639691122232790986653579371880559123233052111213597994811074866076771656482088222859753267720939145709413348855626426463489627524289551530713280889753968500264345241786740649606883057680996162325841312875080712190822411434728069063510274776075674166561833032940811695620721711187739489305259359896273148532458372914388411881970003945275276960499007799374173323863161582376819342943718028336267406906007690244405672644678603438372600641082922156979186027871020704172590137174185732741289268960285344761550952817685048224109802101610774305984902915145662248897526798056354539901017109367019571148310548750142643929403178832018838326608999531343572572011526283569990974585054285424318780244490322571394561402852681658988669952579227450014568364245574728286773712116368131765863632205677819432078502817280221218137771056612996805406100688164480957638205028446441256220180137957648785582555785228492554786518870782412378934890440307581215644820156379229898801139697621319909487398109873159439213625861091284140833994697419395500365644013193962596794295458930100488336376355352168113029747789551000136654281122972451017167702490551079901992679708588575949148796368362096692550602911106546077362046558839145840333687270243484740711765670721502012948168266436867612836481097259819313380235147027592606714388118771804856718439246974379966977386584808066184857148829538041173807223714430868285599273504896209104174696465040732780409832647778297781752866092330600074759971287556891718200761800366498464239925776361900281991558278839444583637147929066415852687519661926770519087146796168369965432071347004270295005124756393348889330999510087844371651056266784838315199137743360352062028876959453282924659882621165460437927823222286489331090435338908018663569827262852177149219458590388536799935225411521612728007532369805918037575083168338285666953779767381526971765352551121859330497056656924860410912598466993751049355551928420687629610533327226278107537962198809100450940779083491349238278001940568008553300400271537030997152646332880100422456074962066041467110664329917116950292590759539177309303317411340734453444901211113136839390580372831758271808421386253106054660215008874754436599347410404528860219099921435850755693141379295858323665013623076951992597374469347678027262742131924171499958149168618087087216707903790895858430180717020604981473372546898828868214975027012808334405351262878824583168072243050890129303495546646308470606144961643030884307171452148937820669494417457365582827438785316565866616772270375715197523788766582308528610901931181976595992864841794489272874006886734419773318365879539550005089052377071326080740143031684617610605516672993760664223847987335306086399845012627954678601367626814981333884345368057284197547819198716890194970001262735287843019989166428908820237136536554862784398771251786154860144120487611975068797031843481180365793725040132791960871057119294272199911454436853201580113258174954118765491768867984502890750646196872502049613427091472264510988266060962762610576834400798038197407036074435445500271925756328436746077255574638419350892351527191441419374839333178981976492564058312372327325850987491136485097851734282363698016076457672097624021456655157778719924979614345244600840934194861761314187203754957932486445123219673320338090155930352536942071073547751455982678280693545444447606922010338729683730274712159898617807095965363108095729412135972883336599137716952188635141168269109782268761614247566313966848172183944232472294087335321808748237177018154358876507492501275985537207258330459469865833166260574691559558358889214863127891648895050336585701493978079313387435298802596947411983216741164579403466933850992397625501522371420082435158254168615342940127583330028507028353259936855305448301971275535603231962119359997721205379389217279884770739559284661288424649957730008364051797561904118868971335829672890489002955842464185197557777286159902168877808128542659067361950732323532565513686416811472896442373967631737089169360540407347382937831478292743896514391776454578600001189653667304025975623915391655385309668888788788060527925076338408082666014603023870908460718828687126529220967925463544939430937470126674604127307171742867273634637504494923848362139544497594228982158522205520094866093081033588429037302266666048593973671708343542801191908512452944839795056840864735290028529467222784983355993712831466814325875367290965746292044759189880055252058771875958821000456281156157731142197555331956819835791457092941573900900397276718192238352044881396741051829672422307299317288692962141784390763197647924339058806706091094700699138541410471412721191889029917533525662560455940216047538422510275223648439346394861576710182000876724810009796327987546122667246021781654358977778741924150725404789777407872110116972243033990543735112943678209371152846600494821600141016713767714601777435540383091661467602246355961042268000487549450659422632603717261809881769075804688931142230301463482073765712564215830904901462006274047122123062916671901282781529654703521204265216269563703912699722943904888951426728645453647683324136280174427512811127926120545604791603251592600413917403316789785292089373193384274586551642477965044918048068444646967631253254413890751095016074179005394948774247175156429048995727760547964546090494145289675843186502883706550993738942443149337700111902469895598130353555665957679355778964085998664640377626624135647545116691678762982825019175316807755301151759920626684663643820828591283886655573636614357958117077121071150073798946679604512506719966898138193980540690712489246067528562725333268448445472547344445253109849654654758388061153083396586166343405014747868418390006331775847383383589241772724675621203838718480585021218985295898817341716201127051534598536061617907930009931612535494007297032512476622456440184836016602329976301524830850873018645134111390804633935982544767565734578824512382964749842498694417462276919150713278250801770181760435777973781959437324394454935841006670922612665487658114574293205876481564945185285769739332780782619525777837614590975458142756674683727804126408152848888593483995909662501633522495043667538790733250114594194457899916993751332321587878654640822265415430658435910333257630553517821292931661014989846399456911564194557699126867671605196617856054263106720582348080839322992751909806828399763582944267094830505276645348659181408965486087016052746337221659701963813656484478332353676702195402751673705751180813025137248873644994013692439627024746150483584734887196522474607692046160513567285515784361895099141308976611579593460573012951714600372521361570472695050679057742821604668530259891713977603837543298585540723746977582404727947133061418284949231079957631899454630278148827506368927227899878062072182123112206152516216629425872113095018906475995693939017506592804404586530494341884343749025084701090796266183415713783467449437745838273529859964305150734207748974030270134582101613599287204649884931149420397192707046916301457006836263605150009340991082131805342381045968855383881173956256069479318455345359060367299768426428909543553173231510998175819722911089985603326039923241497309863894039084671704659693858818402010457181366249181781977001278018024198041772359542082005962752013196066021598593932431446560766988547312334787733304737349291742905465455511001715181742843892412480333640982129648019480660494126354428615758146891697514263853837908604959925620882803233471851931041833462471010326697202128773490988038177337076754900126308353963469374866620496538190861037770630708634548656655762698511629614550421956735575907369279597796982070309410042650873107966389585292539224097961499599466466384604587922121982322532391072659763467623839133835043921180002809900997327442316855718993738615454203426729613941228002005971726519749913001302004620514721426753042965460307616599834726455200363075091478709249169319301809547836878722618255710105208691349858708185854817310175958867871855828350409180490789834373192280282255838240131658785585307820581007973324222405553857527973181116043630316229755457485001123560855794531800075062642849587717653586944242891218016125169102420254186044056475700344429466385092713350394942609847658605942562138454530949610938608038579996871583201946671629134917334080037162956511369136856559240994632399504830927199947481100061949600963350312227079654533513687709208385858085627904610148462878019295580309280512605838439803079275342594783141361104613124588620352672597952905300540431899847386583930436690188781592025563014743768310491168028058579718006263073935220961286683493356973434290018164481379440305669700612133305473169226248068264186660132747470755548264460050026518075981123070994416906596048068516614414773491723415576664944270377379966388623112670959894973113300381253120231703309373197090886890635117608737610257415760836206064788726837791413661899471755148328340680987117220837441391010215321617592559654662103184813214924933126491853843020694122397792851734359781734658860599183666407318723205760487848820109183697663568701522422217444339806262602970989624972061503258647258038985894753205209812955830478051497650037854485642532008405673124542618682367903668445180532518262022916020708309008464917811831954540378995838236794257988609630043352386889654361136184184173372975297753016591573945516081482455227960772935728173330057017685934468808225663130333318276381928672209875517158432817242988664024709012074670718078803145273038771562618589661383170074472128208494070995369576218765684429247532133497293928960615039186412975290245265810992135460239072120590485241153024385448244168542421451535394711771454076159037658713720462929523592456194220709214362724474308584962766286152245901768549266303334028643898948263161965370334064081180813167962111668749593921904740466031476237387893298308906558608849494784795635108186376549625443780971251723845890741267031257985486177694556625232396381628644727836541102044011331470602737261967547614532989924961966533844498671637220591548199521921944303191218506414940174308893242054423047627821611156868440474962079184453488805115070130948906935730501875902504824577760236357322414764172782794522237498683520320529280160684458295114058405938755115641736767321612808453937674116795069887304711319671481045268971570402192511317111658437891765475760809013674111005335989842657857713136668866015756371044821284951909404386588477804074300173413879400586526591336216317509440311691023908193561826408283965334925086271623620363385764169292664596685962243263743741422547585048585137572025087745821099646323342822855899063061059373217254616495713073041959734292801335146862388633022566648860271397866966172448055604074608225833574188371211857809024783834263963237383442388103883320916420029346025402789438715245593589744459709801753836933524419074317828006572828588838725264131687395108284555607631617138602567075989630978904057385644368041949582852592095028200728856832584480152839246939335534051206189178384692383648014052999964992625748716876364102561245423810673392629614970111406068097647176978065917126128982719243115589181060456399277840545756427848488561995463102232572200925510681490652232346525145571946598048983264620518926420013745295106476629484413458879732546726480500190867438907286329104722782688753918218255010203848181331341403829692825080965205637205511143347061331543308817266930540472738409771629224882934601472132916878926546189661346407424298293721787145209699352965815196713134013665055438521193623076044798263933846697290950269344866745420237375355881918975531752854373017204618138829760504559600309448329355066873963189140698983837524886752376989733080934862499427706446762963139440087760635393520726324275524130706646340462310337483297649565507477846027316947116783679291500143433080387500259975750563814025706424068952732087371291170381879384988113161699368511414792440033263076286319845154551117135872276940035137703229242091510969375126500362883800034991532514404864445203102536798132339257221972356154467232126753136212353682683254293421248664304706595941987846600908906961099949906319581088723069007399674833427073351936564257187595310703721965177066500261378104471627136765056696988102932443672011116985857093799595876793883978729403671420028888153818899933531399871222953573285451633851377929239913726752044739500175741111883392135740682962833446735418333010734705027939460596134292648442297354380558005708342173255224031111635666152926449969556685776808581133441375888472653096325209276578926459425124051527251335814097215392320403470759688027061748500310534123009987575397162587801725529337305411655010983773354760710040943908785230181105428151417198265839785697205521396142914170364076382519847694779881986830974254496110010970631157320062975533166999720916036214012964245942048414012934372548331162618185049667228431245939095975869206478501934060703041089015568996910530627819082408067378919012974888308169201860960993511826683291231823157893212679747202135377784942624021962944322461401816662197352717731493311263673302882693005271158095400228194969045953226567934817278159297103240600719766952853324898130837101617468862983328840233462884324709486992003452069131486471267039185311742419329678376504590723167960869947896711913290400787616426225647123547637776473724266840633244948475769362101634189537282224859765677524717516651861734125530414927778566966249094920460081955429306354050869317535175297710949052122682366123337754806527577029338406287771253950502879078777155192228640482467210971841438844003361285367101066856505696577898904315223970400917285866764308982996761414221348747781989272163350667824022450143416353628568023072866267729240775893338459046163120060026362248996891170192584212371751438582591682203028680072265393398009371595369716811841903860389161563443030658538708473474991707253487152840163324306506097437345229842143705990385409821888739963138649925432950889194887535149754608523279956136514913104111112911069639830769696014507102384003527414589041355259362721245439246432719165101412140624819698477249580647773569575204923438399261808428373194807193104699136112676120761617193832244273133393205075061864243770499118081927679102678406210238240425974692367906881438696814390262186063169769931237841277304339434402793747748008137395242628641472511690493940263538798956571685139819799654906520326491799163417642916544673580530835738415023053687084947653931083562623097228141608783978927626696640137300411853031336495828017519036925562419581031699050970636870083928855570850451602793480590854407372538318518920123795552730429330126791398913291631906120243466649974073183062835368379714858211241552100882767995226143523730604379485411789636545643285887347528329039129357134668538074939305648331680223333765817429678896560203584464965348543968931576242291412123891699670302545657347370828926220390677821377620449507183622671756077698339716213303249790859163435578678225513822288797143139893340589522638651210977709061540003594406120306538025758252805338542155186930376230265431874382829659252376041798862022173695041050897451093478755777021429779359608307029218054861988081342680541816416329900543175230520187306888298164118155355327110825594634353798447258764945569459402627830570523782257943211888698810015294131714771386313777940674935771412015498505601116518672119349574991904000054654887202388190398836970845620855707318609526763826546045452127860868256483894669304050314784372722175819514536333029780303692936165861371855282995194930225742189144122464265294191211053205918282064582292226889986180931066820111115854717128300270481361307622628576542870431501806444868272303472081670498127316907763979614131517560611099782673160730974691764964129325567423857359440271551656810870912260861569577904022631010880242968220257923455020846909126326146391198006029345485375905447760183139321599178086513146564757305553482069929981669120652804184764295337695957224355321441634350042097600693358454202217626562224985531212354902128020438918615824266139225140696685739073317439722778539341940153036015705361259737209688833844443716482040464436359372872499669922781972273552588990267561052538176140995467672227217154173646310905351883891041595804257783440364464145854745135661694793316467324695110529013552054292116748273118189577622687921391597184363779272261522230294519772312889019216788660016668191508925867127144778062178002162361933233048461770183976588485375550057896130301807991953996947968277005308136611985890292291046421535993822512155881657044784660095840685090847276754138101008454584497916150264473697617100000290986056720612636448016131388804292984198918807377952764730880392117517472728825179910292688482906271003678760868656011745298433987359749245618287725041914518066513732127829618260297942065079726658980768202635971779744010727552489585063492109166224621494329895094067473199835648010791395854702164233151104249700878708873565689432163837842151089883008501926722744082667291828114684273327769917624479491397150270415165450274141267001012803865330410438724598071952802827266175020172697851147382608679423118545601294322627684767279617927540791595370215285304186404092414103170184251354848967813813236122869353507132106815513365472019424920019579126404788920703713443753148594451493240537208683970848477189084870866365435183115238699493670600987336867401567740624438337875938340708598853845721311758253536405579916237910418894771909030825960652089400830300921404026496849463378060955930927766472055202089796070493266835606089833104082716337909180094333364839756536680900772878530914665100586110749742617960609012849947811689346910762107735517593029906410603156173215500755828448969106116794108839909344851362628967164600752165943671617832887324335898301339853033851302571858403647215352728779684896064506128606186873127431519994970366356124227006049450078178169608694012014592503630410530010739872127658790030882181219563110231766924713803356294281770625077199407193170052459049418488786173206406394813405404923099839344457562343838394024822903460993942940266969060755420391511834024174537196621239240925256826298604528175127740145670858723592383733171627381610348540330491363485640449820784333802852586792375564258238196699576210769309937843187048860941525830716355684546768746413299492287260430258189925185657413093852557574369441607680691783812932549178442880794539205642396101598076202420390591466495988500841758649829922063077805556516703578019727643795751639062127206038168946743416677000604914990169571281921082704167168974409196747086755803362858786524927525733794515965491417805240591809872870890783600250026791731870097560029107550879886949286881672256757899433441299915051059351796437491436409214020539440412809937288212401761817749795309999229001747037991953912135762964877979328774040573611043974718765220815792731447562823807836095293011625110855088861962389661671984525563386821879321310213344958204904815082117654912411229360035555761025423323321095255952129372969273643257423642009530720558026575807976227769293871097038489933131145402283326095608602309104929559301410884562207977392850113697036891935050437353204501507326355654093835615619951723040299344586532982908285508229275122929103124239703343864234867698148361800453685584811836323648158396236638488849697800525180385004648361482249328149285927014262054199895275715307380342727236928597018189354150210716053647392410177819515412535596916681197239195712142895667603814768922431763258472391864468494539539173375060590199350407533437591527260965433808204522731494905244617124280080709843709820119464116943753604706911112652133404951221640691845331246624864751475854401001036292645388178875934304838344253109686709833503347046931064586898137046264492439550340119627882711546768210989601779116897197456642334541619963459396929217643046321584338859018857791437420284229975342807736143723573865483031475937759796958788465361064691752454364879883791132823136477345528515931624376224145190391203612531473635174674318602847290099117239990352339516652719413106418878031706290694384806872614849761845764814039612824183148108707296698911875590252711870540132861899649842268377776602048478555988474580278454391640242338574881489067841580086399030250410740104215336828013714165554104971601300111461355427497576046842684935456061553296334749176836244351558196679010871337238188238381717820370167384613066828275448698683740186540626958815038770234462250336808271530045675185057843567760081301670296888608700273383977851045411416525969853994059029824014582153921493569022095794982763896030084985359962007366938925360898847147965313611230498010730271140928766100199546297231593945651461842438636828723132798597485925128591525605467009091631648717880038954258646536361555524619146287539531476293909399900168036362269365000065158929593042701066493431620832827265560319083280288704143644500798098321927897316900342081789191099383797077124763310792396709963796667187611835734449349872193692653370171867024406147162963550611051749933026921491218947506022512140592889087917625266022499903037069656361393791761263645652528320948685385236707630547014594072732811098081683145593134590798958689597551287357036727081350452070213937061737863516515084693861596685110859862153478434633881611783923609490109744698319709939689574018419343424722261708308811889004629851335233968218063282105085410474296582814427319044379641387640034433029115343875315998776073769458721132682882370472293501446945363330801414453604788924937535452144752638675966346119599358413226728645941225188931902386212713405660664010978460780608237510967644370944118746331909094806728320276697827510143746678696966870416925111111303317243642807891957121684924472378804128009883760060624396971517477866605729847201367765284652971397364225419110038041480270288775663362762078095466633693877147185324981987812313391171260254139496433250273094209242952408493820792954319814872159615686201384844476387295956422410023557699106785102286347819178620840060935331319688490197223424027810506414192898244259095569966358151276929024715104768164986605906491648451231720297409724180046717149736973118464693647389577207180783191499931244979283200537656242600167109272891276201608441108177833436007610918899590269375755170577023055179285077434025062133071308026617271980666974502141894634276463456957396213468218093251233473471766341580754486375436027103037941503130977799689169269786312426593887889846743184740857361689504366404259261466502700533248637210053981062299232526846479878292774115356954497345254087478843212398884958929454226256850521540413836006082273011540922419115592839526004907580156048399082440526989063331623539879712597543469437963441481614124536475858179557838154584765176290127983334411588224411313786840408910861511811273183377464258018816315315165599739184339030239451038230600931845402120607844139384409200533422146970367080573228112947339915999546090075807864316425165325375200863348516161524260556472128212482698703106759563388837853365123036823800855268972143979209730408495909506221309001003557279240805410986522786786374841838372703410400288118276070565888249850590710699647494376522996804702383086692577984689136791227253224662497196346115093308760497594605059345299609422111419403208041837731455600185643938687484171109306747371442145570203161861247596070544449659773048355004660967304810576013386432404010971268497143875820408175187842242149005360906618444946829983674934871574674679777694478755229233337431617872406591358904898425967667645772019189498483477368301068425810959974980713223107619372343578096091231519050144547782428074070012859706659247050041713462613083082493496926055473451309441876876835487642183346000376455150491086412074736108298663846579449233559508252709846161405837771611676455507605498816173231296839864854482922496644783489854945807307005930572231951524121959127330923905952517703151023502294671590872189649097825330377203424832271657955245782505807667796518803110021534699227286891180592524221752355323641109007909675755054817653423762058796378722614484770986338872131947185934893290727354824674583153591651827131489017828094689229224418378309878088392494155783390910916127642287701225095862055709557929242231550364004720662309788934200448451557823140305269007758430680773854085949351944269980688514427223058306104462600462110517901898922546148798045392464594512031554141462721177349948091191468244594200389852557119573972199984713765603336932685463102264469980454518927759256783569254848754604497359582034514865149532887119300982250979205146400913488196141080706757976574607060489538017376209059444232036803827315454894303833075965884541478588548781341556360653308472306880969437020587189582496996650873659588237535388266208945626644144620763984947893131213918505251938066763353327120177130486713509172777066072955541186286053941713994067533011082130438611637918752263460637715973856953721245264661651678306909829210388058890709251563979549408629574617195445922889847951517031321539096826240293053269124553188031438596577413333928247553322216831914736302610084610139352692636576451635118604031310312834573892690072685938086255766364773558076389241455590857524527374600932690692632100100345239586520986001462871179012969572166489454708308800154980278343260035123067113206839518056028687235059373817115137889382638456292565764441748631046472443410083279635727482166839968458691145011888433918493275218143766084336580650605501025616902572432903847991826744333185846744599481177345503194181988109871912731379360669831680802676040060017547745345902663341732215545085800564457440751789900531191836231926858163140918977952223833300502791926862443778851963799108737420118472761184376583156977127863480807204901107636782236022448461435661477713505208794754907721238799897779789321025714766567573117693503998307511946186474865511162045712114755429605200765262093804064006556472411669564538058916295756648116341464996090415344215650873522891077456512935874927576987547284161635713739399788266258367481986778875376001761155920157118151213433801774814252956885584024492311683415470549056303812178639489154128315206819192680200510865549883503565208393852257345437650594157571641954460636495727294658350982554504834789725856649342912668355305652773856892991837630764740916323987637460368471280721312661420395134632983787912574098648540101851979987089242365640240443128912119723117868719962749810405054949109153215085699155840555604912294575008328618520772236181303401356151612971013500410146304044702390511808383398933825311744470577496935971176922713884830754344235007757365490698597344911681450154087605294170542361002185830601022613617583936351430175961774628717514426362052002959912846795141788180589836742021027657857907458672284584413018999914893709875104418901903794108071202375680575230406490696259238274978426568459125521426039101029770913927073144768289993308305483900609117106394484440444887014838169035472782056737527977037493439389920478776977462439795745939042934341081995043035084001881576550380064935062722720027563519662048015547480363145053079096759862807318464875763255240897565281734428905127629100040001793472315742252973197892955285486679802607253773160894934510414039557815683715445446520430453765762435283770910125619546961125890281050350810559387016891379506786022667564198498046395448890727168637687605201777229153108652326553594171042545605842013669289743670773735093238187767550696312870970238643760175072111530962722239772675926849285660675219344790372934927007920057617774247337728832862566140763424917468153181619214252335213835115406805150578052169452495344645493923369276515120839699718513715787326385893005538515141469914875119860976430703028140109286130846394116128658947940361707161829327241955479948170289191560056127786258024822880099189741936344003784545145381235807175922943152979043286829994418734829143450050764679835934012304633587002490979665662057425567481235154798625409813511443954601848257200106900923541573615750769829337703731862833464615251234751178517874440041534357165259443758213157436625537293660489874198677470660838606563601827675418017959303518980264245926733768599721211489458148632485907353339451060506637525866845302323517905480873195231615306365046776808944205638602175413364631815141745267290551305844894085279141421755667928212168389394768621684341823672415490247777162463374666407486333327250267058713922609877891588269641779835715143093983378048157843599482404301821239990012666776638186443036712895754910755499635343097263528387061360940623109318079539972046839167352354240768810107314023926465692767620974562269740654836876564740140900056930350261485307923647535991587003890034178117809309017687970304436797336230281992599715281740340653403187318302150713826666485175177892605927060280947428150579906401596588779983895254942151370623360298815378674676262969316272788227954389734299232128831937081881248432643371813669828769009476092275121460612040337043066117857060860720258628556718241739497677329599358828124245335909514310451298130081831468759602562913714368440466952068395935647571213284121321537542023616001434110780523357718309389334263869673996779001470866506333356989758341299942350078061227375821418515118916635140623106335202325873932696050275094182584077685742527331587011639733431863574989200348728946249469299092692463312763265227628362013159520382289755342572588325145458852945355073011656474068550794787373763389590911113862224835143172986587043170801940454834667640740793472734979318401307861138289206395245564510137973583737220579439647827115137476735749059198830182917658807533682488178982139452295168262365081818249482837819071112787261906974422605262218784521652902152601172942710430613290119468042658623052544304464748327351941100895831526359052334362369186410572939748269492772484134395109223483693709721723373908252415125138777192199003324923495215640028606341486267650832044633973140644324239491952188532068515150640323112595148796540284825379752361623729581203419526439844271782712831138996052375019280177221591083889326755820857813300854501688718494606948444140140321114355042051226361040056757420724336634868228205471789154545375894338314619584332009740139068547358974458963577423789999343865810776086837559505910900009277556588433682656791535853457945871598458895364209022100828330551565412435568345361328047971731661024185454402848270195197098987152289149873333011221568856233532764062109526344484972901945018810883185036254134623127370364496732503030498305340481159924678469078495687345498404478321290647650917614165233338555140069539120139890617219472668384545558300654325638687317953051462323183451653648446845899274779477349046789453359913081507267468398905936270369138686714449537687810920823846268677456201609581048679907631607009181486485982407843695602946826420914341232825361247454550659526958136054416928850944690321497190040121556244050421642194078745604625368133418313626582132622108446163325610210371577493420775646036707792442474126696070276250076854843294887854519919621097978379140254685271937168551551732132643444244974022034323949805554601699290263910132573906576674544995217172282963507315547459632245375603286670744571192136767962325465322728225554280654977616068271647728630408546914063924205455933628226590427064413386958677727266200574734543336447136145536070306267929476658649511367739168877863321515635272781915949887842516266444238312180782232960783211148505925044673073945673509705037539501370058537519466817492417663732830502044554288223588715889463647500309525589140806826915092375988990866982684950965720523120703257836903569306619909051757441814994555266526871177228341720035583082762074976386870530723422759069635083937201692028693970573969300989895010034090885446243648588426767692602613506630513198462139866104996521307909994922103217086906069096645107151151917234236401395713123276724015204530388919975724228756110551278585893607446485634669422980277383787039040716944557266752003840631419723793956022453029020822130707450560721009829620302277635646622230346058406594576568598597717145602761228948579778565954426191393493134653556271208200821895538449415338950617308970403560669180306838315644115783640637129112224645046488160471313820309727935771279678293235578953496023389268988833327459856769149005496334206218230324466330831120441170886692375416514332398078699514136876385697824943642842788042338356005740704295471540123524937615910860021516804611693892564533087757576287213159860052033657350662161277105530690776079447215880251518058780838784047076322815375634468159659369637154549478137151267452077699782152305817593122337471882433061712332622731864005748740595679875578760596909040727273569383880852209636481024393905966028632874790971799259611330768894266144280070764999147510049108277029428154572141945196300072361501172085950666537581416695183427019105186245486539818690065029408875047119714560522679341970253853260185459427299028608148685009421034916600965696280945748890188865426820122971575791134890794502928550515227463388675575686368393163170243668857633749909726670823264623138833001816494493846598519005989653289484418997838736622314895057160776711338557524215386905083301603474140039771635283168482756701007630037914359904098775255063737552994758600586443624300021835802966177665170273242648452464739634837021400131727387809645001295947526528370804937344392459442985071123127252909950278256201228672276747939060228267599479327395048325295315938570518003403189990301516330294006135467268287656287260535153740953202632459124092656904703438810771669526014834146338454273746627064122207532663821051644754434726441954041257690411262634297533002009431924943001932130946511762225422608832015630355496449583726036320155747273911238951261852663761261718428754664719514742801617824597557695479621551931491286870782254284975199813266554213221232337555091251431580191309315447407014249936394995860768923542325561855737846005265158839128955533672445036524182117174926114142446275300073243055113257426149324813591019089946759024948490065527879195664941160663101814002686317249625508867729189309895285488031981209125446142125449401537005671110895853139732549871676098167086424795318134287526427879009466660882536363428703636203757328605670492233203103788973573343951822426966929784984539548502578071932063496043469909920815103015706736588109108468575870307245994951088447379826194685548873251528360967751282562649899183564094535636472955366097600438577978387029681017913518888943752669587903691566997612158619541427331136579976596821324801560675395669250825084385700039689279715287611063526115460208547334577466276246712396841488952006917308608857821996393339335395177775086338231243742043646819023843772915074414578609964768237426770434920551794237327263542748049598171334076365568310962332233463896122330260255987272631839349219844531912600418346755313341248573266477968235731832621162901915468488355526536671625755887141892878799652565456619858164238611962612760219068534344804209103399570823935493395959930458110169370909865664400582768229868519051392963748804390243307827670067390590635591232435637539493472166825767216886325431969813172851329721322041360249533528241350780763745738671744142016485484409029205449314617511469132116705511260968882983858215043061136939911483576084719221282260163340645666865958089856595461187999817319313736030007721724730325889511212928132814824135061879314670006723821312527076827217119323578373581237741561304512834839608594906494199485314038176807147637336772864717083591190734813472725301077247519451764819123627358166403455041719198390196678755424666296520079311658034246892342889395698864795144914319205596964728871171933883940304146322838118826104194437135591843064831632999590065745092524852366169629796447773801660390682985094474244972810969985504784344083373330286021586818123009323260115582208024870962197951234970645573144352586401794205322876536381078641808253092746996884771805765766393906978704769863248550855652995165114956693488101098204994024469492638398336408160309825320411840911222635172022528464354719046933857176915718434238256441890212289413299288817443943179945820386225182324176810456282423812634377832934358665501251013920032438486082735166272976478978737140976983717387558558413804951185862229212199980392338305694777533951275154245859038194679406511406718665338991134123089028561191520396645667397066829408993497885383151944491269197061122998553321677351090187538967350843583566677177594746467982358811629844999872629988688893485370474299642899060303162247244262655077745210586080103804184319863200415352018886620864906095430311786534844926390178679507995809365354648316456971281410567850481362258872338770119286766611735424827473342912207670746957473394903961624898389352723096070599005977563724204237721784465907921922344659244405341027780929850394662601590418741323408904806103270489051523428211798290518535208466611053321157257173698841667536144183499721316923479566841052837107142206443073023810671830668116781912418536707273929352746924477002061521735312923497285215559828163089105320780342435316411154349386079261314218128949157345442093249364655422477466210082457192561709853732938475349610334231449679708492281494902860707608422853554904690603026280730560865103808090003985792159150543373503294314698207654001522409332176192545858239436195739526596188799839262194277759363249596200271818653314645331884215222595342288199342902311275068056794527913614856042906134256149619781547608442298416236165453646468222662317813534785209170412965430723172404417950916336227644918686837782701553070699434296392437967217973788922610777362195215151479622126790485885203374848333064810852307937565944917150946461163672085409000144159671517123806834027590178356212209128494842898475596691324421922473211647482187085691015374049599788187175615204927891699094100352931659861109957668699656341156638777469652528732516872150274487899456724984974335572613237791458847649515767631338404769407988998273990321135066860389533641124105239041018244814701651421216149133821042037731686180482662265015176786889565278600241341457917399852647687503287068310112820973877750893804266763208704070110549270122948634725758753155149499921770670814082079533181272463408419873926446671440192804630155617685719217234821898757267156577520771505690220558145280671118380995760326350217635927048288651030651616294420988309395461541619018976450939009641285799083961964073233818211322562432529620473589572641379683354947145759022900616556935041556698550437689142638281173911654169752508811139039279647738402760143415255247554823232776102131247438812013655450905624376969688595583788292659045262481850364033399351966449075803015410476235868104484246117399764493547355292221605086199750493016471794966722320537170518570401536083496471406205885375035794750957552220744077982683527406911883616205120541636803152018274245084137838602723972964924488426041274290683659009685846529885425693689659111135155066860285206464206901395207882915466672753249318960149537504908289035216487806592639793031237542569736450022262876267436506575629116520041866175700231710852214225501286154759556903771629437210828818526691456363513886280926642614334592297962394749395379806593715605390952005183221245095457725169455887651598762680242945438849837387341142025175308247180867653513190899122357061326807477740435675763058429438203057797745433344206513519063909942947615555369656849144242262790082953829187058863084958743618179853695710248009007853301833113679954678655765198380617388032316721441509036102870617931595027790166077295371344348128462175208279618225783722341736071766886480966524412269454634111693910188311160762097682550785550735374447884730605256202010568208237692663917761792811355300670250704074144369383436839888348305202762088222774953910254426607159134197483007133637238416730000775028890110348782882109976683162609143247554498235829564084776260464221948812542704439450464474765733720499989180324279908337860622573390600792538904410133474647590356898080112628184934563713330419926560010617110918565339237329162956550774909600814011039744609309640608883489865082498553519357293299006073264621252487255265932470071208159882437139108453161298104508013761863384923126704795961935794068381126985839253528181125766939370660772131344727608591010158549615265458920659321657641159957139172147124430192566761142467506303922409923786737290577497462089737398169030778357825262706639576178413604129449931397610370727347266202332975569090030527753147107756507617365671056613687195409242706208462448595229685964888855555753861614845815381734514780354294914801641540984124833882196401872227695998945663635598987212194962581250763721232643965816284116322078857983588656281234856097964255066225051445512241968343659766632451159783189814527295633187929148540095328198237142556219107042611087843380957961116881733167752108930985730604663344729534147329284309980186218879278039008204639634687816312780600963043643439973370885483223556870950178450661923576686543922523112252981236966332289733032175557599863229963387099257563329096459990778872370293146362458250798610781576852457739298555250083715072510406924226825382428942196666570985856828103660069485429091078220062869290834174501207618099140457238614923045311887570932321590498687138463178989301383039905086742134675067961436131253551487374630146378121889610365913271529568376539749291552910874115861573640502227576958499061665209289686497437196058832692198817728716135035185488136002882845946256628936486864749563735253089604251523718350050072012125813642521457964131394399332567718286761654228151679396786110536425520306500859887636248699658978051860431564584971709415644673028529762542100504893205350903075041304133547297587376936566844217739794301793396561050281197219612757102800734072164081952642254329023185064401206630343240234464148412787588941415425064995056890690227900651861561289113481445893086554169214799066756975920534209172298644062500827093967589304426313070086627872083782280604822213145268253045430412394869685222755219220732430526861163853321510933213717830358455607282432751613725926030276220569124036830919231549290933740639376422896472122674523383276496854502912886710438652863677842207211880508288173871731842131542410065504238522168817347451307606863408672261912176393232444533412139802521638263287577294397961307114446055498401967952064448466016217581991316206775387346431685112502848222910340848738362346611516979592525340761618038231345639825704871520287534911876645803364190689578062566049847776242484166797867685736250910435815819974141655315602476012153764116142657387565148025779598406878582687578575462596347570050295670977258519019970655179490122311673354029169649296817533298161292576631413858134799930705138034745285546034962313003941496711304159125138571230616806899268487185776985240945327622170619799123400629380063356920812685850041444830858884170296535768157493824990490466736246159853634021713774140950494172541447668826268013130142356660349316756261658890171041005672656013239451740071356512413510288878027512225935470086320668166283767301973601272499737195866245253287108202165183995002049855584222233376028259556992252263710013829992421386895702864807173727551587841003826033255432250115961736931048471929259174939274595472625659116027334217491682288247449916612650275654960503075817638126608417886616319262529754742052676891533219352652957346071402662120785654247018673197878045924451590562411093448759458678372001856028642481042914502534868912876051873268131862465558748865046406404748569113996187721400519111359222372449335576693037343088700285983262779172707981225777426120062849567421751277026112538431851536523208218307923292454089515925591350630906410115542800848475308925747000608515457401150937614487355985068608009785979110294517257435430615309957182038976564881407691862494042017504011457962570181315826550571168354423612831492109506487501228004053528776240126307510673389579289115223469464495532375652763104820498974456252537099289973245956336118106436064530688429515844503543503579769878602087885706462326791093316336354471247119154246269878767741722341760798591783173939263725542041300011242820253326915579525103987597277054025347945438055794564855896623250720384459340006887646939285153787360338556120775894241602647765793659539890433878272694816911309622303992055927441062644630263826012516903303927075839440492928212385391697278001957661601090244876809089223724089553913376234070229136471782507717248336583200184877682892430748689722604357429360369484748664499140263510665024886339930115262217671012587201112584516077661722168817888948138281848221494630354902294951309608464133161595709989602394502985899828198855714386065656501796756876247058528710524459440986238114378977536605935122867711456408564226584228107172978637076076880750994954063100289683024551650038618098668076099356219295177466526709707381450992636252992986449052367432111161851956918613543217783382945771315709614511820974008571614105272354938636124146238483172275028275609575967668518112302328501768820456503987319262616448466482893561743111971786622584546643382524105011792750766099743531153425809914620313059379152950644898794595715473645545117098449942313787335796215662343749810410923204542646670735620209738166675149679847334618787211377522841402471910975224266039271380889175402283712114525905870695106153074291227876940807521216654362156995463283858437240732878969985213609050603318852546383850517017104761528219143956212508177377753802198280257196661337247954728471693092129993964277710801024755835833137431159779923710020402876749183991257965843586082132074942073976083507469060130356464451593881873908018355901942621004668632594301910812197344289392508456942558862290484818669543334266011810652774089530379168992445884356610637057417492332021089094112290004138330754107057943968703090057276709697186143925253237664540932782555184927845303633731467962288193415113802344572311962337550263457882373413058759251526986881165583156276861593818889412442024436020215682895849681632939157156507253076313910331530383213896315855002788697281172694975264635678088822724595754881216309048011428002870586645833441822581410123462841548386565846380909737145466110163563053364648324937363289251608903957163650479719327601060092277878787245534183831793705271333818620712583764434801757148439755983447273293139334124339400762944484527727119399653828936612383941020893502693868804962075078736333623467958265524491896222306734844413129516540883756565372032684709207589395279747471487120568029118864426762315940624954525656111770644297772014513027732892734482388252480151666546700389327708719740587027635209538578975107334718786545560850597227843344419179087487412358478809455434493724609342120906364654673848439437760343307516754218493768679822723724293142682080606821952910671979632865885381161862500771362575540310101766616498676882729085472367619368969385426781001558712864070747043911380862691784692273364331327577378553769416781237331824659237799299417982957070730093203555186171721538515517472692305264348386613220741345217668941119083982211224021244887815090557230578853214532289695472602207344878408530439384834703800855688935771479604433247136063312439448449544286202660388264631197039310900395970644888703865896556525457598079383681943395697235079146160979116479998272686802468045377462829255970471126268925600866706682626461585243938910732321698834806170053169661017246470377309236455316444565769856684797744078540591565870715753096207883095677847053438983800230696887636275871283923284279606170010576663612583624067317678515655126592507696678687847085598836887057686959465068921083957484965913572529725611137243808451210611957488162750623809096873921388486675360575072673240287109905559226799876756070637713878006931176392111153142446347068875119364940583886700201101564479445110079540905869609532244717856478124377563736704664781314866109409122003905297058187647235592359625793182766712979310271556991102336030195282718683105740504634805255328874868483298585609256259405309276858210704504836740213824838563339466616273088175054036227718892296494552824287991123607594851175527611717406974254936562762934652020689665202834701814904841567543329882664872352467972198817687258219588225103140772944509354394808291037193078473363019890767866162478804656558195323311614945187336893881634983173164978689439039486385696331351869138515346053474707141378610347942831382695858398655236058005265268163264727932487485005888856749878750248751895858467123358054413842950835806411513122429484448742176495486938126714044509634522520503346714606646856694357958977962035937787575529484436795910995030735738051367686050771315220177805245474668036423617017508492132126179499113546647632426434327968873411101652175635742497039181217267126917808945328201623244455231133959271326395687410218857436428054417820802843713856974252846028175677129131767840849967058150482862121783520801665078243133264344391754450511977883531507828999459327185918922237859743928716391913563295678980828492988961057816676373308178642017937193172858870117579650770043462761787123490464494345586245108695633103038078792058864954997041598436429370330022819068236327694808590438962338752254445799976822487660368327500072889805256960811576004068023325421251984559814197607749795501986630680475532326583243528447146351282809139801511185440780839058419653032405294377194632842293465281683802194370259747560342433136362067016752767619234403829806963355480815722251537518049693117636374689977170278445398404692301353540959523727175656719659916732141767550185563610443488337761406555796621703260484257907031653738849394593936073246850909668053052840452071700538511976606093037821116168765844491348980292669842546470869381421466332155211387190262436615368801713287340936792162601180373253663808841852931038553353288458730490177014098279884333573910011653914308979321626630877238822796687758180813614495962964396744208715713047806712960465609813402708269976424576079128870622012940411139940461976208270936472455410708684827488518091114505451011204735111943073473664484314601579956378678662367017893293166016576263177891925666858382008738062374746991889710121224458336499544537101936230229974621006014741626428315355681914840655846584067715905110777206202781701878452120980955829987632611017123831741832386181010721460478673145467158922202232433572441909499488085871464508384246756496070459140232987677660919512138644072180983801807699960426659224051310444658868751762581111198772774609184053015330415486425866135429758214132501615772192998191090373055979766389486884012012710984898736834793118014583519348376388036392859603930986205663298308001229830724014130511466196359070841323274727556790634839133568239530132234488107755155068629546474178250646665650805832141129173579544678802973487301433962947662596026167157605068067816923883958831525815667380169170324521914788432032380797961606073965423587249453169986512914945267063632397008622786243167336882459183536613841384052056896014907114699679460689372270631090719465499837460671344225495688081529357072411979507924716858850502824230309335795839249851657379786891982952579286736067748980469719233612599049016552822407010751550074759958290120218269154869750324023459109929967041633509228882610161344202340486167939015686705468661812059947079662107114344839324002893811679526375189009698320524751787421697057882295178645645025140614465137119026723858798816348658934077827026790738610449688561568664271123099700660138311193511370611655070843767066790171872724913673098527865564317701657717382993596096903679025815512553485230185041200979372167154188131426437375404264728191952490479897805725448599205119675022498427803586743358702466732639021614723276506606984634391740082838435366023724927075308912567741706155687753712531118191427628158604801290924770168237817125203720415056264736218379981462203982274238037300856766247668947912625739107329262598732499244995863849283538331581651924287129482753122994575237865873538456689326757232110037831318404942747584094142697418444484132609507125063777347289156252943610424320572651690996116880316263136833279395657435772806111416317020574976052352834908562498197066066681015999524753207294631874447112374817158748876303711224494106231372966873059936452639431732976610580436383450837671588862190733518255536692329759839131886410752719506273460175233595595614115113165059054621767381022060402126442788369926359445264818161478675036253053467295571030517826905236518357624213062654904575189860681478999150263286209594764469769899153847214527366053219368280570038596194375929443471485554877607426202534213997299799889618318232034495598454010866325344685765171159323076460855352821099105623276147140076208471210896124247448960744565663926851532013990737272984257296816434531236013019250649980737342950136584135162294756588165038502646573242427248326120676985761474494185831321152240950684993202962554579504455597445833782126223074615054617868782193791625947038971589881903073328458869204809926049650074682852221115464727531682084124638103897836579996052823064525313255588604161183402141215793933842276784175777420606096178849696365022552167720032794598320517486427307796714627968220252495903950501514726709795516978611183431448383192789097047288517924318427316101010163027604631047418721724528781019738834908553364115230305549900330887449298111632241513518492951497872410962270368205804593895871249463763578492333070731188987889943740824769780196705326529749189654745614994486332269390135964150784341281450155999816450211879785804460979687915388955969241398453094292815765466922271709038439708728683760123534966196557528370711779850127734152177564069862858690071701191780924648331793100246696395707810333801316810055704696522268279191363156378024421332058122535359529633977421635791293093308614536613541369879700368130068035911510404628252716815404996403227828828617708322493293866903202109493471479934240899953835515514841537765525677812085412611204994054202589523789493515428045906922150061668877752795086708516832728514427311356192820901972118501297182140391423715490681000205939358388369320888578270330592742108828605370989272621845123011943137070766313261905436170261600153501527486940917502158155410800801680482767060288425972247198177182742524233488271469033861681199259766597511857496386218123223638325677247809435243802095261939950478582405942044763448114076696464725293070720709544135343195449002880349141368711743262446776026951874229461337145758276461005293396460083830643366634469064494022990193410923854077303828805222560004753416611977619106284133543347812495046504198515832648457006201361465862534781085915350431340608738803388402165627602021312354951849343118828426676643108862172965392879948749862326705890158297234736429659374657308385874145983961897500854942689439976573241336742596781115088713111436596262297964784845560925823357223717735356961169528706491597956722482605183775187581136115698938026381074367146974025831777563401232414947912353423385493058469637859880032561768601827127826938783795456371275648010109473094666353796920001977101484402215024365620152399790476489935989945139741836228377160577690476781352234986359258969739022638866905385765677553530657122916493082296512809502105801139507994048309242155749409360330500881436319564741031383420985466363831656254799277135866599596833835640762101856431921723126637221570928537786815835459589606612352169729729704169691211927848849921373954957440404212393179031168461631559742985320574359225063104638394125539310267633685225597848692759773163142800313566442770157944701287506309123097469004518962791444922025806529411616607780056873449212945955986818846565124986216468958116329438534683538078801282834406322607009590318539457688370535418275081819411021673546117512627845063331476733579401288555357770885159602514312892846510046735814964587406701618105626438912640201620909923666312457993460471229161445235816487896294937594965465300152840428615841171263534797060636220644011346776072861546190367623429300408961369188334099882508870033771294712080341841195706978895404040894144320979149965298451828903191650583688165191246548152181419204772993676643372732438272644940708226760007468739860784116705783970911678267530571001559176408057068860489610727578448433588105496023049928702230854648434146473817893540106103253651519179203130821540179957385229171659354115600435861283233316140235549508919760828218346602568067118674091212544416875406838095931319704328909121970963876074612941260787358194625090974058398901217281900966147135009590511398364331069349100819693287685472632824270629329964911751931063176571803076749923713462362358580460898149596694285398327045959546361285849187406101101562588829268772341445679154949424731692255212768266840655928662113576972835684035001718329556570895177514976899984664333237378255195848867612849020182155037946608105489401271779166959163531935711218800630621900462691257127140987364380897340481459416012175231064874562720196532417840746478343270356195170962445058844643756457082950624845570783358220906190368432338630740662149241092433599536236991137394724634434991795659511966329533111075398828013714667266633356544559616194933144749218863776155813936714166578051372232397050108578991242225814420070972546443381124808077870751924214502532028512475856478287987178927709009048067425780931211513652337391855714086386022664920339553382888536465051567852405249721969561221406352288751091048202042473469552998027975437760857810692687717162184070496970301190415049125248392362620283897874040368067753162307109111026890536455099551164188669171314158162276798339025573806318646437647648478172979523594448593092519878447954732535748088251781020415094983643569847873706437826805594112890959640081116669804839783745101363459466889656164009004504296518948060517028749402690291208661966036728228535245337626492843113536819664422743955198451007646484569467711035634316115295901346375416677045385133573386858986461386558118556903426148064526109398198439904924747110012543990527427875945813184279585670515030099101720523040037034703970269138533893947101580008197946301610024524992196793983368022392784479377479442252220865662786294459542769660021752831657777639434380891979927599172419124064237355704585290725240464645127867653561688435340410901405024361745844091209221342839665061871567151361635781510495190679969813508538194385920364876374462761354788664589021007063945552723132063044779007862067119264324624771011159893525209798253411064542541243518536573784173280092386134877653307992239161428313675812739718387420021992155251072410961063709631497505608678732108542626101532675656787402073373447118548616833089503111836645486160851632620139509561656069269132321192559313804670557133560348869548356742280138694698582003742194355903665568475324775374771754234885195590108080627853917646100988174225333360396962341021446863677613410954315450307076017318165393818774175217199209909699305105465770042969880874841496544615322316158217147443094207082985387841175579253881617398123261209906559377232905183591335067327084344957635486893530660704668340015552460358308887799814283809234107178537594206369889936381849870566182429259251664458490866453516907405538612902154794579775723923437208110477881538684713747021444255817097881949703711029997320912087042171821543177164544031456783667761660243572816507722466664129830162698230005759486487077455532024034459609358656246588225260754611859849101853851855173542504226931553184214891751360178227696204485102880331458583725577238050423382111501291349969255345475880142044809926353326244018886338867133125635899401050426825862939159447291929341342973557641133786944214434180950348764558905664134464275664101971367342195688216348053437644940520271172748331496187551863026527766775132707256521832302843589110635165629566375943216919877227714820095545924751322889482990488949170345476385940717881713545316245409540058794681233946174720035888080383567153338275316295604731912173031911398906169064997470971612537490117202934486972757251511094433503863709613465858294748792166593390991497573143936482001342178791319309287618743469053496448825389115671080081638467321655312951229502016499040116991837482949527772959176095006300958140653877633550410379435545440460292987836713095382799713089096234035096278984924580911537634710158400529603235058537616798557221868393285121617837703476268818494784134166539677511800314370010937392085141211168640162123871939705288688853383405053468535718960069727910653448211407513597107115150868684999847040925463258799306522811698058111832005551932468777849732041940480114177539196695972726142503187591933304921538121332651107331695853982627985004830433363237715870365302512329073799044359220283382043379326210906907555345846980113898699742037207551367515763736135079914702078490380061505400531594719368810779808596429478726375553242371176104566517618653869553256608948752884135970430781184611329650774038924914287611607032084345138113217128781629224957743593694025877597984979469951080813261006892538724483243686493466143941901491407667893268247838661874078673714359105731948668755362802407708858772486054187164221235419250055863538084431944482234817172245318207833177628852285785801650392700148981151732864751521485087428481443857684160874932046746307838529170881869876506476829041360004282094575484023261270536143966933440340141842024519453772605383979605677299186273904134366443756649962716052412292779815443193675611367063053453111718224928543607064474628298882215732157418124536408363683863320712002111883172840839031118192104918372600708259574850520906867473750521361397137867407013895542463543783154837373657511951172641995425801057799395700193627257269436409585010163577368306691432020675973395930790015705881211260645486904263953181568722527831145515059297486502763349963617978365106041285318114276142084235422357846084363353065729876337809722195110094643798025358850528456601583957304589703920565132396082946640182758989907297631081612023763603949508405737893614878091279691273663614503185497692944911373664819350086788924732255605203752059843056534999650316006179548966320202888075198062384411582716912107537977943351782795580881876098020536842089419318334550008299418511434550782896665749636664117277684631976330071727726376560372678515824865943892484316201895780508347770809780087821400966358401795971050620035129396293672572673701991691563909183328377038667412642073815522674236336988452434151966384011556141756949495256754322804212042935857125025640517340928770512862396706419147329527275262381247743196760838290804010191138519303512562479346050848201585205955277907114606109885522573862144646469863219936615432524444585926180096599942310287922054980268156583413533346574101240025357375829216312008897408306455648569327185042371952024051489717836232208127176278137339301952778881980169549025347207663286240946791885369636631239568658644075094121525676187700770486757442630295867966290276701032325179067247436524168913071264306850834161852917378379692577230458398915555676674259456316517932140930730997007705599404736033551843257220378104317215048416718269663158499941156192266151743456352763425040175118929274791387486329111484272358205191433977195917791025435108217941031501396686116754999814018104620411351219360696472255269166096487858267983645039146996070342007985179917138805148859458177767047607914519563007101822783063931116177176672532291731329847331756166204160876088228699635433238935783702961416715827155540955751218895974114337875665598296197989219522693110972493536112930862648408035989752322827031490556176456791731199120299224356908635522145720644947756356401980157118034244407245449243004793980874486221035037651746980963834968326601362883487100079631260574843463212746350161425285543844383802032699319993187356391773206493856089605756053181812680556359941270466627568294549818557950276139944082108259332909062093587636079023685897154289478235228697010142692746515240913287251004268730270925534462007242173672115056773830266059133142041924733406812201024142750754387644942443138986671928241035773729291658911191887939523174602025929901222952771910615697242198071669122432786315305873903573252071802714251964375785089848030899556505601603185919175215895035204699234888102876678866141061941408693291394183693518949135621740278778430263817947780022650473098819053743713623183056410926800977648688643141260376672288104159453716050933944042642215139606228338686536941816547318379510504668618640802474740458596051798243422807113648356697166656287838231016190965407489449250138811471937983107884908795589570341591556801423347029011171583198331007660351425962632534453577745217484938498460969131056732716621549593173775153640152023672643463238683875448704607193773301950693745185598254114889803005739111050938956967906609243154850086588568158796773943183132120680341900302895555089017839559059980591561635823990457482164035299107039355964754963906602831211200433116595592465843333356835353493445761459643419313210421227893485414273727530986950977538634874925333897163497598312505211774273859275247923337182435447732133478255048162117745866468565603558667842717608642917875914961509773171944557767819148126738044616934950970588761077741832070093269720455264579643403228182631030868656719384979649222163089144862462308687528553895901420386051582807603175659588510761090513275931548771282459214120443872124885279340621516970728168381631594267480932829361812259586105827982589083881749185130989619697831150644808011855891522418463812149314930192636611609549738665359462255766903652423912837523028353121182169045033759834100049244121790494708190283998183423780546922677925975629388453846369201770960272076845209412717996990900201545432240369844194853565764311524847359197843658947771511845280027401923266468758227634971956250715721360884669121457292421366765450238615284574523601391323446584077569676195361449444372555455852385949326313218805604482149314527179444786580497331826768373513810406680758085471896647613374253015666945425515006943568821281081195707034694479572519342241876614299832808550938497665932080745910353420693235763964294572757801542984882849436925994785319561358063228266144663039261104204447675304868138011211728131520826463822151638522579102446714360966309870538900342587651752587978089061150763634865067426165052084586378329719472974226052125589458731236182709209927816005915894326463039772205503179669580467527042765059868567912127222586340718671877449199571666861382785867458941190909893975928047329443349658511080573956264327530517355101407249810478595638126339631397708735460128051792213003625009979391120581038662980080658251702493740404753961385167358783536506307957742423606999647496330595591387015450031582890605280734193052041519689125869784536186741228274146646560476283571643792876881739818893203938221267538794950148128533455299038469264352274451500912282488556328133072234046852462092640343269114335720342708207582922480579677474803313993301039037830350588175291183906654116231673246963919919892922865926521872075259461901814907311590030634214882165547925507597391230147038237689514501530689026354929063515911716569925260080086199265171284826518333371116009469831706998906865414900255566908038116773356267661003841530616183598460908279517536665858420721884858704715132851011980852688910594801067732151002955140805483489609238555117816320855866477971282606847820401140755647828479482250989390548774707464121943140536243479023720014136570234232405595393997381129602739780355387009999879745972648652527064832415054819804429818649372069558119856614681790068741121869162305194812403138986300791998854469803474381022815022966330208419800979056935898797294795235752186163848060475986239757392208279740612742359896601141994275031846739724660884423917313060636275692132574382777617110783628809109532160389428407095285609022325613168036627169968462251495387197014519024205241056418243851442180114897497039044457214595053432643052488962959832020957354570151780152186022076730537221978102322555124305545700080015673376790957876660274097985895005853666499864264471757078511486838704767721712031478263945108608165089110498249758316604857751912438929389231031205779505445933931515700659617979000492650365545296944105217273547837818478789137157591807860531084242342831738659005789498587056213340111851336201761787060655330372771550758872641717570240502542917890991320622747579547093925020656677760680054967363537044068602596174958604788160956721072490286411695132728514932780415584954452303263881364516692037348991534775551415916801526945778116856810892957760875612853780327235579232097575181471621967025869159022256167845598782059294254918997717387059918528133002930195915797299824534017738333262882308871285807490797008378985394395473065772160716058698365994044481148217935313985375965060754492992838246379796365642907874947857702544971696904719752142708092446498301839226212076180671307117081080264680929071570171764356343389696080767902861308353343903880893061013480284946295635058326917891198410582414054534542554189064789896095702420341702759446028255725504769416472956991415798673615826294219744091351722603359959087326856181682016465540475268744452566603268695576835617209043132990772028313198233937858267630108769371097627840127580004396620109489328317879595520482087563545435145573332494744757435758173288252958034523338091348401238085575609573381725348919852768839786398757029645211190119496535038574601665031864493860036538294241005458324763139715730749452011355023315877260709328343740233575269358399662719740440835510524322303938348030221653039589812224111929566911295651098551190237055561554109736078014946180249535353867241909702104760337294645028894031719618916954031829873616878836232696328931595446538595126555949481772675018641635453391585703686310960339045975176267447917790854647235697425022904425276775947532368497393994510021984455951419758719256807146909621487475643213321471717719143924674270181557157390405451841911697440184825629166997352350207957723332538559067358884038359118292103197985913253764722354192150406255594349512352905366842509947122514294381527316609760457978842438364562247039495696171138362756143143780872102624699356885669594107814238096515347148070147909911825935844669455149160210130165605153505399206652869752689602776693301041454710755299046836104310793721942514959307515068279907202417016223813680992594578363112060052298397342984452249689104711813167828174222969481327284968251458530204996222918046553166317167147965060810263563568102089260120758016613628837263970454703356235651137088692483403005942089009552152698369899409951468004280482137836312172145144769418100497805058929441514531932838940938231906755622376098914925309114759728598500394007368952308331699004490359198555432483018164479809510457467180355730780120784481752488798475093899187499789716770013994763266466797349363304134301963702117471781433009732302974077764948773217610908074367971941083017825080059391447996958440882722566562093934723441672720871609640085767806382655809198259823333285381117374741641516354583924965899605336467584640911522234801869697876690839893252074127285551804668117141940938123700730695187095207908721917975746658282217180362759538440678936172644303122050794094910082830181091702075875871528419161677397056413096279949092327536637538674989417221797826474556145282325326978127885732957268890818675618265985411870003314356527620191603834436290429148639467965071655275859305944259149210063503182225945443011283017641513307367997944949991612118843142964071985713026902030310601092627750461959796061822429288060310305554359149653431516240361996453298249208054930325210807185330078595117728469553174196969160467249380193806554347776409631508782773889049161817007638496534698686284696299488897457781850670677745015234606483730641951994013320194743637744417385783139955524542222387559022134183414375626339058314837511759811792250048426486445567190181678505810786073934171970958429207598638102084881727507177762733865851753620925237422062005593352775553600358796898678066984540912150421308961395581767655521018641391069972892538760360265171265611370528249987858857930652906887751621989148499312504678966261548782276939917818062032298292083738679547890517285519736967610195045670050984888223029866395648273208727722814863663368593401737962609003186345588794852695447925341275153103649093321221503577883896532949000384936472249192997175579111914494892568889286641254841340987814592636561839744721461210518450584812716953644256677547640165355126381282102484828115008048038491371957928847962173854025889971111295033542384017119049381535767132731999633736401345946010126661721843543907865512854811257881251477861931177145418438321356085244251206128248799725923689494540266457616254547249159026991759151644634483092583063969972244969670044212599230891351719630329369650137480162416661177206455076681830770459616123221748317919022633081813868395867518051127189676163399108621367836786999272710225581753682604181209392893868038853331250296927053759438506979396063384983857824018419852366218023340510912282189271343570007320239996313196221372552997195471353718833903236138800330282587840526098632386327141984317162606550272893985636369633204310747007785051184809115296801437351556423024180628926562985878394623270432279075621279513419829060278563351852938179706648533002172554073455590091788874418884627272588642690133579723601356188865915771408269401621773206379178794678968097016063606897492229609530329105783196081023178815101749760228866918694508156821468488852045774971854294762002826682235359421326131593163767547236286084984591857535460084977155789411911270076269712269794022884159820285052308810446686108685004778851181127338877242026011132785690454032613392869290264597550041045170640469831143733670915595892301740092183438981751249594843341372303706060612126597526401616735044772898134320441038769038579786620640787423001669315034879393930418030244859019516426388006975034154978823855888928744754050072380614848641367074356671760149837680158786158704871015384934648102696251587660126064562590634074079607730766008287584184185753081882486528959521368142875772565046522592403467390482951600279591753898928106214075228139407897404545707656872243223971186842092831046894532210985514763311790158647972464100468911353095849043064933438704222057742920555228648338023513268684649599758350263577629497486992651705291244001528353787324136707228447437771573514854602066967350087050329691043881704485442499241024323587934612530043809937727205949402861313563185817595365997839654857377343839114993227294737389463742269794231624827392555942707979698158718804977437860929526507820107490585968071188383307982901000706278957996278171584785788499204463782895974309679459130739726733157777648457470681154205631350585618745827751409099087883124888339724182908240265556324295455675010920580350054578047891573088870505200035514101418314070941739898583895064844552687187691781109537014895486093755704896850651752364056140630127183365439880887999905721377116993935000300643902799256425088429152166555898714870555088155759103942394042300630215624655619359295599214850563231363862387896216269315015183074944732465116876859840293821370593478054692088182880813428216516074316335677629291758466101441740894686662833626475136156204802725829494712383870270499195652862016354115016123426687984963065820180633187436332296650065145992212287061164273552173763544051892812733782822802596584947320703414356970379985379030748550011637488877907476203952812048131994207557130307894814049140669289751593660888363587600625217635139920168553684358053978718679384791079411203800696432848131087431409362266657110173534192179987454357924288202010908916968528993745820998558098010545799427612860836198832748819770399250144182013781713692424652268998733202062163941447157980771528713325805753407780376409364770663608335114410448599575085116139573372515212009099622310543427215962234002238550877254246739654538437154189992649440431478798116298606120439954844540393408914150964701321881128712550460484377234242463590950807257379278954021685004939944027705910680140486103732874854221839305852111126935123095439730884890168942387778197382652253920482253858789881236721624160847151688925037421611612636267244193724186768841344230250283045318259058228503197549643305945258208797341746988033119557867511891623899685708388346533612696201532873788336401379082110119980338578584877405478824587088695278526799007941970689974040620451746826849719357581316938832425968895609679093057076539256573915555700721683920539338417671151891752938363643289776303975868969773867666052649879628813297862917029077088799074826934043679933340171875161322361500390864467420811448702584266114054935296363680298168369485834878960217704437174496485768488463430386805291241727793746929139069134665302288196017204862837638292626772578688518004419799276297702258057240571198573096231327897473894616117386622122525293754408837746161426388170482528083302382662350406676347647680961979061125892961610226758419848717789355943564086094530583737580040664836791370703263936504097204615934500652827243852743424859284093209047140923367866832702899726919017701662942308732821829958258473866427541405678623889480129705245157181014471505515454006688347216676233327986118326951294283846895792926617164318352988707214206644677725300376947993283698928743831413265245178049661803447936672855320866525095298172334876759688161649844763472610970202625773358097726734818665775821390728937822894962385975087559098817749057235581171616251607295224909066427766610251791512434632114639664782556257060667843543820895054871052102854188899191480911977772409724178080593460664071733446118507999588115944118693397557756243201601633615526023360576166238295384401874293070873988155274195977249430362291122637520119684431971843745676912586528767913970898585935639562835739615525094366489071891968909537165982742261329232739855683905041889144119054815054247540240981971510638789443879658587981418671455264254148812519317569350914797289939560140297980563296138640847464273602932942533128729572883680834456580859529290596472969464431759256719776852338861494417085940855840663644951317529473033764053533706897642747643721430859201240602061087461131945446395000105729373708329601277890613444183822011649070715030678948321883812237707261222335302948437299217788032994205664233255541101546270584065694579305204608679165698361038396793797350275385405500599858817429272385129633372342033024512490952801898440278927838279440018071185251571121878451617619539896017357713166310275041973285103683601067742320308026106859214214955656271843153754814329304997830040378915011952043772218849316388124110479106315823526770412035147335059968310893672136452661421845502987188075587844736224498851979922150895518107229714058328771021754968693495656301404976311750869545157341884454835012991645812314412029925377235244622569913515778319300410434654954502998395045134663822910742632394993393804481173822371778803895710296395467494580865645626433101391514904157202582898169953142943264501647754093588691296419794605683595013137412810099832510837968788056094526928218975735264311467221777462134436766123846342348640672576774126219571603558426395556787749411075843256174753661612213122704396847798555043791626379950858089587801288532147566559163596456146144543833804717231077324412943156960360815434268661974266125111623496286755976694213813289328028355786649195022129977454305204888667735329423209236273351323932789909249151976663640874603584205940346792429436227718176769121881479912941684383086514518136066881908582707131236333724639316024754660533962752367546801603209452264608355947833536525790792275612982387943704709011888722596104211287559768669668647053377593209356342542132686164974209254893621777548453553690670177487742532694840645776829115123619996386758261818379400929654606168679388636233009920458727922609348043394603770086415339447541891741639643241375991254087855504215909225010043623377529037465082698798487248099095139786746237540381750044951465802669023863725197461794704918534048455431521603400181785363893932321845017036071478919835808907556956495786702287678071794240430833845880350811643358813017459743912384528037771429469116680230994096818996818041320515582614920250836827875822680812818250886944779830808138023432779076360232691628542991548785215462071304154836246483811363837270643036855127027140455718585857649320286931254556001976782285829417977594777773269041858734864826080219319513953546356364703667575138554132979447083597959605573446351110628176189454182632546707155946204287509717008739888148696376815561934936575768255282722372519193080328938560195807604692183933064051708697747174157828640251347204465782367618403397614557866488798967656584145494712236271942360511621551349654211784028018173694332997090036483556467002456778727364348412701993531977323443464468078068620129443903708070476736088286330477361980985503851593960530277170010449931390003468413820414812823462190628800581363787697191035628612916869760891610027923735291250445940000597554540586415063724048163102299563207617209671156781507254607686401049161243433964714092121325868040399853377837443578059370097016023244980610240303569143058633356386192946116971092403981435284213006881650930682379468610712690868979472841597932541354164361196971036168628860259707176448968515594784102776362210970875875061681756611124986714181957615011278756148267461061673565228108540739144235667454314067013674682245943307817999507690665408487608398872035250226680653148844897515078295930864775397227780266811832983770032246087608845899959680680952036258775920839141360894894813553072852704743933157149371998078842430319857464598352775217234302080773473824387458208897742801242731200697350391578963172347696708966167542645994233075903532781355183386025553815726891843515030148059078239380584972669498475869724798318358547609638162800532311708615866676057093128711397025662706990438551404220157411807342585688948470135435747497509249239006795025298488516898746368588779564255587617438099989772680437613222687942347310667365493556887514845552379080323852790688355338302444878946493397122340982535493858882467035875365719370316592367940643796561236075352586784574146358418305440851385555744760946100603102904177595239636030245550845451888059449448686475339141205044211269668991592949136413401040680664680960192939882292373980791350462727687582678495295200239427884375005154812131175882730044334208856946765355583541487863972901762478870300653675146195753949316485846792708542350493271947493853450005917423118866311991250652319804604661688331919052974618050418614095432506428091365065701955165399242931462855199944854688627368243204557195292945891073163203307913402617776642035744590870680463753117388962470912950010719052297063798085144601666580638543934748406230987973673996288675304336073110660991537640093988897223717069842669005897437521151208502105177486656738275149700440804907782618614967465779179198477788737685709389912285996229043582265720956119812925062812874307738477436112763084204276772079892155364828055088601758363673472422513755929882127586992061212838555924231438181804242654883422936674186293274150506817232854396331217288136277536434770811499497309646352950724820974088828122879087680146276967628709894806688129441184413380199568129007640430581029738070468162783605115167895841161703080437337766464715745213668909657047476942027586696793722888307885086339889611721268176627539980962310758962669345262544683598504598954872760317061563630904566700281200511514166123391760976514836995798235143999394693894016942410953483928955456216215231513565203304687423398279817069861907478827229739487840719140560215672325970179555831098293150918494452537030016728197055916890954432855307831140786388307701614873735352276469115196031043434363696843829543817247926795222057124989467128936891329120224240759675809590828564445102771885121095564545983388807774666931716441303490629384483993922652508172437806425212479593265867605777744774763773091995054633239863140718889240101321994455391171986252100848364573973545296702301042706607410540511167326445988059831719161273335056124354742993370574199976255186467253569213167301859097783672246446674519534291025802275704212279365233407663720662920554888839763745450222430903715430508792049445917885869240351716161558744520095526222505994678820705336049271184557930595409525867054026551269668547845716013882124119146431967515627174190334734671286361418546330073895427765381556639167796415335505590804807395325885996129268694541540209998892840939177636138351340515569906904615157774482832482274145484008136485299891442336016194148123049869623147390164789971317149098553487424414171827249615970835140500118989802685107776706536651992106372448281740942959620582317490488591175828888470001093106463805671186003978036960927286709271003961827318281286028101382172328188959291527614652254463857572571709531498612597934705216629827841186425276129317488369447167741009052890521427999877961530011510007317805030785006727394361977042327241333388014000060030612644910671137918215283623905881940955716336859208733697231554545791577485460245328551893829052583377586738471000431610812684569312257711332637378851551900252116898958013513172450570057196247427866979182161680216027271131493754356590249990407234548695523389524488190359188635053806260653785268214187178571644710476414129390293564148875074138704490106335084065508212207852303812656183239854020115289498648762637811513407059118997274669217703976098311432293328625798972121995353583717154032813739166235083076346865317381508534365624288649082389959013663816346228401166292832461174860429557810026943057570178447413007852317005342676587327919190536517745513475030042628629369546760884798619485895862769864523346083666274587069948050183877737374861919712988833507060872305790653994151971387143331633031089007830840427682846358092181801946256451167608385726419345792981687403374188574771103278387295777530091493376872383448685315647420570110389080676540707407386540779065907697036860239559432394194941711448833035592015056554657978821415419200980561095889663289418316289392492452648022892642844987887119666032782038065762650307883863799466586402740673824575517946142434687699670619280532306121584265167392419844028242751061042728338332670964722792382497881024862566483274521507972570924596571542502739563061549770034112804079876664931336259796733434604410490898602678458233640359557094297667108524907753030171328836448743387797464205192488857264946786796590357130838505261923288750229970883774502141419048796901320349726159116632074701071519219557583902619141436183283970891415579373335891378238697933204638773722821382318700254136998837897747715656252907638635320822608583854090271162952088310392700650599396947641053260433332433353170164782783835178503968278810022736912839899266284659628222099594757730616364148732325337357476282314038270516966616641204211028082722863080174394196589190480256732641423100149142848023081925845823229217729292942513993699480909404125940345608047001694410024558423794281338347354147535515953292977813349940720233588521068291519550806512174029671951531577903872803560845951293771516874582135091221652078058989106856989520812891830466403109504647575233543489408317791051912567887453474010017006065095098107899190904535670474353275739160025874781509458861131808031130319728343126078568162020473758612482239567551368206393555488742937076067979298006886697647281246697004512303003751422331371745959371155129476901704433051651341512684306459955008029480579750038813833905035950803965432935334750124424033329470678255160877723813581331429709931986824605775111906797428309037535929479611766669687312256761379686177467536989062379419849199706044387693305690187555197303551392980829836774099116915011326371204539720158713427092428407312729162320198350885582706918323636545252733231420444525447810339458463345970329763711305595138318099576907004967517343644211997318057505044777028147040758816968468270284338660852588956835804846864824119987692747004906659382221683298417817307313675875313480644496556008630705153732200554854888902580018679416256086662686804152578852925302829180356298143022538698895231490456473145756585379328378087065361571605259751216125453831220347314998196888413290394699818650289435509862066348670839736689166031980585326454216018812135549632612163697491452727765210810648404383502419322460390269245239576172220724615948794920966300385750794536978706189250115393274670524479839343076423845818622174210076355532804357772764748156212322428149803166931921344059134742265546334460787963158210436471455832428276100390445843109729947046105664743807711298143235495588653910204734031122395995052737882896121445914746518917404543086491691898720062333526589689321523769428199498842630903289045205916496536775308529992026018801154337048699099948387277013649345802550126256485276619055467112673735424309830468008047315372100733229583998985054151745972636383259108998611918974371528765554628876137628866945818462426601893096812738888399688870488524368955080999109723747525461381580044448176941517384602134481624634256534966622898969966379648140061071775007759838479812820639963971704996721861869537212110282647311663474712431746588230596170821830042515979845323406236519980890189816440525952247083631294619925711053772806144089660154997445123197930077561425170157402225487164010993810371395986153815012491930694956203183851545828750825421897808511056599568327403807461637338055056774996515018331598000644918767914672913982453875416684862937149727621664473868269226680900500461815341069821331858865341645093708674010460546785448878663170119584405004004174319232303595595313931449059577981424454776920006189713619749324328515406708308795231982627379656250165315877721487368221410813980977707852651131757098332354390912224019724337817228445014423383425826949710650280543390033747388216345891258775575930878160106089798813165726103668638649732375628000373288779331081601883487449304958534958982892389499972315597579044114131246902642242283925806112217964100753895144216866712943704553207459432171331363435324159167771363580625240355424607990587540840908319619492055529951076786668423213941859124759138969981853776179349088750743243728443172985419888123177852445464181652135875415787129618289668413595346059733702451188612356972372484795620851967110245278848427841349125161228642031411358662507414467970754560595717349690136059669691722566207399007862300141430878020655924517090856439654703380359408695350877361735620605423120979913792550605241682284201632103638530716035608650168888410957685355114716444375679900975212939402928198571946219781471668939513650136051846975355524181120413081044175593990344128012607356875627894118850302978994326045320611702043450780141188693832785109928046713675530821313898688450899730613207571437244051167712215426141029973600055008423092826707588381522986257228378355108909259307808982729866587053102795737781515208674109937945753563340463848442600234666376258886279675712783972600042700632761272151760249942737900130338762732209629258414541888042662429414323782747507870377086868732526921511197250024622924530383011116498646977675441449092038454634818151325083992977247137252097028698245758679254413804348843188775948435833849049265392857808563635912500030933068909351918596939644411031138339587197681302321704464498351038875443113170268407521529995749690007687168676349167577410643989947937854193540376595069631934324929392289608489735131590983499381968016199723814349622392096318717758560813223243335598814749857492642387551851030715011151142495756605076343019194010973581779514890901672421253146660258211407695756175515370980127719307433214680875036384086331873787225858157031745506071850352574498316029944420678743956319178824368373293219767514010433138616839704879118503438829558832996934379903839022372931990872783335016400571983787669908874886173413695046641190965333752412052802778009023618217344528550162381748624710921671900169826453892122212340683696342413195826205549061625291214698007552565719209012133693949637136930431665217341793644775994918344829612899189563299245089576250165165874785944001101426487445974353709549244048925746394700446587337732618226810223490576598705671845627634942157702476090821394212758439651816241016835495724680467322233812763884465984255772364700945365758422142381254338136177292064185258837669836144456950525736553723045671759509790938213748345349313765471837011596039740651388521592521598007468130809673901224827888450684172799054811324803626677986614141273271813352415333666126066984559411838609068837099921506188513940363737597252826456583305796488429346541901487746122906144184174180115035908776116693144601788361648380097210440930010371987579533243358369161903397846338699737856303559379236210882894947994051364831228603330695166884014891091613855096262729840356811898599158774657899612497842344780630208520269375261912503298198618545054025843195919621093551293042783019649901256165513323194726789833252406142636701253790858854543282658936066272734432118169121268900913834010463840291776029919300815790463707223995041091902593318431026324773431575809566514329277322314273055949231614156394472828038445185209139362256710776845621279562768660225381938856047855968898466591397091168901646840049399534854194008304411135821486715119644452745110639972620608335217435236879157775553609405458175004190768133086054780199860513789893574279763858888786469474695409423408330808028270901029813667256393638072237813543390069801912788374470183869579655014777980264567065925043160187445728817471789322204988850176742207944567640182580286238190991980658882151667853435134569824376664892887477332488332247620825890714818448781298438501356728920795750733330656837656404859031361901584500532693450443071846277025061581395834024335521670553098734364882914783136632349132162373971170411714857662113761592468989773661200019917094781765065380539548156330863856832780503220859258977898606079736845191346774623230733337959800637010122868753474230059093859259467582265683907291481533004267218884042066166331478729577083983053012559298741505411470531903053639349822817666734949090745974178372557820587368095759157279241307880392222014149497523882262363409627457124578809114169207545671712703772582808208363775299777687336508366522891478888011971058051979684601960342757279806025127069025699363229845437928440009620184642920905327409315602014023522706640546516154611849767906445969097575681406857072209851277875134457368217036884900727208030423082626152346755913823953246607812672350530446306151023299078575991437586718358396086517087023068224860248570254613267981891250860779142475486493392921245923814213873419345326330303825654128202874786992508837139851575082339858889680775929479697647431099848437413892982942875559425249716205439365149254280121605685787935795963522834842983786421276349622185365731234182488673744135914557220662841816242597452579435916429825789050932249598639090627404372347177947293805385687105742892460154410255936143032798921523338931470231648467623707326477354511262766641340896888681351746197309507261953867196130298536726692513479581422982874319032331644262069106951411557925295817339256885820871987715693306263708591410473930038634685836376547084174066519580379600161163885123968567027620742165553110324532247575989780321285914222833180672244830279423992367780739658459989306893106240544183520514252746717388594387015117464760733613439683509185143394487649099273696081491210080499070682248592688778425288257528959266825578095181827630832828533843998803611360367180853223249760343074879036620767899833625283032168497478472720698068025025731680492585565232373661357225190118713752761477410740899934290450823237676251452853334502251196842767163198183179778450795652946267872185202339618585973592075566685257210808046020499915175932096265553598798323013515828708485089066606558242604406179947845663488687099467524867541985642318746535752436360835264818511891355588907957902489001151048667124534945881025557194843948274554298839867741551796593712374222008237548518737317841351075621355078427994896722432848687035860135748030070023846958735493797607525026890824922661652358110485179185474697106678108492387533827014761541940298319670471764312130953726548761037513761247901548768490080364217537517400251938616380499955310816805456016009709010125051767932296456720379037952620424560313761670843988879843001797847870632818560437216147410772613494991155331636252168213212938761867547524831685518900155254375430317291878381430036979958176758070313310322419881975521368759510066059134476371728398241969552070581427485323496461337630865720106192415605439353548604267539655856714124350737024371115700117595159234023063886857007418057611157429534980970641539940386579793694661027743593090531909176322966639866775429101008804085291553051104061506135708142341151880069334687054735444390280320700359697159975661426400228552943216851457768546832767088172597275479790425010912291744688726486949231477769597102987338817667844169853042499238471558451396894643664579846053840794922380887600780778987541949785957706865683484582220756834495756212520618537151692346538377657728982536441629494748129877715029816940453195668045155212902269688478333486696502467815880178193984990198658819768548768397868408536157053033464640316820605770364675510946781541616657271189107408078476693551619360864917864818900425471216657676219854433547909517955310538592820531124646606386739701722513917948576872876664629463362602594076021136099366893814672283393029064784855156203353717840295850269669600902514748682869645621194467103037580317819725155896628233569991213844442953832511766653995325631002582412131248335677876810963370810076538609494767827576322389330588723911024749681865647546814824732987083612142549373736885767834278101296833993460203555501038351190285239602031949958244283359392262814336995412266394517379480115369837783624100288379928560498545905394791150876885375972825247699824351073533387644331102959311733381869870962617596342061854374015302722485324789318842824284133294536297800299082054937594991920553971674348379509588605570242816258194441866195049757111424157462563134262251732656033993168412056587282481083818772794602780607099396729048488686393031123494475046491944338023418782673246687579560289671687087608246487828657152590507321103731170796563123496483372819869375410033495760089533013904581378100792525494182244648489316482913808841987398181068183866408745003084744255455697372760247395742388365628571283580501066007354963453202949127874132044890793168370170301665507885767564017791849653298063814700268918453719534046128280841016541612999200339940793575966534280379621212554299263141169619082796513535482384015088867754657531643995514907696136972373627716900444216225325458872064285978375886940021891353310219636171015584675413523168776108338151150598511127909321959145046861850446587525691737863436594382025651543814204482830107449926870715613071658285987883165976801279459242582043498414001117416664631144780616770272466535813907011334879294439930406409370903970512918186964688522244756856760930653372663033455730909283001457643722428857998550081415986883794710085147244169564581752733031320604167478450066941020192424450469678956409410257229740434688898657183439131607257412468366513708101650152993714509326427493215743898031813345163818713873483401476790315518543411531984487995126187968747266477384891250271572376829863707786725728437953449762214775445450461013536544593331914765343494294795215472871554827288957307366239394642980109133817596287362980885843456413603969902627938897339460753215088751999527155191024135833321649623949464318070994574596461391443235371978862031441923334614384023048975769094246419584766201568141843697427766567280203958659054181827969994925509684086870607134144182665727759527467834219029413866101801047742230404781413006792546130350530764090656620720350622070111116844385028678504759349374870895506587120368443679739153317019968892725667342414500046163193590734339202464328169610292414766170819614468672264381112375207002270113775872099672606709975691600644406705445807024400464425773163571428970159401420942533494586358937362230266869875636837040778067235734650182249101173041487768583201503213223151460544536290526945894682577449201574733404261304176429218883272811066339499065142540548485349961962403889766082723017839874618457365050859289514796807328701974640691387284771784208827492822383716395987466255312537105616328645713844445084593838502354610521419065311585401832591013593417396874224146582092014342571515091560299461121624296949481412941852279657436891372943448208929668723825492440360160532500136245224333698981348847143635772102609050840858883309979421181293752483975887146763152032751319998765095911614188640555840785583599625094642627537188606789493951458912304511035147168494851494494318576616885516495261067376693746357396770607922827504427401154515204315332539554757881057662248193522915607761080634463222910789045844505839414484205618077226332986080776295405423640277503121154817589330131341288019328022152498816343664139691732831439236396472712320628696607599743943761865926462645914296519810120430013085538742927101661697335131511034955992439515670205602262651759852565466464110360621443759634055343656758583026020126353765202561916996479352506139944770558490947320108219461261493775349107788789076373413702510178959681151420501974118014243687497068937460386917862374219602137440837758915038974965747730590335692209031888289988704433512478061480356779927783253556794845251588135506843860569802355902838821913311846386179690772451596570085015537341910564733514242970204533509455083911662994574085638937049999952479507021259289719040935809111667525309971579275737531379993549014114826399351911885175491110713737060291589762481460799535441462501356939593720441893235101684411256621892675009757129004105116548906296800883107884205614394265179625561199769574175614417117875325497795631394959928728591029460759109511178934901900492546982834810055592695990291501556339503601220848104252997433391352538872511344772445338961106487103552929756812893841808920289133935629474613819761837768750108320631405710815191464792384675190766623570674756214937542039134347305065355500963646489305711734502815891290504494074817209974518751412183795554035364204453463996325880631528977866490105776672548933313982104933884779100859775508286243051759331838867022698270406968589242336630989237117052372386133895174088667768659391294762930128896167025464007971836370196317811030567810041250820186431646438806049898644799775913975346377500603724347900953866849871775349667742348490029844215731884751745254978007133517685153235595059982783997809155048842007274954121954863146098099957090986193124956006051516340463490443315341227183398807246731502037451236918641876431237994912453845872844904977000177581363781100637930318645732837600467156104951687217764802916793151558560047924019784055508536175859749003248048270191756526110364110120437705543618374840522783561019460060645661681841779432757251164055702975325643967399289178965457177628218547421359146645093381439351273422577451065550308561033325936130271951930299808511895513639776544033956534542173160863023451560246324963157520474417072473521945901941639244818545442628887063630803754684346732754551029013623072715073583501984202809197687849756727697243733262763283609837764971392632846461045672176568257758138262301118202565334546078091065132955333365990034494882853107017935621103769904043557256062629541879349474077876424991588855833518664226765901727853888354594219720821023076837596576299176892730195916100219133915413977343841915283355536384229468112144149829581759595642547677538626072295857900742831030662507793328012007167983049562561131197175424186516134144500419516707647172910148851986969251759228469749590109083342298930939651780448256410177965582724351639500836915892958451242554233817616017896927073566675504846056765339738601210190251709730909614080885071105833603743983782989145686422975057436743628806934804549756194036756575076473924051745168263957070987866120752645153986292561569236822422504762171326613840020729917337908106186983708976352947927746537297214817872364491776227088590415353451135759371966503628337332350219312637992225549812683688700875173729035724516110945023409753037168183183780426448019153145591546412830369002902059487671805105962593533590869774170395462457139648572568737441305367212664694009825466730896436381037787312745960336362067354036297872827735354830297653110590518554215205806662804458116016780580244183803714086307042835523454281061810788978155542461437199441152180095550826676721650626222087868612641149437910220535624698901217341080728872455353253013757877121358033983502137767408852448438587806289827787533284874972616655847182645084201842798040385228166578995977297229801643210608051088584566623915349935054429088738264528547463183297609840466161355169493363031419019680536107783111131279821640262839408322862888522372278420750508513753248317911867571401772745929850120384059162614718331080060780375748405662027413176677678358277617927416352536258086793301718303503676899568752952824678684367134886748815259963568863301305692873689925723655080315449037163475429320870322994933170718160519936648338395528412586852370360466831030955023297167913748447625635090514304861122634911246095486707535579779597090207876373375699738955880179963068778355180226999061081965805101459733974419984400950269303760359836551860157166414308831968774526246037721132087116234297501281201304021497831974963999557031047012077647064314953073835005022260729717300664262691641129531016830921684296778036048430136386023261916021923908287115279735685262326206022651791596904121021582464547763799845536430943979203940226368966011772452184261339374873390141417280761837663097643461256872398635619589638233041308837791623319136118321268110425726136989483303135149693663928646453282328179766088020521069561925037512551071228261935597443610719589945596494402007899644390705981219601224011876260738633594250348295532435621762668158099514121354727482447302030345543399867852285542882757454862154974619590392382067971235043295045735695176977062838611460465931390853518149339325936400951837575462867963341333098112923783267996874414371866498497267119300379000774544178295248549142128046203857953180672615317087478876491428729959822546917978550319322759700003720530463394289737471441418566192685170610487513183735387946636013325926733007837500697968948194219979940767221484191938462103151164804785455580747376815979979354312322034562748320281333098235255169384361158276666726545739500082018328305361538869076765923082260246068969101107904304589684944378082231517713846470575646361370755882298164372667414574924185387087054130055285107264079842542464631529633641059225290208892426442357110450107489931823664413923610627411889119247033200031025833788399485980212131533451312808762206851856115728370123637547478923146181997116943892718580817213391190398760734963365272127029721604443116758031495434103266625412496404081499138675994444853915337541371581223692391257817854726003787583187301794920135132493678308694611191711053561688358183632545183170698690372969200558227945609758631365962933687671351918712857307721842542336999884044770948246492492288632517769435624264935370275902565515708793206292397055143619517764640632794852175738880134112158231600986237685367483421238507374286564160078480039394856063254522398096731789334822648521134730542668913256799651031030034092801887538574666103711187888576600755658666661314152111812116400348828102382468488322686528377985227453215106500436209677696605022704496384808044046362211847864564618427953916040125500880082773309938992243202396904667431109344124139417679584719033149032546885188877558903739942764900528116248111596398094452285989531512168656811458673176298847694700566534316388593297661097854227094249741860038103650940300701819435235459723960057949134694773442914580337561360370669525071066991270075567944598703833306758115066086894964446450203578025189155129371451126922480756213792521564598542920211047127643110467162279127158654655873025724658675280889052955584179489490620971628517322227745613543547197452544695170238073144635813255724307962850592263853657042008333003382364836040142592486286258524437232296564424328614868634447740021550433276788749979755613373479030946568337226317663472313256133864587295685449756795470616228863454158382726039114597346484325799155107587027814696644212841905726394321516475347329522959971818087405481631323188954162923613643518364577915659040671894842552951554514792957601200846728176738440362237688512935666229408034982897440171529249992824997207366303835562571291920723952076149662075042650590358386023346148513672807137913537812447019079191224992920226357364997362197303441421490068272287008270155194392637603735593839265202698936448993354544893642120492638137324471133998930423395724250561463819549585536137158034501735232233104264726512113049603382855461950950523980248094737204603549683630088035382417474553248688648694962798012976077114003309045455544069484893724514656027227896288621888352240578257058137966479037187441332767120425646352266202751817378496062347020769253589593320538096498147029316345219092178876081189258386400299407028953475193359833606226310064616781819422171326971177897172500004186292357519062198444230566973548908671422287998834612588233534738703287450992097431189264856942511506322729240190625601175977667351549667801116488743273193825907157373710044661288514489612680001461635912269969407999920067191517098142475010904639021471276205180204002380166158082215816080648705985873558386570556443475170132235267082470037334603134424026897418307431246006917412789761227316000529378581706415957504498894518207780875551603268636970364440986676266494098446650302841258309681413587479379612829475033310644926167523930055214441001079489496135143495203798193916701433753996982702143565721674829694051108983610689509464526688625663055256774128915797055504719368101280354137719682471459735815790156360664582346557872826140689015363616605493851203006121238219960475006310882798297777324479306821606195984847838808802246603079658551041525061977555708876838225488296873098860119244996624306724351412788233692285952599138420153566274369581777639313501082756600641373017014146108508326651831211029527083861827177681644660716195334801103165611372539743392054856809210030791198658466793695289151957320001313528081615865927313170996057504216177369271602444795703333526006545565480324927168663279704436983751495226651265405592135639683903289893743681700264467505819799877649769122992007856134052808615097285261794022029934925624049578820583657933667506926778425768798434596530247910663659099864698683731329198932023231092990923981794173734282696210027600510540180435356658351090279731690503189298578702792954372892389211349611762807369194158652489292927969466384730161269315052829505671979127279429936908593829624666372385495787794083298160519573980057789124376103259043168669030243983306931094313389389344432013381777556042416308905590955604212305139244443943143221238022867815289678506660623067704657101490620705029980821520266813529333695651146127168803182953090818469604440262776597215793783113004277890673432727996936209045155652056742762922662573464197414190146170836998371615046907382329940012888717934089631797396311828177763316368088909949478280032331880204899999072670298544918944109760796994430180816642534801399573551162133560993118949659337855738467529818892554813030986473602290220244424515510969232286883119068328309708748699011713806475557194314981105145958987425149094925508078093308670898343311841871103551293719018221233086306772113522685822588769953187822392681535814761763785438620214831549633181069909054744381699279173654426685024403563283855455496076307578324626721225683330909306316704667728025763844916069785570771542251251926612638572710478953461114246055885268803449533060407019264250868276381003678827023380805770018068931950809022119153789997817742295805778124188156976832959336182146859913945170414878775750651573264842420470978578738528752936619556329986943097635766775635088994304327806516956569794142033683441725155241739308625707768143715588415360909964009561011169314898088517011328865772738096763425883703908406899980582828314860046149313382983697840004898130153398755008963961007149469478231037115015109894835797953264723054370876217286161172231895108051131098146113544574565899213884872323297125763739846780645929003025965022127744216309357962401743911612777446747701792011325092512453223075192433807416747198679911540479059240169839182403791841235066261998750774152174994368888921776824894942025875171653703986959094251762032201376746336341974426710211314334666286293941528097513648939245085430251006409704313901297066256896449735201494548625363220587255100204340939201422761705677581286901985979458100232108909263695981327305718880585581732488680250018811539978334644904906835062478872838850347487515896146643854591722845359581579648389417206414899681306209401605008896390947045326447318143387603340417901593720917882683545980355014485281619846716059198373735949376769076501623625651678390163267751152944990760524669406187663457519545807752605204991365754642599803515776717957840955576640987171650335941463742721197477259555830015560057902910838800834194046366241883816048677825883469156619348793636317027267424028219718222391641210774428697931980330528249764688023649888654219338741151484688512625643758459282883942972271114318584366363531198362451096403327370387694899875998282324420167676976497239057616751764293537068502383376544217036018319996444457793121574301139578404965190955461733710512611869851425197327039407663799196601606416616781017133348373325781156061328221965610136519437951099325773318269198089906911319102978483048074642490661340778838285070559314673904780971635585701615114948208460354169472060726930071267262662005235508720040948736701727347574774093101917335027782231180172706806910051877420509144088197611974770110791711377104906208631983273627274702416043228935374823545966369951696016358307018883578713877517728117757318884409797850307208918170676645575258002171599348179372787602267011590607543410169380709893329933642195356486309525544683518264145771054729574086130387190628981242224692270818268027599484412439836792875031441288337256272130032729133531553211683720994483886411874436599526171214029349832589790078352690748372113988722829569799043692835206029638591286410555753549942986299752506563787601335489420588693893783127102554800189060889455020011574069020446406131049578322856800992208818342926219254752799294648016576106448018618043288316112686528575364919656180340908775694826277552579013230923047342505965638035688629758564318197530563398463177519627398683825164316296248729073767514647921271078442372025114981120311808419461058500781518953819151377340563999964964439573629843866839641292846657286365316366508342983398390510727305081177543243262237994016278413318042625896252407271397096799071307754834869473802654047954159124797858064981241742469608874934092536235393794936492860758945987265732779158150601808663180442518581987826918522086820269944278141752506923488789897922463360523130601948007687610943746074729962408687235625885243144640044727034180452340881591385885376589930322558161729197745926097061913550194222576191033691547710343458532040098546661651325059165851561570353344418142512200565122117068973431037186375976425427018388109422626553721531775190760864688960720214303723791134206090902448636124724086362989052942662944891263960390027569419279130027605219938337082162117225428962128178789003229566570534937036377410622678138896888962714866514373301266353053030806196566301031168944729299045047876872625460999105681530026982904793061357388751278527786933590035661610632830651307987290252748547431474005102695603545014192361106117754299914923582569763508116225568770811118180511707958844357820450852321775583546801908041682493757217490141768559342557221952238429047684662588484727781490097360513962547301246279370734348124433265459216130055782905439790704235256560326044793222247476127167631194256260889383954760850931254406269351248981627027436897397972980776112762659710004970383867588122794261575494295904154199526023491986638567802544252417774811303268249638657994877491242777963476473006349412771819434699855734118423518836475083957107179617982601135520994308807595921289930445376186969216048741610189730244020834222840077380111333347533956312089531795903276083722016012934935883525562738082735156417513766751091832259861683902996224859519205712255161241709121487145733999981888980778288501187381032774611360528306977082172000346749902150021156274173473900553088458633638503318584033804585386050036834911891458820423768571396474480677202385820209392961528738069471522722679336306096054494640849677275416513957979500197920270748117265751925951914194232677466170680304719552194002751707653660714210712070703209862765233973735510626007594383470553129584703926356152318763186400560697957162570561351567896701342819077548012575523330334363521740802848624263439666274072560135303196149569921644831923309215841740180811530635803633589223082716949682716679502188831691603390782092609108976557183346289925732566625029899045116268699577012198304891705152921995990851421900436266008421232246382436788085556467164308840874623260923929059789462695041169357193627804700511761150836810030699723252340231287903698283010461750450819532384839834828050960390983739897152832934654231102920097889810200089591902395730078809755245377238154738367410593383534913287124441400230172031181245220919806052296787701350885997971347007616080847706417314336441381738584068588805881109697179360836824873850432324300170165883743046053975863418660331530249809394873928758463193550778198543151257883966742460972870417983119767896692458495279352303246809992408971006322133888298456275458027335352211301711893627055895365129389860300649480466442368390961334717882805883895191507059306314262899702331980125026155993404550142074839341185341850241465738366417014758693388145915309448480124994551047701983594461313746510967319446482505123821896773757428430384570532600503865148225265066476520877969648330227469416043060415847456246649909436973821481628476850941419860268841043400804155110291452033875217532908353527967454277073792445217055156073006976219339094020961702257139836301734092519383244040535932699144913815838125025032048047070464664330793454742479967284942641357388300289247196266512455860932961833565233721501755760416640740081215070445177548554843116522739769177598432601520124044232818136820908397857444435429893254428589680958034343526155204736664082516262705530568739861179459884540152128140352451525710058495572018527017756288501085025988236061274355203828764777584191403331679494837714542578724778040157719264379158089815223472999622507130095380289823779624951255377549470049900917507984526466947953503421555199074096543363670015156688542377419315755728545724993701488324260270533869712575082626635804990215003413905468205523995840341659616089580395918983426806267100375546044448987595700247849662324708024216442627806812927318355387782762651644092106429856608382631569297415908064453974246303972472298938738122612178067039872148680010976604069165521101718662725354835928592626214978995989460919860179091069603024076504838808249597078191474128452695645388919285612073633335110841892232450775408270940615504257054925584375002011736631619229254121653077426261391442336819559374457031225026645352923250594680299705105981572355882403046206103404264342211376164402057511088946660460975031062279997706203918962382931133234048857863634025104975818120143944573855721259892163598152549596103504029979805259528912578745761213163245372507681932646565282456842529543711643667506528093698011623262782878805625170355290092547068842566270362326224980756496214558313805690130102700166023661339849390492923049540760172986476202674041282851473411981375557183045577199406326844197651658761204536159568320176732100731180078432724778019216998482540509016018442548137023938583942660278142579813085427168920334048348916200200866735240936778543320548671477762214407250844685876240767531513119399066501853010323381999374481326879457630792770900503257592207001674721683717664202632565181349147274197041065931272395955700922201239511819852015861434380732734903010574767152030686338340332171820411732401075416160984416999367399823867170203516821505786246778959900477290770301332983563554425735073167600359328982420139801567473505392629831467240739032869026089443358663423452615147943058542657205063788496838398766910441476954386618021853513749831061103918249599628390370562102707916804688837142303680577982591025837675474558623766398052788873376786135652197911102774312738256001523852929761415227335375636079141872364231118372579724885063743544012795153713639355101008309194670682058789765068908379316281277550348733203905858653712051926328246318902118558114420088148939788191677527923969100669554809006060772450587515180387163837712808182828720317181574498549403965950408148478409549361484396478243451704138894266932551407794201845340941268961438277175163939413805792922564045134737287695100871451300837937231512544134041854327884718595724275583844817561299519295773969215265909420269866810079099152075565767026274662903158182692449084397771357221619626728641377595318838994681052722890424365313478744651395661123565366181472559340893790183743453687031064068648155575349927383677756834543112480492091322956320634372325334823778429915277237156798409905250325019768797477360551087853452197168528577645783333805696120167363065969931800148411089907117485092566207165562096730434163958577516954786781094705797932882991070666894416940085557294854936359732636074037002558071139263955840111946698741538664592510574221280436690457165172352029557455548302127148511107855711741300380346563634652420792418820176216478501788651381636107079352954649798935277712947336964637632398236846081274345819005157475827286360839997621651841658713581346263728338015183744213146671820006604667920634649216993415176438859599752723542742337661470585626941101037984290814197359815015094432793765418864475042660419167742428706418494039027223893637106405755974362558465132033970680101013463067057712136457232366714271840780628205832878320185596837489504314450130091083204207671610025579492159968786931776323047568021555906586584293322326370504994061381125393149731253322690525690038452806575900647402581927267829110524384913205113602945782166670724174467183401129394549179579602357373417191851126397419037060898999133474300049210616642773823215566548373752277687094128532490467412605776367186405272855757233186844797205472137761897294558491675821191248026591305840809359302528134945306146736186864310517891120215890597857745383422267133250341072498108407926823178428169896987613300940389348424702927086847819901936131503805815122946186480171405803102404703900955451497131670798353976180893647948531187000200275669905333205708778879406865723373259112896507717334870893255503149676321583488225594449489546040911951391193459393804421788541894595575162870829376274012383335413743589327189215925111170478567854157744241403380706281350636897685549467594128142992417691025191553329274877339890967409249207450893911028775493722674386090070466937446657277200924045029060181151076644188358904794957064535991061412302321612443990774831169040143915877191021908953282750480999759763562388018696546080442850537333537169420171717926838080199339109304546489403906432508556417643169573802542283762381843606564762857088791974651269262845178056486363004068194037656014650122947823682653448803838683582513776788968503945028045311658632266424321534915788556888445078743473403978223833717694314045982564110232607380229431471225458297599442614845894501564618005971786256190490562329128306628216821587494154625191168008756014208210279312351083121800988573322339873057933141903816141832667219730437089788710147000186942623402775752408743726334600512473360975497294801848007492024276954075793402730572395012171288535478584167773812792808653856952383393881035607127429169852733556678721657497150312996682249698105212765454291656837608683719021029693626694540563459253522436372173298054559747063789617620393862646223929357665095082388374577443448355289635837186334786016450034482900905268211175605595052359445652911537813423177689838083634053696337911230966509565722465863878663902848189775185730070542008883463811610905423922338801502881111955322526599315885581222177538145276233875081799231023164829815570053469303980537085304753205621281257105149182614714866846184982419380754530048728139216675415874002954131992019737351204496134239913864924500678556421835188969360927041608654688548528781072864539567837454296081137580307707386188206723552470081047201406218799825976771996520730938603985581304703941052842748383108050355124246349255928005641253694689953195131729492994276105383389688415865935790353617958674792913275594640039014719933464652042661271078634758157841842865099761920395949432048765981393816848401843951392093449355747021904148727759333870294250757692090522344852924313958864763427148489671476663101435143127093888058894877962706535776341855548665996013821940569284434321122057068409025838792002982302912849085515079844555604027142151226839910542577938694830298409987823707542224888243763247043085415925373958085971456884978847673535746096722370477634157315381107910288764487768566853973233785664685453122174145385086627635923417523381360584918026613310392607802479691770707430471837471765409467020562739526718831025531548216533272865457656204888951736760425416609049208378434694330563462549915372232701575448620583058412751544676009099049288468265826632181190226651963617428312746070020923249320417322851958629855935818775389440615642076779710360638225736337825186060590001832690464346853898915756898824068563873458399940973801839666457205034225438175451467424689744260800481575847320647756856010835676951756998767526581236897422551008540408735615813245155191244967724429334733422715611629250364046997794739994276428161912653989855152655005633122328968598041921460102928925411302884011665288858046493565775890100918907582699724192723259258870077114025201743617325437387915164529711907762180022219104596072340845242548218841127555734771793144518289388207439072584883169523558396636157845758698519075376675153776853583809232521757376188074229161415075980118938146481839078478218419059212321883841016968896355412387987618465500092982479582975420722693296019200185927716877110762214217826691990628560503288589215714382465913378374399894662781795684415505162097898686623685702797251769532745138965040440242102031695516853377986211325624225170601809924880110928996308986864617235504772527988484003291433978806260347777406928474022104092826670986139780721294967281141285711331891317316261371754149285036701129853256464555062928327218503312444002408555501044551115638537294120721436109126540746801336747550407333501841175318043074925111369337028305864395002158401520946152574861682546586940142814684523385489584057798092712528702098843503261070471576222842604492639079574291541724959093098764561912867025105387444868960970135884605346349227869605642552673317587680426915852676442166437355819260407193714813510582247980607697274239316807188204659394635385005613620033001592784258544990141992699616442628845342343745929938957011772092743125838156632824227979659652870970662897830815360553470777310210544665064640759461465001484809203930500991319015942312292795258006748183215365650673602602164232423989382114027899567037523774266813586108900840257060977540205859877913233773509718127437234073344169805276666720187243874467004618289625601558834044239565920433969233805695466966641770523972839848085515431931807763142551489026146805984323056044699495023658201511846773661606679323478441265365742490481255265526218342042106409176764848132192137722764490726964064835061862870061490059943581932132938207041312823975012719301344234268850641923599765972320410310299493118887469892735895805128831386686928420663960056937549241781065867752950666354960093081974017848617134153870876772866096922320740468248891695877655884817412417849352295273136847986323421375421948581519316854551366641185645909054832403791997645464544488127503618836608778278148539486203809379860519936656489175718109403855112577621463371904115895866062862342693080177791345858729054814933377790008672004421402793643339232334098780412887916908533402074265609320659066979352165598615824070622366147146480825999588304920254987624481958700574208231167869604578170334076689396056389616452234758074809562252549464486647720359126375237953041729743722895878146441020525101506767526873805570362187218644470235436314353183144952849731297511009424915347476558571846273077420770023616591674810661597682013119882849258114087824951274503433490020021757398680184837897193721519716114372295427995237117433386666128417751032091016134139325814214655434627912442931243976096281057432687727090493338473859346956205984408759040926296564716556891989874543227322487660126108318960087322837640394168806718336139933238663842653017816895589929957303945507939191803592637831380910485695378054646255687180795673233440381387546457087280235573986364310402382718615635819463360898011067115060418208616306594747096998316142227448676892057505569802319728372107884599631599328693468023547219158986793268125975523944459906104965081364185369877430484063122383083352901589712359017478797314365478045127629059095154403501975238876327866570113525236561406419965617536527586295451996240539623959652178073179420159218143644556095244126391836844293213490246818838717697525750496496504309597809168021326875919421689114214288632478018882211641396794117333988110159684393835857905142463240599917548850446112445751804155637061756955025027919164181431846030982765482962655718950507936850579568098531251846670395734553215603949613824181518578909183819133546153729852643870134553768109740915933548649408922627407940000796617693174905569685568900872011868100570679387611986850318509785386262305318292716553895569617997735458661400271579912831877818586261568288102323174174042320118280808883591989226932252361277270847546504367072897034216716124684346735020240048393375983363438262572680671012056222993602188817837525837321461069398102381062797058259184767920657880815256211764954805877671415472276521732572439807239684895144633245325990982461142420575418875160328632119268414824667583298344460079194720858851621336228198882060273152773493630382293897201039337548841032044503124365174039216194508585944044450098364294050985294642190590267498374225556580345037265280267101137358740305957828224201218037160292555924396651109759169132156863211973881804999375260137815505067043238813921448361043582582098527206202261122696818099635924138937452663850316603746363662696296545906586975067136327991273850774442340438856986097891996953059204395151639810009770777891402706656387016229147512339189001468201096402926552673588092007790064558887065060848478085695294994348647592802843459219013509379426870758576513793655002821492041905899200296968705274490820848222240829731414146893054635957189297908802923989773357981955074911006991149566666035060547335496924257216287347991157449874995579496628154854530943975150935508772822638938369924693278238038080615488872132968958879162824180450341563522674401718060743909568566007660372908657213459162298986499323948242524105577994533021806932555066613739926617392048502771031808624954825905941829188562712649352347627619327709375861736773009208690520200582557708906880208797697858558265795423417591138288049534013504768789376263294620549532096166876935285603992421007407223425060783396327274780251329997211726280168436368753097729726804477865094457043653632219078791843906338420490023270350672758175655449016403238346122179509648930907158343403320838666352885719480195724583699978109678203847873580546875718490862637404093906484292753118918380133218998761570286677595759591664775798435427242499950566390885631246275858879419583483875764344906603338860022954441614987539033700234892325207165246992606580989624678049873591920462580742090003602857800580333476738103818309965045403236177179827723357408583608603119910104592516201512101692284059036154339259032397758362765236894392762956855977142051365899567342426562879098589756261753637579375340831683993281285145069647371819639679775727997317853430095425773725499268698038398467560862349318400256196872215082168322179924073424927158467515094827863446588989144029547549185499323763858693503691085253128863001347669948253142822968735466936998150748244153781449252090992641366312442642556422886332534430428062502326341653661078544854792008863236271361248633052534912276911727071068677538058076649985678387792438635263308579058940500143854569330052111609819554799385348005912864538603274050484388673474513187802042989718572149912578143812257400097220300369712673275951829393556230129676622078271691538789528053573940478332065161244991787520750645542577461886067632396755328383777557643994295814529234327676615828543803211073717480666892231959971249535652395214125019308611724491887663952124278954259650588866483545258970303993264099260303557579266143963356751072164076695209466365240039269837146532190981340523802148923193470795131602693191994986967822546005751996252138000898884602918156893633900935425385960763930956913554489404015400865792654384239710614023737118534633024775502010644774806183881871445390718815409013247955836636542191526188616178265165207473704121201943641124225734748842903475262390468128089187619682720043477569609207134926329538118782378480796979249181860559730916613580085347524076160063065336349961921336775649341835225325030320897324296318697262527619205291784669800995936480959104940088327859916964681114516611802389798610881243319048314864825800083782071704672703178427663606372769207126401469394434502689348472664189825390422884290958112479187031384256888135840269214975255096533302781796976308121759574315097081306367532206644231227427153881117172273778276570364941554901880746893568832868899784316612046477512168413182992555225589566437689317631212549474534988984613640442556389340023493633461778608702222180796738800121362105758638940085464534906960087556643623299794344116325997282169039224445228186728653474120356962186892265604331332263261230407408271206015217676164595097111923416134466968693223289544787880463827467343117322387998358369590688940037727877777295435374449455975757950919039043602389892875430969597536038519634877068806085902594914893497895103502880893583570009745160539758331627713411846146107356193500756156892151583910836131681153004391362049210223745957429471004311506865951303689635743135249107198153989082891550498443050031800268905596540364109145132528380568146196072232657216790183567935096029102783319043391210073086013302588389654360297517266184253674085666296404625956840903509321920483286549028737741272710395759898528457278719426722797797822648311925876892708455327858543939487891278023904690289943104652424404578374683504499045421215600553745245786547802329104270552836956332147010641799723284128187301967957366030673833426729401283565097783560978711678928990987830424773618674246092871847125395539804833492870349328163375255573728221768811938531870084164487219224540156908962674116458390710412363790337998926045412371821190008941754016079755723892786709038119220042626136339300398668286998405860718705045051014266910342777000174699523249812830097537846909851087551464997831623900648396322430930325080527799326819519819189051251988825392085564053295221150132650044680965759878003062408596973101876347631103604120376955938494450130744751537739118741362656288028780391429550760148589115214468722570746710808982795448445147825723991981450185021089169122474590784179838591007560331414792930210307297408802436999852030909797174292145514851723301443187265822614100667312846449269477375365203216502687767265550786390664073462193245496253166188082434735025519511872121769562932217260776782975700401442916555231115638332813900850255247394201052779709606768428272443235282997898811272589046581359091921095128959924549562255920333606753762042681222885617035700295652238112095208988539561502790691642132436394350975046332695417543740493092890244063115519182432562453738962949333768878139349569764501272479789139709696387270954403204023249014227402340487990242998799645737338533143205499904817727995824003837091518731030672043463235538892440779223087446107818699774811424797655860179145699566236995633432524719451194233869753858125885162416874130837664508463586778028379019861485852003811930336512347626674219032795513210946543280170051873765346858469264950370045726875274701129988906219286749831911037808382092808514666697104784536723182853485561863823504525657057339021507446345730701948942383272657172604027971152045469988813539158741712706668812955198334604637033287557804060890941373866239520673999020079212319459259466362773025210967571346203908084657061269096347208666807226532422289322558067454409312770307351242986348015127870578276328954525223595734560322117228614472822638020408754112545529463361840873580774564367786307363990454364283153235104113696412344055214830850151023711297926326728604191281974721835888805899267954437425752240494169380419159619995120192984302956366511083305765323177973225696652705147681514979351548093514071867876247856693244676742092399189186769013494296068127700128132084991832524555416649764205405296112260834745327912873147720700073423193973919078755406208213768424036899704347850104329663087574270247502632510787750548373794970631842134103353908296123131612460390990979895375731939570391400294342721911253666803161834528466261927725868135749185316907468340968934839152412820698699583248519733076707284114257077879482654058363012230415805130317083876222044575532697856797819913585746410610961289837391936180541200782775614404132125188110930385427683881373763646715779570261390078269743235344752257147923112841121575640287719883600319581100518868220756353783438077349905160295811059927829871878661963421406144461889752314114656340540613485953421897457882863033006163385735405691256465729856637375201429464788850521449175568561494306583740883918509487086890260875689301519504984926652860213924739727565124231533071077413461906432908216543739386199958073844834150581953245821251824193991173079864996237485636786306524841333938646555572138227917967075666905053843789489049577422847180868391909002216733132705140215421758606239388273484811158607129051009954355395447312993361814521135670886025154766922344482593847035716623535983282473502939213933157178473655784768154659854868071345160764563245506879347936504731459434767609436043564836529624589588771761322509643429005463781211006827967516940200193531292062151061089325189061870576428419286285155744267868184740504662135611105075248193051572042252363963339567107023907943084555980282911519219468215844578996490075077842982050822421526775279113121089705533800146105065530444476497726220142934064364945359129840115951193972090185758644686945678346735698544732315207427953992917828790868523217472858369776727755437664306518112543025371283092618915097254740326480100728046735743365335178228553125351900048285627902519842289737933118929015141324351109996867277532772818140487574953159387058620864873143026595589267463524621110138716332268453252686930690494077353472067114426710459725422052773063356788531471197905704821335742178939925586009755587950204995338176721174899923017087944490920467090634978296229994416845107023750731330340420809459297764389656948675960346431633453268524582671954456496038753656962328491597341669223810531616032077859981479370067161107378092885811880295262683439503613588590311398464992651412235131133995232589541017140034916359155494194329423326110166814404204445643936120630696436457173403587622708490989003847269404262525249508803693807090131408308283742302134214946083701323665768787447036972170354251857978360194151687997802932908996553492865703576398618046836896178285663532200040089573499506248107765472943056044959408711346240327565723975839112428806335754944218933212086698771839665998952984723316243306814902223461860642003306824549949360270924600160529584204960611077282009812048073128913148458185140720761827276817425684206562654979226520884774120457334195754191385778959369468953388005921990583674347680331522337295998811443408860106137680203074932681466647838593933331065589126132143340790854184244009826316944260522736333323566704127347787750947721565505257386119064396885694156106737626564917069751272190584921595476709750740196117816355963929992941088617639090880113027849251709422988177893094306892240969143994688662874343838088589579452847218602910148150788244945724726536176112028652490334481590942375053519518851573078615788077178496536882970799154853157604953706018108752298598734002341962362648467059341333012153065509957886553592161091408064688724976445604547772515017185690960391117267091094332260227828138920215304940035644666485002898498677257556128310936306800159028698683235095902186222760397571472622692941475306454703044682541693954377248930713462202959790066837734781544159421418724568565878330363167169877570615831586608564264045138295674581371785911447405418822431836816750681996470368217550862649561194842775321820336578177935822763037722821474506255100640198918094187532930702629551846285550325358016566455376730229962337620736384671117444279022664178416213772487892754201658573332237008150732110677688158584330760468009564019498854055696511701688895548592768441247603468284926259508914900750524203898382568896335203839603275059928654656205580834164986117421340711169309805130792448315928159433431301692110000646098253670816500498204859234708639029298131202775818864178157763953834810013640267056827966158860466098609909101793090316994729302893760600665191884732486150214169525121910169071728419742492396103525421057151280078700065054814385428042354230958919118989750997759470523945746566051952939036552566095737177248735371267649123798981351237791559686147368596996017202277353638353054811364432798919023075654517548685846037653606444490579233419180724066585154369023601708179030509997753958605354843174753001479560373632853504571928583217502857441926322864827175320296302560143975295932401727188754396885502657241619873223402527615199086935708696448156978777899825531548693306383967568408234829629165094699292495988951490505834345475090623814453524934427743491383400044032888513845017928682125518333097634778837475973245347577523311360530699265877322330683568536655412888029181802366662271774982746083362824079029076475093077693464084763620474848832710863918835816371930598422973716184918488267152260860164356733638802960336209339771916059339339662157235920036511233094233937856381696684299956424462391194664000654507559545882079006436670839921120519826281687161723748082518242006360854196911587913861931807422302387200071886702307886291752318228000134498043258201967954213182354888386911301381935323764552932501974028150772683827374274790792480336522668624606493339640036316189294443606773930147372536030746721022651629783745144286131028744314527193789877538847460495507520261436077061404291600065052763917841892431325810648591411945029660216523476475280788462640520473222243333116132314742089746065974144526492680135515352316108549781833490051404132865706553526140462604140012147057365403431851098344228782100158134919936614960036387234457086486080328318872737858275609917718157918460656639370313048006323978675182509522994109267791274751558526052402741495306636083646763253203672124774723715748719958325313464210885546817058232356149053515225193347947242238969963324932427135996253766258863983176492097521629885589292479691474045259122646886231432517408859923517916762949287002746271381181337160140175307858435065976571770904753590969135281374288849440886405645072497749306383066103537466777959467107905317654097094065347847444426601223555626310795529158521525313635562465081472164913255156652066612944173619590243776545790301360737577048473277636656964006658218130639650326247246395820904383403845432516577122317241997445613919783520457233005052336871715927542260209063515318433523073562745552861505464661494808341493031655872782052420918552912656242852807336609269201015000927750578696202999071805274855972585943063695611800680322619723374518574008505300426025989407019581947489295626550139324324083177711192871367461727135391762134290891006477237623549126492234721907507631918529789507087632147022942117895781701644598938332642420295802561942155905635079457967679505981514026931914357887636582353027545123684870503213083359487941427959643122908425766866921115892854015132835508022766803937071752054071018452349105422061039090962871106028881088336371881862909456942251630812602313282159401112095277107098903904526019325804910536717856719699068927187669285258757993139792604604609022917683009064607346594651765707508286176875635054491860766262054853729432434006736688291698168669648485953638986609617889165052423109912474395842005035325705757954678802658265378449182710712469700146625646485167596182929764109529563068787400446846542320726933665915075554524356824301011315911135225502516416764993694856841602821951909286956717949625720920471884684794261715867779563157310060135477594950146646312933353467744083133986049995768266880029044782203430715986408963840983968039325863174501113648209536596148433803776552604637764624772066214010582552358353057378776639065696213951829316836018293451128568224998633069694279308267826015330297870957972658825614472260645276723392624001097076475498843543398386236012701721681379766223674859159188815037145152758798694684236670852821689666267073564419138812916776711504606479999439586276506052886370379082108330797794812107185617624281983930011179116949610355380359138668093844903421620621356367250704042046208551148564969647482290131426670772161561350773220333100526867918865360711703626364300268162999997431451124883209667022769947393849364649853269358981703381955870561533861212800023417291955812563039587311386979215691015761616382352550354010562096660284855270272538754638736651247161693071780271838751053921949821181423158314417798790514539079910528949206124322657194276311215628684422953467687794098479933414755645874554607451361706618935293350906406597418498289653462799002328837138328907344854030892452035509714492946767153513733896959934605969062904208152770870803867728598604770003448389757950465646792227948775684184026910703740605327634499799823629993734649190214727231118639963332955854477682890503722832928618241645644449354717176228402457114121843254315801711673439182557335546681900316527656507272174538792219039044906406056787259058271539281665248840339092024167462236429536600991239865010588966774177914938036784575614630999626486745056169347129955348735485496078975883256055590644418193596107934904371989727585002972611101542022753478462025777709954911507137689544044117418978382139526959765041627132996775295692239538766272257476718011992055973824521708706509939301527209519758461633264879570433831633461103368705495846269829361683723020502433729035099594830002104791480899189758157871585199205389923222695735469146304475918599104175198990284622729920892349950191453281023557508677263845741104111129443805234115820196107387958976008928295750318313251607930441388186597833365111965634732125242646444920940483270554405697508988928593240073989868123031904806565630406534730996014136810254339377684256771030885840160116118324483730554264263105509793839920975018141576721256159599057883362012357549344858098102889355893785149437287417164600607092708836442309251458825402106778639320569745279553907845454783543726920342599938498715595309697209436420250110316042919877517533054755640903588349533334444070089259239751947946556807308512375058122227028340972613511720376077265742812649976671077314442141613428798145144466411495748366234147374910252683617666915644939065564541437942453294453370370991064301982017900689380417052649711141377586226611086869250593220736105649844485414104038171708648828094311296369077202516224195321311648879598007966655429558983557908558921407669427112219324603243525782418902301282075250895717911511007902438973927430251813185066114353043398728990575022043862880300097363437603005590699203520105051621394579732046982088756585928896317821113254620530816464808071416357146916133205561693476846854781324982530093453272694825484218657413821913309881007916284306706584751540183265546823585560084798763005111335729771232672380014245858834040696744875070306131826298062833977445658306366131475035053799776156516695493218221980550570354192533752172218385797589948701057246551563649434378804806883841723057049348563779805145718405335863999209957131663421448889915289474668838817365332728297668381926022176590798578072430076412011261351500264989502761819448299933485328871155315889537071654908311832055297776424744416987402475880455730353126669868876984875165553767139641069902632625152441366396716631413435519106024129480129746380705160530674031644044826999504535487097151143632062486175469042093998288552674006059371126846350805262117800866003659404818472939786335894295928133104118334901764321635244906943351840399534852812006690678311581625342110950403981282966793757262015160637556459227615069704598018653702608584844805341187901333299363444163901462398732743092326608101077269280245890384446862264654794973047171790402900897774471053857587683108825107534116141119126972729186305887259759421602380219599393144625313118162835932648548743586947496186288874806804747860618338232440355435722829004334230701037205134008853843174436941064197501141656579329405389621989135726236545238264435613187559203943493475721925960457083227834307488521461643147203435663656360228031051592431219456666311876131192320645857165887540793432247141496327792996658984165249611819736085863488631559415760719130160843129757996537755443627422426276509261448446388790869558484768237612250609669155106212643917553336338636287748459981974994122128952054011009171944770869951380308177992249406111874118263897411727392675528767125999422550721629383405363549167163330281617290149686603522866474648805291717595936553751116672670037363746077925653776370566289755468038145680472526292953809970009413596678039621624635651929133677475186729756005379543850033273548837723270835627671653622312671517956709488118566188282203561086139607569164897577498851259720625715268821316187203849403965751066623115224045378939678878075778843228273199120490894673061994815396029937844523238562969071787184352256663884079822645680813469251760142997264913276027808751849987125204388853757814202767119007646303485566849080626681609993322386223011798569130467525367965653867264111462174018306523310479064711252082640962188927332710153100899373480744355158934999554783524034199730841327120887346101009187005421984732676094839813692906241523368716806609693929558803513913609421798629712900990479069124994819265735023392566061441601934808539057581225636793986781003169722412367601299091431984659754495449951368511582282593252791167134502855277362319009035458879397171625616186129948761688168797414888601119987448119425773680706081160067276931122271289233531583411821848512703120054883949575895666880954338746491456437490196997166963031682210655046695219596440087079437564837638322748707794123101377319898365952485369457679984699106097613121256072495898912590539464555088622163008419608946200322880158811804920274592982812222973573103867763890209083743931287275992838892123891891932943276264885790632862953759731482710737286759739375620764186759451302586674049991729228758614849283123538718618752616189212587416320744034684362118682173114711856998225673122260915127133587704988821167989752504916048828414213921295783382185663043184087523665229966247600165589598157266173188309715811310704932964134781612397957108512935456071113459575601949674303392343700090039812581397101428478214110493435297774078460811900270339909016571661842405999818159750220965049531813195516774924995479670226775077819945898198323357979019553237157718958138580362935826482223923213775512155783448101190595651221557309053992089706380641618868802589550663125542238294918054910108906975063252735992265497180795777133436697351028356372681209765741524040520556507672310894746893491408932140105467641570701257736288633311144084777917036014880411955027161731789733595706936511035178246858311769897548235587785026177323238619912856627237906258106573058307086934445229306102802565635602707112266964979509933397423495659304571839859700532074504244482173899380530611691276322310482171701512048369631918015406271840833085194396618440201350688743785440961427150536142373571320284472540265405220905376868663363032820089256744963801447504754561204515350639603070614389530675018746723334338143323864502007144020722172053489594828129429197655080828650312743622679449316309214603098420510879206444940869309415968221080124591873687551632162656849036423552972969537821710000813272457165332827301401421049832629559100584323799062596579582132330111773648621231909635942806093631031634227423257960130936952609974001282358062222002925421650485507412572498340317888575102693646647140584153317104044263214313801142174059626886638354808164508902558610592438108135235831618377164244309834051916707428163492467856487061636989382932513286338083466346788277594451137978161308102122258056031826151326671188416641554786702420914407313037611402667496102071049250313951851862262089120994465832462374370739129189065463185283277032228492530867924219188452699916028393365277890239363051651315127280350884250307728791954001695719517368833523130644050523734563316328533864039596717233994065289896323463586613521975276922859376674636889593796292873073057008984857066391771713312490822642615064672239546621577636787090835257973059326698419528972101198400604864694812047338719994221243997117576359060413713381461258318109844028176016943685031840788492635289317347082817268746833741001686001670085541614120784176825778363664137185796648105367796077526168780003046461857150101182376234082246933597247443729889811000247940406210787329929610903352247032659912158309766267305805256599341949002832905057159019181791058954121755738156224531905157814516086312153611431123109516937373301388493987192834850145857093289527377248202317413914616545944759610319049086398529218711403705441859789748914434981385399500030231888922434832043090693650227083296586011224926464731200215147284261997262875244730584183842294653797673722569054117467575018899985037746982134337970394440486851310410832460846591717650236590975377967883614836870186508447855377127427678142265057278937257484888433092160213121441047278645764346410709329858464022204155265548332903923536398577808463933615154929426477182741669397673164113332060180910020597134319467378532861320682148043389089667316854511367764664730049818344638084690457704128755347940629453000819382126291471466522931352458402739729851650740959072887172317211760969200070663413465167899921599381788025174622466265008574318436517759238609190067099324691527442289559136338316427908426177450261937007858901193515888421838075610281550390427699192472021721128392092072480403955579171771872860155916232804331797006772223753541876939117396905037150805738201098706480333434669069169715200369861438970714787426079819430048354047843566937126682900453046385371338623060063081716439702007315907433680421204105979498565204835120826004746725369766757381265665781532321721920977505533971373224762571406125918070784791520497126375782119469422455700612562181871670972296087311020371658863402171814549382061361591135783702810063828078829038960868969333637623531988282077588203426305662574905997719569989417312072775032615877543034556007624394546730771462325142805741468827146550271118524255907906614455822303258104767703071490012352210405391627444290081184856583621243043295924909367174743774511583031669054655360693098772183258585901973538931189881159457763766680713534772626393935895866547102842503451012492651734513652208835575274010284701132564227178629724033895776111296429505754224838201538735328654425332649890572564179829230457495536873584170073058146763401689945800055581022921122032837840587906791062329194119524147708677810859805150940604341772167923980453477308435346298779934889999630515251495570164178153360716171956709881192051507047624039368228846468709283469091810862585521509084983102642656523778819086590553496321916038360598612873206961046560213155765478661710976836930783131170823670121460404008978986185541683752353916148034239998687895159192913487079287102924119718676867071812806304007046152714561205009572421342834477370413573570062634162375146022013540988379294841895788663943531548134173576913979202830000711625649621449493395940209576390721444479459897743855863373856296833738545680799100680517712481410440594311598540094390633573494139919903624236623831700624014738850670111719418063921839892958278350881602394077588669048967440729857710928312174479525339905803596934358622521827965499914327387032426880995574849413280132372786067782643552842137022579506266543405719840357623826136201355526659820889069572357982972058576395826643468669152835394383807350203445386418467376108626529852511460771625656183916025608193651063164939920831376970308089220509864418525372195549687645189881120051191765558710819854516864382600649809329474434065835568308505965126251477422384202703484329557343007058689546157930596503452900280660808462784838404134975454741435173178917464126915867400670696924237984943278495366350289760771807064542076632021067405992549810902125942052367126067849525011082055625118357971529194650862737399309611565907974975585076181887300640065615577333903578477418939564990640555448273696695636875927005733791017302726550778410261502285172009911284474053293590451212321478722339444145234478767808368434326077362985542986132948172660066880005031876627880370212571803629390297180329949680072202890922094803996574389768571873751570533551479619555377591555037148063156181982025148383746894124926014614624260210835998384664433072358492221987376452141487687912275498641278505020979055028382357020697035300093525568416313047800330674449535312286058256182955331968189108213126207897680323199879908634159844453095981751662684905566604142974072852192741506553104251452896905224602999104092488667885224926966079140414196811650783216613665593400291634434849803625864326813742198801228011814948134683855981835119360358270243707883097876828741604952450124146737329667311603025996841094087186171819184785077034375670416270886214857374662440244212377654556780268109871114128872809536334317410009083344918389056456954508834912159760050215345293897920161012234046959814942725745478049196645043903651310940191183810982937559268095092895578612478210073774360085230446318035982227440745475181674072365501042118217980736799793982002113217065832333713417035992184749892510185926934228398822865060817031894260819183425714574857447531749429886656378897874252716488906149976155331319823763442246995740551698278692493780477446915589012862449429242540625023309802814615509143895023883237239895865197074196528334649973442107273300757570173682068252039129123836439525432816083860202681076578334892183560235320265589296893412773034842106714890887617831879935115804311801870423233783015315370351781185679140332829467389730814044703079207691976322497949567352139019265735844609677995109378437988746597314364564967167024114234763687132778382741654480223886710582240808000460912315983867262626737629433909354739806243311360248494510170606054998940512800583072793201398294153817143473355150461285541809083496684476522398477526923340487289824117664081921579801814765244340660766713723656533113854835839513414443793233016122744481027971610962118772142769712780542109433522180826652058665862694666410664216102266806862977738180768294191098121386977603348946018951205304927936127610296200019073123327505026040709995163173061014865479948009404306449356196548345108597792746681294100954324970546951961761667936560227926084873486588278851009034638288709288791708658021766037347245318146032167728892596331160403343368870368687945716620661619354090067248881634577741950987563302997397992214804011121463678813834593351219813290556802150078533303197437848282011091099930076359790155122758885244751939793170779337378662159271893120782206125673633697667645574998125688911706216914221277090599392999295722956073881184733412981807977867437201836539353637222801706992929799479166909034043048182591273785491557277426115866678065772658951633558652955405750538935691575839018562696602651607871351895106526643530819722981551036728535778274541189629209733626367208672176103758403032971509446797851933346244509057122265934006368780645964124072620181722848402711218014168699399180528825175717982258445735126983600497798160539747802917847286690323596310467112539828212846514013601115894643941918000065931829379609896916463416591145129493956620305244496997548938046067302706085648771828166472117965516868650819237806751516665749165276823316533831948899222075082785694010481342050959288208465299574625397277491733522223860755541171932868948086596747021035237582078306560309902107469681731975596952254516781208543905745588465087049327821825307731287406533947444367077298094140341606153008697068325386278863926315943270547424260506292041802152957724337109926405093507981208010251954222670326594340522922271373118006469436621760674768517486859910804237805985336155205457435553524422172831988888359706772398929324392043472896740714013379631555262365858805881589377615377773809550126209585946112890940149842596585721295158254125007802002721502812451284264844311732241969342324187823644538353952825636585221410885374226415990884212469506851203145550559187247462295147599513844979880742715250455900312620952087433881679152091317861839305171902298330152011594594572655024361447557095491839045787292956560546228070314424609087704854341937164606822567300057747008729424913434176628185533440750677566509717106850784206013041660884165911979280364038440944019690303680255049677645666475298269541245931001685063106718128487490669207301105226240526813449205053944817569519518744664698682557381781896365328775754696479974862376865364885032791444688500008878239778061792478581754803247361581371909748575498588470804629631091486238193274997166076174697673319224606933776334902473261507024614014071837640419750850285555462627923557923943712671118231110441564088378516042037322202420921711475846454117035570281520484549230366514540351737827836636854025744685248508832516155405548366104876107580391871173091917911020354336729424199555350282320638928008112439027931657059294161512068858700694856483737570364746901076214946493445448223241153195256623785689720844184090480241127648466030252952947694410912867951444858291184694805990903322879454190744994860127261423067118210660494478754732092631220570648093845554366864453978144335615697508720041050943291358832770588112594305541478202379028412186882306209603386656935870572529363406894514460631388404608405133953719480279439963200763505729585784700011984982979188183958970131846664239916862177950352387234127751589135168064543479047515611094546591658806843054395908081973086538742432373210394234070961929711446645803538679684479231020163708372366605785517952896063520134003259544441323012295236485275853599577991328569268663334930065976798303567239092605465708585394827790356486338987848214441958155486044629649410960801121645788652569888548645326760994515945850928939271305815234244279565980917532050404806382820238080799374669997078022356662503368714918961814357845117959286745489039602148384701028265023209003634801030481203962195319036905694960985422474424259017500586959042368365192999245667883279392761940787118518743776302786283543335861064839941537874007859851125694692829938401098747235854816292380275223526729830460467722497125735000993042873605619248961343467981954841211219318343987702269290820811323042257260206267780787924829633550008030781670105617576172201652301485463588653477592368207740959125679703000076308930311292394457029277345237317425958996779707818700353968357827538585859557966569294990445407482383735063198335046842384974877117754506967986386197382381549907876779053516250530503819209729280594699041484781638270749577600473003855047539915524997505029999959708873889105799103219324574115112016572864659258019566920649250562267419516247677495541943348728036919205920741134593585497165310903863329634130946906732879657576964234810994600726659285797827542267606011150460139772899425594377628734008372490978534346616916191235443523565262967856515664250528134067605103622766585011370965066705039394610293990420955426164298376762453844529029853414316116056256292166515092032008997063283187208023596693012219079693854516263634546769321830175919096300793691615665268882620000941242942334702416686747852073463152343953686944806985696397869280379214799303636862798929761349848938977629432130571205444215893171794537688219791181697807097200735660982609104932436644208286784737908815814201138045778583208160487738667878951236722198046144738927192685608836161931399747939141576964627556377523855740446666011055113251862023062938667701013258234158019715679199602358576474772986458306262522917505315970243840156651125621371614172390645820919346818269220279970168275965296190856458658428875460000102829125822112602422531246466676598682186855013644091850036384343688383593631530904304624631049269103281732332363319325553096338466297347938160438499662440780563768182003901585538527871790660630901983317445964264629767528969502500208095365818131678145989550277301089001590432580962562303079559801109900044213171031020480298338413437311965190530560285929268309242652351406062662793215163090349561839214450821875013916784872358535239325246258805027675616014794902714774738826973234947456578320650284377121313533112300708051922572256643760188454121793115061386175535264809920316152690302931509827511121374831621939575375119613897937815401322461872040037833811829812306411740339569749179121496476105922535994551172524173213348039504510356634133498754125370081537112795776309730776634198546660238122584695626322426685382595309916924017874253908981294197752563069780149826624121697213367903183325722638968332428679770100893780145710706068517549978102255548028955570291061476551860645024876249651395280635070724043560800645341342841155911283726463982406299284278623633423404216003880630849054469274410181075305306153655068992601606973851087292264619757539913311856364919622516356912702256490898227712650012848820400267352563110682605672971658690319667593009036512376742424805385708938432974352033087222935723615652242312375458769016756252585113094884423243767262830579155519168305823456082675623460523091613017668925473708776808446006143329246798454036389222472706275662255496963501212364331933157090413493544219863908026607974046240067071956445116274278579601861487948723283139500663971331432644856492853941875350090307600715962217741381977512772609049850238497427245655101335383364591310687605672337561921048310288840136991272403009986930052433567556071399562102779860338525379966244482198449849773380559798638446913966605993506400099734204061742745807280714662712643709321153765395158535751705067173114347517527915780246012698479438795931836290379125808757037132081662195910418803769332431948354581939734561578506409775906291557284807645807472750176916991734732005174272436985798083205699492118656794350882877308675557726041579424267460522847710420141154378154814647610842387994069113921356408188371215161763651187446153989780782352204245790061432924892039044802249859504572731089633968430570507640391628657673600480206615654325031110812000604647664597161733376923516215567797136086171995587135114352886222442773299064486670021023170944171177945095845399193963575862843846356733346004334459305081346735151835684441013541934933274929222027220702157471950836384973297481772358789468465369587086604892331923262578784251350121634206810535402296873831440407632216705693567824532321468074861421449171405659477573663029591003107705539691733171368640417204168389889072874990508651198919353563539845647602334991280993358758186991107707633679164329918478451912313789943160390779588862846148575182432026218993455179547077075985692753448125826025093844561416414390271332389758836741535261339322108237922743934971589879228787344631970093283684468532767177989199916791166938488131861697409016212066901215027421079982216251447422246854755250844313189121112911335339459719687051586313861308838417360639052088229824951170712727359888486755160267189059574450797043544851986928087472895420673730775509194430957435480037198710199446105374238823027140566421982407707390254178180663217214920623810177527121854682026232972990921140738940061510506469711776760307785407423652108162438262383709465433569241378815090980751694172186676038864695828645949987737373722227057523242643496887901367908033705631008208357141731549662917660390352446960162714741942558311815713678936614168788052179034978883775328793126679495931032295264146299350871328608002922728267642165927425755216053736177710759910975172149837915469963845795207672493472306209219682014452515055873003640247323436817336700211938030489087236740846190595032987434006981326084343827442289083332319067431601954036819757999441335452523997691581064379892603753800723281775554951592580601325445229348496033380321459761746540663257698624770582100817099373441889618772084084299890340631404625828082004974674585688743850855170974880800904857952807793739733439686698644102344074894500541075368442069677727592055601453795210037083259944347127954400345895954457112762097627389958974488517546750502245820152369194487191715274733608876740146008659568086166104568454528788032664138974148989515247821887693403851464497232693274678041136448579708801771825150587607344450049500792938064864981812937751136131189642756003282372476286834012587952354882345307321190950885069343695148863272360846264707685583950586190450827259990332796767588138236151826425090082893425085661596372940798282920123007608567514557249948976842828353696407540539059364145462489465900675226581498780778326829936701231149755592477149983460796656583550245368063009032497148654126363330306726206264219265694146831069736892447159522493027488938955446282164108659151673913318876366576299701854224265458950342636265560312426770097523027183351927209751583930695431393507108180803585324272441885444108935999373309078657725224331827458085853248418511185148603638420199082642361753092640211648866192568701734973100491900725649928366131786773088534390012785774559598568666159390292575612692232035196902440172322291296176566602487490514178538483225372250255909411136200473572672157400827554510350928967047128648566766387441867559189283647561679118727449716201580536184195831837412834132571824984088725482611257412623400246779780350028670199742231774120836017865836887926895644120646486098442184717304827252699043549837842712452685418594088635522680508249344138863839242605095298471015786923662985872989434985608698267028571336292367033120648036982021977401894450674336327439186082459612784483197374548637469208287399754510033524071775988847196201141745661800123810663353714796850691418884708350997821838511705599889988758331330129831992127486427673651713528715109163743694811606396392279839033902311377766616410770049927344866909082104373890924672629517666884108456603473541914989275328217916406637475772135157025365765688957692079436195402781595568921366455476969007768806103861672507730065435284500802603032857819402744300213973646559585286537344940558767482665008213933839349927112010034371941838433343034248808085722435941864553837862040267352134614690234748828613359762574216117815138201325078109044703430767709296783004871042432942094882996188665879247475490641320163797756411213628157996952276820780985642608153387717422095251914220942724661412774744630729322935288142594897171849398017538165087082332941524746039780741885310222243398687625133198186083074877849072285198420759270942852758280572103913413520923188259369317245398451757777621179976593748625824607888524653665937675822985514752698074319498778074790836097490505156295472007327916503570212767119693740186053801312497692917118181924586921658052747398069975055853070374150291451434157324125077177006013472232014216539343204947874494847338511989099922116951064330022310135099909413579682583839540641311581695493255657708136916449804624772993561961084744751672035466155902952237263279685872653794424567392618934095784058935301530584216741085910879012723859893007710669548393738930854014094491428218759336888595012829536583141859549746135697962432595051324323202209779026648735789567053536438712759248405012588660748744814327658092559458597494323460395037607514070193512891017887163164209715880477283008231944427534213120227127494689237386674530483439277348591300574596608228586571528241075884763001577521552529166951906210634507308421070704831944494838030747930442927186740162735166756012332053453636558533321239692974811173895720579830747291172302056965084423025455713665976638797680109208928129614155651975881853364248157005039858339833870523211696908779783608519238498396344123084612636252963162675274622952525972302586252679903031388464436784702557560262181942288121562897348419101818122124123341832477393585770680362162161593848421934929967029335603194141349889911472222356242463553863330549944597714821521691003779950740467733558950736753940890637899874075840280908843388504064135341338974659265063460313220412489423351375199947631178433582234304343030897113764174085840854271419152213187742228977394371116757880002535803861430722023712496290868486080619537444409270574873221417481247854212080290664035857575972725025329576697126346177177522339048930380560841552644023685623547401469126503983386472429217422631292350754241292626101632016360783702879507676949408464265845516087248940389262090016400461040743977054443728890463479611343516108909761986903637347093880880531139693579429982847179356542579314008822470635189597225200642406069103758691939320226232999747867750125478603206503020047088411634339856137942568419621407366555832682156975517353886987922327415125200458359606563580813916645642150938635983620263488033131584895072973456106511610662212364481835097609021524330354104736056918374003804700379003238397667788296338274522802260481140418927247983609452000590177773880644971909463381999697605583812639061623102900195587063391206565396491294645074312643353842193462493896177760238381233085060885802575421490308365839147073317593011913639750953248493777582763140121113807957353042429433587312849054578249494617624747990523695534283134331252144326613038206130860447525460034763013882989384733493422125362518718716955914469811234863000115512467589116713155793796408746994878368432637830716828918455125146174511434216799830812883745139269255810567787871946497009088138905877268441691175673400904495647159073967459410869399135968934560358467654171243673394624948381791675114170563623277211930439752039619564905745328350703721695477620868003687923745359288713187905143988041660786002512987792479629106736934248055999961913404379323538865906384206860128422749474353295749248336964888484215871202396158069668097541572918403033240722893190275084572581132845691076408242291488130679139542225639226310848097295681049836753616891741245511927746530984513620536773077911534435629130730894631916391294831125410989023173538092751435105364785276059480430582558240974667884040523535950316051660001504741966340052595113465465138756951384520380765845915159278777791252024917579474090760781520304251951222152081030855003025348667329627082113703551023689441074130968882620651048754067229790576069184514615216180527634403878521268757443522919605698613447639558584918413342862296769754737333493718110248613440292365474428349636969623865928255211686924375219824805099363578577449701131940890974412126676212777010442996789913324172548601298291002883565188158646491784387503959835941305619987970417199899041803203885529391163565607360769315704188117213171559386636087722345590202098067977782955626825151406326958496907422394550601064365687489273910055176076006823592036784155733910089241916121511851036797726662383242769048518460681476559206034418580908602065467363545915413389179210362834052441199007511224137447574449970707498074038552871025597734484037215921689022590052993061814903948465465754809515884010449699015450549398396346275543398502288813168858651212062470488265114368190465381275626395469755648198711662713330988967121459523241493717770230459717069091920315273342812839356454610650312830354588025338806550117218047881872383345295204975076879003632484680919677202100060981408213435408506132441890369830508749351851880281797538349690348503052586619157486457241865660613914533907251637764516269283902874539793950397388102819336722373598190594173097308356624486688698404963361329113676435439903964538437861544760637459119122240978452125606310954824546627545350010753897993865664845955037988962218428985169893955905546738177426270872174199533107330540187640610614739487877609445921968970648155421332584241098549601666720857264991119522205882751989608786362626443036493369704710114809881918924976235961583275720408231611244667434772483439622362376062043479269988024757825065087178993601683468850767150486060681086322186351054013679812859049226654173724567091721777854317048465458309455100246893777308658578360061194692993788983495545575322716525190608366709572223348929546672262416764276646960724327059122286878810772108108683329820149289543273033466861853129780562130465475556845820962130840981990097843610554966156419996073460305796198446507989743862374756685856172264070651393824861614380875888820466739123525336020183691219313339822731354284143170978516710846117184901619845511865533744075263481466446284554870883904217267653343119977138397130486588387766543958175898803469629999043978737832452480942705664282005807457880849646332517410865628899131221820063009635219298357331910614694298093656877898831568140682863766997061928257294129187808688237854340181834937942984946993587502384476367923518254722364460998601137280434566701007893843548421252174569251187380809715976489724505952704493276144214660273321979388784443156983676347879176731461228148630161655919544572484569470594952385399864832258560831018296047600719580088376940387570729017312265942898398784880481331349350365927697611211269983481002604774913500332754751870294763066460495435726621260871281080469695092643577654165211407892095172836520636739932479887892107943152457357040357776281821579896044921429079599948889829617343129786586523953398091262359061401442244994227798997979832877090560225874474594750968257419282252303533460117277907387113019370874171778374874081096274334352175772886664923503573863411511788907498424058760836361326993657083620221966127297109316359997983791307687768113145509234550755852242436649655268234812941488093954199402288627055578315376722354003714065579746479370070147850696919879298038613839670685800325746696773972611932889762696823696099134628559083283505258622919112932606749631840884315984844618605720575519282605672338828618623471473351205311580838480122110076291855650648384786301763494808461728778090565539756709627145045190998618748353386755670168368005053451881262359484079986208985457742559863166429019909974726370990998153079195303384240501664166442325870513905724384250047976620337737826793225942688826099909843075110013594129556901007714303714109819153757836074250125382865287422726728234440699979114335109485174958980146848691619641046917730852854831758968702460187487504291768027854427693555166989305044835274008959211189482000684866325292165319690677582901645953567086512403153124296721290834396368491031285508015112569566289023189635884853019112389460783409705485270025174693680840484555580155988968084237087742317502182301852720243508796274281052341499432143640038240134738802695189717764992063218458472406767167668567999246366862648512548010937176921860362292980147574778703499723992765980245125533250025883081268144924265488686163089750045813757617707154896107503771166998189014136279794451962766721114637237601283303221952506733027347325416429002655091103326958408833244411978649171570919968259400922643877826168594879247181690041041834083322083481063394752684824881287280805545275249190062795106515867448323950622104662261134932336677114820393483386401817802079410130735118268362374688327918939330721737713302380266886554853665206673196598391421582025783022407367355636162330520523999264390503967007615648014466815332216633212393948016058267842770909894539465647456947875323524479816372365953269540890717980961662614503886864920589864697657320790900374630600510871137695657781830893868269635722049391987946464250195455341388214733220752025915587268472996382131506862215010447680451663549532993014350382825092168429015491783740261129616827451675880903696838282746229241425971294234826027018199901201628253132870602464798883673282765152007309025507582042927876296333911321407689675943843078285547604677096880428649574861651272134377801198830922093791250522821330755319368085461902143667832481113703302305268691251707642121875937443898475873993769411784429452807004699972250533040684641997635450553779007060264486623186902493310961524573607477043000407488998162787171602831099174846290316618093724041599031013605334007846962182641040891882369254661188981825630681034203350774373802623226575468382386117432748512538599409468978920723568213995129652505044682553202485499761736616351757144866937521294486722348560839815397750314994221251822373857619465660496412480601180628368022128763060291385714617533119055373938822694494623988404012810687337455877029238179215447926398317987393893713432721594741256005929034915923919576853295660525540576744241110063884159640070205068136526047007854963737935289465025207800516919357283931157884819342850590885514142065294785718166608677349474694273100934188453057498940699392756582650724295030142720916857366172504839314090616901086194402814234514355795805386544895801888630700472218986020988792897248474478265276990973541134270128329349002445703057693373978766673386705932530399926735380965644719638365634435351420676837385591365435784418911734750513914796640090292479227513558202850448588524925280004532590411597902112272250301892698309924371678538177599888304243500536006013678122929985214905224251283584462466974044656142927351085802824849760613347319793780471889400906968216209600895403911545061605032506181957416781751664384016371606709727980651358071890276759083749871893367596064499975118921375271326279986964913085328032812419064151281720820753543850305083419586722215791023882951686098020504512085282352411288846222141913491206680248122555885171343210130266672059078364121700059740740998561141320053701604520548357070960129607758236841091116880270081059242131633730109145651076401907075500055609752465088430280406290040463046210869807483609518062077118137417667712202311894782605242799089701628570396638735542016525545090983753640470700588376452201585461789084113270192443127562568713411793160134345989703985625405757276539702769044209891175584693670362416430302113560751306426683281252631372877848818965301437998796446879624218647444690364383989078901484395125042959365250238136985321901023596357698613721144059782298549217728931543289510644445633951296641145623503357600465864032173868816736487104311751854329357729508855322300432975226898551226279157894767389998249959378127787683649531267551732326574503053503733784485045458152499375892396875849080337521739129327077782869090939003073523059802613695152262039014447501018548411010009312760637002566796414398665955954630770374745246599644461212752514221202641645824141832850530720995872383309887446410638736988680785213923958635502525343507278046723363232087815466509458505434547373252394498751543262543592066695751062664394266769987203776966118598938316590883598998983708436278329589936017464478869365983368359213864972624458858415937763075689869318217301655014823384049134143799309716098364316633987601454532719204831405212382976199704921876214507682209591012506628442184704553301850622745380823221457787007910757060623902334414787884589717353396087266052722078006128671127830214156722123046547596402978054752994550072366082527158637416460680430167561862999045482199239060368245050523418932119966372791217517872352603523137272162252394635760199585964997106390475354994219129155498366087334721960273651209974990619377434612719650005809583429658849096362747807199740085718243838964810158279279967349757486049060376434202148098164832020137799621662760937465375658617321923466145249172400944003705265256310403939189395689456421416427390365406749094245525411191834417141356450910584149061725386361646008961965329674467094206502331604467396432602604261961074957459719934884041975240449086509203453811761324209290003652228795592346277805992997330779439780056740595096455459016618985336131393649933296589303458403849090581988137471274062136864827226453123517832629031994732551112706923130156702766964418872616755228778600806731689868309703164103501909530975903758083803302503299470067204356304215695359523497834801633088626639312521979420809926396568673044140753276294819893668082680753004280621800389180370435048487143344095899021035180498224748255160352927805876493626250721779490016476779105010897389092539208264582695468843707475499090124668101282810998446450282918816465548644307813418018038276065908591819483203523575769970127614559152235006321782097424992318145994647497847664502195804884999333391642524786163432068849975182638785708340185607049473561633623125410494746452385720532615105034545355112903576122221252684736034770019392374264329713415349131144187091584408138325518970454289835410049464150194998191269053049252780161592690953979943923033534084875728242992004234354806798386034922833549932511167538291398042278160377880983819682652975541380338722592902037823816759309540764189246018530426958419717885038339608439938906782437910538735701345653623046999642768201602821137711401625557145481007773596948679330818865510895535282344689844582172171884108805355345946381399860593280578554495621469765844923165012595357313646711333589794893620586502151600612535498635415545607747350433285842190917807320925270801902463851996742963809397356622849191632302834451713155976357957457172198458033335320143173455108770805760982311840803171996922364858803613985797595908677059635719428822492019123642877578392760119157595738216374769402891812099375421887522149489703848732883979000907523008748491126208512519149048989603475384634711499697796591538737051810004820875772083642779484538192287557860221224859897642587963529507544931213860370201348522341748715023826735424681810246596866993026808818397836514169595482959992839505764406214108649356400163443439343008255580718945088650157148791578981771122450486635737249196431350111880647683048495752547472928831605754913960326388724511021998880797456003651300403503384779487490067231362828945632281594240574108652980778322204810497097922382501137998947685749706287240604912025017394154590148718691028175265076406856151060536899006392051378177751116467827777986714513951372614319993947077983998331919056894720694742872880811165390542449653180948401655384091143449580676237244282159310281198959853188243962531945447739034612695144990798555157067474668487460358927174872101671145301616467236102628088166315452049334097044783020637230926764941606238059150362756253858668867146100670425793361995802892264353276218678290384140278038616762234897416679681781189657701267456425333086596538516693277235498497961523662802734676838347148132531560096694833728561456239505908777499289427371305708077768523872292880379160934091940159485732434598056125738819933419108656350049288070866879791967363089376858908902599686374845190237920619882101423110942154255880862137260429139217727632429027284034968689670494067593303072037697390286893538367917931314073442439235458396904704941276937714639324209255865242394745472549652638916268716039511977987423969635063361248220954154524812058023690337567594822028030699996936031176879937264472032171315017449227737163087811843409383564379889148300644991228610340017970481226642683403628872961372291834675585379887251512196473193903565646780436038437374093137975792502193751873778579572780856023328423564190581354957833198067737605257896612337334258088287661695282446239931529079276543500209463863883272612079720999069135767161301815376895291818708189761010370772362230921660216023272619652758584876858968046332343266367460158965876389597058710303203772457426027169399858638832785188869062550167543824304366501931323116984584289400357575154495529567298391275117993577539768895710175857070692657719197674476363136037631771244221277358847298203461630569557561254119530723524210381701681248738872825171603637282676202587279977284238611870394747727081835298201486299014278335133821371562836422686930258888306481435731841536318925744697958310527156916525130309170433102358714500082936628272676848184427313271773449499540469346900536710487099562248603949442127221408573077232894980360159154948077632401273684529813859806622988381932668843842154527755409736435054215994701737416322871621577566991212985502657646582630276109165282754420205118276017459160976195098069961616104632942437222481061744360428007281059664102355028333104142496287099456366879164580047873118915457313742145250362526796598392877174453947285879179711610396334452242052138565778888511334187284275508286226051230419329613121506330442759074002197145975140364497804024618526019365863505996328746417126693255783800039607039778204355693690812023153130395157265486087239361544876913698242136906081638635675911983721268682279067940862819639700176375055643034163507667898169866524276625590457767612168941756534714389219942232941534258091415458893453482941751283274777316926360188932741190951228426488291329039131035560513903433102995772782068889037907780916569380930984478061282108535356343714804472600714847254470155799113095154812977988105521149398872999629838412921995018428844590949920294951176584842468249882190674747031731372584338620155588342282112801085795123909892566303737178118650498820417628982704079859126683860699946032918167741528985754068468073326327316750627464822702927583751365891052244977944165485071144065459597434592043238197443930149454945443920104101148239405604657533360619709145618835691600111940207789167475333291271536553772572018959167260945042568424121201888231519516197556095228376491484757634809809678828109270574213593533203305320004470511162711493826353371437818616192255421578962137606819074360343052159319394642829917201166408377790024846492385017948247005163518784604937230684954911513141719413197729556355401547377867551455203891407305107973807147656336522219748122405844854976836677241856778295719495132475498321227351268453899484179024963282951856993284881057225619106877496865991752704140624296485024105731004015723745516264225986334190974416903027300015822721465022303628782424900470113976872450796162979443062322220846230605330186738816100339860868274444232437632108702839922209917394701631452352501670226812512478799759150199408590586819461016844916437293393703738237830441487646127216645927136394983512809615570025322728390793869522558519180157985252013436464718065876726535326834086512051370956258600756606173482975790988839903860207709773365308572157957215058768448909631867678806784349444004896394075964328920137443606863246845223151229302588469794428243653345054033887093960620567038564720866600205309614575489223962059552842143149023743725410022109063260609143357307269890918312891267422802458442262527334239018473784007135835350881935496592970572999929287898344618059697486543146978540448226392628387273504987778519480733534631436337058381013929023679492712352469222931874539559861467111462647852140961620186687987813732694777103493417705069067446212607249466628750906030072456046939802831015183633865236889056938288900572268423779351467394949217538372249847362463708564013149409801414025104483754974129450800868421681631583933535622273226617339438908701162901475845278700133459899765070740906580308214449554582073291477213333032879545695900381121760955524240109145341112775203383094298264500792293967712758929761595641859822447772080985119013970303870916644323338838802008748160578942204323724593167258710320153030917186002503575339288772115300386319453058991274809001683840065556082887707665089525401212297868781810850298004437228145500834490568262912873148109826101893968799831456164409470426958452972746929724046666876098670867491474046058587852166049721354500669022963194822419074796801400613810484663942082719308769661656665484044840700536377647111594602044339416445761910619209777721541385057202581782851395636050516456104406346254242985857112257669514453157715858184289149793634158530134831635108749643699459118061778489152818489171301426601876468318122287182753117567769701346176888130702065518729560142387796312941415319436299133549146208595855219179608671440952868348648379271964103504172394260030478244104043676284539463901597008568665286081361318517533503238134865758701778216491260844767647524739787086370199485411693436086011972985042731667198719897777396819103706058836851761267713838197369661082967199375821221301292717152476193391830657564214819834113804231578317648128156125750198815981412816503528507542185107672953302244974617868912213971566067147741925092047574282852966694506247824419882700745529302791506705664473727632789297416765437530607560887546108493759795843444619842122174237688564884183592465058435231820643126206461684425750373676829247344223803118704658437858188565924195163608498859722180184864651170912091879116941851640516716361833500131371927506395748947870202178300633580763462632730269826290809184360044550568206082854097926745720476986137829213453989798010581586776183572937964243047629914110527819167606372196407337875484272896205577693953090478501956018206659087070428119543472512647735309512375875397689749288343609961766041320079469894724247412944918263713706206345376959862143837421563511514200641390246744878808591169085144805594307907823575480386552263887145263867195260754813278780534453247899719029041277475881421611549795978571950467529362017315168509482269315637088331935926028074300224025788666800167685531951742804118501367021652166306557037546140745840204374279483148382602092480753730229087212761709441220623755442133386064615413444990362356613695618565041501743413525279928348309371418208557803514848932297499083387074852659794182194563851935198039740381069533231462789421702546056642847579795036602168195115074642403653896721548874367392928277278550873720719116804434252779741921262422626651571017064159554702568400938070496914929352599464035037139608880615640835822320904894793863613913174845966902927009685818167834094033541244418778308608795132298985102914364156475738676923291881669200197451050387011181814001263543609528342008866428739190571870853089987730299903507655068213649309857532227208975541689975507906799616220641963531337724063955408862200218905245338395136786968352044154549402331222555633139909784396742951610518054700517116863745471954194097309360493039308540577110102080179581027447023027431390793010475763773109807243264365896411683403358306779199602716367954322981604570547661420560958602667056289880214674455048922937477616137937406415300848456576171954672703829701041194853254142994997736108664874231057875046418735382556884362160271043911307000499914709185642358041081129909306315536223626874438473277468806402572277501400611815928695302728885073118723138837140357090813447834495633644423864528368000737425583087690773852581373853075256863474152987499659292310168798889741116944976815069451065428767710688077858760093910051871467343212104532861753165400514446772682395551424770590895670113862599959172818028119894237064094257048487570356556167222370166037511006394093939263023391006263140657068159798969275641770064096618523256508422112062423249365124247889705999834073599020991798427058964212018650615341802404966832820832032692014595929606798511708392239812765093691504569458990591059707700214493701663568914930213867048237661833807365638199487760252755336205230385839630039047828896392701556013092061729610455621007655181426205303035859220839777409060151168165934293190932279079425247122928682903697454287467828530013828516819575303265992855235683939499338098489981268213324048754989835540549343568668543854957674191441572169211726846522458788164455980305005640195357291230662153903730370517601873077961062680888320997239549261678237773359297618944344518847727840604665451637170294640593777883309674648663029074024836505342086717383244145715372269550822143680725851868917570462200978925438425961403328439066207379586327263418642692447183554929095004140164191325955542832729317949036429696321654867836910637110638575362789649936735378428538010798880893586611298006423854690114322438280936232115682114741191213105863528829333058547687736350473865216560141022271422081291236460042159824970181761595450665233823182120752899085230816737799602330367207844299288624499189419200868864739113315922623450194671372478857841715362973739468543056667431963476878016768784022160360156327185259867711909525947403773498361802499106606198869292481472025678166099727517542337155084134830986675162731874022457392910499352008934644583343867081992901529722303569492069221981837202341893618531376118085090452611854933217003091110559559624732038276456022832081120754600965704525372589961607302010532350787036440606914459496789256577165577326630493492907891322998980202414599400672484732529952359616647555752391939447489255741556096496235135589258284062008085576065792896034614933562049451375758735676777247357264804223935986753611987363329124103921623246161253151886965340456679136130563055925306708586470870789475033703180151801567037900293928530254757968721655945866478230319966458617274149619655295710816015133286522915637125254253394667528765567477788857146163889554836578854621954548655222771057998195637783835057202601888151274765328727340310546998242725357572085429174214021107706623554057579377453796535643870652399791537043566160248026050441226542027533989971516346008946823550613299024826581481563347648546299063389377830204765609521033526592402711066868909342243975962210454605251127965563192704697964482337476701394807581346672377698984574165023762628124038457949063104072136714658987189188856162950783401768643803770815163516571789981174498855844095538083658109196771442660805220976518170207474653806787323061733677072258785084406991699788949160867493271749435106370844961599692632568013278452426050513588424948562549626955886534751321001929458105229343286812484807421026975158736922651146147959163100323958542618842497177695743925337625468002566978271104631944405855712894645296899028744926687046928815980291982907470706012092911319852761206274823576540202522940933987345984607546418430596684221176511248567729733770182454281849800481576347762100262871254539408642195966494196822388789146064477439319792930015862680732335339798124216298130272281742547237348160017829998197930381590284678077580252253472948245541778809904009051241985150305300981619753669803608911455964404132642280408154395734380169399814267962919544406902427446943912691215899042275937887149430393661295315437869735286567303705480775105374657122551825368663775192174208732875058215000715040313947238130229675859779218904150452998620300259594369376081986849229536331217597695895698420460533074497153926197148654372095394898357364491693224653214604759647506929266102483548578528190996663667693330483678832298840801824738131456622053542356056807643715394286137171655809929269040092396502346071415438644520239952143910118107343797139103508847033429176427440412286730849827517067719354817921557383616418489305960128814429555580504219336157850815519090295003691771692205534883425055080460036536212386007384108452120367938915275726666451235657819199637158450461186154164939179196311199573807748296637967145789439749939544721429543168757167175745077181173634691761544537484716426713302815341482060260291114297857226602244203064682536843541117930664416990377042668353971443636714362783669121277393815943422103906631515656593839295796900457124527956204520715323412634223899645830251924541861280224601930612365121672715707014584383261120785608717605893012465459557883644846707913246764259472537473200684401958017191180617351372597727001184569836981047014225265254325453892547453664978036693656016285064442680866852762571329462553267068663068698107763158718484608982230117557012111536518287498861861035647467864454829896342464210233504706023110203797427018312468990227830782281867687259097045226693001706794207707416687135469649517280335967719780671403960300192005987256749838664731306026739605881811369163372950061634624336789650043024836630578796415707601668774480424836672465736340741553803335499459314126165050863350894434606955717571498397227499360171837169528393872854234528227762591783827109379088523653241676699870149868350719565095626772973409483729699162766234812224549108860150624555370798241265284340750578390075577091940625203941518094041213516995990305680069824958747440273362401886173852054889787882100762662624337677850796969728066411478344463854119381243447293657585325993151257068767529029711820627868989904590291502199226710787132010221093007643840156711544633529135170834059714925271353289623394626836087041860144827957088898572881548287743153013316105482214930632764536046059427956326869324183895646633330607728796977740977883681474203059586875499857971750894083732351910237147416010555785978252212380198512027738105780374557438914796171825237249543249088496326882465111361306499251353453095122924235835357454318285606222485762783159456022330611142282855989523278075167563876711750402224815307918842643287638759660615378224349335314870782844320434775350915257970183049518881487893573480675713205616174212049884800310448717349203250030351655742879235957218114159295546595061068993902146498869439534002961500325645146783468134933442696878279374013263123821311227906392706080681015665203855581516432198324096531678390848468931181912152997671224403243331915780473863210217164694716515575423762470638072875223769650863178886105184262171716837295194336562880654847966770514934304649023227216254145750300785532525682243870640785969942232108154217993490017857478957326386285529740961102187636580579747300327548850383248860250384026225158723500627146676613232115347406661825697176338774579319915820191506541873123991612110890003257469297237601991028148114771322030157878938196576882074982698932821822349567660535279489013358830587829941238934795260934480621499070321358360898272257230876484369629218327617727546857280602283272890405715136744114477655784074208524827490849125319765147898681183675576314443511907430150798239253081169064726568438333701831289797260714437299374841865983637085233438780628785709786398297512003152573272405914127603413077778838219323313643394221396214641399628884648256635360586219280557168779964705042648333894090764131490480663349001178537944303480919006388818502804113453501235188964097372500506937135045027718945940737879927930582107517742483922307545640099828860069509731482435132831607486176310331220958294221949616892513631417568786773686883671407876400210027736755943880570604736910391662505786098679025631462339684105058371009576804487994588107068769871403929604481404737961790183233102207619671067683201020361808683581166138929217241831062978373305980427992966002504194260599022148842340691181412651656378945188202215434126962572845475903756709469202400920349287642049990487361150745241288762969572093234924539923100390733214605090563787520028200063142925996332102010678407888476055262628932282786091352072246866370917948866421156416760043024103932097543229785879208506746354000783744353775285226403563102096005923805095632139667026659511012232325497080013748367409502753138568630307032207893369436695296093073557652609735153485669402540070839323972870323504086438168105667880634759987568763179296651510941033704509345250897107995294017058492323840313586390486410612093783655165287984598639831424598642369672581949903809539064835952862912103463203939936298785090491192159135867083927911347387653958629005865637248823968896061905103984922701454904970247316687095983176862189831927012647894516341525615094444534983003271487426633773151304726242059421658989227161067488778124873416850348468269545038899102550443865015904814479704372218725189518431379626593936078368188420180121618588695077370288272702558458653853877170261318164592888646756219208642538043013464329793440016962117926327427157192852778506553885529031411406781300264162208418279178114518559456289617638526239721174488443836046049397661927837793250686797655344191007177625963655992761211783980036429656875115575839533355330095899538422890701790780868994378099346688316257186535384615900716021097476662692133862093002268321201694209018398391028471866179505847303821096801748784300803550190070621034567941108335577693555292097213437982529145891268475348237706479448042445651907658491782369510716541423573544703459713848235836410717767173202343649159031692149136667181495314154807833590740956183105369778154680903170012248301447033258063410124515612116477922982899072470327270793816395528456551357484319990540243380118743904210807633540795407152156945298661498452823117774608310863694385936822991212824657487089775170247284373149726155841343356217198228613905532019476292983319186359950819932241081609500517591185998329423127806899479172270707760451842239952930228470749861170233658442101789343845687955383258950068976742732089060774744022328734167581295065031678996328172897975295532793389143251828132336025874694558745698841961843873080995361828151638178652453049783933580475791464151007852184195349302212800671843631854948250785762121212495101290536824314244894273518391956271972126654092685274667379280492224638125099150710301237579983023722030927985798241212834926216803336623285865685294474408805828248528881888461436362088466967634175040285632442484063846847805207831465101843819131976067404839865105126368521735520299771195850353050727930001096093747897375843758449817500273936992362461425028718388609762903518312547352290105087449358099562021645301438578357403354979782079486581563406500773064096734209255342537474460372290651390935286266933832901269990890772629234702623178672530037112465266598654903779426228342967082154844865499548713051192785260166662069612849856102942306508483577070930072275263274556427312360643458464391981923584506290698834471242152821685930448885645125810776226416104781511424095267192824671646099406274472311864796283504373819634991564904838517748563381683103934538630735576332772227834736757271146662580507391646267837764489822031738398850836592874758118670091513204167313985243276277681860532477310091556403262832208891978977999796486011206194739405711813552107298789048973298608718361136032712082222317953252224543856824252146244775824002986243985601875484630776370796581677821949047203688077088910297441022828944237924878005772062486890696805697623053780933437986436332832201868138031318465060000785899687492379463600682257605024832373089875084551755126146781587943154163969883749458215942380530711499601718423828282341125002698968439880534216785855976876764963542978844530908927053029656436897987581944021797292843233635191377130483679967810744889342600275494629880562251653098079175141032980709759715358983028794562376624079958424557306719491950515740549502587334004430702168848905913379058504709972707475478800470330567503825341320430157239235044651341210210999068696627013651661554457387726747507715477817185785253421669129021301806888980884293390224987388418408853345680882435979357142331377675674078095978220793056099210798961864758941999853888359370150432720708588821003827012239420019283564184322993487469613078342006306657696078085115909246800129604940093054390625644519338054996995602564131855016773283353206515734627946043821170800602561531808341179277509134931025067493980771238438672489813060026641608842376770828994101742872597057856867731717743751863696551829280439254283822328119182682843930222470306799362826201208874538872157733542675206183533483195021387190582815528712134254435302609087645549856672946755091670973962309735993552239293780532339398490399555375584451411163268694424267191241469926404178981500228825962604339622869823550398962238039528675558351246233066924602601494311773714818899158230431219004363981816663059795193312813144481997064711267032769930166716855225604323294028488025997894397920645059972054425895790218633849771355905807422035798483318470478041172883276103818509507641782210747596608894699219697647853021194543688361903969969688897576362571313091719489066735879681372959429278034766825453328207653848023927868873968452345310872390365567715850590752781324881783221212405885108022916177859112788973646856699952356080040177238970460208664064234024153056664595876862885336508205307387729218094204823110232720460838930457276481606180370536774128063775340838408288890566286477450393746323531872173855951601647065270307050189062035280532988375123218071520226986063672764131164942711496824123679256463537216871788172217306041233245742745271525283025231032659033194342380470052179812374163839175889869463220843052029753750530470219655647461474349439264384212504399832826970051709220113858838479628845869450390412722732981403450209316726524841052326708776286560474773558532238195835773422532107056711642857675668114975608618663825715015326364547541766328138774549861500822624442151930075740923921501382837896672321180138750146542665160374772447151091352469487950379545419687320947087385225067360138817345600965234401424246462899525658907110626959272395655109848024570895780924116487805023580260380090981712687614510885775727175248543537987765187701104793719255901023359598506438697107288587945138844059301498322689679847040802947194809514869970343603722248298114605779339795657198698194969798463739217553388906113130972420618434512352950736006503390778920889005572228492322536161914788681349364096815492275172063954795823434397026372859334064459969790996600221248983018319892931376583656002935195512882856175559569550136330460455366775689972914870029771238093308123708547502667386127375001210535311720641184683673514578188665133790967087578993150966723210438341017942050352258355289819406645186375767683886239742154580168140293933411191775689730096661767979495176458580434167897517205255454260340879150199973034378650217152800014010299997875973750229758209649472909666982343943502377357005952629773883339102819588824551009662956312196066429097643947669086055167244853596199452007471686980178941219944031289348482626070522509111779710006116073262721305476803949832150093591172665335730062827158516292866989027000689375938537360378792740010033438991034760181236520608994535729711016645367935030974241786127134064628632290225200972982216598040496445892647668290142468674926962370099213134606870779192684553744598109773464508969766969807913729217763188083168161529516705233756438514960265969903592914582624042673543645873355383335376494624800928379705614116187117891081913297015656906371286613792106206825824790523908533091589713693768632921035811961007923758592530490056541085670188256684311288104470038290276331039093772816034273231866649292887300158109409763253584023372762630475166581637999918167167586625747014680089809137658141962948437745714325525994387461162984794570079888046362431235011005991290779563222079315938632930677164551186357962912000242943184674547299161377748273605010051984975042299156896598202156072330685427665338091980786806684274703534691557740960168503774916612757234645208488266814160121246887182506607919917224164566629934453943429354592225227439223612997370329990121727162515516425807927965377819513924279219994529514483268467874652440437704489463042171054955002481439720271660973803566576666937513814372635706631608595801245748560371404932554052747646116496035084946871924779954491562991443324900030521258571206364249524125580113757957050662611270248433314724373608586862299656806635578838263394506015564509317323918648975884585317210316308067690244698081841700690261859773951103141389688370215690148774935192674080117742183352581653695843051900188522797395078221979284678567620303236803788006781926133030214688550155893605196328101063337948604233275431997154404809514403585663650301460721502474174845746663860036888264073251803812573630379152329538692137816733343735228346678749039542146012517498391281062582768212779735265039154876372544433869158602755218150766194582387630322708252009883796119312808543630151588426764802450118993916109094566442364767797169497867750981372996175865634179019783638016550403122256920412358974068607841218644073985896231413230116337581822961703937331516750377740037801142261009442173805371651064328923320914743054271851262270725020239765900703785545776943237631177333575534585264285559768144075583495362021821984631909252960721625893643751659575347445876055840122901581275762019086887817698454843396043876611849777433540508200468286968345516872072817856161336122434013549722332745806893623218033269605734972154657381819156194739690867894720406110008891340437745708193533350615959966335884087705206266804556581190129114261264209676161442142927106497314131479748153075329542610004179173973325925490470727354085033275392900815660408007614930588343666434446490614118587164856743424202371146794911542967979029805626488479722076237648379181668282097280269286059700285990368352613790504337577171834350459085131121079005420824253450682305190198882226849371025435028569109369807207404289877095955851869030269043105972314188129535595866546251512753756325601403756741609605969017725086480516022133367239150682031347556225969236577225606388281506339812020873540848995198461351620516359412409868728867779535687697322468082101413269978114903072791651033755752997383659648391908492998811685208991492718667369604251010788356709262072632849882180714839242342951393619676236986094670745141412243272331491535540896248598107080680063388302736765123767189804194095062219018920461197400554722796744349491905494772410524125493562256587366721944582987784472273818532775219213310358610121775391465487672053489344953159430981351701250093005090687090255234671336221147660894732712277077605037006644934638956137802986690657218446825067314266690237864452702380519042547407881272712609289236312711529713413246970676491386855551072305876873315061397334414315609126249025292850179077033860232260668292018383715728170636877888657722286813504042654276818854180340589899797428231350154572373448541987713228171378672774530226667576565248434652266232574939830436002961243410688509270389173866151483542162584148358291241749131342951806372354416616032302795692020223136679921553486193724454457590403116371493704975538653136053962538504555829291768465054135090013827704528083134809001014299230259207049828593509468798676521429667178550253495014564103778639799235300808848881995399541044352623096875569984067681098159623167142532558660819666693196712467671081675894849802054996541667943314682753604433897826934086402731613670343197253561973188853611389615273177785109528719575759885972489623477375276592508071437949161077670308531639567220191347157819278052549887273397727901307889134995043052056233865671267648994382001567858520796059047877762290105803171863046327243738902026259698115651441477465982968558761043021036486720057232360484258211145413838915679576717242386646425568242652882759702538997313560028672810173247619351821621608094943765892745595254652539685954894812787646608863794694641267711708116148609302625677807169008511758058128827329140659481248608127514359679930348716867446315676107234696645776551708348806040596975815775841843779121131624603569643171628755891110469300722847617809332706647673099897632418126588876504937191394498174845293000158123816701018419504832917856318515041490943721627729095278296444999255611644622217542194682222617553508290945406589819713766872474369350374818973360839822399264331116183241214801785296343125498622033399638648236469874374105882234093581921962105299640961757716777278354661544331563564988337003046699680877207549626212744927875347999560095104057960263474559573618923695791206169166791980185035087389272463727196368064441734488403705362297108726117424941260582083487857841392214729212749944614310333638168209075368272607942722090959160972995570535515113905939793648782138346634333622615278601370596775280280744720639602185216486827060630132964533562940848695644642069051530590023898576234503053669189113952953982040101741165932851536457990235866462371808734924321354988697751037686284279397541483354970384396050556221666600420714123484439110728831609844328814971559391455548598842010488936232803637018712113747929865533467728917501553407627542732123537386258578928493651224623025344750867142731759589019606200911643400020175086981503669380490795238680066129810013891929298032212403614011007541146272489802020225689306136625804422729052425628005132961312758819713875978880848355079920528415891650049935534096181773629646046209506774860028505691276979776341028306774885832625553133105641743173062974411527639147120439321107244098110461166328398987950948876654260647850455796630522336176117298474831680566373295257765354200943592723658403540353778604075303317278460314416800828498185057150408038010388004262461915118087617322970324430157616791946790186819474370588273727025046215944301447619733067565089623544633610843660166991860635658249124211793976065202456312786181920215088621651566289682229923991130345130458570094641183806901003992900325137016293859615676604090000214068650200403116592360894381802288180887629297197277571504051953061827377971389255717701464009819247855649273811858474176106467139166641041757090336851787284718797736601043763554448942029105047357463306038354883276612344451993639997587003264956091975089218474917398045920065716443473682239335352592618878540153731554542558856202018889435340197539932609634521406379919988774032639558548694840222161008996424238891380980782795096576361330932345777387955233475479597760272413263202966179847176665644700440369659069453352901497688926493997746192432975911564365402228610803952546374710939234780181780748447976346241179679790516471578494540416795482815408189618043919411733721462479431412288064495453332307282110075222280975405896854398827574928015857479715816438618315117744270625370089646560169637877544113266989419464626399007661701495400860412648618681793090895067936325905867648288402034053629016927270368110539861580817562877423093191268168870819412265974029298316761896351027709408255990613807328441245050345475264705598985154221794527997782023302529317793135098102568248468816844906196686509368692159784448176460004654090785509890864914603743561269413600180334884399216957188914609996480132488645142739308554063876274774484752885613965774729598543345496306794073340020117342774944635403346801601184278635723707100457647888140257105400679817290907076828165905115882847199375631772509055576636974456416734516903626675275420991990091561512586675920793779977989826564432858346446606417194588713045843205015300352944310293648913989570574693026588484419213347447697425517783391133410355711579019611547201519491562585968727129888341600126944133356217902757747130124032601607210771150969264863388852454717402286949884647930114940389648016884900660612391651927854275321769554301895573390107204250834646182773577973959173624355008966339448148128296531372745355485915961774792962664402218950919476268172675407032653684226021189325223879121149255167938703301021030478803788572687044459754494787909788748711910483775538905649134277917560079621385394093914119218518578774035543703879705440774607230309511814282564447690958886734229686173715757557522527157623520543993200963647145218663444970098972081547737578913241734873617966782464545236190545380006912768983740453211559270840675371273783116512106765825681765079502447256847121181118928365688026291232268565580746483333437511789855927182467040180306463704724479615552075460991179084381969522271713038056035939867480913796718590729618873350354511240803685293327386461617791613667270810110647821673634801060487659408703858989277171609132996187768965739808550060703875952123170631906907357724579913224235689229795433933183486723801762638674275210515908660242833394484846784293290220011330781398539018727073234015328369563971050380235688485066522139966752712772435531315893509696564456902381548329142995768930959413844806033801675723538718280475701973797710211139561122577528761450351094139666017179304211762211446307433901403141657223216295413693384525166053251176009425712238468418578003161220728813540335349938571833851224958212926302029393389764076025506872870341183789591069353092286491499980609508639453688939253989386559448866235047637904961888983351959455110773364680779432591468177363489158628707067082222026738013939696171368215532389272405785926073880051930892438533789982213693635131833277623336517325009615736733509266434106920324480779642700179760600827075607282115704548527121400896619672636929639372527379381696761565146851809733836555888046928742212452726936209140262280278078534917377519027272125537837418113236647920059009566900287849412023955267957266420881829864746149158648618998281844374706183971578125117297894617519972243754118760555113169805292304181954558258810766206279461976704671807971462785272340741265021409487187066692470716319880762376117646376711925673170893598899943192485348594996451747152108147783168171667543434089909159117504574501290643714298953313382539934966257661928424968029339092349047187512617786758787893498768442149852870469134504205525738379366482992923332721600797765739501082171791335937751498558512056367381663978164811379029646376444998853212406717614448449900153050980607840599564185795395829922999296163424183697714836558024102885610135753192116743056529878112458104850885484549329513790643469081477451495485837138189017992368931050535166965466805827402560891704675833736024739551225194813881258557766791742097887993434869179308017086952343710878203302735904857658267675866191877178956908793716620302769977958367904337134328047743497817391537019981865223435611416921109385078077220197515605504800257776943978404348579932477899737506283293450253245007390629313270361523432523797776835697083490438395210268115340851081108806095458945018532630220145982083430962962914863173485331313372398022977189294861669846408663179467653891879971512923360655572316153963951873719378640910593724412606710697956240051684636913598688942480267637002001356579390008787061178607955853465128997263510937895178416505514421678098375335850514500262203099893604162732015478982411864996205739813089002781366016686845178728649098115648107278270460432648490775825239279139925840076263270042226206174451369730464853217667320915100784726095176696491283047019140519019491139965560709114480714890848617424263170522262300129491101818522573669736675785814807125288008671855237688832440463691204885894342267544530284747422017918274953339843828916740423755381002321303339483204832103687855184485851180239726362165947630883159077325865604209217486593236465503375244309321370574115608219406865065049969013980300177427853079231096150104687491737691067841923761341785454531461009065762790457698058525205392855286374142768368176657962325170142030835027800940901504943110438169243267277238849256479899660401523014341977986840063847609662845278484976146645833995169808589921963658173100846615090344667859616797333419731027411422997272087956669123234272402705654414574439245524760075737173681040403404618126627794823838021494278885574277922745758673522649765833243727650049247765303544338236217340475237693345553203959304044432316714575388833271658260646745659148734535948598382602677167060926984722055394403576977357698140119261364400401450252024960292961215269078397523741937626610446040175871346367978029635409467484049826284973286736744308957913703446245636293450985466274750197600149575144517926248310297575347063576872464260730141967376043075754017087895629673146645798028101015872598174452882953463792294845292077646783741490988845086258604345828285114519365243695012759995093646114458780441669171748551883041566131194203025635057018465952337321273629916454942491847827531446389683949150198862516634157189384506931687555384787514568625598855784323430713352291267367941641266883553984853369398967642064676353630217990635736198879060476988332249258856940662031740499325679683607439913472954549530789258853714280614032688278479106043459849931572288506462350235424376827216137126928959737159097056691199381795239816998571370425371489351845734990430581299628979621136494840073018632538089572122459871725156421802288811849625109074312910037027726455409945636312483970699660233033714524557651921729090608239947885765956315358818711119391537039570894401328903049102162542566973162750835970404289409835781963207724647892289370204477342860513433041899827039166313156063605372928790286629730732087237130473093832719302691744489645774497935659564057326340143408447894991850796028616802217498020287135474718745337237839992138490606195610088604477702081984249425905750067973482860296618407228925697594946709175616824147397012973891961926145422624257379671013490203798085210013160362393541761906192860626267054541215541898566161314758293902685905439015238162966019678767001596999167117872329718841155710793100313259654343279176908418547958097813776727780819526131382022774635885395487416918361170777354440529453385548266577683145237783062161915147613571631633234260046996616489602615837614983121693895918941419827371005045354757301508043403781136570307521744608285200092118397809809370904406156628595005133430059565848157719594662372162339371801975526973659299143918725252564493339789856487108332562834740776199887587080386462536649853811473477658922016581695092414064884606113997488385360215085499850804804606889053356642994402551697435685450485436875627383144757398577726084561771708306737325327637308545518050222007563041911929640133713689818410073388822068112104734009024738027275293819831922081600834123058959938163248030409052055551434245752056113290902160419235290489878714455615413887641563522400687679082857196499039332999409921488524260917979584443910368948185411618320958222493926184864210071664434152413231873642428243328506492809048390749922358902517627830891620976834730273096397667023625791843372718919777487003973139247137220536231852880929669913248679802724418466824818793023516723456190078311173854667474608937458654266899407639579764916492418157473004479331976663100729246038255143181157228291379414472147445740309544358677327519297710917767852555790989042144243411233388601780501521292148023053459710500431640847289730352238190562871624884192153997117052132932785416025095029605490428742536356593837976726940332143511682719506245646939226327983331670417692243739973124160497444791227751992924421691034509110605205765053080430780266884042615173875361313154204873930974729968164759431229588768922637518090181860362641607358085508165704038773890433531886594550019899051023732899618598420007845810809308523738392369999556094842448980026017714031100603508361754594757338023796607115214688277630713017219106472714375054804774968320885226391183620013139346259833859665996002772325319136871954705073686457276525415525777732107969297780116340524228514792838311320943958233254883852024422838595289094657024172753840314638271623430455318366734165806890887438513795221991221846351819140545375475110110278741307707808979151050477890392588303697969373280871628163113826839233974415352393211789539908216160263386332614777027311315511244765110024401846141852640094382817662457138179427997842832371360202824514687349165442484148202510542088615454220353289776295186261485967096724162192384743167389855324583065301147589329515409303778537039545374337780539977386053416235587616083248259905252150507450934461768694341833023320209165353332038360833421574916386560398040903355630707676264828395582501930072737055812002925894923747391857684334618192205509527521270048465912988376991885968250235155847739347574588540915014794237482511964197694953150609449289821720178957174571655050158935872760408834710701853923130769402525590737284925156269560699574184804680108797029066810975895580330188239040595343233780843729680643591007145667676225015666619071279713677987789140148717367981998168922794188547829990857898341922358134368244277212608421872971716740393084493051216022867370911750878016552432175631152875665852709055147309044629198661086158505095245655586410287647779478067494274414982271359079819350153129336113212924123662589587066363884771185619782001288384377324112440876181076916602064870407307060845123139512272186656817974436389940698209386767866920487829886747905252590978128398382132272410741419810477319751926546081633431885054506401733094862402853316168898447160207162760747139576797041478559101665097194161467872204395760316312574964451990303769733748113353641064388286265739616905945147137474620268908019995078220486566197777080200950367419191516312070383749312766298100052843502776143913573740749110434932089856828563017645421383880982914889307910428525723093311381632101231358526090779758846392007383933513463696133396426872673656781920399959747639457053161050201483030904000551075455576996374149497173279181921047284524389135370811360825600704202091497497935413803475399133338627822787226745494466862452155618930256029945550332288876865828265324279476654088413300623065564939918079805692095210413830335831759009589737190241068205397192150227453027784016760416737477488153359347956399419455372276771749598924056258804245158598996392245254372380054899439152662105551897591976197237183325188860707404970379133096460172755596223458019388056088219235780619508335365482671735090671214191680043292386988507110848318588889764439219035562684712640523847870207791742245131371009979325502352347199005510262745891996683241830673684556500591064202182078972695671677640988623692312928422315825447963608928563969027219595132020477066474469803703209907675060542462061746994155363331239879862915773782003379111036586896566728150912460913708093972667127928977620772940184818331101711396177221522910452140994625219261406710845067171738189607279570244628363604648920997334645171434771742482690970241657895794937114754252577641529769304126610911970014893147746384655977381416990192167995917059627580539721140669820064605869969859695115270996372190738640126253988482538536683723968801535168040800131937605549059602158881136956332769603351792169725999143378151277196469467156952076165593424926248081858521081854403521604096633813293544246533528766416983571392738429254431970550005588625798688913970462812588281764470721012225426727608414463446998000955761821388736548969998456578647542919394249466254556514606780802581936274160965595364818718537985366930736419816366332025459469046252500668291592275196259515085805579502815301917736804275667537278123207527015157107685697783477588515571259794886887939327222363984305548413890996530085085118552802311011143633516007796925456663331742931821816507541435422879506727867478040629911170798513104977441213961481256837002028620238029697727870602509274736711578943256447776978919719820394662965161747521041486770239858312633002990570209846618272628816698425426752361558510370724989671940416108857173782640716782393658606663259204746596370690245100672710825519175625457817236304151870047429236602064806107833374418244607276568812157599306387329117493322150785009950097054446090264356680082931647466095452537830770161184514788674772360519210690007206451182340966962198870067391608120153580712306952194344012572348695593324191325497950744773961591973989443908464721358584027243571347640603635204504350592731257994055537305267313073077529438142173471238937280980322835985059173238454958890089818067799306369155091881520315939110390881017369452628323680723821531992021561617602444791780887560215200909694520540216982434848482969112360976146463992848704800913941926519257184216639484423281847033921077694031152209519496063047698306405628139967601164835111483311730145024017458690711209426342492308859755395303580051886443233423839426284075530442639464976310495033243383993870939678649903487022302346083573924428501895585230137306895521308070609163592330974744043389951389315363027697460384652045966437904368960051768924297780839655810049111131708501720938446684246682560519042646968452850475452981719435844088989611255049562940032077477712866418255041432680232886817394775209309881067298214110286308739685935878316648109433082704796621453734039658387542064154626890053926702052878403601093472343977576322192129556360049207578534433428492506438119891249625850112097272744947453393664047217863075643172565204882510633258829878272143744047528945939643699623808626235635170208949125360153090694380836997637236280839943178074078063909233270119873230825918839366260023779701261496631693726660088787876027879763082927735484974708558259095833461759628482987577938837770525454116207252086345391535644141293370301477635509362629110656351610709701050734579353523911929703368260973966492156566438411249736591810158407966048122478258692591225555124241888033217164487875682562420961339610794691975496167267491648395066100397929069359821707357960946289693675697369756913280331883050010504688122814409934395762349709334149911196106360651922461793310926580009731918971244907804278551889687152322595867924158894997615854456356430671045905917410067363477056405897120803700404030629184787804984376660205840437353344351574465208167613465988958414722020134293165576530527172104465500929052788592881188610123932634815027367839824752370139432632479068637425346952429299510010013715908108441702579421703617172714198635562452468758256710855195361536419026506091841937412331111751965022708850969038892584868027401769926137269836062094705688959436926578441734898147362163439855632660753705114980819147583793061962087781958552494283527618762198640996320373258378344690902940847797083114984789565108558279046162082753062354943058692392745124005935422778487961272066917767567599566064622910152181731205187595102638466581158083328856188086082270001606578726925452454489976304410693019509343399353992325133624007581708737093107589415276492422265180262422957851468246988784684470944581508901211341908045899727478880560024795976259861180506890148424295866111809605557072043095525646985279162044091186421594910129032624257070955715191971909265840352409431604820787773710199912867119116093732458814033254961993340232391725724031271089706399249698274730874574245142967954874668211536894976278112570453905641851042658583820397312090296933555631243641439736509549925186632328146528925793210704173156676676091036015868334252854288911847415176948689165166317805825878981294489789258793952753689274885965734808309101514829618954813973718108802531340557279440567112024381362536334568344138941329372953976326695516052516748406781893708196161173438098986214197733036429485717546573708318972066420539591181832473838981817012429802476623939611079923888590403764815503203062903863465234914019831588525135122836679148968544982561189682971886816357245837584154501519982504023773656434268644301638287321094803589905912685348306975909030027041342211931418546014711898341824628244343269910799910594772076516455933534073756242480538493951278518018318075521891713591462400920829518124089219080230039722410467891941987186863479620692271260140054080320682863033986676677550522617467367307455357209388255167777965233098333361700933114331044875950156577013551848574191476499275932263258050646486800477279533272847425302562661640707963987770779531977595590577966879042623908379754271748102248941775667039438274284027859505390999469362329384630713572953056166373788120775838938883621074537087822690341100360193804196532458252310965197333416172625672336065050597041614445522171655712520704619117519453682860097536213657512670513106607036547551134853460331974374294602695082831585245187030285951766640871960525729323055276890029735552983117160605480332156698877652028044772096732196883969401968140013225237769892695800285612697621113607966221768632179883501525121964469980055816212952208349668523745117546571877909506201157263615129868644822926276098105141621208363165628368072383308003445521576414093231443295289945511868587943827487987398667497843470401775103898853617578520704152785699573148719154411556882602066349662844970426161446976661752731938018412032688713452262741078769606402445950487138029840370635706096368642497663245722529891250429098822474721215004166955889864185199622320040545351170596913140771825452070669337108196009731367054390080037478013420736165488349531752099884172680438938842058337215029735015481589051768079917287387729319545534506998237509695745232091149626102280990316387348307611945457810103730741020210857713450766833216515660062897271532116611106550851144095575228934206832240468778640353295892375294140787206312398809940143446202808588499527673057419926250128338580476047519526503673581443181101031366675404504847686013480359109829425258495271435110403453788113357774435111900326663949518090680000178658974761321242420445552658140607710390714324686115066097592252552158368835907378202947573735316933773670965599919588720476498568567146546319508692253997035524370824627792343949967799824727209583580341807876217730249769204360426521830907539356673013070649272097978199314920822656869993939044214129398009526940080091893792295550719478923818082202898430548892973783926394489959704891786463553624093501822744764804173497249535713778863544567883468649686440798827624151090840257327837950227851071790884898685828726113190244070961876916818790158636544185906144244158445528213914137654348044978011019005492002088784450173132357198011232737093868254076827232615077863117184801747071347233140511573469171051730225959535305671862306100847947903628154549574341261891118285939052629368643428884178960160191468791404663590783170332501721472548979432335888139821263359787015152320012320819785116064683716348271366348127666744996745920132049153223907876965506404354136215620228895349299370254262581023202405650203706697942135175031804143888691738810702207096815230046087688716335890657812920403442596846442084384019199982082569588859364232890318547354024463811767705401617579558796786094460622173027865815282802918654526144534593007922256254571368165935593815915746108647741205993567652612977012345334016259202322256063388872278901585384346234633256735899358780457468339513860228450207787078621539842819698102747470859282757917425143517502240005498314233520342851916148319698500390409510702558122435090152639444401315016065359321501294732765688356820248535232539188569932561080838446381753005094364791151178053071800795886041776547736948396782465804557421715011095118502500571396502463996326733656900930349303663536132273065565550422241078091754459332761623597746396806643846704345456866138954857708571052981800170787980308749879056129702154332692360101200269227990975844224321325036857132652107020174473752292322580386096561012120227325055002600518948122747565154481273647139182089541202684169907678840343986098562515411367084592969128846844837286337558300689704047322942978237511077781128110585683524697565882080855536984907196081768430339018792119104295765311169217369977787715801145324684190227101556527127865834874737383774241701511687083139840660409904873642921221607468853249001941157020879377283853722011731938993270945937474560174956117982236408491851660424865594895151013719225831449783526317561622990817030222853321855102007217116772154346711899668735344161041025515161034148978792406479395923464554525027983144861552738401103815912189334776479004875625079425653717096001498836728648997078549065920027893945319382022514192845109835422767359855443544552224002068796470161768237561234722135983656244074997048303174752149111265054374018144897811170644087437995588990583159656079096372097072645046463430492913754071142358914282260460181133842754843541266784113158401042835182223946788288676485162541717623487796881301456758147319222858718013717427329049414823156295232677876248859771834639261188052512670986785683203289718813102609781043008067170611682590218901830184921901792036857051065718416336273650160836427667155708642381856646431285041937268939108649607968700997393120448530400327699798439212602345188022424273903430983213512512148154321246495662553129427438884759887271273708434614929956940100997420687027324231977763301912315716516808803275121361693552056612461242982729643413829327286971332504108888343099022380006357754649244256981495005816002422958047618168736729386774045237920202217006114845409212298891854675789504130663787343723042548930349320929666392884771239161147876060150900891966556533529116134737217498795846174635539475673008705819341319172391842117882859440834589279276527572836601091646477890277246005924007547758443106113396646017883028294517631012383137332966467864449861663254325753992672973983418341185975904670206172934411616368707435530102498410100105039868989112420987837620641458866962376148128516728688589206809184656438589782764324163387080699419197681127505635549919627709317255772077390742284368974276801095020043701697416519223805163633383717118560379464267263189095781202040862553674856535475763376744952270985578268913300167341788993454091437405251679710227876977188071964724028069213183437008702129927619632335031249754867596514329721442686350904420874389546662716574163375236419813611144354482877059603911630409824673028900901810174892319781276443220460296043027659888754887366333937284767909672976634599737051814552941503339292021706092098008703926437376147218473700875067681510085655550406443986811743518682064278303356053098036756083003718198926022129701681555958262456312818303874068606392659965341285857610791906552210344615448912184372556785897049764992385353449513749697672262543755457661502809831483688388651428694189426342597241084602939515131159827104113078616811921194826456250954928726740619202897420155238604197167509742982720132358294493602320103662966759062904217332137325739499510759857964735033368162711308111576277062128038742467240727029064039681083775697734053060952246164315319250146167175374778798241147317730547029388016031256137444356331840579883805875527282124735837734473601135608665091646611538380313983331029121403608630386688720431269936662294938198090738980991940995522064143443208140648563311500249023125950312607778079499688743936646967744254072760933944242802244556953633580557566309656143160002785039207380091429624892508989716796539229675212041348849966969179060770124010039360673632769022281582900218818307981958790186753604044320291171789854518967184450005358092330322661663561163771287992366401465684671769280677988706678244060766662622734721662550787623029082095234860323518065192024027243059834603234883164460989754596002545531220596745754939908438166091811970700788474781470135160118337183197761914745396956051257061202621677528634913159225305009389994286616036095479864206468791929858983077650129917607740866320296641721029334108048546843442192093257353601047431252352936971244289124496839772841906501892556174855186916208289772869783831624365397107608950558907517708578238441142347004319992442659124694678671376003546510402539184412203891403398992355277987038695782955178737942973275243563478068228620837756865503975110174325011389349804795948825715334493341739057298237043785185003530659151096304598152776276518608497857278361860489060347612957540020757533392231426958632881905216163002461173216588752965050796052385580337353504806986675717959336830064271800205098297168060514817763883490839044241289185690706838957107651513633599414546192282467842208889084859113104926263730364403938435389520247576050365317770149688660770977297120453503534797259300259986647114121914558301514817487063370396953981398950356773235416536565335834533415732641472358948745754010085084373308236580381139590044362918793482808624454282550781085149286481773922795543558260107405192163381522687558529294048041432001793649574627677103447274594853567201176621970954672324834646987051332567993859818981434314333199798186004047643092644874617588525088702796991947145707189790847884742854582050443836093305379991836004557018468995923310438736694901496844568238793456562102220580797707370957411403193441310622432461562591595091378597044751188440093791794963945496948885040972564278051720282975152452918356854246853086519818504350763536101883567258866252441863571315765043446873334389334237623714382525102166617411294519629618704702619744343250241739500559977180712373169350025277353450748611271493140159017969951742531779512189410229206123501870845683592868675035934189343613690203125338117434471542051417244641237570936232241728278698037828947454930390258524057946718729515336141541034715531823058199075003185538947451220037798197128630442384117985427473842255431917169630311857153895922107976924678524286349553605708864121024567216903403069194888407229188524755738964557626996471837129647322282733888861527423587454645309823960531051091016887269686671296832573896700044570674736001379655720879212742083125652882772252891786720578934538912390791019319279756733106951934697831185004897650354147844947565774505563625779992666207326453992973957700106651217520134461306080214769857742876712058232871242993988350332933034330026810654376727391609496568721081037121978080892891464144467972961005861152169570094820981535539848602738560799984065570423179045383163932627454634740046079987502086251084737008230643743783223511285712642962932872272946358394821451029623847879623711166221631773603075391587923755032214004881347282895254584611278712488330596497435076727678643195432056797024142812349760407581753484874299803609339209149624123320204496704836741465596227987676625327240525134923569124734842825504861869135758170908158786929374495210907471790985980964178119607081984663034417532850897452037038111043776585068936926502953484948599270439547178819558134120953550822701265714037072541691407448407831518482299271702040913975102639900845296299714256806396290436834232562846191382854909511168237479899800030279912298874979489854113054560046974150585741124574934386288442354363953859468182226395559553682705100991067893526874522474512926744198341950611049490177721372238572246510329425989674467463495090291752282305050912938087816838077418904652424767259675803353951144067644874647149115655898363304728184258438143492555623234224599813481894278974917679863361440297104575230891683325395478216225236861974022223620647710810900535027351579300750546187865296314260739753256395365718328207933847056204937422354556755109750233800402866295854202734700373257993128309100588687106693018538674406073134989905350008040912368882296514663472684336088435991312624958038357615549444233503611299035313571645957864553618217891724786284940565122304471560355521658286716675034691537914196513958797074989503865504919993822505522943140831145414724480009526976368734940492864270042707844014129222696691717588900659528534770268720037225566676468741445248281213031803416622736506443491857762627548225112795843300651766064081719939696813471542070043557139854008837001522044651187274575563842882891362220367154077949663155091289624389207270040874641360803516993104589580972989231280965551037806727844105816005319242563310378087045750578312741187498955609437236711691235884989147815874189342954520723341689541913117109777306278260105616651672816077279703817058676182197163193784549939346570855424616705550080292851544574649311773841530595387951609927727555584056951252417125228272500475277433709394729025177566642378864351952494615218561924788716672339939079446531956555103190979390833088136542675755470531851606760164754301516220531319319899752731232834192254667601527943542366005029868523261310314613240268690995461778977393102426895609046533301245052650308811523309845507423764838329815701442354495707193435797127667633616348138643746184885599771865740970074939753555978477341431024092236592843269336559046311916727165483315350047146946768883792196981152543887308669981611307059542471956733678009071698172356078371814254320494653303054016014730077402183328916213751561221489246335919246620991164023634034405512576089764672923263586030884651231917068666121564850299660372699775141198291834829379340256426023393524094575692737711655530685444192862932203730651140509737460698062033876989140501357250829986470051245425431147444296171227578172888970199153637702718004888463944931203356765033865477074348649088665848276501257344375978166360582651472723824248538005753544662264546483108259183115774350747769953516738393687809484546739814912056895826235243522067107871905389444855814223675728004589067148625261597888287190849969280909084250479990924687141722627654113083832519996741260102633474435366895109591081672904642333971220170712771455173091650162917810243733685104851618903368561123389704473128308109821784112017688235951824770846196567990955065257103878990299918204242730432812846168979706848274556192806410612223797360796603406171592086407480930453208288807798139132473601667814647449955740526988991080604514664585678796057692190453567049231334939994413772355276363931801538764250651458446952268644336444498481092339025252211513866922331909571466559845321300868863965598271117123897542416635140187593415671680024985341748198717991005260880901813423161841477917496032080286477400518383954335939686993525888597019933357096923151851750797791120336026766247892397799329306654175733297254718222360769444512110051731098415118674691445752789306330701297164337432496685582924943565326174240408657688995736024961503978502312571915488134232584710627481305248414833876819001067972377964734610156177692093241375396274384214045951936483195712969624194812789345556309147303011156882074450814304154023273572713866978826863441091188295112239160480588441780810057356710363159608102225776337410407440539853900686706378373132499356448653687695380782378409212544893993622385943728719064667673377097213430615492585022737383099677180499068980113581899688390915460271869790394609546117496705182478884597513330912726009477391376425315893852475541996432779495000731420651138212121147840842687292988059916824733116652442530011509326618347475911611604927688712678952604212915340244258571690629299430652826010874251663190973226497461809664869661491964156490712017604531904547182506620573063184475524193169410830908689557309831547597934891653230286965320307271298876548629935261923836822002174813086966852014910710003150111226236070256057756945925367504105328495860299438699370582660126290686032482938937347477628668259859910145268682036236927983034555253604112320399654161279539537663947540361557176645004168698525980607553112473558747177672635290574329380833043980630499740138420000397683420449243335206932701587041410923614738388310595963123577060481852706588545627122818558597966660811146310695844106344402762775346247132366600487781847549630303054920514106318529290996913644744139893723356325153343147366292782524688051283404458503334542482978609980698760703640495359526860724375953866318441347641403599850320867867557584997355361261306290768636361874856741143640355743676667849944949785568958828933014864518724127265356239134397689390277635522593999926441564930961343061274420805854048953969894650164525353730104705416367364421851348345173546751517956747103935528178714971242916739878710453642026321041853688335944400338598331175060189402274166492922825520593332823084401088377624186136772970578580043301916527702768398998390837366391617044158834295235871116959375283475012613239846542180819073010983336752151495027305914859615838160475443896552065505629071305079031596981904008791202276320243838134014693042994941832752562496968234937863565571293043517741940408036757656962173595936236461553155892705872487618198525098322347616109848924914959566289651202170200573468573404316346708625975164068567987589454436720567250258914164099364179545019674297571463181992113508599493971728058334061932758191411082475200169339944409200127987924040844712131273786536296162889945197677451805118760914114077612920738195057046963917890499689767822216559830671397615891261277136644386742669047960037180154255014430236475779639886598182854418791561926611888909702788722038591110529195138438525667831499065385893019329736805797943494149316438857730408210159455356353143904299562146135458298522458762611452753467741925825020755131595385624392013067834571752442311410459593337792637024721862069499532744926339298148033339960147859541996098040706461300125073480675553454519080470836639562083921938387975930847538963008382474381199579605252304417057403532611104281977673189190969501765267479331571216294560396930704912867750879031340122910158435310502355494812312324223363127549740251551776504557861746760860445076335805209295945188753712960911803636008878581515208562184226753297216666140703311416027157772586257587174950259702749126213441282679711808558716820039937376573216793549442991411679443289222746377094923383693909588302529440577547881458578653170308131589401789637379479659113853548242248712414835605481810300143510559636023627612223510248556669106537482313392890529649837737530589972570006518548918418861977167225668156089320469817847698421557972554182347655938757588801563670225385382737441117169240215457721690471653952999713537326013368385628581506673448802637046900172101540198389831992641467530708335926027384083305333031273713914143880554823096417428552803361098467327406545597223778394384937779202861049641796018386763516109702041736661638392053620743150862094957363558365606501623617649691792619766316522330506712127915735322243839687534160426220635796427886556494490289547768154968196784633597678018287257840911828580230212839770274063686539541895197489144701550701586158650898319297472589434953308013600027021741827700538414321749435304252357646147433676834788066727342449841138621392607253410013679046266485702533012936036775195913861518717600116639219367228483499867779959752467582944368090364776601594092870275284994255749528166744230946135357434508416746631898471120940259351972436162918747748529754462414131806966617739245437069649599275096421542713479380050141697734105803289457923072401705716048006302237884529535054832326117265103875355256799926500151550669355192148014086739206091852048111212863197106871904154837747069523819638324860544143993309222557115460159084444868500958573586484568232523881845580340365230365037598061137383927257696237899515147371850568713337607421312523677781348477242437370912367764978842654504320843023916022714802035752687204880613409693165990483872198987966527248601944415306007745305787310406031457835259206260767195011566935214182261575381401669894209635158915815111566339395364702679675710585424114011550379994704791770766340627802299097265796971498956588332583469004834713402491066903172472806661069120585284942669306001977944336634412001402994040583489054419017764160420528728931275741664184045506905041286523812643766155444203294852551932094201367776347063579418806654214776731667010803165732451274041353812414165217624398009998711022371024670206817311665716429581814962555042839271809702583346410297049059507152863520233209803517391437445281166217252309868405384833008680176486575374338474638316979392945503070021653322238733779626141482373333387477073564173152341482429134719005892441284644919192126466975098550331635062027798074705856328457671691666331605618043171942057632843944208135651222949419916514537297623600537252666324329133906483187831955034727805636848421163879128962110343527411016787615200051595307423793604611406864796341214768399562574952345593197622873416615620015947483980706987718874838149761633256144164453595893157931424074292190173537323312174202926801711813080269265791744865161030968670351538193692489032541454901392190612181921677358442679391812486256226610254707602446631203435924234369263487779713875117968061432917814014283304976492076725268298395994128855320085804255988201028234358613495390872636378538441779461045632204281742231885203320661619762507220110846139487032575582692936024915205901232872251476775703598480756461607907669665455481558192633313319963472087521962331189203386511146144009225518955090171171095454843612388265336263258385116900583113570771398065787370684601742329551789311313977643293424833361438547278421691947265536744453346238922848185036075933355248405519575791570802085805834648281686471302708274132935634942185217534494379599844895038725330728077980313039897007001008657864526735690276415663333538769514922420544471453541786915649617164140496193687930928322721525511914802789229643298820740719790095568021581428708117680977574124922391897643845603075522495803252110017691315273688163171541165922783431706106668934191549674821024376495456271049417409489199714256165955450565680896578323875127055676806356038667307531533047998612350378038483789966580300645190351041277038176848354370890631362426000946103710946439854464947540769140120997794671017935750705543616415022824947667979012066662244281565830114457692075115435757261069887551982650406286586392724851331828462508670684885088824890196965001692888879957377962279971336993394034735965734766973018853842463241364401622520487134989476613570417816714297852021686099071925633453198116981480509944691531492045246113180551742731086593253025209370349329551781533516831579601395985917755641187964262828372410033874913952137314070303705369667938249682798780089388649495592552674783569261538439531730865950608100356647655600461213763197386511514656830691053956372982669769314426193790254078222918303532898213240299734880800537171759175319924865132043914230980811234626874397321878775132369649942594981389713998735536008835463376264434221468301148138818065862586500684324012137307624257130259807610730670579477654221685414427750991883112654630829154586854259320814219381991456462577989596398007898488115165073100819457980269056055114235321893068517514051774771349315598264688681005187391634923233584825239775390067572415083674377383150652928525926651315547758449009112978858135671681730124972532961666636504057160443193953343988047317251553514450458745282517404772152056994502604397331512409368155439584445289766018358769304812221502506055945094686084381065155563711423192277050888825594665564170070365102832814480143582989896033229526903443655055941647956051103570583658529236176241454729118611558589823214597978588861883065014918294941767218345536227853953669952961780559044165763689957011785658324686544442698875378657592022217940265748881966943334368556797082298215616119623662210142080209314108888428691494362930064555518374966343619172039745891437139691107184288040302252337094869965935590982757152694582811697384642986147704101190426278064359338646275949813176562575929723641462421127847284531051741219447658170903534555225314166950677873897765216950200865879871026568181092956570713105197400847070702560983167244659203205708704518550339005260152783797800764921590373332660036210105646693280293458720579164811748792578842098768271128575191292191044283678137479891139154753852870379459281567244357215666830427899647173938841916774192144835427931213909228510281569320478529284963154228433038724611418211885850739130083776218841192742984657271384675054154185111065343405533584963977611840266356708784782873955848865464048211719484416148459644098046730406942955591725307498464249071582503978958636960466007542951451819797467096369128740170628052913866775077998599063115781395002796058398079415084194127210799285003600981193090113224424174569180658499145536149981666370774442215506092165921060690104866995398311027293352040952867501047644122506858762652307146726959234602825459934491720403406501971551215543454866826404842707986582080364636968622057991185491652667483621455967333928520635303670461904980009604028161825162732924499115803591883199002158838691134129927616728160947901825882313113680789028189289060005347617376056729403963360150249606039151295205681286041123524764362621321746443346830387903060144451500258971397546185246118859688125501890818417217058841701618940749470065202702733423292701090676041583913732072265490282840089292788573341760654227219551557318493110982727364579387640860548287808227982989780433784884972561471027346152707200205230716045426125957427491657147214454280104417377477270254005515914775285446121189210632063600467205284225808627931499083887556448176216462224401556976206717964676209324446671768587313829755012362934813274485883869013980403155049643670932423200378204401382936912738074045630814998988188866727946751634378898011450764275819566683550850384857763702180215462901809138187113359692430837808528566843020329372142147151867384308865088649360567714544829799429329996266041651070743096445604031433251097228071630288621384651834712311398273222729519903905982343125214945206956366432487337215708477557224756485871391480395721752825423457754684265821889037286608973948115082194838777878519557512664961014078371727715230247830739677497747802912758683013107027317162619348704710976178076242839445519640224860076897603135631466767336446307054468685217433036178459825514605709367848348503877150149923394762930959370397322728982846642926483055519208072449010747182378430830486001867678822073383284154118885366052185401796202875202270112315219341934929331509574800888333846844313812874311244893371658535668588755559522005763028190660528490520590248584206217430182169317130458930609520968936509650370510748268903458735933107243009964911274462847675553198775131139787268507469076141716694178649067651551736984291183117794253164432289037363800828032333680376930849710802423615897248686387405595199436567052477700043778262595807041973218182051231467170299821146942680815649455660302560334831554228577209912916761052029792499615574087787313501390125840130309222942175932862549929602889386283710101748216116722488943355809203598619485953982208965051906254635350368912850084208569902862051271804306880557016189160005851937249142116670937039167921954587955791529163968854008069830731807903300684808368439700323464170846795386265457331342679766578225048303373045122941207632706734437871480240475123431345765009696483402652256729254363162887932727772110085138739620843856641924341331042530903969088983610252945829396138765745523433242989233440370998230048008705790692706106117440660763653641221800815499644632764845489911734967165103053492442006976388395992157641613430271479549479075806841691737658483342129045594120077430700739476892188699800196223238672079055926382484719910710311714204560067962537745631698847471855833183328303689322968612029610264424811559942619757446657464473063245175023340292813811626593313305780818520062193748011617641813479254391264301592594262403679715932568073813474132473290761041727733903562124739884679489028337932826626911847725018077703822403057969379328254176116324516959877766319873433082193219161352001319279645375410740131795063802976128714747242040977166293912608897264720076133920957268494637685859096898741684765515145375879129614596545723844716801276728038645049478825116746906532675365985698422797335938495706232547164387435689888124118255967878892403175774101202062825349456913863332229271663901227005474378902232321942738978687739262558374830055444911413893473805155451318345999839561490624707360574480852140030979808699620386064595385881408800980471995522774776758794859090243061752321656289509688412415680607663420564555652019758251226865955620490061951290188722556773567748984544310113869469052997120828574870157058982857287052739001559918986498607726587172807302172402087595832456759533277621709095852442836636288007585873816285293904847351726555363816519358342454222614551687738030988464109738144007109514480091122268745667481317045616144020085301746435417893519583962770388817483882132659885907292144019703511157286002301674294364391682191057327794877468714064833858021803970560186058140806312812806440599349479739126542344848739032131875284653328946542447965148411962305795119597139614852433375035993973255830085613538439336701942008274231684217869885462835674470583815693163295757387921735421431665545006686005387774493372023930630881549915504149741236385747392205304827579852870436929854803521302141707046872043675179412400252962063140779540016136995024623561505767718098552859249663989103060957741921250920295428190721717819809979662576948730102003691174979981064436876024337680199451008049571240249493765372265081142908622379262449769383681999846879265192782629981893072196168047218013278515557327605663925276025225328136327559040827616377727514758259811023912549033248491408587061158342378706931894655902979230690147251267974691073763147733675243565820850000911718790377538062769832527599304164654343855196161572564942540224695020099410238838374919766307287243735251838702219259815688897819447179198674098769713054617527004427034023005315275932656645741930723052135281844829592768574672179561638154311472908181805832657641119517605480935903814262047506279109887096331686419125970730019911210504903354424182236177114605907784822539865171814013003321672280055353396696014142603037207716715525930614866083780210918099121611867228552998041354412561996968177716525971340514856135916831857298216744756128970056806046365601210993848428615588947177712899418564983684345256563492101490956478179407056926508155812915495006651863180111959599906118979271644409895254537544278897297079684977110788637172762848404862422128118446063547539771102071570220381740651265698340660791799121585768505569077526242351235816023844570890585433911042299711637214905427312429102398040433092517021520979507041538379723112069397675142449884721156247828705589633259299448731395683288073752674698553430344168819817263614564686802626313942633637239139764800012664041844421667371947032360339182166103797206975629350186273783133639396103354641472323353220668014307386104908730484140568842443238630017893161253956708233800378792107521863729888147266096549799055637326571364860128128899488784178880986014554566868245862317253472495010597970723115828332504181997766405222751673763287669651729340244008057330660561600708035064800440061910498984423604314197838172932288104161806832241627054826013477666813185174559001128719191229385940404796817055580516635632192631349288887271548292233564651641155890954545279979446025920507064050138730976433113944089510755631337890854710391396959848827476503280624557795727699403595977035073114264465581819007981669903982134538403688551921251131910582473359190965681281890980530280008809373046441260794264018555348649703589238452950806171606588323328651332830487070870537312765747015768762288219958091274655217682160195609900087830981070478585939709242686144996699375605127924739263244329993894381458660740060428383650314314026994468937675226889471730322275034512953703928859449320711316568177657351821841021250119967636356379758695476365985007260911458489696879848868644518194323281139884752125953103257938388782228732162696357039218015383622056371732348386585575729160680551347341291534087666228831024248200156872804441587046530040045873818019468666123264252150470273738732139617663148867028035937235433787116634819611694696060178690399348885323025277865355158288340269021702113529016080185357282021956299378140048975931531931769217432941749086726941867170565447001498666265171749074874561453796112194347373986939739193487737191789006962373907439110305585466002623300232263240987897119131857390853109366119753006403657151081844385987673846539962405947137862335232040849262054009733408113090310653384035956966329532280533668652238523863301339562993650078500220075063051732996864800434804309144426254732444567154242004811878895713243041597193368006895226979676467061969806006596403791053355574952960748706047026504187262800655497361361773587260514788425346073167097785112338136774215548120384777825873583968022607827368340866636524777522197224574655303695070802348680831185551033680095647585965667206908277345429001964669183597726324092009786368918215572328861851644348260362982124087483716813403171954761998402133451194898284926048445189992222197978808950563027537315492253983838276447006527209620323495790270887505960746968934441911108565608289393294251697081482368727364548185095579020985889111143661763774095640865838536184850087313262512670568752594736844126000846812436306941408456020116577828967743497505014733695670767971267270427518672155958039246481307604629141149427273900565513861216780570136071969012404738901197526502133312224141423662594096264009859478440151032700005668889460321955961624174313678375443107121825687998813485434766748472687167942818206869278694237200454010067151223326225455633552981166883498623085468111559113112325563405797823420172440961243593086643356344085539379918091454328133411322590087620709921988722856270548503259589626814470086224320271693673845888938439422371096943215490990094559318475026520866914914412198459739682606917725522113533212856690783534555715484555671795938235875635078584910883237709392791050033914514225791145375052147492141507119610806968423975074501275691206660768115215293556896736094181494403426527225251211604191739838863796979181045545381758048239153507901175219871583870428528524862452159671831613132881191698616271744695028827027841714249937815591851268816678219009867996209053774379719728669429390736322472929610100901621590799517436803332062938625749054850299663041130858729795430408117856638601376860935993762291088692664245192909058570595773380480343868458798544907215424453242727408323871881857775884786886078480455109083635667198589019770051175949074641578263764651002183600908321368620932521797586577318415603029774152381356604999527489424913814374300057544975016070082275539268468868996245288198033471529188152845223874305294430317103120791396733405100457596175706887556148594815249694165220933598472631259499196475443098383611515011489761891868278747530966566230044175420254334948392575342614529870653608759583160307735545058465875033320783707721532435990844737945993042005154546832032168521295857028258772932863042266883972933049574194859348678305957684529335198265597800193660436277491164123101773311132067431531071176637010622673111023395773266568454820107170412053171397556484752702098173921851645142043022530715735872179008434698400634121413606339257668892182750830479894134287573204965662745101091852312479722123133644197868093328787115261124512830728101745208725782018365110381333772413343865745803975716546779269769023288188538231864928168618678459887837283257661376826938040820811650750531093034493993731451720716801001017728347393745162805342043456015435540338387825738337693541974536135143656138885982015203212728585951557166554068575116535040141323551804342457031364709874790856200120462954216465764461102426104778962867582861087839673182124626717015580561131410971371006459688561912106152315460364709628497588250297271960447687468674867130879744063478239760463508570244523921068564192761568644360701484517477527838750234525508162337220761539626224495594343905382037012094648849880158736245883509178573711961454000012988632207338626305372059075424550821132329820546693116962336250930204296326623778023582632821774921451506721990792797753105430572694113883136413738777802146663042783122851876714601402531242965643763214720680221324325782661837964201302560221569066426228072786750802475151421589948484141585927038357402008404297073135175262472044999600362331824403306711022561051721952415092254730376956016317316616910648217143787305502348385587592890052302549578410139827452913936432229278255684764821072964055958201128895589666596099625417630007737636694751678453738852297639053810163167285727375744460350764226154831126410728319031479275974092426872973878046424021407167818376773381493592052904823165185214249566366376475375008051614150324691045381727270079466756691093368955922775902445488468194395429553770176860187728441462994456687823133979649784676080788190996870889756383485681090519635592936522721355949122289777776212781189452713401941652073272267112035155101066578593209092726166184461147581100233114069789414171397091457210677465198977586910300454014155163005395274286262708411284904669677179528113464315589640922505933979926833238847042299129502874514654138657022613322732517773366945312526221722260875994482342397391620679787031572103786063006236535146995482563633203130370344913373241993999973923719829467122713122702944346832025334524747504456228654690863728658606280407111503236587854445533184655890646982327812039269983171481534419748905571413143164209683977935511642304884890239209312232015563633381221102152851061872895821996697048318277667585706394216332921118415330170939070201921206095382610747875369640710015624082556002891803839028885101300460929721988145987024806735536911386734054468608470679290005631348285367015590793006423154508382107357663439955477546000703163113889140127098189903814513364681214088699538660045380880423767095704005812966285145667590422813971561948180931314477161493054389302303020944187018433391576050301299588474830426787088158359169987669510968154327547065220410082332988856424921513453998716459579892548062101123521023356991003739382449171110489035187416240094511318458674558702279013202345465419608805381922650867655191699152331630480112918614372171129464684299292581546220344083583859637415140209851675824185866422309390054846652906737714271407660454075730968008260121747980294232725735230802448934444236236088214662271572977854964691274592248888629567188063894751612079195201569863887572520718144257980615212256783137640092431726545331666794106976608046693969632383906340521193011343765360361282105606858448541605738840115070870644376955649634842799452961804886944488487243965073974020349716854239214862410496563606344050925451093283903595022278586983442640700285351628315082197964991472985354620325696903645475444056921670315534921919062418431864586603353303153136238626756156802605615639252822311733297720373167674926423290062172608522073774143715767687742659484227103882744540610821051351176667587251000794721429460142376434497007536407957683157756902652754249803205240732727809475994773611419588110237227977029173747788928584411806333297230510621906341008942890142952295403253819299471244656933289453294355897676736054628354847901127063396657763298277227795550800983610926622912321370007245018574258199221526444533353909391090056276289434049798737437784049580395446907647283172357203136658368774764772321783436314424489834543333323541144741651153467769893519704480937549525155243586332923791721768106969926909498926969822344467029953430841173452035987698418534365806822764482435834599623760815768985955982154993924944955721857613153446820994894190379802830152496968178702518575766330406586780873533344208503122567046796859870101339148716818202685833949618637313868879865500210918999606338935989821634512229731616062019274962743528011003328312626598775018658655201121445487092766465519840833814939692180282652012982500160137270054752676381421958796921164303045499818498578687735591894081764336084715640327289642933434313203063274519290123520499188749746230265110456458489621647715202930280407855148667279383158542387972593804105701539219730255030827793048747920954002514637609633183209893259265233957068590987265688899554350587081618505920357529132932032742641619857362772522075890782067229073129323313666624386965463509089292660469749766928226428808489947058782626810366515846724334174617662959088672164126891289797780858879592334501511694675473496919078338896043324167901395234587242624428363892866466268266031006197521043644251553409779731798787844467464095056485470840925683617325666082333988081927967066521668112199990076018684458550672444537280866652541407279055025608379843268281812722702874939035503726250924142941286565457413440525300850799689964409670270209751321018386600981639795562070174115188061468283913726372095337445996582123570690816877930661201577474534990966978411036059754052909543834336847143712509982786857514351040719702472907975796669836671822680585702707346223380990918636982752414172240338793087203196131022928949368202575925749412370028293474585208353342731572268683337336862916155714856930169660280608875295354713187406452013204267639174969334603431178335335071205089314407367234789219379691848343049635783491675697607046412249571592179513651809161386907939429710620646279482226359769376918457597148791513102589416979244989950666709084956337028407997397944805758774098382168104937787468294673771714155956668907421016026281643976911645796794824244687860559098479765152483295263998167185062115851987371004874686300091320854549615747331398122506823862090454129275328026010937094597777002725524282596445156168434686946808528902538301330695061376165725052287683415105052531562124603260340496614789905133822648562634748153390169453694045771180406452176426796216720054652261444392798480669209609632474746228695569220256717462020131540647198122393391159955697461474252379228613441972244517141081151514294351143703608079040917270128117198409497400155868245842966443169718404027767760274109811776651536015340395578803257667733567404523634775719653594334899556580467768739493482465953815879585252234836882685249248045968993837638756487365878837376120690785809600008332302633616471577761454736234775207981777638518516380513918779972836426131944692963925392084913545872796985828159673935234050359670070415900082707481973806627924280795173089688801495473940839032740005571354315063338740145784104368433117734459366033451843231000587062149193526843793411217033974802078465088326410974834606876000844262954206734339642360368376029229671385848694376345314215368896615232445716740063417671740127566002609173296827055793769583498784965995450140592593121269130722417731158183146237785719695456637024900993131180701873158791865469373890746965744774849233972324282174831372103547489771380305632551639053580852499292358422502223378915418978099596910792834843445675720370082178430031406801591339950824817195543741278154500484761038222304643740968751620226138168798947434531177895914379733992735591850898803978850850986840731587276401900030943243417469926733028109935706567903791446907072595735572648003016123808960207602340719311971057034207340152571297927951008506270048171353199177473427209013209150574967427953191453686068743445779657474902889292125239103896527128826529380581607560281454532508914463843620644671441161001204510427866610742814381180032407556462055595942498172388841023696167992306716332804668931345404885902653404903485781570633986078856205475853203014593919661606532840388490096856381111040895805928976346641169949684261900781094077667111446253823584368164124950519977018739561659248842452960987436805644645568642107114399841854910032698086691039630224853694092978455868677470531434575359286674417030933824903961239810514653921068596038098011303172910110434338648473990459118542165443767604688629419590380513524462643952464025673089117535151657822847531748991466563907789689806002164100676896556907091672712432908896033763502082724507391972496288882301181320714487578680928169094349272516485017290523334476782411053705710373041539249238072331715730028399663153378261367915066280748191174038461119670594604892495709901154664346837005560853314080226967332922282130757268356650640425026317251292213043363925262617579883447935004000377845562914253523926884042613978098513501443936896515798011741159305726972812493291805098454717182935570086319175913304902718473545047949613841872209927043545386380308550473219086955769317041136090918310910434531365516186023234795323601492714594046929893840469062131069133773150954492266759939619426937153239628905740392964582622265584152530607933754692506336757546278367798610904253504943355875454082955293046530697735818360763239548179947313582169662227556260328095457030295455595346549420123423668128587446608308541017661038949819412862935667581419185750553984359711952867932619417677911081469437122039522429604528047285948996817111320047683038317988664839600659279097590781067440979946559219352620238485338428170260394678860525173300046931634740465834087341716624472332476227342845076645188838308678669018316080431279373549611408397817495400511871390264455290899508337259416328870797512036446765789835962065506835649299887807511023806984278573231122337703311540022705604466056191497485589855457691506299057346406164765607339897038347174260671497648404169281194083030734734405093918666218150123852890298593106399822990305938807814196214770010563454289021402715861272873120303702324845478395416165440047178510746517996968804735661063210749343378078448305620235895144879296563867978683263508291573380034511006011209344545435298208017665881403206867820897443205714155872627493262694592123171571041813376239197384907777451437462944822676084724965157901030504170637623404109500532370044276212220222819753297192806468743243936415887165292874088580888776632118105487060586386855946984056288177186307418431073771249795688776714492953636927982916446609073472308055629816448448254331889580489964933530615676935808814194340174602506354712636758840152663539004530578997497932888898453074542216133163114732861680632911548051130358956483159421900833452465209834658830305194932406303084197182277078474111680710291096897327136012173902360462731079895543641268627343465870380833387354374061931422967660006558286997873334322699964772176547169342436883610925533018905385917450907261303508280963352582913896185299151274666189707677889230143850444604057754476788327498547476394061539242170485819776891002988573124694221612738256871552890253578357527068945381244690501274088347898693041224324456547355636987838015728471336019330152577381567929273133797811150054612129215647756635966289552808526305123447317957000502400958129973001077523977328920656002632998539681422263766943436695318690426129998943268172986941092540124673762297134127129479773066179544289269511477572971723047797574290608592332970922362472930575481812644322234301545301857779591619650212200167882486286347755761719654572196723179727014304426688578206426186755296376431420401119478213745088770124773359989580318210147156951630340198060148558060878142651115312283112986564120620839464061064902755818408951211654941781192006044095241883865842462816167293434548994943135199376529289634541110974793201665875313935252680687882591667984757538899207670790443508503816944688504319276570330139679230290773080885021973720124097774379766611573008007374845204094782576631723818978904110034750960728028869018965838980646284486051386845161950862175700704695182252912838443102632627874956925162487488530802063210855963139686035230497437261069732782483851526825582352122568209318047164986652423640488081497027614920402285388519868716407425573182207101720260272425535403514856556821761047954720285386105477224481667243436980754091174466064892859353127392258987886859949550894530381374679995139147197233658493287864946966697508462127970628629677700194474978967918391140063776485591318055456946912377547914263045765519265061009873389452453571496241495277715025420419938307208308958122991729891217691795851276493300537022293771363282382478354888816189204441969848619283229816973061506047269592629032799063309530409014593290830194876886049401900157954820519513658282985616795406619220959092915453023562567739846866598454865683373923940052476573695988204018315631267134930223363334476518104189663090701375547786090467413958203001838835125135369777349334866403982804308232399818117789352198151022845494055867039677857863780681796105601675807829620041467836452471232759838601770860075752140750680075209208197048675427392621591095562974472365328294781932041041998960610699320871274086698942874699079305291901862795139709385068528519588270095334705284010565157907307651355044234061441972265177916795235369750822058543459391725691928135332142517221243558710995253175142902363559221948407051229815985932011400554583712774200417500174125974886650333431418223764355670074729447915977671489104298181312290348919332027325701393190672207040348676708427372126998930528883196469242449748374698926256935557918301260267932262530889099123117289311748475466138658254920595040766868208171068417540392269586499709440255730196021674260332630457513706386925661424540046454247366095122715827126391692555658855420148160808872528239026479239106203074281984575862355800061537811067507009534365162104836794283335829967517101460863960856300336221903023890645542780096378830674027302795366470772289910213540078918061281719897071294958638401358494571613351307346886561720740203965494776641884061181666944961983509694607407198500103218268835047475382728586574366967450455825860798593949544689227168599883049689451790800135158071977249923712825254894124040532815599512906935395979870849195600808423030002042209503957143007791325144828966883649229212926129552204885076798782626053753709871018037954355438806994305746721583626449672755614911276267190854439688037305718497820957989458733883755027360560222116459637934459127356471968017617545760384415956048260990115702565058990862238894772094935474059506329386981732021623472838519964313746600266147705426823352013661110790012671980455380332429954310021090119672566846252140388688892570642847662346543123980977593499646405979384382401103725143426699401247901573135120811915208427411917573155647039343988039636896274357608426934942288049800215736094595490657283405749487159331315046099675171970021326006599825276978667794202277948032722741268297855192289094010447646120254453156822573956769309667442272548975639440715900078585818300906324046862090146589676331819626234395468310660913405864168346625213412715983180448994654186028880493290317517905615796003904855466720137479326677732405996513342499171825668698642131213586141714031603160255552422512277730688092372447253729890384869621510873377055226399029573468422772946726498345326058441062955142645634936396660839251598536338406220003672551340662371355540839063960290624514689905105536237857585281558666906772829273061867339887170341292555141577931866268633160526871650986166388134306089318769092376672454362054607477722359737673695851268845325569259116121026894702856196733301159635773935138205338851103205506613984615808190857754705826259870897473218821098945964550274782536300851525064245410193118115156002739258799332220514405690202075243875167425713953979099585699589573048298556530655265078770492950683550143175464274182513098577129290057238855335917455053080528822983947743171412136066880490184419817752747460540511333276809570142150220251467917975593308035724857466418309680631838349131860419340327193565644405066825836655704005397743517808784155049327193801052351692337349243651587631402166219258750853103251530462240098128633307687229211470764518889121981477721657477528040499015372397817722372119160436439553107575920228861388281866468428786954452082450318293828752160155491835768934589974517044709213544233817197940651255786793882474468579497596887662958215022710049538498404988835852534036279065206262826975933512939435013198872553612689353843999821403623701617959093479307175970991920293448333869451769987470930395187796491200985845935239200834288754327046329960745227350658183203127536882635635877998824603306715966691454683244177018314102391679125753829113068609485008696677798734554565268125955108550801094499131109283824648663164708589205448896338520799827170539457436361636070800409039463940837776299556008302254954754330924172699265588412583206895558856294666802722431454237039806671589223502214205383567449819936929848705592408730487717217615384261175341141196468861265354812980314183955916616848306140416409758513154621085571672966027884948399408171081130557351231488493721794265072139841622231069274155399976371407825192501915214444776970757419508751462590605533908727608214738217532098723433592547643370958603102550148579195545147770785131934779698961231314307272334249397852239920247690301630376695622283458009924237157545940043877651962183130581624453235563954692121021040801819636311185903179899508394281952004628064431913135900518892194293683809861491583649313675858005460158472261651846472134733280682376294229227738965557767777308652861439001584338546148375872131474222111309090838702393807066496359231188726333199774167710829095609065419959248532490046162868840049000081203171469503349915934607373446715725240052779638212749618703350662956474387845900498087559864110881818202332580069059369377458903075876271969340239192130355455313310009019997572040472247984153912983641226759523057047975568900768578818358046591081208644934283746562268289315768476194394440980756268101351013048227404538241610907845711149126203246945421677248499988453002905397040285154695057264318653062674057966003508651194094084542642359486446474276886748357362456151077938263727086264933045417574604388102073834898776928738224973579265310898038997066275459626461860557009565359078107742020309425990194758522837663693492082279777149724287663788618668977968627010938306827014131061418115752256011775532897141251654308060631811004926646430203906255103010558696334209966677046446014132048407078780933275331546946231548223973225572880740175804025075525377150899522935520234213564590676788860920093155368410200507354800574308696949328003701153930121724957623954819376427110867554612648764045161263591710789562837310390770052940296452039513419478158312158621989087253010866558077532675192603676966290598212525038184132175422499459083979731505498451730151628654753720699353071141075477001690952096277753650669415689208982821522264417862905189866741948128899349534335805843666893139481691457807912680174816916020370303297073013470235174173766449548225973148291518331776926249425482778306672405863490231268779121236444845679718191642001523535026358007397359526781787095213912668473880889099456741576649845932386132992200882062507811613348516090745913553198748128243951746829942900061518841110083568638489572305400695686204238348857383409396813811365846611331073370630827082389229932015068494845605986857260978628708816323956336858934800450920500037061779922316305058380866857319801442138994763631018846091957634456433169590855590500649516555870977401826393624451105585248498966067798547538889559979280161836919120984906912651220011568985686140909725049516861585193274715615294763907420095000322665602572463192917824030513551580857862879166745027736029354763437357598236828511309782404096698827297493025482661463843308409343264287126969982386505870507825682129638941962126783878203050278126000683791723049137239420546397976439517977500820482927500317481249872570961934064656364481837126677553104427367826286253420154012918280001569836529793922350665141969816661581473149392714405591161040994822860170373369588858848784709909506608988095396157201848770743329207497375336981411291820727690266862535335024099968129648551321659471580165960958687185813620007891514515408051601891338336315201911824717874428895791132296050698572970967380565636947270001492264797676687598633879216182929527300714342831070001486754830875459006131203537405131844930859572377834325946309053436042206863827056461959547100353922112756401437779886793808161973525823034188367152168427610663263940800339446720941412722274134246690768234773937054874792487715643412365327563068527083619523590522873094502386153325645426924017887496854006935152441750784600593459436323431793237226023505225201262168308887915152608618718628501571970164110115277915413294013285269784965554408586263132419878630454927655658170485674269314531817120810718341879877919730579065404294133234091178296777759638133571148397070476374157857243559571866631586943826969672777806546988322731665903116303162335627482412274737962600880646714919570822916869081436034681051190184652783023920371588725350106302976126632403691925188856153755055703150989246051912475682779337486127111638416971499195056383121103898355190883838470495426681150261869709963071967017967672207346624122790417595797652869772928831684268329257097539013822995969955540148405970437603515700893092685106235436797021309954961046021449898896751692422755245600800906398449777709845032853139039728555327786441952982117122747301410398275534178962330685574751826155638639500481263969341912033073463945222976741846015681298496936412967247051888570791212314137072439646283229571989880111696328349026756860142707712032357570846773063771535923869191314716796458853669625207892363786578555499789304776517120860642560618550754954911458223449631036481121846613232056574166873767471648615090585051554020962983751293438933091551132125861315575447250062099300807838167032918522701210454102452261451259641606892956779087223000664663270263032459438672522285407754466189166558785732357063594255470702948680260670912191160808982687275427129637803820997761520169245161878258630593496573919703818911866976003540654302118275696717148098752716615977954429764616468136315450972606178722207529991795845304781617391283108442490955661585293076542210806604824833607380894816705797966636106758186413538806158389009176295774921267032358935463216848057193468561623193115978626101497706576239290290077231062859934828302228010860385464525201815661925255867731836905557523261699637566009434547439550012401231516314202211738112954170557541338199156800632620913854973936123053737908099485869489718979194378896324969829294207910655666647599442695133767083742626795806518969533944756164966995577509651858498607882293736825267596391561765788850487854118774728096490969536697981983954963424042584644080403545339757593864259754318253690587829937049448060942981865769271287058715061721610373885935450367153736642116388454339535980123590048972783298099007055804537005647512580994386173916337670783202648937782677535310877982352804952459299620800714703343691780725212990316045031434599954839154008284220856945069174498747460603882983114588595274348917442720860639463899982659085082253163522439353471863886131385743089489612727877047031277685203823933811375679638472292250259929303885247285671429486842506516431224985741679496508200693293652406394412885769861186842041856260257854179673982722672848292643748282482001734164809228572110566659551077563443279476317012607994248243259264353057968867320463262157212290733380897027351541014287694450089170007155565717735383862949306427010324689430156541902735423054347343677325021765741542523262898915886557644102993081110438333196369774277033582086760667129853667497300757553300917651598527743334993046698604347981088780325914793275745063874090637935056811491395034530829815362575660678756853086699326619783543940937737686051808923650093408797445784004503912517188618616602011894764626484246104323032389613762147830083163616261782774659818501836172357073687299430751756102110194447520776395028980107176532682870544897632086436283543902694636805707551664551831076792603081404191161318602199166664787243579075215775192868254582136227030987594933512809121608872250673928764480896470762207560502950949356792764890654679682678476429523882176587499339656136912549306844480689768657248425221838187046868573652071172214740268176065879053468894660670768286571924282908207402998002026271015638691832574564449419935041103580848472572384604195977243488772365120560084447465515828745993892763630140358977121242811131775005817470093113660611956938659416648201792559177436109156732313736722518612451497986072075714517677479119983475208760613017482381315947197239468223856780044610446863462727301564527070640775686695979222323041231943233969312141197624050078380906000568804576968228585358479069386401700155958657096279963850626754202676461791448847413109227130676782243622082931415016120096988569988553303087232134541030588996910523679056311068367146365720913904898802389518816351071367403831553482177471695706790677575771110927601419943694354972050583162255589393830188523944788208847928259283575723209375656429154136950899950853745305293937984965896906618399732330739430859487205791349890274531604263031251589889913801426110527620368646031273063974806093850042245931323007032216665510475332996911582758177383670501506063231170726605093531007012587408651928998759652437795875494403068627636296112456235561463379171987860601205679359595528223509845182570875319931117567748485337050657536870816098947516350935741297570324473697716408990500134482925803453204199122809859117713177467289195730755162388010052388199594690946053929828861690888559599988399688789469807482519713108049077563784616623878702440836799082437230438122111005757100782915621734297984514724142782056563222129065962682599053643734068898550244489318978876958150632128044316383280958184288188791622795364180664510915482335195223423537404529011102716882446339821742309636014257786341860187430619330394626282401762529881528498975722195862818015020671538490314984390314825429865412093634817671807993212563052174745384955655198885050032679067968446881223127721200238398877109795583728000667890888040328544052953491381098333186823853383876847647426833055188113590387992520004270357903613433788255363362497343666784101748373943376119063960704601222068348114721011524317879266206397294335457857999022355044264004385951523958197847472087114907266901096172959922626314186776280731133890670872382821095633128337778573467547181844865406381943750824436183760135595929872236821761451278997514847522662939587353477173978260108885182289968154975088976084997901935759724991227132151462339531809125458175644063493547079496402260301964569761033687976479603553792123548454305393994170037695151443344714864035210512314214164841096284174915493914980548343533249717068189091614515008391774726625815354473102302431067192110891024810764266239257583495295612644719272053695451472592808409022039952697350826668964979717741495363144894823229391078845532009585292741742828427432389103990426646148673537913078575172931496408009050343063122690178142590623132924064099354524714327771370129491007378996572843843143549575749022754694232880867820911971137757473930936825501698216910650385075051028368644275405298650841047761317722170810741898449327950427417754388785351625015692562474297759118629321670868335891557338803230000241022972427489219842728030865441424768340370208867054376912600983571930882649471285747184201593903757196754238604450660459916455613579636656459566789315568285349795440026087634431704323980398384594637524911120864014547369596241409618745252476892375128371558786220653782556296135019718258338522523839042715222017937642952065412940078522031786152475510821758571124005616378649686215700624256205663835639114788807690054128214867852396251323569936770826113509038024736782008095108896822570445483727710159745082562061206018667531186124962625490888141899988525457504119365980278885858717064827387809676805053688415737064416999681249444309276001262590449294113033791230559025412459203296523437891241184769554377031008896594481121335596471109179496125770420765603116970509702844747281466291658124892081667445778943496331990689777941574433084068171430348194329130165212222412062244512254750341181870375926422720158565322552655322760243890923975593476173958012932164904993436053426321093343803036076738926452800675680638866128442282191753432701903997550081884129751274386689743420572321067045423580446111179633654896790585816055235149324366038423823008540910254228017210633556907541398649091737767491597494477617487657400926689184006012030212319105361505097620700793757042098563637629999963128979943426702592551693758262353032319385390797498316015233053769056888020655414774929937778255017227116587044720943199460468003288418023734488005255247072607599976414411137815376486454961739030619469749522293455408642646280042041202725000242311454808962048694455960072014103938673259595966323437834887719136812148899418671804409991759196556071391997303479610991145209177037354067735495308409089092751406377807816535054345698670363584209614068716155097115573196529311877522045745171910085757467556104921599929209125032526318219923336997315395905619765826203073750105334707111283029824617927300323946782226682406675856135176864159328348697682726535058229392796367125595119052536639688301979451177397984911314809830582240967000349144630562941118279988985247244153868953832453841533428648503803869501918486744766619390736953837389825111354494994742672859552857396506722941820088520058277381966412960588181566699884371205736991559164127570326226256384735269645811836250803835638317848339958201884472066441885623256580659625263346293073539587826447329991262907916082096095722142755318965863436256707133742454332929512247488984992469979651698499567235050371961764113026233124029794618647990877252368578410424674034074340336550797914569500840575869665902607229676835910493974023728873412620340107697368873693009428363831153241697008097990267903851600945549948815832487437331614854719215453486708069595609065456716456003137904296311385061090776507261085433788845770676057255399388991700831795721325772150778489874337077641128294368494756459164348848223866915786004844698070754857273649934411949758481178047452357856879020063564587298722900842839104145781033262329513952890324287724658281463793522766726650023165122020632342880060804561544713251997088231738157606279638533461736752651570487530713317888530357349016348569824394943956743295469932708769888239357936125485491530558410252586189738794684717958153924932813218346376746211440467371732173731986798954578357636555880705432983371951362010347033153431805689954148244626588126423573054037670124126032590995760895358756720362535720332310596587181395465253872512301399338576297953810479485055002144087519779654647715962825841087648499520801704859752859639055908913636374471269456751296068498078923896464300614671916778332894701949161133978041779570273616839650504050583376272492760662569890738361356554064560841764105977169331211350030157911973144668488831555098225475636114666353570958544033019217021569022623804642131779946745396975562478784385855074110994319819525212135618057252425404888002585216807915496789764043345511439405906787476608525179757207937328004787924036580073457818064256337495886619334388098583733620665164235709476472009787184352398944570098457934737114769487190498325617691036087148152761799380216925043350269631458754781724603514967458382922314576181312154445227831890060298504730341316110402168697081022751710920051921972218743645424679364489492440615990665358208539119291738133991255324945468712068431100418940940467384592829804874924653297836026686500355862847852514160546781303586532633827401005969118121175271054549045160387366245868014764594117288500640570544419423358018153493123934618985144948277439257279015072535468800011071084248490639898458525262364051055304835929860971270922746280821116065460607943860773350556107419819774376810345040735618302719547378041483727862348721380403666978683442858078952713858542562724053018237650797162503334025262831938457691484034631221926273609025235312680914303821218085696711812353224426629295480701610686059069517948361535576056860265443193165636362838985328662478339138575629669383698561248503630476406550346375303196318366000013975546579175236529761993143537403933971454275715464554596637849508384378017553716979300052306425645202783618019753307913980823804541515155235707988195333530837025589340420635517837256131294556060384989436378108148182388868139575732818051777908268409876152750162842520578041234424987075793453357682517501035936371436428199014054315075430019480709439654580827273017119655566647642260936672054237476507742419936465509436587950644876686870271034481158985246112595781723413421746474366841086698042697677278381592102180448318650521273188809696115907300956014154940653440585676623941232038161221177719329499623437753691473012518117113527306099945981618614812878221960809116630598243788680527830668842255200605333139375872658877226053715395004061300379207969805662314499611562107091557802210377171034627290900013873129664876522843035572400413475834407442703220721672487261477976124754006651908014844651077407811274767023064963213229905386174221720983015586635502731932760172736875261476990806810194010263974967434571933191906135459855665298754723502669500153542289084854906377846663303194628771105191798898416561321938076260020276112056254251302266600880380872383672498717294862308747853490396690500668377466667542168070622228101999430825988500255503572464595424364200135015282923678357366958866480578827009553013398540506836855705115234241275894744934986318826336680002854862618485189237904600152397927765271214853454664811051294335378711332137934807184122787873067656101366370684130078321561623458934132510696173713489492846581263255201764115982535397001680638619524779011910901178688675348647729387714431810103257828285968113414761073356694717882639993925803468602480176371544174115282684850398002231175437685810430178871455996076243685754938376705594981576376008204993030891235986088915492279976997298375261934583720591354154141665875282385074490273449662433892058325381588958772909663795896858422827407596312764638649969277371330990050409667358102600026352246995380228172032719744421801769593943181158936404689497952767064591998351931356065971082833350668681758672642346746596174496498963614284467262935715776385441613058390638597496169218514686850934421038402623195748777399966989390599007438535363253733580693303093236175093159435250447119674001883684122014499314464300442651197586575039749775073772067532681368806522761861517272461469036376531099654186183410007941421004914804291656454644814572906018762603338485327905694422870035863485846827733890277994681747904958861252783597001431396933465988097840709579279710755848866589183831436916231186299954607125296891394706866324291229460534236083043515149329533605784824886610671126484133520530586552370107236641292906995049288255607634669423009164867964592155737849357544934423923928055430194663103786076550877554218242889359796454661422253024328262709469992041538791325827365577603334374438587065126631128192801582803535286288964641742164177016740563601265980314945995265392293871990043817407259456252544860415400357090524271943742490461955787052885950600415069419793095045379177446676355533993187450297359643833735648745405824742845586840860107768230587634416734391678327459907861475188507720537360746933776862746050261460699328828126829404900617010935103680037185074578678133935662197615525923185829496261727005041654652459829132218502769140625341146749409047458870951493340013028018896715017684229591355199071631995463901052698080486410741106885817980049469692928303868756219470259618774645155118040697050481300059503614539666787685125435239112220816043742180931393428618430749674645080499078241640585046920318892325281447120906434754394831691740562618357281642092126583068927657118045855379067649724709409552380059673869960968679644966561323087783831708821618629441025343534135781627749499696698865116652263043954849421788831296994605666984089947607487735437939204949852789401372598126691968996298522225223244335583838984278022614861150901494647615081429566331444675493523911425360666767234089268064087938902808695062846483572374095308933598289409155879112611921184421784246039306290931028931513953401707868888997671737980938693890973972190900243726523891980713989414126449414712746484060800542000629743419627102519612099690173416261135040586963993242183346294146690412479034121822573154011034675180252887933912362717504117067029567786963112834869409167401259002925163080035218735843474741489649526539121228626677591549223665123775372101800464598740641994144865285220391406388716842694438350195595226893127334379349009348728293731166807323897232475234254021941830286984149508755313537386191522478321311327125608250309023919066488677707063520433608674243188999388805842751084754065664450898850052882797622644813619432565058545503276316164391081661348217805179564691758080519183643942530425370002711282814917931872258993454490221038643086996740911815874916861417321512205559019833971602922691407627268191947029032659247133252422139166113069661161725421400066493260900834514312306339874281783734770147743162050026933253425200390154517537288868717731417560703659331904104804582000892336810988067923636317530694331105261462857759125511844786176178966814616682121365971747958505675271033153008257762136517104714142563222623224950127047491167856387011096605714812311610170875409246837177083060663667773208977038922334868410751792057544238743972512232396292854290744453766120563779653881499354889371702005673884966863099308028642814847863674770911143971320275918697207260973866884013190249971116460346012799360845659244006263931678890604517550712859597939963455672294576965672041148842301971920317124853415476812809019633497454732784132944846810970978646932248573581211702641132944980631339297151627814821805549605299856574085465092936803386854466182856394939360672606298359647525567470916511249708887346416942164080540046510485886152232381304177037253358409513094742248150241547594352738282578688405275432291480912860477662079384492693531025889719625795922073480323945325645150151932004439521139510843287152971618807276212496552369278061712806802905448268531039489902329005150556667302383743823411845315768801863465259316113864724009651868196270095916933135806374482116187588017987904053813489345759024545144032810911940746032161129009327785777082212606630180025668152621140174709679891743033445959621304400866569655720474499703798587824516575915583720801289002155671766097203340203982418164846872865800426941895898010342658586316250022308077332377796142905159250351160255853579883649275344931230465040071704597495067688111563183171384505017932711908907695731909822192980320648500294013243634314587361631490887470365098522673126300252034353768114440434825549168450953552039960494471059898439575611289228092460100319235778351897693936499686184709592759833146984286737884598987229762872131930064077144597497458273862613494280986471777634569178113112667613265423332273523406506542690481253778693904981741155181446083346808763838869256003427856714971051558227353182771634630676415220305899451953041747832797831807997300977303718651836707543942334469852115381101285040846940171434451701379300074603570080852404754939188224355245854071602441727570986835210116578607762161109063261308638785445152197918774223699756518364799866136146772259600787786315994338972182226360970517063296222871754211188841187880958306980473488419245461143937063783659716361635014926564186763181800111684379508358766969086560773570047823758750387461228763964556280161499358500888551539075138207026701319984372774543207940208147210774789807730526730581134554967326953878674694044457978050649784400321013602494984630496141206935614922654310850413441644560084470419042974540490528966196584237978106139186949058923872871912078339039463188985032319984643811019603820872170206493141685655094207335660810410695012046178049017500197696649354658048004809329186989244274127189397629303354545385261676997080773241571057292260895179914816113834146780527433731512001012244420410380365553515034697851869024813687254221706274167870349675377082597861255009395411459032726580912419338407717734066523744760933722315817382930093054614771603114077998054327369709250054970523118358285367180794139537921484259665327720457883877287611454126202346501163757258433906326336882982841054724490139186303786696506832444791910597875598881277997077621935677607983286219720154858260101872067570616621704884106642021624244141804988501048276786878739014137615373282615765245436004880156237040263516236250653465456952122129565265510444686252316348763031103876894125826927816004914315603205281129179937754502116179332874273315107749943119307568364387360027517106226845482407839137555267707858983068607412408886237535910222871364405038947347295672302397040231591004100078413048052508815346665428811144417838216370345683919488397741288715829620322498177646112501178019580818395898749427214079000051144663722373669028839792910749702359306351745315866230171126096179029633069260479126943686389224227296216124185517475390048862102382450513794743430074210701963421756605860201085692919873234919057899861426721890710084324692516042786692623099056561316341534329799555244769247387107007806040895110187439252299657807520718452224782512153814866188960986010392269489241182360580671828941075599921600552960490612950348650010542392815045471960979518159990728467532224695623755560497328795916160486306368867629864249489506118950794535200040767303885274257158552078214149723469555380838152538202200270817413896957837522522232690282694659453119412710586659495495126428342779223345434458462332194507458515236699357984844543355851248688330414863891482602075100607667856324892907632587990063986780679165735894673245158122107463569951879840646762370955561366704827535405273224483236615602543444871382988458856970109691354380044807701232186953946433420074599969128182207016312629141544612613432673848233166759837754505766445783399065878678707561518925858650642864613175917407109817418047406596884085008375247075338347001914213228637269057741078946950785644880071140545006297387783861930742818787801163431268053352544154484036564119155989640397126765993684799159821757578333926173974387477875721591005293260212467792324052557844466524037551784289188182823850732984387194963844145498956648461516371545329014145798191319293879272420140859625733614035090394433652643115530363515291014343818555795852326557662255166034953891778408573416392425716879438057975659364345302968549323512434215539125888813746342564620581085675331450713883856661154069133352643403786930574938131946981588713396166036848888762645701002662214077763700035612000505673092036507739478014355608554884116514927547631956469323157156636223384396310367527690391731557221602839545042372574725321565122863153674978883968091835435248882152498693387433404793487434257951708117508061167014515666518823488641743831730335301141395366287036448953066183552749428691728999361350084858107780387727267920817850896396820823806855457526991114240799979681386102569726693561902107053749932818098815052432917879850474816800111211141765060506036324263579892022463597402753853336335506566464098828656619472023663182206493233200579263778768986501355445420765982409933822897134427130107429602235905123712634289910404418500322309698920860106243726514237557297728128220834618467455488040550814712239005586166440850731283840824615164337643853130269503509031339143464081931879716486159053755216210138795838815460811281743155885272810311677808052267805184124672250546169461506667293185864058762321270776191350440612078678609867568432334368208278167511536218282336050931415165509328974010314163732913274056167441277749779821488947600831305178718739319579866231725372161989209571597103563835140132642997751313751269570018397944128467583647680432945123831656894368129704890817264762925194045186228519530454727310703897084983289475807822204120771079703616012334076374060430014610443487769820259179404502655573637356769877260825954513196761910259200133407457484215345436781274518102472467517931897993600778201944417791877510316584697419503165876315158303773433952193687144446071893574785749593017197155142767640423957481001538296148894445247556399036979211524008888198962018766163871878222237298201531218957488998011630845642089165181649704427375231156578207009925705534322947419628078651679015721681508871686062728960254740832387086839489319388556572335228851797696218684341227587855601083369205098273975691456736499419544396238341649115635555025458352658835940957978563168960233448287463784331437113163529062688880125264016731682363760396019553847791404847948967311991266975651566743903109391682584332969757429453976616551734805809584750772565941010265072169404470032622692788130583055729827296235359014681022454106385207885251510692738612434013504673474282128476175991452830093536615520155912943317815420363851253853999494913100075986840751689035947682795900081899753873336551760043616178464943474342316775583301718278573896826402336870337450235437825146514503155080122750189425668121392089581062802331575282708851037781914308198551738560477565550082896548287696202697130645292253082913923112763863033293489753376521994169353415114431842366921507916080577968170408669342905901172333704409662340298226272537973624254093348064398754217055759542638568465975743056455894079279078096952720121780886552502326588902350956246380060882618803952882470963593977717517771379022062025413753488173155063025443855253881223193846642753221793041605733939678403679571922892439868193752320949107436165211023803964514441366888092885342453286926837101812497094532828872857920057428573395583370818341545254498817124748802276491214199667229899549293808832218661645251184161638368146838727378632313315434730673627593975748686801645335292442277967992673346232781741659904363189837033931278497981560781272300182888879132776322384509234216994485098298434435649218973473564978328193615046115033573488709931934061130249993009536530913581436091347846319596498204692398777759147278957400266419692489853653663657042799966800420700259876317151288202512329137725672902930312672735393840541644910203354768182532393391663450538665229332209574099600092254428095908064331112695398454653789464654258132144500938534535425385920858499452445725700037958013797430321331479424581188960458487670979512647660307064145280741248288557253214942384523241135363191480506640716729459795890489833130663451223610770430824200094180555261292963127959689253945023481661230145533366666022523014219143590406465610124498213227269740426573759869148837875590588639689085482428930809341635034384140017893514957404173316965531440797448504103072233222151490716848046860379626361245943507253271334174187806698187415026673486427116968466981677676046452245646740419130304649797920915848227675445198116792995873153859601122768685085386364406376315538866630115997682197725060763031863338415325737846616845504603234631782895165736867896733020198758426435069208996730579799343514443493055812364719149208385167389811061178746571451344805788199141390454876818347525833101646047512345142629308281593311925185461592612996877073078047390943795198030041313432439809801691651792538752558481831684132619144514247974817735574160523191076296693281255445200231967490646590144310196431262429367754492276915075069005954135056174898452774804652012646916204531116111060553777905878623040877499530678208862637212292931341935824734719900402597627595329989795039285731945156768972965019108559186154647304513638504667771634819559248368997981845908100066031658990263001746105747742389663264737165050785848769482478236771075186224150364405486632590724042555179715529558477499512140886724749747319261996376625535399007059928721811377280229581510673125300094289292011549562105774852919592801643976606011814906750891902580177892063512479566837577354822735981926816546203263333866992814730689672621583831912212607195841899788922598432838778813122428538413115108533726941838886360955010131522056412774411251559116996792088207718409886852593276766618114783214410731347437427145186959524576062363544104663549467183951218862138231593049893817711116215989395945272695362783576931588091326803329833629469799608346562816524450974231497390149966039096372494757726873534979905717151345000388503501269412254404934488700966546718627904096096299089960243373056380554894386929171172331061613911077350795734982250427463398316044634053997186754082057974195458651436611838736538325590098151793429436541121339329160395119045335030984084970905128980657288937076728389944441755326045244152669860864900510160915391047582229259827192641276980313452400067131878362176281666716088686065945866960096538449762141260344074098730000614185746497700370676479813122234996898215550734396553423893077132572128736013136746182555691538633139065146936378354633594070349597803159906570701518331807025834240188630069773228218102064347618915995933716194178106072252933422920232877143393439372612639743525379198120317555360315791679865729195719559959069018144186108592210394115166325567475178685341628150755773914457635406664590929162883057981824891995446592833507476024841863660100762446740403819544270329665617496349582552552555004884293954097543856691937663340390082073823900688729775006935309897370512161723244640327481444534275302382310938855142901147745737170930553327396298974413196548906034913432337456022233257427023964746050235853560898669009868476714978456231459961459092142383826728942970700309463993330249854993154259392597020581447954550153791135648068903728078093089772450750947414508195886218352185595378499543199831391314513419827114920008609782132553143736881042546616549845213647346086154016773046671034693174127767545746607111811311959822290073119500799696948514038114413342439319109194995049824970327779366872323218616043191483603359703686580578353772078549894041742764538055820799253930646893592944465191448325606984509632134458379036248759976301129247266541929515206688072574973042377978408694424373266486956616388020430128703380166843741663742997974516452443655155184970978793268114092157103934854975048828688347665807299778189465545228833378872588311597437149320663454652686264255425979559961386343677440326090504386776986401338725279644879527778676159313246335699989033620936638966680326824968067870240872869119172756133708199910564079844421605575699289142587956835014830150553396904667740612390497082307917222193501396970631766631987789150713173099801082647170912466659343752167660280218014764091170167955957716939982835587697225327266008975243212565744534324650986387411819460257162242552857520573123535193568662573935109734730430817517237169949168963265204525618642051779321107356544794666945261595344336640731703011695409500663808059493705763455244059260873111758734758276865082512483718889307186513449668821313081475636297917165585399475365120334951322746473595213925222283157853176055071422998215910582792402418076363956775871325002606487956446348961025868011328194571247429311941966398471794333505221655549794049299148063850705956841849754281738974621382337335377426177390031142443000131797714171001571494529257332077781174845654548628488383605582746347485142786851635979468107320980117355769816324452404700397178823225357840918604975335245292166199687458012850948789959454954071004211580572954206156053082149068186111121644458898624447425198784331145779804361045825153148695278400603295575710115320980199223591755257680039329128705638453813844971497678830600550886961871354618332697689339146770517219793520180288004475051942988443334028010476489418733866296255829451227902698858752235177131030451941536762060700875072964608940934470482707584696942073579383560643877168876913982360170509659325017178378679685411192467752342915974772459284369038935637847991169033803740973176769468679169778118246993474417308336709188349336433258526423973350159818278401714694711579522044748169424991236427089165842294141907970957241228229107265319490249614428865025575742389534429352024271334399942644431526978462796915034552507131780883565203079691942227996872702928528031091243395585417400851163961389821653735751647257198379100609552809348525555147102794137383643149603658368371568719946155924629458190583285730277968271105914083923433195414165154707358186171182094720355420982385079397176820043379020874394534332599872156760807821006503165108728499112018260792994321978358728689504519030814412820134026751442124142983419494625436695641980080888095691186546979795689370580730292963785810689760524449997007397185703497849132262055614098221332210595730395120182329835074933106636996525903985144294183896382298914829421245232096687861984381677485630176689592303271182214208767206510996449621097184117127718204076565842070821315434956972709513147296652153799627463913140911420752265749291265260568561051321701380578116410758829310026297127940799192113624503900191971730388853267263015070647828166091567471220871097829998585813984839693609422812152426102379218047978092085696330344390993048608636368466840149529932260380794620347201428375006562575644042230769282264376397618267645970650037015379568610323765531603731293217821771624555798263399961247373121293758872684289522642284502096047600137201279818984053009097284472991910747348664707352168426776908137452646331626621777752389576771192350561194715588479868576876521428081188524507205308678345559950842610119003028709797054528270956067248592205839124824674718963710542389385926845610376558156286633976120011330899608220974154587207864599258076249685871151057164327146892557638830110265070838664249660143676263480937048913507789952379928099889718407135721808253263582950051628646398857280752511443718247860819509694588111108219559707444264120820521912688279952671138762167506758262170560204002436697702233604214986250780482657138068316618198613788046051878700341869295648195247061951859957056554352199867426897200388449999833727504445500041184441050004849199069145664776232192970758761177560645987079774516238611078249853187209721562574230899581962308757124524344331419522778060887414698985074083425312118085270326368513036312635595929380628458723992757652675663554389360453254773908050782672764846301396024039135803815513632827728412374347231935874877989309418885927726468320842899630789088104724156720399591316433506913059898814418110777329987358321974805817103042878095240923069301667836610820731224144104457090838352905777387314325732170646337524039877198000114504353994026165841354168854683953526522308947594911017048159422689516502767932266945534990898474105077972144777065437877927109765895420080606114275729744086095257714437430356598071768769076588568527915871408481129683902811909373172331668029196776166288809093923743896137090574193378254210997404177591345361635460870877832543681692743718849155485174152376045631977156762624111117982507709795278309827856815614685305585985997275458660015835666090009738899941253044989274446619254663207171782933786422778976336574991848615863500104529916207296565604824736859662051991538112459676381952644268308662597371969046628551146156652105545249090991731570639262506490772543480858947198066538651562724085448072585078800052763024450452531149812712107303139415866130981460128365277520976769353396845357259413708350482762872149861297197283256265852258202651056316122345402322554047948852471587904969877887635706046321345647793801016473244807720769652058450350220717762855995482605576704904630311036735884979343286476560297720492006890024918749003991260754249954516014816855569980188421843301094883627728481182748276947015740818935740341484750371183785574702479917449107854844480265116922022902078536873579173354472829653823211202540339292543671591371374383466909811350281651885523123873796138535357643429428355779058049978008746146116567173719642567885686114998178314955328684681666551780305430070658140725569549262290867089379474524602747572239961732795601019983036226917650146762462954129054289079820889430352961089789228817142701721864513487384757307307859350432018743307314049774413551433158643864284261564688993515912072996362284592777357152137378224654327959028099808365580320945638113495839925560489239991734718489486662567195005880491202225904452089938575227169986702399250328541850675804887304304512184958348939082194440291221656669083151841245298900515196981419671087142023333746952887413955469346887019708935202613966906945148294205225798187866589670053774128767129049329000857833077026008371349466757321748151187754336215171885118411362876473755623941089355659284931532764636092893822647242017870445232922238382721391164911763456406738429337433296834498709621535011710063988577827223155798537309466989629024227354563993587828198021626501460995269911958392848738095634412161448885661381373595778905337605731161536340502027885828228335898406697279005666493797934656623734298494638948601670604279797690837545849490264532288791488876550465335670530352957857651147138067431078212040123441812412845393466069349854618856069023979692842085515417340198945341370152785420966801454822080360065407757091580460020069909566830237920719444153956243686790850806572411536055843272651156655702401955554662371774039347736187234015411130947826694823931794770000995672820828913739233084439380407239751472711283874587494666102623178033218765168006640646013236305272384046444010334921522630403532520742864892639336294374105040285183593373306892163025089579645322597176580094854179272294448506911780588306217060750969292416319843287388294124386326343258163748302770396658637978727587645169814067479779958662566827691504219523488500154131687962336398824920423842175821034714459808269932082388436436748361272027445071859421199901968240104016948036078009148341298014814268759168516748256639996151646667057750226392970477712925193137719648462690646925884855034579529094784273286130977668275536422227721858922926106924492572246146394837156682294354796660268271860655225276005370849852460966106857976876994488468592072820937302931371990431626925072184204741043681297650036697282478081691148172251902769974861177247267408743815985735200863090792832211999279885974440091055110061683056182392234575121549311991839640141620085761057479403530725319671056378178734924991858551563282868118556543159255796041162286557758623961293723863873652392761967981475079807209829483356769553762830150548006257569909695306747650104010877545807819859107972522229037901912435275048099933745439279684928165931085652101335671023459025457870840116956412246880563215859938618550685345118081758642610351345753795126622608104196697632154344242056418120810897177710464028968982833082211284724338803210451472007229523341281711091034939429970533135066201163305062582459525723122083419863200630006549943317206142895178875784003719924458255143974147955935178746756996492673467171213073156023679649797292788333090504570143246914991870662645295501139141913520338568627439120619933850431516752611773057939578273792596096239576772588170975754876010953210830659147429477181117364238741240550647053969812869824800562983629198793488934382876370305179656362122493400847342745350008396678253117060119905048257897822243178967657651356976148203326533553415429138591740416285906675049984370411187889296295843558354987233113875459588423755392537100794920968592517248205220893096880869935880284948428787832952612766947018180174354114324010445152071926479097954824938974606521824195951014378894334526123581636453624875763441021839408734865833535200453532104373137468647563783373889364299161918455093228275004045460711381838338403076955870587269045635798173084450155894315296862377892642503365729625706644246845983162420625624337809145536513953865475181827915010857310986297076812794752544129569375331826806228384915807206164561012309980737410644849864636389564478979768358293892532839761478964182960659952375066381998475041272306124969146486715620484200380725756074110704065796637432035652966529554203793285763345710578818946528595476230454604506231423931935268872296051899715478071104565159989608336686111047833027903158329472725027995710026610665054919294054847776162576238584551653959798754262053553336678329148898529703406550465242281315117674003651386133956590059131120619028953303735106854136636629841642629306923071829533182217893454341787820415630452534357390295790258024011495820419931615558467516705208216768114293332471283791768319737480893275983522293449870733402242315882605577686007971816420313169206566893352655432430861072679129575304307208059245907489185510243496055693419317031254510721719656305200143228530562415559996859246523137765331280107354393956036108483726075447656913758162852290122775838924272621802330411281096155390090958552835997606239142275295533429330747244693875895927404599073518452090497484584957073791687688260998292333560880807688644697897581139868743120345962748911021224327720012169871922699528785776959165381723691111971083699845308950683692836342691382187207379606702651318894151239859588295062385138154346484518230720601119461126511587600491082379829970084045572067034121076727437866317084852855210334441718644790717742862825895901399076040582093583694539676214900394707413801915536167433736430249743858729859840024939460262271811467318553837156660577752755271974159549773307172089719658899525600331524923577603952896928778440005545241913689531528615817209848119910123085256466631410426450863578456834151998291549429669710126258587918133691548862764389091649122155244404946245704572644201369228357775071226364089681599444400753716805692488969297936577148408928946040467897877561125820333246480546717727239313099020121984737092803837358531200448786057061472170959459990693443826176350826243962490921378677249709429427734755791296251748876973329375962556845042666765888432331349019527196223150180268080796778324344365138809523589096047506965288312301728896531478601269730704061511047029525692948123041146855079766078416462922514957733296217971652928425399332782531233549309799516976014558125754564120809798728942607225334787965203004354469292552191521687119335308930386038358462821857278682882056636340633488334209101901917328356065740210712219954478683131833901595952449364663866638487459150528733861700559540414685649278053177442491572771860490605416286662548952457702718052860829072797985137738745566341266534308515415259828229838086850339321029903841153767189100131247281224649091799631517284973509234472892875969852424614696241221467886547247149778374795752901899468408806020710087489342014020086752622784356173663874294980416631331208499710078488050263018953777798228359327536962697556957191731795643947265089055759897245747228664476181557045630232257394958078240192590330082229436553174437842783406112159594414669366281979889097099010816126550135270754591242289036194280301385389586395190031253669522924596458253369037491049883184055644665864042602118937745177737511452071347337161371912929837968884473083674170326966900617110584238849246336218559640294922271191646385177044572166024035312602051751156546478295982151470479103418657404862874446635786514927911223347678274387196734035034097909588826205443901142979360131318619544850101881072639136030359261756358016682915563261736162468427909401172151098652693060119057352329802232396789690581154198473133908074204383592042684225395393010998578571867309977752833012373384880398490925150178369144035994082845570529439225522375340085723708941602173914871658834002367671741456977366078037016418494001955194444612749537767049454990291892999163724230280403916845117360683166766603118383261810474067255396186387111291096428592609992281554021252255105081790891757299316525994720363535827373988893733446370508146089304599936619820333184203191122899405661854333277951138835597425015662323020703389274360028611690959090787184236927942831520802849600211067101935980172187338367048051142589666126686306478631684180183424118634859332843244524898700439736007694041123226089134856978658023319855014664515289153021791496289697952745568469235547985262167755869000499061442241156933128567154246197485095663354738687838887439076851242961116817604441157876694074694805105766839392462145013981890572149904469108770947497812763174083129340786977895512836120938433601211828840879148566794692661050712366849463614176236578575905868355467086080151883786758333689253411938729863423986192960522884330737170987325021124724530131430078092297670124959067920684334912946405725831719645889551772203012865233235601886306533495776034875129894075089471467507546404315480316945446374324883737116868484173685407999977018783596964886735646853392440565207856530701533312780700718666709146159226968594179253919764236860118737465831645848905967867854664551935501682407218383197402051867580681006807599684524298887721057431069992879443792855298268246786489974016245202321594060724427238550882078627002570976940422997905405421481712134026302055170140473912502676411359916066609592188820035778320858605090676400478753975306611379704246247824878767179537218006633296588294843872237603223575629362670783365147637570768954050406508780647206834889217773626687602857835337618175949089341927000694593601047622373554606019562258271173961889092535268274852179538879583046328192260380834820780733052541515381912846243894425347346991404605470123506276602264973092184453015639193517536324614445453641413326377917022126812414248583875539717089118025934187694084505634715983984816789006529919615037338369241075341230841480245215825618018562939581566856149305637780592497577731391092975816835749073349130541620847491209971888791458848818021981329249671268938126929742603916075424265328822866379581363053257457285160997933415461439191621551223906786963713075806121751736383038104610835879214806102024953292569010682354455880016589848171473918316145835997149726358096270417736357327444435104407763519595357822113016926555907442797053578087631853587017473629938468184353856905111569587146452823335165674410639961591874831140510676293262287382218931585756448045236084452720533507726991083907238422757757877715965732705616708988696527626420057181159175770829487838002752754807735503710064580972004854337872965122203184649724505142064857219138490017044308271617087233427282533649347112856254825282762540121896712462148025245321068526228511754531827851375691074447859355508830330402220502811889339905520706509256517701425909066437773878574072441137955410821844404581574761312885420775272620099380552240174394883388472269578357863560279818247662077719550677800188124576359986181693307394519912986251661926831972924877792232598040782880898918055166614953980386726499233724372229125804446273461288562181446747447414799036011327874153756226597076488870697931858230407488229591584537377364020694191549921943573688080869449799304509603716736175715853964104459954725215370630685673902404537643316502495659417859608826600751876806778909937617334198569747702911079326585958997812979406036261055583013451917101228403000744641999686092325608554945189002652873619379508180574627433162969313198316204897377728320204382204557645238528578863593532630260103009248960555773339739284187548409641256441120313341933181666423741777081725558857334778188147647843601426004488361407947169062159096873140633285193467011272915051517632283911456664551164899693628727276836872465868792962580741552712601257634507800052837586505934634280231566093557739561644167531535761795270673994386188824744974642040371732293783424847107945941072150035597451300501174985584396358264879877461154326079774540153730102403923635756404370146653391130206757666710650988559026337248006035219136925653066510185153576064820517078239009246482888774081474683299639084181390541994144931385890701283364739789535443750037113194603919759024649106124814018384866182484010373599552006181222945719478282699630491212638891432723525067812327710547441556225348747551024349734338324710662587047101849618361308448124236731088432303234067716235580382070518338953643187561369721584263346869806527258834844800609659694352629555435249124097373698719343924528758540452866307826702622967691679160524139832134235277346199311466429076386471639806034775282410453032693969621827781860948602507110020347972622385062036215401965383642522272548254551878431736069736560180362890671771420792963740167889030316240966618995990341701283094497042338900340532460139788878364067399912659065130080987239424997416767613005621625741819771037232810129857576809854347580725942063643990818807597563626410426370766029408569046558205571785208122091677388709919296254385095946351864112654578975187677248066406160562340027723653696117826207892461061358343971164838062014285159147790240464381106576698410549551710103820898121361242668853637218015739126480178802354430412193666469634114289269072677111086637250979837672995535137672985975621702277645232341887853588178859064716363276693599368094111537796881324988382884874368490819190858281024180187701934168947748070856821921308174607868273683565749579269298655019906690869334142198741236477581231996737911661972516085871598440474867626305341036192944331485242698621347260162075138549699518582186735688517300645554337133114774397676021277918800641342948564653847007331143471365430448847440969992452291292490684987940133515616414691951359030376142071743793856106421822172004246531388063881890256538396267676881702932011509769394363631540081569396865205069529753549278351502461850718429504672946104033947191709395198200139724909506641261623278328891597628312109660009340959279847739129716101292732679837941519945649325484254697309854709680458364632371979937249168419737108109171766994696034821846337971280955581012580895047244422201814614280531515278805909741939858979701653327690663682027852420334069546700733526008931969024827079962314957366636475516886282270131895694319786455832016567959063350943649171580970456275493758249910172423038423299154835022395932930236204343146555839133232653222800341578670335104503768810428032014005741554617906543610807335658415322934481920967392918141261983723255749891719725925343500532602586491381509549870101549004638964364637235726212130108783551782445424673129284708882215964655640120388605480783984151277911853322750676481744413341481484438729307371924802962569782118175145282149852842816466953336536550895011740638145695523197362561981537855456281544594441834597347189583848623540889329198453605500566169193591665868502093449186945426061976061485152357294925641224874331805045003376731359084429084743401493551974814478123311921503035054252973373507639289143484943186936804780660789834935488756180146223677748256897837330502934488854450437852812985034308804448504915564231527611323337428396796262111005028991329287050913491958574208534140191860835606828973354261671746665522502624952995673263089730303552922672252864206250893442666500077843113212652542330243286491798587143486929115701244418163109270943953982843412642961753600690400479802603654249249347588322859459099411075594527376348795077903248093934395260517703923384954987745243841874830191529289892123247269878288452488833092499207960151383516946808226807569944965185085604172727160604706432170350918239355977853793479827846908806092893508138917168015402787667251020885634955518803891957014479961895909355694042077272480579684499538383334423566315808840832640232742664299728048581022435380273171576197501774426538124531069943464833526434977802613498993630536589874097670534938314565444344064978969889056328232728012495985695935820384573822493441586635220642009756176953240314308997973661505733930734642547091624989983503926593594667495064900314611156897552403957379972147964050735967269389634315624932509075442000076223400537913700793079230707613078446696094279508355308229410062019636908922302787030308106295829111859345063285494486352289106443833390860868265281966464792053817896822754816709166733787473121653800906725887833664066936792209904816814733827231373733551404380630163098012145921327408772499333568190406618478312234408493748849583459594655388784207887892201359392404032966901624910196303464036356998438585356470532664385299506456525255127667918949899869152882836464140348594292201471479560816178182035641830858572309809084942521392708798083823336361081296447498716844219179234301065866357616597156491080249814246099155936285921006089142165139737416138055535009001112403660850015971087857740182013405709351247906242807171486379289222429899990825181745597209717036068688906902957929388906764856978892443464181258335642196970647025777607820850778930140290870049262746805852919234745346078285377219284416998269010420032118677016196533247046192172579597930661363536658077388363374940196615282892424862630631165457318419840303901483688753466679593304045198418761032867584771626712783685320708153743393665369984153929080905233187626661295255553967489746447059890091184888722153276484954505885801559962477785418902976750265503264624181888614496621967609454231237899240012493094203280085456204920184780101384170145871476170470582453466548752848346049701297829538334230095905938836999324488553930733628566156532611981671776988421426383328478366310090871522898372031568683400056132859346531462840018472685320184920770594867202977532984440207011440053863430478882376169648659141431465811508480466589418624478375959623607112136568266547133929859533198887408222020136389313597305077670739935831874442708244942280639412900744893013271334513214369977390738041510423752139245835370868874105291546978473868766309459487389415278626881498004686629125165360600308597400390859272864497665687947555451602266039471480982137965049250818036573830616330474518222831567315900217780842523779804003881537177284611942247822349879176603420431968428693714600224977712771899819677560475876610190319835342921577016032470008188839885704044418735831748419146528082056231118892020169406521972734841204902064514461870706088365038343468821252829332973985451912891273033977675912448637906550831054694084498445506798174368000836971585994613378260906560376331115323709546518751143313677899437652509921200561862067864766442239806782218034309873824259380195218318914398015040947198629201851384601839137921804480795450278343759051551977624452225700509145937428708343371175566750760653051488766312079980963356854347785349421736052171797287555761175159135376277038429623000029329084640424621073530351492994573913893015933793112857514233457423030787325938407750979415090590345267185606278627542959898039482922383408321378443156235970938579505902833878231751204980742047680850176867222379092462060790916941019256957041276984264897155008571096112610868474192060254570882437574305090542711153452846382274065611555181608315779695622013005915936849878811617100421056392873598882732968947660779948229414621988390078224846463155577156452670489961099054164403812395889468156858410589118015269224312755329442939299992732108630860104916857034629571409186601609851721324630718186917808059589509028462665758458573375885699328980709252456639481755814224904482961866462957923318153925419315007976274242603953032588645518971909800862935451001418978506067745125962032030026194245250994495008334972761310477329280480646000052428998141454616510492809268217841171495087168880962169798074887817169217145122799149593960535133728496121298632443313263727752530387545576533130855881894458787847419311596533561425133804995299556047859739696128067103071174532731980330392648413921944221751394832326403448580821747965924516373978406662267515005470532765037520507553809363105475369185653999209250080688239774400019750492376362794134823713547331548492557906444017631817162464833060777465771003067331278113353878741202208699038084790205997671491895689490560828557516190302305035982532571849307081743419833342125720163687159105358690683135426896962896309213675915735591005118342641887079296814835141183010171613039228520148582230113941268553458688439105961640512156593122085571830731419358812244956870094178166960039819694152150786004778376610002520256127825691561479595351974327146988160112234456648164434927070374633606157276787601042499813567946121821880603707862112771255099017445007755032374267445387359053792910247456087425192268708279781886153428407318169971825689755408400340723750767710900838426832095361342305956513639669261895680890133422946253209596729973569243847560467481967283467333964409259514415246279647963606171316646141346971754483664185624304776670471911202390061682844389770586704590930633582669275557156133173514113196613684109800221978123156991961633001049689367861249253880074850652609670718306788219144392917471385537499378642988214003829744534785604060852371552957968027171450338748351452134184815605580494871361624614658228753393356641328913872096563228449174861765062136395691226820272424855495981253621745066259245672486441133918848415268070883543100877415642884513962760236764577251426009566974913546776331989749544634374313293347429055602797578135957605118450043128233462608727062293451789585513680749371294625558924078191299645524535249673712243254082482679540730850129119946204662093267176871273408103618396726961587473710120791546096093674696474555824939688893758017584939786606733739328190514039646935516718816331916606308192708223562528452447581018050345049742695758654818099674728094924744358338421470172228350824783232191357487930894384632093469994057271370326876718674009234535104048592139395612743436588590059169276229606356392540580710861539234915703633397137468256912429947880139349197747736970639486206771514453858073320667217645761604113995356401509217971457809489394743997220455186800770010496619180504616874668856867515308414755157630539970189714018251861259664187529199348077600561975841266365427434548044012977753003609304109731109224715742560149433314714104865509768365480807510027309449636621728782275736557619580338304178537597484128871822851280527571514935096819779614457671294984355442151605435923998599515569988298662879770603807299241471750895705038106089292299197253528249545818238785197442036279133360993454642597435116917397214380339179802254707668492761007183604089689494267550384167399827274393532565776149273853857502453808025240638443397313787866816100472873916509507612228806894734636682213039584684147285056617315916230703338437438549547686560277668780720590457113829655764047334440839272966039597689195376726436713974157301702557843184667205225470036389625972661701457410680546768325180034463786317054363397828906613926263791112252208974547607916913374380486517698734137881673614776351300507122620572683446731029895824758058680444906584997636138743581520051647990346061277996412504293297423074010809566249386149409226658147079113788701491124832289458894000157498427964808555480025599604627163158092730733258657214930908603208199028407388777263259810428400092581556548362735187715716613568983201256845402648628429146907672085262416104902861539684144021142620081531974441031256313200050768796114596948123743661767713519098970613921755130345455342067248282139619387892952624737202613362876829690101895995062127360152704285067146498134122139900021286451651442551841060821554769576348373165159327331310419166911854067129042704544983379606558281332869008948200509038946188312127478797320766477562720669347511231495793327376127225669109230902677703462310754867736541429230683329432734682822408058505087867954907485280679518953407445014024401736450463623356181434744264596607198248676547100362921671261978940759773117074955986650549500269206761099952719909684543121223521254190917103247610799926130669870757666206477877866848101171049004740965058232773934825493152607582552263131937587082731471152159323232289429163546779494961556209555091501940132760806474946675270327125820475283241715041647248760634741860172229198251482376359289895680552164805350244247200628469918225993684943835480895294021538539046779111551092901534303450953466746371367526716860436199913926856967143247671594423949924491765506126172960979586622000879244138450861521749884409611888565715907038092760597741028089298478226359510641337461430440044945303782396117412853712208875308202711879918382719821992817096975516496296208340317659857605808231645889179710432789435374937762702641947901946636273578537406516381287162950942429847539837363921441461075608884303871014804995600868839779813021702634025480438753969027454364780979881304939223334769461586731374995369725225338631071482951050404784448778007429686107422191034157968926525327588814865385190499534881697500170186215316838613327105276391933369177542604416279714487082627189991419614856387189710933692926837833857357420654384002070420139180220207122765377920292423358914692578570175279414890590558892443162424118622536461967348080040361558062427328355787957706922800919006750645666718994831406328871294376905831823782848996769610212148131546494866457559623962283391014588814162334433091994973664649716126640241274059454690830810550677578123233736042972087408543653287682115260360430564623549968540398134328939524416676207421391536299637923707526976873092448834888432367224391676712502399591070308789197683251804184096495937545990619377796116530552344851103585850733291090686844624933185148510584697001295839579555425312588587273963050543921476368972122669050498937898424933730320865018844090899270860228365293701541796808075551707026468041268241862616516629000752116571320699773189699133219285068996199680179299039928168559912075329802455722030767852264038563335819910789510930638753885517400835903170654531295426292894461129877935545566349052543071352042831529806025375403278260623947321076176328764514814146534461773699979841091682310334459878140907988269424975205219554085690857265329202190832216736985345809968709140498539522068922297711847087276602681267631046462631626229681543669505929984363792693431634357641776632619694890938158434307080007893792367601301941123396581462003329488639216089016274923571186717857142181108919903173189796695943203414184134021160845814498511392132508345733320054512958708251572553593557071455075996509526996909860172891977089103017164135234220125540240962342983823169919597021443837343979463410787935368729433471082940071085782555113879727149024298770869063505735045934514965731557308996986006380782928531578571769210738647747913812169433777168409242350554355281254248083738257224054555725017474088654581763458692295911289765917111167031304919547912479953068847996456598025245147839141575656720934425814173084576753315668103762391900630138408193636896022581524231159095761759001291669271950995937141902019881657689498759969853752971118890203482494524533487405445838039127163136834055837618742429368655946348719089466375557878504572026391254116123684133381781936324184626101959929496508404825835874887809954431152359246723499165980517155404618474604452233573461001261590007121756365524101824621621747088854589335558307004263975559359867671635308471869011071460415863821186360840676236100717864341961979888117289329241735193360422849995775307369662884057441086597937881620068607621727390411001608373980519673508933163986456685418930145979615149109145884022279159957872695639229134598992966727942194692943060040777680221879530087884600452724225981282927544089051163870712037545109764883790831549106552094042787912484359885752105982992134704036860159962385391480073277753298737792888224097090932099235564731893088450945893326304791042301955645086632594053471993377795224256725973744770979888495887851631743697624579301483277289292109336415437779610059655523308349253213335032628931085798263575087603531049403474829676142160889610597613967161792301238741747429904017759673857311940433767469445208149403619377363444992443554444239192932321096845398235071131177960119734062178753761279740427415276072328065119986777605509168568839769354888044171052177578462839616418037528855821346315147911850197603453312253272361344732465500935310024312072895555300507629074456464715842939447183411691916986537750560312174346083846836001212645167275699830172932714810567760761957001538508460311153995349969264241673928694977646214854929072979943641901857794450281926445099167126249933574432170390148421098973222862328509761987344587983613672015350117388310129224034835716829287067054362927823802906779528744651148929725781645641794809437025889078790909272121917806758571697616754430707772464818963489587921220011370927026331893808274211206937996005365898831518687411853384830078570544527259026477098312125377549273695008307090714035010062122370774471860863976195461238120422470504346038888022596035330709811970850387353848140076314127595249838820332554372079988523252528723176910631740731028847713674099056227745406209014808048207253614173172925538136544481263963309879734844496353065323013088547934984548034165846925635574732362197933870198084774303145866704741245637211352822277936513436065879488689796263650949571214470144227313828624725000798798948830431300070332314349338382624738215161157666010538692639177938477220007802639062645133234291887832380377108968160839682404692699737973331758805933828574199616282789265760792122315087454858223572628126960470309613370722953870365934448513045165402002521095425704195204005513887916674631441867041791922195400430792411609061068740692422458704645571977763288130050790294425124231377914701116184420729325337769837932393061726438397558237276568420896811232896747586532090779524368787015286484703692023618598829488166372209803175481101184370149740050677190914942380817544613693515336184479321517164689341500899836753677965868522878899799126983595521484729710861844839066033570383444009763703235592548791729740722848395098234624193183582598019758293431510377529224622379419938700362771507150175724257798031676766560610983638301354748974894247420709672410763184646236405203770325379603334509212607838982910027362544847874451797104713486045619536754352042339413997693079510920116822444937188758211002690435356026780985603769839704301229910696905125796131605699218889330243352797240112783085412472778595302324691915000077257797695205423805470042832166979134756282706817455236900103654723596360865772329753332836787193971690511851030204209649909593339063549437592471927726742184291154609932013809901901039461142061891407363395001505910665916534953211565217390716664762216369225531656972152913945669900029548944141268172881355864314539914654627002692493668159363026201247721521088118841709025162664433952129386359498348287055306115426419112959486939168345806334961484971116349978069399732865205502197899149699055731323706703182341907658275393121784671216747787700396242503777500625113683097617167695065013811523602701656250246221695366945126648334303580469184908043603438813110896088531716309775204524841863972318616311112326078117343050781006190941949995198049084167911908035529553102846878127013534024381825616945449336170643168373892076412606367836876470073302772521519481346414454634428022387985410924966865991249797281411552514274220048319950145878446408477629986349431718077515354458232452014158276319577799840047462407763231391227643080702074171788948532323332927247729710883680557460305427155804943761401353468584084231714296130172287151479021801979820504596402749553866978355584751683779412231471283158121075751699501066875169548585054771063196908195217354758838702412504400890579201361461733679536870025600783625266121086950085243109918164404958324455504467733647876399768699922779922201743209041869557697214936055581742860436768637747445900096207781448817337110801448720614769128176600785825916091419766085087801328100544521144773165064575178421722906752343326912322696648927859969325298178269313244872648382455323451473718442231607493134614273812109965671769491571337892562028707344624741038825140205980143345188744754510960996689330758151142262192453867692588116627714812354784902431359774119242408408577048884518249769097428827034959826078279479734782270675419318937838298663766396106864111988023622137875644871485106043997102728701755014213249351724910181116277025315072800211893358999682642966756617204530845458007826498956530528917726329026826212965909725426498365440377601227852016702146856767209974885036089787966243532110229496939461469122904339478276071482155546784370758789502427869821502684010916592450467330642718575481180348358379779148591181263706527858637372683324012254729410016103400463779497296512984003021120157147271621588371452399267822239324555477806835576074943129069050915727098288378776126235067571719545352509739564425566190880978465475097931125190023190504231296670894550428694635063740968572036781271148125992288341229658456181681630028240236329897878449886945410713416171513364424279116370932669438317062356682652876084874443123667871329840285834532546234707383634784876619503178603140384560110153795021569176325864426868752047222351535397396538701488731929867385869218199935174776338841831752884041855584063600628446554040202030208572321838181478741019521106309359844663751027029172267500522188099064560678760720600383971327291978100859381998260684649812025972675427120196618193176748572508443885175221191630769973343862565814051895604191450378063158312618309856071464124311436087325592445003657900160810624104114923096867043225820606260485152755676087654989223070893414527605507835243777568078273200153848573388466756637900679687511153617362082640556220574472617438838004579202635633888219485926909340187843313524674658863874895760825980738282886606797289369013799241187216909207056667623651107817780595793995819379375329555655364027672411823053967119833211760873011800686382092672198266779247795227042903738463031713198599335165961522596459919139984462499518931308839052818560089566099479070729493318633543432635176133338350430248480810494315282763542802862046726628911685574953263613317597501244641156246650513879581946008726925749550990396856998458094626649022849859604955763223549767286091850651602456735964205681034950048429255286535956923616885692333782691908773354645491611027449445719133679926307078638909170388365000580124383846998315098166474851659681855737982759070944716607976712046223943538585018167083668042192646983386676356768640260880971028845989014867199777838969159603156762702439408438770592317016791179425262587009734522436749936907418498064517438329202349767223046843455322762636227240001313607413899710801598479493400598741153786254637748110559704772451306215908415716571979688322951053339924371711084420690714331044201225247540205853415479382788998774203474261540373684908898232222883376503550415970139334577795155404610153190151823909720997850783831965986571725327681451818808557742811500673078358170370618208036309747403954119582802809360450758631210573631689553312887915328598508955261015625186230282786227246127733863983423339915933945721003162059274697598409615693506697548748512457674104369745231045341525290416781282017327025927912261753941791262687761146898062920884612985227489722374065623567208268334552820794195621244737212469160809109958160997059154359332579110998302582739928375297489603668622431876202437774742458885307691030707014599580191012315771158055316218460294173405045518943766014608319644624960815075711459194977914389938970567249636642825010433959305746154266779518336928914753711220312937121685967391282591229343058020862155877278356586836647236930265254252485279167524853714141886365636067298061649763714486580313941176068084706867242708309454887302574979018380288371928734902553825616653640235036614285902821413096663497659392309641267790256774081867737622341227244605981018512819209565741867817471208540645343609541785514180755566305544078192273286879787861450618820239960412980656373263566720402308962976364138672447553530093845499579110480231938154621192184210509783048012311801988678919954609303047268335342792524248614616570611457824797212233176120541050630467464151422835810101477276657379755538623015899486695404877330591137019732262043862644144539638640616314391177876229201863110519824891019362007868513109856332594996022466543165550125272199723140739441713362398713864056855671437550308193769811529105780905314948311909549775353112669647662833934583825370646604639435341864392579987289578148690820065584677434773512621766794505040104148677785483978087067035059554824345578089471522626575305202270194652390500568362602057701293402948430823839354427110208529600155474974062319228571223275077606482421505126925715868938623371909548763324967678811265031387532680525665969161403373926571402493431192747763297017386727536887271989024036011888766256765839213385376233355565573528557947847385919206690703007673423763214204695387331019747675819505175252903019959492040721257961225355379302051340933479812035136765019468887647046404079676750839730203105005232321085100619656602789422542823881372068546781401690308070147002920839074303802703622220020100351617824094898991439531998214307674821729898499205188534261608134393502537651506253138857871680830054091320046037230997519904238314884706285717753867521707988537000103256778032770065780091127801791952731435215990483382103304868747975495802267389466922402032486525589078482312268631193164630687150679262709337489035394355853399169555494248413849270490586998930899762766792580746909923408400115681874065394511073533571479918752479090787041003821139423158227026712936217152345823031593395789589553496657922176829609570442233275580027364550776930779948870776679826102458390779565847874809135344641341071424679642610274897070658167588283946065656821109611683013956600099201419975135221005613510422758390944537825026938244195572601947484523975897638279943924976529590391397257635385678492508360917689981627084548967598705038683866848449781065481418357261936178456913991728001109786940362525841292403749523704709432206311174826771805581966863565888242474706493855719730132201262108813788975153278100252060991276353778777690433706218503035953826371164343457587009436390652876270504669959922200474328796774791279829548919855590462450300253486296386487841624886605122399479712469960335524197522937531850131704110470352072659765560858574872268043731343382050575231942037118105058212586652410519221400732137664083274145709489382003695365503544775527079310494088656279457696226468395297133165875246729114972280395697268064999476020475679870548735379810775718140183495371717165422026924085422356357027851312007133621408226756951419021273331943044665581260215748035884736684031714260116413642737473905908102547186042005712425312555815080498722545918658406624616361828156059344717159994044650966544213228036853260442778818198209537484275786523382759749874202986177255721344118460615923221089282583467139196145166973199645624132253930179684409631917723452184060657298687462108594010514457150088991710467852955320081099310983797217019920100372428880616574985135863538159506667712662510033490434432307579247195277234417033457513053774345218568548357851318092812489064909273725859067350417959290727266299417669045184158341502940773631450043668333310724550772572711027060329634745628448010645496763063487290359325342640011827924575761647603081754021327277023891462015504051491967576532491660652602359658312831768684771998549707752695266934682519623212312729911153870326873920073582373712473273030701333564262846452387105638576763220352380694284881238119125906602694077331073742514757645819964696792387271671559464415957407567322046019021663647677229379690974184315231241044304193819897889341063419581482584093060597254502154266973309734080215619573621384634574271481879587556974934612852428953211018709524909488648963408119697180998821133018722824601222460660459240950378191561282904461839303823737761415503426484926931822957083695906795798561857095049906300839515522087830113614535034200276658539408086025448541211237347527079309746479099123149245693492269062897341172476014381826974543435385283389620716162550435634549384537844187595980551738941625560810569176950714853605621193422927728004612224381772569393107962145308837394294948468202468570011848670207607463462190069814532365251215030367666751645708975153880987911332018538555529693192805897056290706276771597703915809261219823441199800667428190743317807684022419546500232289152831754954963286639551084097460069149207897659246457442755883548598178476625115929479409399985628288651183477447404158387727763764584051499270890423448363760109706092844774009679728631639088291693956722022903137710198182121524329477240046003464190438487942065813493569813561412525282669866766390890342734850797531216371297869340169999208426399083257819063533833264292940688268476159429796959999545792305874988656392346069228280355960629288081934096887471443932273276898352335366484592428687432482577955667469906243765902600295249397551961376325739068088085259682603425390850174875390018323250504479494605219025049789178635933344591600678935832745356859142650043035850398467151956904759376534883699835813904092619071377989215886677391629810807899803499752053290245200964960755093054794217733368109200092898293745926830919814724375819864508605290855346836685765312594088936075723877793622235623685341001619565924348210342476484921251572415991970130438276184667979762498321837577925798810839308688126895070717252459487303577826371902421853361415590798766839527636340232362409941239421374894943559527985354462867693605746342114702968567663885181480946932121240939668829592834398070245431772615071426208651545307341970009199199317906962581984225652867861316701693766925158120270058695194030883422402875937253468147339449652657959574633538328614059817938363568848671134253525104319518116122411176487739012951081360499538805109691903737655290820377678767207670240574899185323446056694722895227815380191414291248419961236999755014115834742119999533754212231322240067514783878840600775571626448185434985855057241325152450470376281872815641622818166801239632202224795723563980248645188115393703296766009278706987256799581238733807038361643266168269843892697064123333345927044898848567997592286132755788000304550967891521004827536128973922711065983061198720665546332347910045576131470305954615698762488488348775391208534568412774699781028139265942135793031444810804235193942126907849554509840497517423685635125344337104482450842008804681851342939996552464288652293783976266954947238684956725587643183416452017523007705367431242837330038376779872137798130443663726388617426634759823513960004545733493513936616031183265688539679177460147418449283186231560969482188741978431276735917559142160415559349679229750735871797436706970401918029315724445864558819213739994045410009761715622534109340313792720898046758102993987587722186942795988069989547379581063977968265335757974774074783713776001525248998296092867128353868391710196424586786732110044790810900791646803245305709414970066355290443235833382168106149367323572421867568110534302669072417188623550674602768491651570029987411127072617158834961456436722794496398245546453154621812299617288357006854762364688227879677358762989450805617589703290931567287989883608887347210008336997815049376638344278315765885863927508598314976317326279747626059230382642054089846008708385440893421224073221084755815698682964804938719789060867900860693666216951435828560669729433185217547796374462803840433705558066406996816855008166898952126276334657762809202033564521738590439652646115518357573463211824793754542071846391538509190967607753689675889513424124060876582217586576346736450335746430778882671146621708407656339912567367541017190851740348783434949394821526884269064338924771463711963913088627013211013729783715149348895216700664302257463827725248983323195624306161162571250361803861861278144408267271432252609365731067762003311009309204447166846702877426553818260338579356055826202795860155714742788200235510703906552366868536040576335728713246448095176580074059584669344474592722611943780706592243631297633419286151065813163865701002258993786183980918767581605590177846238047943829089940572910047208576915162062710430719752406206538979976633506003081376665438082891380494732560226855734374344234045229427481611796431978806580251542633157119006655755449635531147381550225359753561851862462970719564952258558515832053301600201795097071186108506362820938416216903189856761242297277702958124674699841819530893237937598391673021529271059348194607717724329577033665800323872574479785180212939206110655838972600182925348819011104028252133558609659049962346179343904003373153601010826825212386168785576377141272645311702859061198317086978371571542908193604421770538474894698449565079672771949219770648902271908016389677358760499624641678523896666925319398608941150724402142172464033563435377513647074956639975838854336154148565955379497287401880834700982433468643906074045192012731131854899267202397834568036859666872016509639770131294510397767586724294140041394284345747086240405530995116628040121637840786926703017818217299638929599500845620178688983592042829329823388793801898520935051712272372472633730214408845848051866544173817005089076413262859487075519665221238023019717519363902607246034873384057754017502264142457589425269841242619838045622877832563550113108516826366342418106770305891242618518236025845846968583431267327315217176521736863756026816990453064439403574712132670147975361004919730671362645917305213175413548559123686843125455061514379438102094403310789752593506909262816132305156620011377347721273526878550081087766113976256497104114045451287336390863491978781912069334080517139011098076342997113532647156310595889835036988240967353908445157555671093940342111856278043620028689588201630278507566736526637098891943878254676557715187612181616460808011392744640371934213508420589469432221134675423665519218103158034214741656716847462461348164629599118553946321905777712557455142840769549691960677499812820704367175593167512761456832004088766332719873350997135800331477705967329786282608765490458038018831936266068054389257011780923597376720268556748605828665661985057982678079284571466670949498972127152605253768122203921485339031932374509470373288846217788125091446555199302837600657134121798206625297894906435139076854627838970354741741390740580889681250860416425375090120305437364884697078535900302003687480294414422808963075413902820622277258413690366423110827108027006618438700548988019327615941573885718832780233452843917736993403312274862886609894257810394494305504625394250200478644766819269450309030391075193827688097091017526027783499116478563990354902562561546767558446968379846977379013412497921566752174215031193058993396776738138990966191830950883826353710017624580480319937255931515857509270710602172892240183924049162458914143357974247099276670855896309428168832851229272847660245756378936418421036123224523614132706964748253800896920553431801454039436425650808596547140740271459750234027065143661342644634026586458928841062782147173337957088468718470969127243769420567511660409937389752988911368900322913891749683213786988291229982387656105880487829918677435952034612022000085355047867888038408146934815294636073233248418848382620189244325654433803762939304965483549900980215561971013019952603519260002736017346918470794300277720971610231105150471856625665248717796843597462962729152733750896576568243135303649755752619570058532774643781141753766067390543947704028351049101774716929842295334309382495676390403237215643665615685902455925627090067740536329132938670480434309199222738905550176419264860972588068482582715059210945079905978262983979672163233352996700250154565028311327861013927935626530281412014036340516980029868725194556525755993487061963088473132425803352976722925431069811180605566133898523943569212695579406355029983074345496537206671008330224739093794070012623890331825489194277616978748442834503702975581098648879986838452648792070803350129369725356964432084665430130074836386142389238910345494669005453642595104186480817411402016346777664189621336120406579234196209400255186926658645665609479754188651147600739859647089479476802353860224313927568996770778682605673628927734991455515396876182084149467052878883830537551431031036434192732692038745246396964906160428728230091594084875181679503692693731403420485029608777464914167547511969355080796976031307801071074114402840621921077065808953736577688878530833788465250604322980781524200120438861731635959789262694224110290913645819219148189084839652795447828411290148657390212692929777477270769635338864535525196093100344008514964322110719595060240706834474863143391686662144364782887748931871182695329595505953422133910906858242915610724341748633910863202592468644390907121566152811608527848624055101303428107446457551815788096889593494856329424911517131056341761198213974580490339198711999433156026801436897685676371221196244484900027034152681176202367248846162726993295707209112650292802488218969889167083713845460228368564669660088765913830591432020873087039479883536383696269606605247546847463190866065363183826769997230208640784366772438134389429257300686155163812242738374979242840775987203975688409482488768152040439178539991721656816548080100845839769523435963653707951272597062581762047849353153646328640853397795372219986603394888876600974579602966370233739263364478639763764581520234875998095833653337542950857631155220858624455596369387270109119516407004069993317682143428958492897625741931144717113435075977558870390103679698182875413224240179540685425876790311914733475226245451241068439882123946356828735817525871178122443924419287954083012228999208406695125265150881068378547319226004642370233784161117584306353436553038816187950225641363040819073005430872358987348353785197010919261310942782736317750434751015524582369876660709062825894202041549679700259719711981827147957512045852413211651130113717064701462076491869905014798915044430257876986971221849748079452602157337617367735596988875956471262743093252578550558512477380783386563643872713426560582511937385077120830794609979254506913896450106146263792389717116790480219360283167251990632455113686452150971046131257323583375478942339890202243131758983732699184920972180757483270821104193291012599688783509540375524999605383516214198661296253699740960501093190974412129444178780135067471875486162556026584456704935566022531922116313624806806298691785414253107652441190719384059586379675914389636776589710876452792935128504269101554736592758756571064148659607514364713224192039147121922069483990731586886148023929756662584123735883268159977103241499068518080446810386231723355347758865721063198045152337943749830842693489191940863929075941378658762053295434822094803389280514500639089598721474090316491337489561099222097710839522069651307237347837012266838344879619116146544131014378926568044244397895719740046530382234451786477964912010024645233124475197482109795279560684818591509489714288960839391475811466599606700763111763130310940658160144318744239376984264125072030438098525749417618522505179127071623002962406231836578801104024470982350961779250493028037461546668847091045913782010457301033531979549053771078416051243873107322646226798336995122399543892077462293662894758919943893333485781240458653553622811049747443098978632649601808924360487746261503027546830650831235003894992505362140718019922058230793328996597384842024790004155372158360836977164890701904862557954326572928150848548597778270874900951340694825971656579454470327786977665932645242411747350783672301714706579155555462397356165614943467173711987788270262798131531139649957719865249611290942095304090423690704198507403986312051551541007112653461876615956894208853883446774542937565214956468554775438006404165890528425082080244944114543297655214524496933414580423199119664715296228304787220916467450925024924046460601359124840419307525422404875649556695809473062344115548395399209796494747034681753870811521913862126157072067022108004344962553751711363655167090994266931921252793712099145548956847871143124399628004243471741431470765178537403739004056536133408651872701925011002776378654292413474746775461465430397389384550549518675989077169295653432165954020158495366332841863928514761676842105395868430580548083077770719891698592437627283648611589987068613677683196066205461919020914782791286731438469999251032642931975289815826331499995953575007449100906671420718361052098487804236899827660331110231180085162174043852910205669979420170086909916295650152667802639363066209682638401608572251644770220250772487909638458834892452241067155462897982865086077737151342409209494318211919700988287346761902668660954388771729434028758365486118915085495452549726369589392391336275786065049242178126098145114325291455430803147498711919847617997313409775793208428532988147021259948933266051256487176008206215055893287554931712160918437927155530265438965424112648451407645644175311913976105002750106891522506748495388554453280528988938357614779348418774774173305319777155906600062969973836191427159925518814093871413414104887782352240135280126941679334421555509765237094087252830842162479012555246626792815645727848300942891572879725103643113415207955476678056480250503871225369401140431004624091615366371771543797141494798435029119301117750043906375060259925107742329664807033247585930335642672959568909287243078746508606070997862550159216442284593789053762954087806610741030628988840684323190204326463806732357571154064479235727280769972723889638246420247086226283678536154992093372458622004687473772968578760597140031913493469710274426210150915501579791804160287277410859002777642520315216467097336528918738064682071903301989152089532301150974316232350260513199182375995061094419244096076788516295118871812388203011037171993544718671426254347024457013140761093295096293158963962966279230113768712175966829319329846016151019113223629703439238802342342792907614359706312766673576242493628861110060175620085707537215338463711816588030115098391501079874181570707791277289371892063841426053042815540265379699308785824594881383237452598474875258625260211610603101488739801251051148172305499120924771798824948369670799226931489761893379706399891569680845014327682380038601725812349369123116178423010413468990238547260371989795187344336888371194309340476892792750272637815398451296241341331184282853718477275577806888684543085940047389255118522021853837782987418753297873077993374342933159448611486477472787932765611541315535298575612745983693410199552838284532825024046068730615979005492269548161941766501162306155040262866901505958827728485788319606925939361723963788185137385334200538129780926191989892899381988463135312986073545529141364706569212694690776318189974027582856208040107213188110938115169040455256113569280143206973197056705443516007778470143042816243186888713632974629844234741880997091893624690145192767701132530617937762834379723958469218824311966825407301274649644469633803327048973903468227082880033675522966180245186184424612122218218633668079071767460375221000081085893725573375579967821087942402229218070594254472464024735578210442155255882177753481332473114616287849028630037366792297175933476007212559112527760068104138707149065744070565450147650713680710251138476058110405511157480495602732304952833319188318185409461491205209451908060204021876534747847423167294151650054283001083383591227887404736376327941006948068481842090405907829871072223353792852964824228598554255580733335134752906801449672862416740208519891356375673472893458212975292319472196704817962854878835022840356438174209209945801927836955927842531764539581023535098951363656721978554708153633425604847627740911641258502758334834526598238313309173915193428264404617492134973479864516452954597542957319036171302992948839784128466379410963819390632135072884025151446100415796043653485363451914999087597238039568371014908672901606626444490116614069974714119524968771396512879068891324507441827717972787290809068328563939029089348713122957398559362947008253326412996861039019096469447950346630202577365247906897057662348805617433299950786855370570597227634057888973226251293142203625976042607173948704100063373417780574842041750543998684398355083721609909732065821085831428524255520771275527423830050585469087842219220401118727315734855566184621108226848765314902508048964824270932986405152497454219955098379419992822883482756265082344963160107864321438653250153063018329109338887088875862432556674803749977395288805559970745516297558986768596941383991026683530139516568375107490345435043856581583325751867881087707336989663853225102112058785762596286569401231593438161404570745436151891080742699204000564412195585029783112372197271694046603850898566232584163499509117088246819049153375650084908146739255743655679794136831351392589593554959916707963653758876021018775028440850525971304058255912067936097204491766520017689918281543610277174490890596599274232906732644391334398572621455655688298745563094475653824393133840453769881470289437246233433799781615047256352788959607413068144674600153000843468006483246507001691051314851263399158882940001849156538529383945141289379751831967551378545378136611515465030025233416675630468551635862208163237027571287756070234481011706358580513445671782616977090136603925646449457923071093192279708793268778770178710135528479511590390444362750497625792691926089186894577363235734152069561617655986323610872884110182082715598537839965990465708556249597888413529356434613329995657160748757082554193448958133679744216903776507624061543774271836529439866299495356976574554197096977610600754339934875774063480262632904699062127242243068206219333968693885415729399280165160877126972484736426044629496581204036297949800677259759131640917176447069554615341452173781229949939069232897190751446556298285233536854070902231319888266170673092192487117416085158456196923795464743875228605759618580113813850993603038099649660858134647883614081192722321503693569984781902468173143521180394348933073685827016879261729441286507863273266066018861023588061164781839047384717291850839316799289388596847309243007255305719587698843251084976669336631454645115172578807390788980711285305754700940876786909586671509561179908450425119533461506091290870278813118032441589455523979371436334073259039881802290336376603756210558303032994652793482262617346738342890797349768536175783097233959671569040837197440152284421232300324648844896893862738186691827661106695468600829790635495469689154673440743961869557709370222881708134558625944244997647372754215253116959217606359110987815279976447992405740985250307053190162002925500641101804570071269884416765336703303041053129635434195031419562278796234183948294857166467419430819038651228260462781047482847603616800359713974776388500692257370415894373161514598279990271800696864501403210881728716108470796448243953137640580872568813751035553391575773882157137222892898265814991895514601146876491776706080564228249894601192800074564822063844107831206386581200802305443408704628333406269263109974969797071423073971131616717195132404629994904199083213726934910062928846846760653410107614308178636689698524168467923962098962189298664946189973727748419309896313529590012519083502910506988912797481884103537810630566084455423059698094542533961849811352260270661835172456659655311492420229796324429933015437171224203800224121847252181633256749065005814928730805408477150345688860266648248599906248144742123105296028339799564922509104976634741186334168059212172928284749308533220011046294530791727031063856997466795233823967232872277061802176493020069524918812286710025038836140587013755251151322375450603703709142764326328777291656665352374391695500048527521851127736732112172535165579264697343773635460078716175962911294331174777947118815504093054606856947224660226040707402298742038802398086861943790767974007044640851762729921750966938199886124354301392462948612653842689473400061137428462730890136293174245661992463096717000740420249663960863126227683653611396909012820402833559278112004333712875996692012534466080257305748189454908396728490682903733453014302509594208377848731382436358615697327479471454414759534005774435092033884129609848805656376185449058322832567759560810828897143745274313456181962673385899305417583274048842411329938628792647989660552405080343858928106310314867113486904366773650947573082663206346599626279786844096526944125609427781737923391366575580441644178031083928893792430296530767285092904987311249739668370863529788689069816739486677819247067197708854490409603540384840415086054665822467606610758230161565188744989213941408555663912416563476515375766146796592480573748090204357160753234641628584352109801298994801065379144643812939942701194021222249142507142978432423671329097265014320670686071396047843395019281561126248450607735701556526936937657552169510815970386463367564138418852522758801998109712046303424665898745564208676257158155267604461506942375471094618564476862583488016361263295016989567600954791405159281657059648164062767319549087017721261778270413269857427521867174171785353552991245030736561789416067180145526121540093331485862315417397900246241082003583601254910430406930669302982399889382119788590187079817639507110771184567608381490443802356767713926594145941018368554557535171888670474416657007054569663351128394251834064638933436257852140045016080150806743143879084322240643798520357045798123779439726231412632961683364387194952000031566086283945751212760345602761846065802791098642967265160265115972000110931858167153982463389956421601827778891493571697689741290470139956981510433634535070055245898721847280302343000838574271521872127972990322635306968857130072906904519992493808823100993959743707095153519301394894038032680231462985288601398351266646787701487900392495974051338621226720516670797168816795760294856770220951096310139000790327228092386341769493302605621541119558987425506904148930424509497179361922116006303717684469000045567427458097753897684737803438346280697187819117083706043775301618510532622630593069631360613147573167770334327533509960817483935383575309445902973727726009626408888930861580764277890344375162134447934783992625143222189040430432295374839775267769952662467519260256781249280704671294747404193074034147465287687723227108988471450207729402198528114596283468621259752690508644115321969588506649291037056863102275701822895120212368787197868633066223353738980054719771807612303545842861246062391153839734320431682128067202105759876567552758424759910551143850119029050113084263018503608332137936563460773907282715333611685660484468683594125638469320960252602934124713466380174724476172703634046224481686998861752136046690656098668552967985628709693489884930371123660379084866273317023793676146398944374922483038163344003907242102776335680399191139940190357647393586323625994656479094966392329044558031154094156297867659756534092198479541909374117831684103030786906162821823112293840489532268610145090738923623814598803184933357882363170197075583296699005029742321448524859595016691455683655641621889454309932787538384739873207591207728905503536270069635124312446124428798210714109877276722875924721971437783060307617256021341859666917929208608098942320906676643441412459813216306531260376948512222643035794281738380997537649347430989161874339269230344945976217527230223673953057378902054379485173982064987988519834214298181617106002838454472811880998499317047958682396877989889080733265061518014321353693924119542487633284750717049545483709746164629956982394304469462393668702987698261621636922149170441419836126798779828766705045675207189079575369170581093083530653129457556897183567504719524021338108951423791143275372388480008077239485338973898747421647187578305699657654873217736775436807809796582087758482960784461569537219940761714368908692927732420446913664694035761915295777313317282281955840041184306417278845952650622504727226340748881328481605841358934078461249747644259499916798120184034572839069112827894113230717468669888013317762671297795340132849194193071511583348928520450364088824110449194332091425439993799399942311127317339425093145283713630803976481381741643245120461726477215636138897822698748002443659698449367080770683891001031905211195948694488004327841190632466218023353531492376156347414295061803903886724645191876725214452161190171166065650049595245422773537966831491624679941847419164175464389736449174291943998521446453141597344938485242777041898709632151548195758390672335457749815655100606188785708986962974831600325489441647605956433243257285586685274392525160319289125324596466506280557948935075622925081051883918019608535129997121392791117809591427880295238124214547859312832767235713282990087791735567487428984678514677134323497938837253726298934613037477284843469358892148737832378739274981731164683422486154253902236830424240939559437508252982029047270228947569291379303475097529119262298442881851682386494107887949865250274453922101394740213662111200261967149109431830486131048035673787297214340301575970750141205823376329373379687496425866914769979306368718809189624088375881706506525750848976729298474219295955372619640922163921419266036244588194910710430966821780972094025370183619356338378344107636142794958248959730987106296180661730755216428797465712052509340424215788666240381453868668572542503194340655631032846638038621348594299618099660906100073151464613767599218689618087384223579301151791855053852779423029918445940501934598655375220831019646795457009579767600817114501970300758923022907398332541529624276501482371953322248920188162258058168075025241456443495651033935923626342190315844548574672655205051088612745987770234146513499466800635124726638189219163101519173239749196561543306950211729554262141417021713975487486146061932491777071080083762129462381823688728704352277494404655850461131578238586931268758819154528930365506784318202235876731036434387291144589070021207171663831748984549937725837191020062633191913746179945760721694777168216252066122659972901673495657130224504596958801613445913424710306434747610697311149290295636818741451426336057145101976012421164290943653520381675445898781569929274756264913403856797941959851009118653472206877242948866864185583696973790354233603527355458872787389451891793351305125986997922649815763854626350618487240820941300661678967722515936571627119027770902185247961496954199418255851433149315127353921869356209283266490253390863527944179943293790011843333981065925955984744717171689368773162650042372572538064204135584993213184341861110656848682549934210391408614133890628082343564656045896780310707055441349274551933551633234555428854893001404175045619652490846393620743499671137456252984950155608683582511244313185078158132400202443453273053373641626051566076690178427507831250685595431499107779103260414328663351861157191360751733334214788279637807182552137624984638532959270922760186220059368694064252661420356667834210882304277351722455740021339226406971518571131958909320397268290189741931594022718415564208250191810425541858592796989400809106921762712586886111821536665544626325162730955896819215204648399400663796453584814203155105210934782351973631358204008560846156522509890309797447354550933591895615321235438313944310778644594023839699269604646506452822949219444191100820963201248273376268610642136593521913640178497965563493347744099690822869104340677338980589451728108762226435361881777945544690867467001511878065238207506958074380082590784783098508856776862860008786718355773540553968370164234098995877369550907473518637140857685818782085231176260099780927665664439712496971642626580936674862313069239092665824643015480144014441400678286833140681009617135042237001115322556911522455440500046921929844000755308111329660413505315217304314618302426979135097809565835149705719462989839423310094561481903470391337993832557415598831585121833732933669985148008575369180861050893614303791159278509235457230216924172067705831609947345721760239400578014695539103305633917037994031827025680185222819527571336691210723338359409354889084515414462306683298899971127059720716800799074882236755239440338622102372041404911697275563896523175093753498421124943692588241924824960229615570012156941721579041681398498300191073468936454452354763360793736593242445341304136343599768908169685149252844197943328836529167910621608201904776608399079852627328545458672548073916271927140559828236766207017869606575812831755565095482264214448681039919410505324372046417157374429963326130530620065486631819497580772105797170597006389685311217242262762380038316771950081335973426895821751018141484187589953811718912393856274127613235194259953115980173693215655049236456161889334463264555521733529204703868163702504696415729461829912621356152115709445560088080158370778038306651106729897495703408598663436675159550395291214253005186065969152225915862846370036182785920438026164999878689513746801336167052207707517788103833652417214385123613938176692670690544287882552244455971697209355498031143200181172098412517319818280788323496229645908279374819787460868411637001895027307662983556988121339604201524101154815149495401735395615744148768508614228507110358767422612208567228542511518541715572297760483215397689417192758251643153720335631340638558457728303784656280759709424504569217319729032401817782237766860390364989682835421654104823560090857381742903554232486321343500718845582302037702482405599946131361356620258581514707390927478089483292717972580013800393585094906537957487551661262677504740852183411935249678852616645775157884701712666184526235766892921399537552071067780662564669996548181291551531689067401649379786422986808839243657221252397943881401879335219799237975181032961057373470613099847171548321224028498300735103654236570838832762567577496383243737063057983521990936455559630568761208303209533612800556924474326018841074933572846406010778841112432828545197301470960116635172748523607415539130581876529391371245251748166549478836950881802071578803502282916019558393790167747106857956771869701403285892979154826002298512796940377220299856210278397254352532501531112683292084159416286708387232470324144128643434267373587822878399295315815360376793600162193134876219436486269920695258422446671858709066888211758962541728422148463950114182400949230671205303355480762903676125489524500140356179866953679141797635594561574390644052244557301944566615806111269112049310699518360902966340928252375640996707128155169933760961596918371629959552554041045327866695952324869812350614427751368129541508716975202393339592256894241180481100029393298856742798745602945210726636169598334852333385188800057711133145645431331460271573502260649750473558090595352169514667617371994889157974390921811861735129020157422982403894248194939075905745191934677481605961719086353610066637273597762974966030284668413709611922043377840063726497017218071142156092420673464846650818292053065584333108524117508221039315999826622295234276772347422088480222820803950689910806685867523381448214630015489686941020863290496286876510867821646447873942579338159437531657656344097264268174650410550833432356880799155084358476938093261064205837869253626105007161616943749056852428686127860422032845129546909080248192427384041951109537997379961596717344037656561557764662856509945442556112947761459760621454311071562444370258055650978786763537760027563354407801855729545836103006089590594639341521758995592800753528273736870322581313015823683084521335060099240990891496613805936581001353675003368487855172339594400495393132723143860790130072126466958628777063362714337161772371476519094990374399253221064738241214266218802367447928515233236637878975809037364539303160006934473713828868171960946964330645580466981183757466621425536130776516433538649808645528550734442416348776275385928160471761404896128443423937138067000325611584879264577970990219002065158076752526618543588992148413788117099838435779808475756443162139025028142062279944221730510071017692874391326572843733081533682707528835745908250811411367357630811975998829823822352489615660877780763797347465754723281311112666453303979533941791687669076116906619655514138675143864687468098863134928938568622145544339867389732550355002608989428551072761547195076125403697905315801570957594635309465796175552165122742163707535116077172844359969627427928276376571672752291205933339687601041435224507830510338773110504422376264032632641381333516373479777279837561194098481037347222660288693675522305161981621345941822849920864254214511430248411375921707273350054737572724220987649933037577488062051714491941885358316798034345856640816437774186349885168409366612260362587509796665780205780069630378196905989792916907135323940537408946213794452998387345231786273896463635157992729761927560837717475690088864596525911739957215125659444092111450352290573499965941121267221653216216011601698974947155014732524882393964885870790827260851127495678930880842439101615479557609989154860697982291467700492520654997820772182605599357905831375297168667657102503227145949997571134575925960781584564482114499092834776192792899746092631191415264091906296568748655927894459184812760525141074314574730294973194921193813578396327182684676711266748058956811839851780475027143522092093974753599468653792582121561438029917710803805252362723706489502237347034676230200507557564651961735206276839909744343238002920926119353345813341309138742415072522651960215007156874146872892048441107751876819368873668113907482215581911198158585549407253698917047384602110643852238671834118655747653198764841802978214582398830816907513023500196002784990255007566917630256758815764485394723091114024894528555092254314440941718668280120899905111587217885391168843164222719937212459479614969904952501194979359649863281148654631028656400114426163328872891599910353562401804285017080206990088369109013163907340879710587037817441061865227999823990295547442717847225661792229043769129069926500888609869779032608960828323534501564394502062745044243193421779528306592413997076853970500321269597642649871450843970140550849110505039153247848143471749562325289750137376616680196626369535568055740817358292656110171049919145707920581956157394351353954945244928599655782920292811349088873186805241686565573207191956926787296391082364020030681672236883300588695134904430371198015629590347733302217934534609649763662324990554321070176927945164250098533540020880598893377289047581144291063711206442738585592206729474168698639337921460547796151954744680008364710720696669295666980507306523539010135956114179305285364625627254044672991445584518497665739598385988667210587578550062694448357723222033037209315889781274112042893746686181187003046905857727901225666497708284153397700812943164176599316687801922531345896372645115417900530997033071321700137808869605717186053308134039847986801396046936914941853458446622018092535677421648240776502188346375559574221611569393434966490074839754942592342585998178883044947441662396882019022172233006713259798903787820087134881503868126593352918450946517992165073531373862208209543623873936040823176397593024519024141091887752159498422197983666683968434514192223891484354347186852013858252012196366087023413870445577492452884618551442124112495874553575308102486488522508976279129165175789726548403298622899073500464933583026974489305833176640165470147671137685209484334122005462678111665934232226529083080260831506322375908618511937159818953707097033045283009668706730467402532805238641370767893654549752680040043719723726687225917057242585092173586922744664812202379864300779044611529674827594332296156940061884694879012815778779528911636596117181902190816398580482265776103951983038470517358578364168719051287034348214793376484191812297855460426805333121309812536551798684817267828129526397881949011030018403296718389794057915339050161291084839811840796891714254372160317812542116280883902608939428415609820550328187460165005828014472728134610246307707041401290867453576066989643619370010862699645453326676084929666047337201991036871196904020713735144311661598904528043644709714382234799086613153757175862053291933326879467522350938860443901892527824968450049459149616191860735264022531112292111967417798208194598034735462424026328015644277938182586593131257957818527891053556445001629223142562955748954779832857429053087263404734470684389358609702658026510110242767163634671463262405532315113857379662347391204908861702654680731012008039444440811362170164316920268369785639238624430271970113363534811152529567588414020357320040004563138191300457608622024908742207558530029382726541805802829535516696025107898227847912582410668014068212028832904446686238642321823386230215857116747170623683994231614419063697036267862178449670947845900789660421242438272491161378926563557151602307340609592644170069628290424080012959799974520491757473707719609968587108446015270941014737053659100150211496111676168282023094154281503400796426565567095288268143923615028082803467702920918695560911808777393771711805052293230396186728490511180565625724512130523905806005690288847638140578474174829977300935156685269260396455450028285808328275059132377736083246896149370876022662730181240480734204416468288587266194930475295089565007717899998066744783381913366087311314608975750134676776336312107749138497250728613638809694963618206702489371104918680921116545430890437169715456170183194153939634272430958992082827654507714138689174616714980709012693349271257091399709115438221725794349785054899684229798046399564308142601535355150429595565483028033858334895173271580663278622631245616594834058653973203595715202369342298075194479388819307244341881548697840681726775724641106156246887545138806513025772963876736289570786693162264718707058552050452962215653011557097551558372478287965048834360147078656031919317027479503725032697499793847540997538585606635312292411331022699809032318929833803851865292159742182625834012096732035121035253356633184686852216050299827334344173028931693525641871012369596153464133537498919153324281789793155987779615374964179344993069304847289288527825794385523237614814988880721082253787379694047866187501792098305838823728194711955265143934940355100417047981426260274024814240106311065122617183762144254015726589194331281136568803198295074420254547544079488155020005367257470133439255132755179158300488711313330066689504941974114149062331956826481690914034682130840767109264702600530229237806151415965489957549213589124610062201047019688604705996325459043379467177033416783395774873026608325711097195731961306782652631600498707925450816047554648027682179037562655629278601968753251569337478692998977540671281594363594279094636161842857127658463747723574696836493819836147749663741157522089603495768464734632026456907877613664286248367180418154427080637869581651873420957821039961178568787858129793106719093373068045332965002375888995202839859225378348068226084345669005588065421175662634059793617494893534235127711415421612160735405045178990217843012573443146631928629115353570397487721935549188414505150009435338296702931279740431158423534945763658836059103640344089873791621467924906327421152946706998812010018227063943545282645022493963838040458442884789014537351519433098280901166951754119564009032823457038021208333806049569600142932244344968402157831157497176719845096915675286281078356502705881611775238983867759352663882556783707856029126324361179692304198302320105389208445801231338398168171036643352256822806186435441982235186670964402171397536980295273492313566419734247575473514320539919786848587627003559564221155128984898275351465810306462300426264058495647692810855294910053983101266620870482823091340448306281867968621961165111624843822523289848946853807297915754747268688808965552005367046748882535541243308177812807439740485117046154871435841211826069051666946108372345385334094477078874282607573384448058958396381608638865451300738261071636270888154631591078322760507483650828988681736758280545900985316871836075510826775517800822501865729658127176803367218271231726092880612163962571566267378611693003977679589543028962790944752396941985112205150807162442424487865031909036794951402336307159213250524259206917750424386965319821459613653358961058460199811723761839185097771877776023842400510546585742329807041247078553123490529892868297737968124199470526147611769798932266647383180771858127291058206834387292971504345952928827060980816110592826807261653594474839419072254369252536465577979743203746372357612567932446712083201895486435395342600513015200373361324300762850620468699669417147407752906159384165008971793191529879833616340009987662891938299155908661014205871228897462945904746363213887189026211674718071765103534499922592639065977914367100863333927209697875593444717435181744910067969122508323658738250304388878013396670479403255939210612758342078950215720411333042846122701758550797460450167484127446711338570631107315008225597088876919533971107766352197386850559162515776061251622830409182382363262643046781331194507669791238044793790087622279039515585370175329461915395854616134613017600914147079189258778511500209766664085686503965218185331037936047667467545827479799660850844649546012923826561111994286005473611778534155145343735187249718613174587602387313000054021683633316939226271674500087975639520734832767305987304152474713048664678208667057280749654784232057244214511169939092610990161574636744019032442720930229918173133459089310461034317109091484848980735621816492291915952789730754217697415223900949054954238286711366141473459965094580668456833904198844494673359205845315242166013099031602139722258253136071240819888787145326055019017478317020902995421318360065545186456532938263553216259720999168810291174515336792445475605737925441030835136370725267833597280080633665549650745438432266049254207277070119190692836266148469558465439037566971529715817199104640000511125946949438587812465300853443391489676812502186645939254419782807673279248383298055522496187984040462005242891960823494930712271557826850905895953705280948934501834025292326799152556805552772696181153641114167614687611551196632096459797106863139876763928971599711852335815112840544934715947468259186603445471239576912613376211387756655770499728278598765920057756128768999932746347000725973884523558665810112793507624225633215869963525778731364038591129027173373799079409763512873037784401741612859268171438356051700164042557485937399184268814206471300120926417224409049299034612930712939284807139221305446647381998564257968783219561156910231431803412786647437307898591855930035120668027678959931630992180914223856522209748357717252847186903359135501968898910065933193631260517711698383788097843111877013643807366737615929112283336454644547898698545794453358150745575062379553954081653728068000860179262867303941995424837093839023489044660558195787331394001566017914220209159201692657631326840438263087813176130603421986237096658047280442641544040459537106942682243974102522944727734201541683781401191354969656896796797243973395414266160774734780546902702012392833782396002303511508779007901800220393979882353747772814766425177586285767698430491383340835728175616372174624436397757948666440026160432801298460110067089844667749334001012823557301834333380896609627570797429366597438579070172706600715958146821029676487318982566870617226735570121545339303183347697207685642845835748584702436193633892955462101796021777354606911333758244914222324983510523850320335138967503863624716033517751920375337765829379481232536722510454049802847566001152940583070261341247170235667338625099085961171671393254512759440822403867654348850415457690875939709428347124225505905776588177066738598138460562359577659987295300147463760341873947202181572304997252087804414326508106001568651923367658284396825850985007647817299494456287797429712207303908656707973053863833172109079979232658017815809964054349765815600007846706321337190134423749178174640209615019061399320763520061449731596461072131477829574679897191450880811179602087167450857701893706743860567506974847960435164813645360918630923724158106277110797893969967067601864073164444328848939694469107159195919914973530030914126380044803988895532149289012940264318997911168125245527218135191950752963137529623054615899728885290074450457357929142429842443318256498432590750348715953508557136064679508930051876610730043935710732970456355410228729700303726520969481911001567261686550754491887096337495581418104378124045107151893103942968607292725287847226221964635068651204464261538324948224790504356460782681424599139319649570790165538292561352575534483820111512702679036934730147410725978038267765263846977401179629649652132132499417026932754063514148435710515367997139738765960842528273211076686307897420516452022691140489060380064250509328184985552626727510264023499783366360119117511479452625261824276845530990503734957670350923135303719055116411026949711134414302305906703220539075931011644727595338434622713195996336094104437554461476757789954597390046762003190141115112995730556447311194802197800135315948409274991481519131742356217138390303091441684686122620073941493781196450595172388848393573687649734128458525244578383891966500602180072435161008586278228559660377519659087202129488730704251965156175238582936956210568604041113136721031024930804962117137546184979152579184702859856541345348396334736393763104521002032995270103836521437205524492405856672006091666062502750522148638159440071121653413697230915473080664918705622976037893135151417889757066124444532264544949787416277881163387525882779222655437014548569499406700939784908244816495239909377222840849616331383488576280804554592131887762374960995803896618875856192210355859980421645205001461250129409047706175394629327967243591219428646244909165347695701244934847252200833330324713470902339046592235157305995336990908045146185904876098647803874081362414694439671204845122725013864626066663228676381182880690889783770428366973033915688123021760635164506642564490877517300341541938940629568597393688382570550764024160239522197980189085729504343920565513480597026805631418511612399046883850537752631772945779848353774650706998506497947696933657693160476889984494818495924774316019523032246266233273291938806468148651687770878421075615844475444893320663342343627759934735074220709875265827086573453976456323091141654762404505868799325051000209790957335064053953650932434072269012970167811244244300255986239393884100658258396225082583443312111190705802227885605004150949900782067540891165825801231155526238082297971626447623762243873505567655517960202007473786588278373609236564005746348200345691726695270955003537076113617263889111798244841779605061226933350465394124610134963213616058224125319442846116733744343094592821809273367375511183820882165115406412178033839161156274988807316386854513542655585988147814119198843947073419569720758420537330035570822242708706729274769718004749952219519549331254637536741685595186596553512095891282950387571047231755131137128438507068434047984460757955463275848823931172397929575443870086783156088063534341331381641465770670627329803418278252280080278459975036722766244076958266481752413925725001847289600040364412148809077603453322609930976911835329098292235892587346756931266546275086914629542646770018410570637340754266767571655146109974150871108042455308096654779581461648686090209391603702772486627761629286115487639439880757961503772707777498759569885629441506580728905535155748126228766224395352855316720699759384723693446803386239054375978938376759668874810904374058744797531335039362893582340561057163655440547989154662291874908173641374452406712223145586496113120254080036292937306256480863133846413162845253692692144712276044907707625997805480062544138550428971215802008975131409442985694370003819491452442372859735158253919602604889330070520661816690338497427198116012460145242764900399450613631782446762616902056708137427844640649297430214949266633627683803621754014625552446945747198207476584584445150677683821460270467774065354852486188849497035426176032999708507856548354661053467116076339193574490188367233753070120223513175855898180815682354640700621348289989666883210858604386983134031183104392840000017157797445821423344188639686825869428586161818515929655450424396540977470208770575825422466291240668848384924876987461108650845541654118128543478477983580065177179572250055903595523917622555132448848706218403305252996137631282644832372312244988452772954288325478581355532439114349089365204338452583315442077017450098240061798683647297013991477066410792723343441934799471516017792396684562280519814751061367227274451216958936633163160021326003988688311523260228130760664530151524323169892661757285680135378534598868131345876764703524933731213599744971082168759619302148317867350672236662466327242691253268174205367772411859176729422746826512504238065695324307377946837781292374638884116402990483573213654796003762483271345980819386974900594139368836632532623587857352842800488269773877474825021949742006016364983854030457468516659383232618556590560115241590261526035524453350343157027583399458802628875137070894973075866149252783030667145893373472530607481127568087637380819447679816248411179195859540895673012577251188537750499057374521936459163491079669081709607309719278738372348809175119726855037606291256253690942647692310248271669460535141477649396303745209116013236170868025497896331904825464360358268851530711004655800716366236526131519789516387410797028006975150592847076074205975846801166398017251438866825593518484410039597276964446761173290742720561657826524773632777474897256486887653215953587056429088250578241946429023329436902409479716653182292836209991675958684687291726274252035212989486919097076629870280188187082718102972959860997209661680230680005305576953877908881255953459954688340719221293871925652301240111508335041576893565645009737858801587373623549504220447710418932884455707627344469542334168148925920290812547071971748145273822775452682791163113511875808094188217469227099958618152802151990470195990335054519504932601407893811330622923132334636062951166697762222410626996626377692058545173178517539494768991992122175459193706329394763450669692586851104834528662985668583752047591780472672607951989157533092962339065285169593749719111659044202716914699881160508562972659683707005841196233214377773368619855903160455128308239908949018734146898438764423896348919579108819555793876659461493806822708097233570926011126558810814490164458921845539907307981415525075967731983618891495561708584310994222836846612264646813339895158863658241961468261591776600482290261988971689289518214247996919048336495790284695369384605628431203034974645688945705508849451578767241173409690065536598725005805901914893917279228695142451134479127211765318981116723855522461420103130185707751201712788685511062205266382292952122851840003518612701869522133218573653078764837084693798819560620315126252809823579448171684206615550660663259373056517971233213434532510018577982642028199582180911329468472868934527403934494595920044884409309562390690399555163719385410821083288427080113817642398918044656475477660781468659061106929552636725860670508606847018246465710363118833793620119455222065972816319747087434137086984068933508445211042269240560013461205160453257518368789412781330591337675732153606457645536593391046484212474638839715131809241704491779950136427306146580783781015664926477129874707878028389102560677591692237530079981084017596315226323031187631045003036846510853994314329495837548920548551789290580753852299114342894214117471926164323788006472032179335678713168613951225421705544255823639310019036926699604205749969078929400432438244852793622390532818404877887956762843382552267023014405971228116271221488556880857351580984563711292788141963321885723738236138455356320238215641145880729177491161943530628902930950510981689243353581219509046305603166285781094091104974279493845909435681350232770946622375135158415379170447881068049946856533232620878884007996049352229850170629281863575489561546250118003222052449360736286215329869064292759827203119836349570467546714936673977411157744782969857545303724423149936515728254085910596175544261841066348118937005109294790081072180356760417060075611061549611238767090282486886213783540564453356543284957264379755521667979152648442011994068849900639685030883060111667246898015960736315559991681822908641214269398077598823538872253686042876309170177611898920486816579994292726671604799158634361883169383176430807399795449093494918455900215711480271972270613011742427762837251733068856850716408998703894959979740945877051169698751743744065254859859505093022397576949644352723503322642700350697581758629904608584996680879231561824261685171224915390056293452297487480953619362534829457985701612173067454147591084741182876862580717460910796986963852565949124609223094438207034776683166709494175954574556546100650690232611634674343364656476735512588768344108445218724063457486893341767750664580074955794163865153655489924903063232126812581030528014383906125156537023662010264396523842881640019828353043225715468256903711001720719967735950691095024329407576557821959509659937561143424836363096700548095244352147358415426821983614664678011225878411954109473211383508994027101564065917374294355545322997013467750167727311765272529295175071956398033327263684567420280991527874128495733864347057905521316998678051038398414853595093523608255657891648969932184255211250666740217406792693995898778052855999350699069911643358671778600796783275973553074906279122195454829940994718462494639047838743135051668365381123350404702867386310346666431442642528837168132940376216183142272468156988718169712364840346820709057706557402684125433532005608114494508300216186449941348704427950564262669777656900111966993054506060840725319542380074337259687018893720620806726522639926625738661991662865501913091698826205593356099138779262537634045680110218133386273413589855293935459531679091364564253783566184029642163650272646070576754685930059199174220659056076947371726423069445521042728450497794227325483269540910876058807195508626165172790003515501780969150497841407567736525720988974496382764457025047067245001324055501587732980534786235825607308083324402125362119646886735199219697999629357939977114391610246511730498029317471181744503982077580799845040690284287869826570962336283381733337538468948085769795339844055451661254511482809733141110189589909597808814128811262161283753863517062482396942144024976237743464719061991891013075241623604290299688160748217977566099183219859123749541230786544269875793162441413076268711598208491163447085138395116811368863506517760667132914011232007207502235212379125566616602560736745494332686210933534524940143926709165343110859863245003022373011210019881404133876571142041405276980275631151983548685466064788800789494359121304462896062399057688620720142490946008858362622863668984256425631480070717264241761250376181431109004179415618247628121474314653201897688453691357945613945769191701862397509038096311604303814389227698838029121067246232591910721563481984500863819651740439604070548278344567103790699172957034987693484480297936158414868425027600036142493456011656492461856202239853167299485773440140087198660647436928135040232883113601619560955378936108231635470128208613667498517134382910742915519460840913350592011125320124275155119409228664672876168419363666681796439819923668889931398871843149982688061845395958711402661469259669539608211482414408563346316141908994416339782407837480376969689999383075299049380701596288367399395760622025634010911703718987258818357006674591590311505311609048271547573832141185772351550352749906137874092923260692424905114198533697818331501051544800831478940155919901751414994235971231404018800155668602531963634324283265558780316469018955430128886253753107833234662864282733987242622149181963484013555387049604916727921494104004872196941285147011849956042225306970475827062238421753448401156980282479743770464569172708645048630470600157689058590032028047672603212103636867325654299582676865850950537374321362075477558831200999291299958158634098838411155468324911780341653105136105199570713519485977375206238110451199358275573075665977156583582238168944735985910635968083277324345957436551249450498165000760252111684054167508643410055731016913193914981086473588010358810284704155721246109433966306547387853570683537453407863915142674222631110673419532226491467680309069177124614572039416341069312640564755894114927856531443552539667344428420461142971126332201598941858830109953540907933395373078133912833883493252995668300872758524846689299465035747037171868862946980113522628508740662271460944606111922440829844448223441108956787060425452654370018472303047917899401233706197368992008817210296481626780048002616632591337004351241440800200133427007151064572263794571979182196209084070436341676982094533594234709183613480049061643706618411485325864587975823588737821010988623754012811512663995535680099282564947431630272353413279587356301794599660492707814570022684493749231266110180020526300814455695250495584209922724471961904853589261936683829414342366286933580429079157107984102248116011449702950064857486325787574369079435637653285424606156349124928980195544378557863928159559424988148694240281352620157107246501625493649212185327410426125561272337373079628921208730635020138284536033561320268600487548251798339481108527785324832933897395624041276122152765311579407653389165016314317084885926957872830726248276290503516944357288708419150482675302493635976698825972731244260827536376305520198084802558241707361764897197965538666391577783652661388320947778043342713688764952349742681794344164941100096296542072321425979980080459819439645351799836426986114897348211145710620295860791258930998958653791297041381031044800828582733883160366010103628677344949769640233601296501765255685620090464277286797806985322493577984885119367948066142496643450420657935681790317341444310172237139125794014012467321647131086043956459119370675119656318399288609565222711067400652770224817503103594175034499590385641179958116788488308051503087127925463582223149496199785035319367441177896597240010228455267667920867328305807422959469041183382800760607006961774535398027162956696813898287321840446789503083309681606767788111559933551382233396695005494690476660099583212874300616598473240651370219281165277560805553775950198554827524801660387036303711214910582542241705399277488843535029005409167494503896798226056031595337241114595308805740611513877914403712499426352174789437721843740485345896386951806204198564918005465583241535847313698534118556441098740211682235658745838268818739940485069522554998726281074080992622301025673947045834877394275003465397511927409232710547129053646248720468118977837556927339578175740475818060054703610417760110442981248942354557169608060344650128621402383026628975741651372631308713947669119545358832718960081828597620481104655981531155562567578440513931947866386737718251433910744365856077912651285561226336569430725984172352692009198741325536432422560218079098753104997780972162304818604394721279013227582589738627813521249013980181086074225774116022477510102466713348114745220420865837252203908988411835709687707291319870744553220302402764121469629591855342265298785114285920305816549102701774982748947895808760059557554223749504222312717801741598647808537862159261986539976482173923452783753858461121316298376476382879479615057865445921916742097844459196022425075834501278627140331427098625461708318855604190226591493129271782400969826434656318680353929147617025243392366473453130504642642154688867606555490068177526930043894968370862852120335809703194102131422419188468743757761890130949013737009346203583309821780682318306646251534975960833398514294825806039708762009845816661418475028936800990684057963024127105474645577356086752649958984415456471300864797302547996322706183505227027967081742717626344562202928864579356020408924901346468258343689740966519778353654435175043218902915890482391501426770379394318184654757749987886977158803892091225425119152843402272819914175540892218290546191172188623643055628757965423754048743720539261334208275542157229404688702868870339395130204730457581009386698838023773410807762639443116280010610281121784427061676221517018850470718905827631418337204301917786407411973260416491091210986140804555164985446534761842526663759513957247135696932542061836147044508448960605279451924047074971606665937307095979368535438259784034405668526787747180860183251607351790772531763031317143380595091652749260269145447564058347264370300522983786145916983331882929417640135045552466287635665698432361112020853434302696192276064174970084208224207072543728676628631927695756351956588540003417059866708527080397497959448798012626294652946440705145872051108407349263149069236773903267888131810212591245540643187526806715513801306971630873147827020090788246097333391426960955354437312610329638523679681443224723999410921805389152510971792823403921308806114901529135673457964400714554461954345136091731458444035124929841183020065436307312068440189529752623559254274614310563090598553344863141613576416500378003070010475035930941511398457520496443494815295124125222821175845864537723858278721764538147538438046917812728959187524591579869461121425756851578446738571387470935189655594924598078546665836871267655986800169752195786164213077171533990887602976161385499834360230669394334092509517113679173038656563591318932376086138412001091787233013694349831677129630919374954219587550798165450394866786911167978843469545189937906233070740295492404086588993954494708565030464061885102686963738121858553038111772857079950959913981855377910158626286131737532959715603413982129403576646820061114822252583613637742884214247290753492896637641008163790269727301204724483638752871574723182058649021591128754745488666890504625118107389556317716907026712482739459783564113656184609897151727375047570418437344656380980056838279001138954237058098995440877927533196401682108670813463529594654237304751184547369454196601338301276693901470267986796593684045891751956526328628869443203091459397765033274023988297001353191681692913581789266262756537224598845522038675232871411793997960926109655782371274100469542339292052763929441909597699599260167550058318836218525743436230177100436849435037364719126060512588913663834001077043697678288141840538537466550993258059210274941916776063188383470987736609836350281699136068387172205043286030070374808177517228356858527961991272144356372227463227577859616720421427837555870909440585037229571718026800386035927625410414971910901991950962993009787028968218973496538110884336863285883205728404762440440049539817720834731270166397466746978337672226154402407661089270230847449010580688545539903166423869523306036729421425345221342972596251385572850379103958412062360202672971134058718015538721214309680691904229474061715707201110848025322449333400256946886188576579254368743666647772857465567703269153621729869563889599115253598242791523704962623304359908051418990250537309224009561326703909127047448231124476469020573623196042069860651032110270539687342916958706314608621041923126756316864943176867374695500594763469354966409281326012857222709848931910383947201992217122625992582026860974559959003703308373263105511746222705950746975322061396666330951747711572797622297551333523693926084618275562328901975190267248129709970326410787657395791953466888824417574658849118303538033682788164554155628350429043789891974438374089490150399266881831680945432409209426428773049886270356572267372306707301643601952275368842431381229577588448224025148827796171195811950027631680995269325524661594967983310969653166315299313620396221968913395454883315153914606601304606371923121826220468432497565515971877114698188465483906980712512213395185086956005902256802007470158502827599913293900133237851598926708714408857113748999429736588771489521471291072557978126793197192396236480387132745767087111429541242697409120703743733229613838752296969092722650051919080806736390506623157170702188165910864163427405334560404252199033519225998598865695751846141368381184239138487065931705954513005613381096790472211029129671088466089862573619465877630301954756655326682934822382186813226488426187462493423587782560983143994735014299662148941218429092801699382282648269256917607665317003619752961766080836794665184298216906296952519410503332651389281718061670245269701187435445115487654583817588820629958876763341713057785307655343214674828391895443392975164958489166352249099125857795143957073753454302049782684060332395280580112282970410026284534840772638736178701972386843981401292178499519426250675662446971075672523401993605960019852145169676098715179107007420362282273206354494176000014085479128222856030796460202861620554079922099058801187923694668797083088170541697601088123382460701537039221058148469949792973429049131259780898306977315870162628981282221210677639900683783415771406695934313328560568330767913766324820696972820263869003034884328009845153904112953862630942186448394958063627764206119814174611847460857959995638945037060102159356568907667437627025407625767116074607033243713989996598749741985572602190236141706193298307716781589994457687200264950385879974518681331227109404048653059302694854478621483392222074843473289246013802382385230495109662448476920312774851792637182666486384535129220346584620717276959146360312611423161830140063664454791976160302819833797349373759587351083307647439499715900775674085118215751550352378347332058713824087675800464047517817105985624468902487817323436878215191694672332470437647715140960244985719126274335888493917354203375212175914337697227497108116143865008447254040137429144421179841104617671738399835489728033205571217376115008081899685559745495042507201746925578095441771894772165603531823857285731460613688589426945148194148784172349146313137847699878666838539446355496769427740844209804438286828037633521422352459960612770018479497514851672263841475087861983223391676950965282608953293536585298870451057220333858544258409982734084871363573036435857648041199097947580433428075402116443631513706249471092941893744936929672162371766835510007770810198800321007961278003588748207192908229221563727233750821813190205880020809393591962154789766195035495441810989872739402945256043676315787799877013004151684798340152325633705758057071891629223998479870055147061402531167404814887993306865608207190002439439174498960996230951161050148051604567524523801841623089392755175179808862265799590370642345686532151009369014476283727008017734824084120643020926930408106734571556872093525405641731265758858171818093461560129382558602988805677570475851387358135277849656095170567340751977941738309979984485460069850441346705874560910714176146220127263598196277922267858500761391804126094079062276955276933479230415853305731467446472875846712337690178929152961938997246468501979770349953410503842360773837962682912064299189835127938087054073581174597049824095091910246053330659821342288245244131127774664179042950803191151996740546158067711951443069475367065809962260687697583897072018479143104328769392066744694161135058609314474527335148856759271492491059308255194314274462827428503684845392388097884430709877065776889900583609949932007159179430956967075745131912263636211707067842463750992384922671398353368334507723078249096853915967948358059144580107581356750463810555594366415844984763493102609114754600319239674942731044137011313341452679546247308306113953851003032785116065784980414625985305753962923880302959884580217168620153258762140826706499046873146487660242129993473102503421353279017520365232088289417507632017343597832736466897150893495360714351893964012243918907855054812000652260080136788518319678416175684776833778662053908257797002477684765310856931667823338201776139626837610016554327200710556445141911910752349932375965811351595379969778750705368230967300506217477635492326798196742674352334889113710026537814281754911509022008778297363152789037254292874989244018893092192917718864507894270912625722272047592535774545639936562505049712932002622445068549870779286642217766273638919626631605286288042121759422391524952292015672739521684575261507798380871225991869127304519289417460692448367728645848103329635219799351404822007451314811206962741429628575709346406700611051510773516215390312947356101167194061997483624588263559879049512003081459590549830335544032167803598578875196810632246883168218242608936611930694185256276239141920105755879724257338557517945893786533872407444069053876963503114847944153720779930777349868605593444677459090925928100979941194045354180081427801505601628370299605427722046755616589364771825497060177093068982436619636609965582082095016641337658074238717153423458769773106263362672191124614071669070223342887493504136350291863837431216399956548370771917694723371238385937086823962120511578482772549352100149158414249549467906266628281940343763299284719334354639280879019717001767318765496476090524109384668179851890784606931391943968776911974590106783126189446714356320698459717760118856450616459965497668375361606525126168920158243630799086925685765862217721520648084541313102216374732794903675048073466823950633721861708928918378137561223394507451653900531819396123293591434203123692591102968219526133939324134111748811105541544003803390192736941034695344438469909457519834181886470597588923526726053017433566224436892412818367470553692542576867140416922552098230696756424473139414648281190551319403216895962881807319829323841198505530398283682875621567006681594575904456127414393036173217354229899804446463191649515011919102028409421824063488627071742260235196766532657718649378300298213435741460435671606723976930501318062974871341141516470592706001289258097901834519826147013409292788933442309666646941968329360653378661923950993344347594693404936147877946304535544493329444188419740590056177521405688532641830405050770210798218355626097840304835682296564635543527580149501323846323274845089575117871592821333073973235412081114687003673197214093144093895532585006036591482605917792998272680538717811445394838029949144089588040043926590380904871903225636634764300867949857868393622226169417361543401425158824599421641035967497318547046816924308036343187774977961709740269033842052287550485145953051099777988273197202431392181953148175927258411262836198865645977900661413788877217554245655128232323133037208827034874296704191707957718596027515479359207178618393513442995438348017530273896841599915496117060140146984357981039301022035953509890130483417764361883535243653470378498123572202722228848401747896863039150393042735448773459879804904702894477044333317273547229323945052764764888786911912486897455401056256906181901924414135002771620690136611037009200445459467756042876818818711458756307349606789541229854465372485956267994830441944937304790879524761681705352595925734513165183449495234966179338148883910888932131369523063185567255601416830524495684575876692120629854885046410860016709653365659209827437753068579423357076283475531950063944946078429819680640374036554018144051611490600302800184915522634000995738523664064387266929973752917142473304345947521012070018295152500495534418659285784061872137685242419488358056108585297444917387005413444923597549676879217204706168829328389051290936382745884791827602789849307769545493909648416189369446630631579333847364939010111209099769468900442613739768582457485662946737102943986928736177159338580686068460724517610975530200574021916360162760832981602112728686974107695347122691491983759426047330936653818816840771336006709090603366935070811927521898558619359275554368350966248236153001583171118154914838148470924611548780394669124781337250275690282480819471846147496349571715463845714534612740384812006812015551834272594201193028751121985834700254665119196707165278108955709203979684625327412136491581597264269123045912948894680565908482506279808909841065278921840503180432280755564965217742657786118807283444533276550818260984029006947998492572536273219065170720716428379083879021309644190489428351127631972214053480291754433603545443140252919445091930186392082712203021255180317889188889561012632650601234008043853931733416973644794155627540317056939597991731375637916144571156132216632502430095648525853669311153369670234899238181370925272075684072829044561046167955626151294119478852037380303483606352538235795191116202972607748606679744969234434694760013528074417915026463704221688979863956207970928112620636669901957660046538303408148567548320063004657601080088036061876433893289902128034811733067863255001724377258219481137320580065497503872266132656320451544748441013996592554624820280926743395101726137243951911541954743814277829291746939728296181772168896717191569025907471827727773217023689402477709530346298324447633040155153597188698746834781321314573178181191875894463761351843658984543713456133422601583777287026679519386975968422989945881051817413406372675370736624287875000111062988250767501908359079878936297426920735246678463803684903584762461706083758527869634474970000999051941593862363837994480801097957932942991351066894490167805115057143490119061073665900668764245462252530337083943027456390582474608152144239604520419991912072432489458418807673935195729679391825647571530902651024784574581679045389222840771690412706091753430319795569982900673016541065443942700982988847805735515390959254626768203645497171117077465003231655925917223268148370558260237526239671425165429384675880249232729743866160596901947180188982276280678530335829253514830009302505133905214617702458818726660976439100620920049652799895349635698248287886044473517731250129098771005545057300205450010555313197287729389365936673335879724721298231771031895807530180633628875043819609409739577415230383082813686630578531590757479839765285661700905402527000054585063084052252077618272739060527319926224889772777507436786162092235349267056375710284495614486254595583821126005946920827115476358072284651360419239544976826462160444955348450625280802155738762498531190094565787730874270928826880284198504899755415389545584235161531131394352641861504202084382011740713573974729323010686680223888638198648109897781508742080773828306667231163719987804759180081278909215733681014577695535304985916675425715346870631642175769850416373132768164886364893153033990189724224015270819764232307092446517643742543211340023569850512953624622611633852580157963625560631600967946399164880125152003070751367473536873459418614371969720217251617729249824094199774304263457898208276888187001610559113507838138671209074259607006587860137835843745472012045898266976005961664496745746722711199489499551305667562961069702973852617859332327327513695416591473431456144060312102358568914761647938316114856393422720967831642953650160887061299633289622512775119362632078288659975462949272355794400585932102329500428842457646870723209353673247618678480990263657511480984292820038444536205645296590060422557774716860886642201861752612444156812762937860841384316548317845134967870998865606904677679378758183761439118948021526969348139857544194738677290027504097722946231980029966461616390656807230458079652683469602094866410880121727708037672946528592765951395825125987181197867455003428711538267837526121584373396778176853624391383569744187289983525723648471139769986316187448146111546391319998957952438643401566106518627278333734007951444960781510838341810911996116107468887233196388292216484549359077065824436288269739401399913832943186042921791078682912332050929290001008069555122074601057541297105471818228134714900512459684493145219262377871225542756649798735659451285023149939553854591460502513825244686992573441157141066588687008686649023139032388574231743033810114643921683416514764315573986595828320851381052954143046789709809179013281390853707586094749583324622107586877497847935127426320421395353969625098758079316503811811379608102059847725452499798105036611147470157215324635273193953997825925718019007527152083081227594025807363983605005381699249725508231399724714204450032023863466569545807570014466168641073405203475399221044628396028281897784134620522491270672691956453141336516527635990087031881037565848814603342607076860875233232846043096239401703405209975047577846761730595192291647617632657429901533074911686682798722064609155431609011496292411303522013342012762415705112251363520256820103253164962935814048505527563332708535665635006672386755838700845032100700149613117340228057216140721177304427412802656367962163552025139904222865693908627137628239222058347059109888760691437836947306192787795876772437605029321462127521404956784059849904861961909192931555196666450425900947588180407965956474014494457992481157676322360519426956293827832110546608258212795906709425870750295770907353257695919093532091136365858050488727481386751564547280396024132354109393005206599808939002629449652064903723610593688504018149294302335504859460110635890808018709645019816557011209984850237291772036601800775251494187936763507638806567872321105784248685523604508116459891898253922634359756689241265904869975091931269476933375214032159682560975907780340595703748347970326465306682147170960646479016706947065840517762636383037953580735102452345892314209110839648896947044761779438987404692691057243543998675719114841786713981665421740840339512000058899403527384095002555716219760378816953734986579131250821242750450779431277119121075030794494024446874827537560113219200727099287565626271996151704500533058094906529973158373628182603028448200952147156189183978932901175941723176847102089495280294443214205113110460601425600174282522776426618375860568156816467773476944898599657345704187451040894844571442033421152119997698167966118183267522461108177128002510171059037507283648947978787574291689645098299605069712850232677453625538041181428056376375908890825492754983220104426555359192488989073729879490331230303759989735013019072232180598324397830460935405950738736416913562744810117621546716190268154924131275018379357374928522134544265377477065042143202743110383881478981848448241181940936520938738978251831440145102177383075899208051386632608905680249867300475215541775728835317803084552573638752325724637396349268794251319150666775685303861168222233368947132899660089055468848597986837256980162008192880782162440697816164343328390272611728256035823716328509165871865639854333016773032373234698519901433380932298717811234634741040434080072702608512806495232067535507355278436954669390997426792149358544155037190324650286038016619913669919371869695826029577816931228223336485922820216190795989856175283925922969648842811968156532285834770432685264217185339821942680161411634199786296349237371620122141527590512205720684958227932374326087183785460255576782003315931687748064766220196573678252788745114918526215795836171163826028463419251009928699185987374588026840163259722382657068478127347229163728377206481680713395250431740094810797866468533188307715938681427199286483058728351006518014873220783907673264530602125504031171514664077034925128753869722672123187215787100793035719567909958881250046466588280906606189471543641972716369709930103483953710602637565857134257824352126042605051045466523403941286404827114268276007957498992667320335185384115155344371903775163093966761469324182704343691905739197112656884672784539092147166417230225148594382526456674445246930002202155951493032068895970786507340708073517690970064724324148063229746092452489919917406036271785298992365791174864029930789200117585936266868417087880360947565375307173943386917168338530065616849213689657843592416695144428360592529147820755871505016044910337664252877173184784736454689124632789409549463503967025538726351927781496250048030116870972737081010568586952833569698132486460433471860843807950853037086353228417675912630228765680076274971371038675959069532781363621917048042043847022846640521735604279904783586908202967058717653743382608790544778411410242929549775581060690460224885739558595574657507013829593647727453690470014611737895081379741865298916395378132694679740299656615286769441103276333185005171814034998541731472922167724403571371904984558929057852503148955917628225528941537382536540551232225136238339008858188849839087832291367687055683113599362433642126745999092717572986316117158826060820081445861254379589730947556066726220201141573777387623267135868878463837704272253576336806920585871413503441781044306669096408539667397499327251166430478412926519989178735261818970065009395694060487376232850562955820642531718723801686543840127157576480947797991464756766051756112612511316276005813396353639967684349385911939715317004617680404424985175999289726558053710711128153362526401536137052289510223728674319435621591135368882182380640803787803881500972071207216370149118654315995300555708471431408517015739239394529369271011363307917343694215966596587456205225066173788386928964453170745312562944172608755555363297541088178545225298996005170594358263683473851228810539879614736825167464755220200204961760864666577020410997892385535066405411732940371677320504011789789403924335643981847034888821164513235192829099908986559273436458916636611995288903040185361874878239447304093127134304462112921890437143130404638205468305557310013499905511381649806898305086756523956279972971600511140743913031387814457653650288766819270317018663348281952409305928637241031763038872389155769336540860191101120204224346897357866149061388883461065806582622779418244239775218580675433574532421450911725579889771965176927234209881736830052409439634753828953345443317378983947363060138316580299051490633900366420710056979788268342698790627113086156405954506173810622853517611164269198529181943841619040650085364853967653466380307584478251627735486931765085890473026592962571180816331381865933884618387861344479596410983211533628597183535332836389443696629774789362018072430364085922721818199907115615443582114895677986400644610093955926720202389757617570445771188575450838261648652695543153250039147631910815720818127733929589103738006621599824357829799304176185459094803688774811755211891041351086785112650557465153598439642746013522872264382158373561509446627939364592089716561218385024662582487283642010688627199450664313604029418568298477445302546559541804248707804667733964854570415609656387328627349791428369912072900891527112612084108530478588694270849845976094624271264187096315932680847695902634956743831267828968217588435362150167979118891611344297414861359676700128952896098945840599194232618039441204863413115046274574670374864737389880127082193184304247729774195770787095511245567275492287879321215554385738897138036250480840314816566446386949680584506040466403794436174961792353278730261667394064489436184365119135038177784267153770562505209951394136324193412216007569976276228992703356901508546897864393713369769622595586898036827907034706378454630591440275712670168678012438335515086487725818310995854961043482503293805673540106956057974907396982084888903284799171153447529055372533636454177860087257927575771314622433675417546947734817106875796067551553413330016591115310302038260228704435376791403588003012617903350600410886191052563774364237930276490226752386490570024852365595924644307193333401386395097748936613406647823722755550389475513080531390448393489857438409314437177203020263869663910561057810104022485507818670098910052823738445035534640416658043583039891367547971812362933802742650807141998867606165958474026679776149926375749545697428154682340511390863376503573006165756514354715190846904878038910209551002933592032028361675526045194599893105720562019955919028586080778139324968603516985941114386422350162380703502477868154940362640650031945670492658693728552354680931714664547369854169590757619422605654919383250229976434279345968323597096531993080431129704387081921092481351262144282247236903103895850398460395873304308311056527082657562964110039789623731712426146332512718213074923462149449411158733781109659946116953324681766228733937056347549043206038594109388975107293237044362691878651351080569012706737792622075917906257160886265294687866134991946349363234052029044347458487444168775373731389159802819914428926572448957903379748298533139247586591719859678304683330087603025968881555332510774425113909334974237302384983740532506606385136335389359048501458327528447991157068869756713135564589012075800450592427791529925301857889121317846499953388586000911490562109802261917077455674492196661111711287209758850293972712105071060921472093941174900354518461905984187416024398299922022281776551605497693016413562233501618057058585099165173120191841797377687199395684385314843776566787710982652410536768355114983934435471498273366808356274490000896773186092607552850522222961888074895692483231905190090589488011394521370257418179196187691597827511560463827784472214378867073872667718363579427557015830872897827337549989081776538692648522656487273252363233427339231057709761697216749994412953408277330264186972212146049310563153880090204378871913176933896201521325942480481866762932184154091620674353602324932884410094817542498939975103257960004499602731107228819521063106553906526859841939087235015754195372029613974990092995338774718456812939819282901859224404393930546834198357372449205165919563155145073517977925191719803512125432957596847624252528991767637651458015378003564920079331050645345351194754836506303787768509463106822466241188018640146673132401355913426855937478817264259040664293648879968939296237007767385476537987289652492978394362175328135244121262482041338708676783937640642374229319883984019183851275786286310059564666990516436160508156473612448810884151045158383850915224823598802890588235921891725707751618833233867304148347307580119175834284558942475500413144773862914095503276638943107817839807153787244384396868214187832453714978398485051139882189288571634699107911167865673277483538510169506404867503952411525042988191104885161044534114571338043411717790434429354194140918277704808277351587963101809962275202947935301283598331878373393780313917268687127277993820453196764566628163680875872269611641959245017958523203809027778648093299946194878521370080063402901282541819326678090270131871132011611220187018477839611207623092344362824398589725508309900362541412321507870765712155383559312870033111273214763615877500978934883236904267864062269022383890056903937463947715878748856377299571992781909171848987815638381809374590152410501886764652316720674894347311758714078292739498765442457088539892392030599841423733397294193021382522845730715532046901495065865901908988636399750992874082227783159172999015281686759797491426604067698813939434968456475639877774445714032117591687997221785781000794371157667449296627901560862089735866068334361005637307707980113466877761285354198582694291419911797338187173166602085163002017157247875931053384348602824892492874510396356402909999688526228930435913435674672996313614171997507025289045012515048636959150254900411537675548153135333476848978926847654667658808542962542091316978694182689065672173545045769376330834567533340909283646265645587103744891386009708047925972119532517802043215740271247714360340494089057907305253411407234667183122559727490142044869158493542235379416153770598478279689323030026181100929088527124518510813928924865049857896016011591242621366230488985430438744402999989975849215283612840607664695309905020639735670164517821906791257504682228693467603013634359626688401887572381846618733624125660706936344826429207029520389637422262453381248003447710221239227470154797490318074222164488652534864257663536239919773193697544231672741949667506224214096562021682780060811509138734492927634006357306034638403753298956790904418635316484974275682593498405670913623583739276072554775982347187247953636879015968788884460427669445489383102251446090165869586078688780698791317484706545454596870274468318242710388140984646651492247065285783834124165945369839918590023283931347866177616728553915376510140398175601920979139689743771707158088949255380287393898992820472418376536304156604493915081695347942980397280556318536089763971579377852583260747644164795092466998500847646732755304025669684759208051729020930665104626503138561375531250968004057911138264424372239793819784950092977218321547136878038096308585820837515694201385122929177747473443870145543894268557360749669212508883687896849026367398399775519197255344525868216549641762712031882692725228555228925305419754457549556801001985751598117080784629276762717558801219900402735282520460730554220189034224538255395983216258048928390735192081528677520180071415363986298782314772505686167226780089320423725697989216395913076064320154450020543446753386759667540150921845664633996282262733252121013779074995963117549517147059869221562684083847599862892692496256419885555324077641919753165655306957654814086883396307796085648266161986087739056815158073327678262686726706732084887633498799383255143807133238137342789160387037683964657934312618729814881006741533728913682304153173673512363299303857815649782573802046413561295144293986246366332582529665606100192156117525667359244444726354095384669131986679974207563410735748714581337089775381712176932533991838270887460086148947531997557134973829587629062690827754398794351490514071717741279782231368112820398579786721000104207695258366777514327467856923146035765161927736844392118769288486270055439879192745959883219883747705448885363752574596508755342744560648157866407596476341233330439553661734004411369847971864394590401262683045194891880111560579422912882683086831807183754258909001538193098769717839051994729841287898327409645218980284327658378790618700970516995864988036485482138976083873376417231622861755969539843434983892282809215616237531935524891537229130796934095579727635982232819769908802028310887482036050858894214665938528873527642940480242486197738315836036425223941977577196535045797198097915243566809166130247952932490549197896081603515173583912588816265822755972846677347164966760149643889574288596146942313846860743355832065412607064537099030581137463835650353240271941454380326470603080478292434776098770254182092198041451631316619017932276892190875421493282480860674297035319717899930355330010361912357658186717497852161008138405230550877851731507143536924996473718863238772988567865675631951025012292946554354430483029747317392886776887800356353739774687719787839819799652480689815869906314993016683167346582550800492471346296100933264574406414798413347473447627150737254618365320040736365484479620649481336576269287842138353929109774747961093276951313614629071961628584490539525386657543399073414617809584285904408980785088658242738304193217241643541378112069831207357956746110109088552130406947838613108456627366600909407951043538274927745152382557850087119523766707194702219407218437599371832987015567758209640324277279411955255160724646110796265876226211042751731896327944004566299683628301939601206000662236893419759799624328989160906503938373214755872870810619535057278925422194668795826744927175617681334845032624900618970661879238225297365399964451339899633387389064958806532139805270868906087289170313940900796735007107823433614162763215955096606460127433343492432493020414903335435836589178860343925614638533543429642025713270328437424106904849577421013252424749595567766661528806458976347390392249223466747773845770387966981645945805274676995418041728206344548454840308213483301375818756751031547083246213039064016427294558314986994054613711825774148349296260524262778898572842732130104421293242090790132818870686410262865168677175046196363050154059287212942042836754921127918472146643338583832864008357419173078704100653972052803145567195614309819473838271773837094116049019804933950000481093346440171883839397144325936234742015066552686737527176148077196329504125011003614726272140601726593743381828180969496798203325638996579232930013932041064500200719797214597183222620667138074660690149449770591270043076683228547282946730248974511653374450977541793065017839995923701209097681076701848102641159218617690359925066783677549237070603634098516042850682233310084006986941938056567584808685335734038892471196407046549380787230205436597195654738144543387957690873910551650050858574606092657910081188146723600578547552389350077621566797524233588368858778673367039860392704479413615152298398165234137867513159474748657587673669996313852902473083556243767920772810223515817249046632677111318666329525061223209401169069035079982648338430413532696166285011222409422334478610952550232683359252395980691309319259065280333425252822972644776122507093450379592655444170601253321594701952630341395224467289969836476054721733332457461236303406683871214698789606428555107569102461971970219563748020469326745111766798907640726424684712277524526655812022445114749755347185295837224634070569883918802089967460250090041736882076035690420335484182324531955920614994146412973605206823634931425197766769520147821455056562289023162674684941068276355083436791815195714895456325953650831484721822867156370502299742920520191868187313935913498054267428193266701990234518012116837759120756836734939019940039284964917769709983483991678796626284939970063694243572996173272389931684717252597785676538697146274430957483006746782875138922524264364014758217113534532478592902187571855306825090753238971856084938845443824469112448978861384025433383618263063134470125058624627915171012906076689313813586596693723397471465592988528593360298197293912841129262307093089725829019976691990345763504346443672053534174278123704729500162448716360979730804669082948108874053899699437536812774713578985910583714695972038317697195112037761982799009843946307308687499504134085341944005408523526896399187633286258777613409231899545658451744040322364185992427231051150760403149856112928818991228463741143449601917802910101061806048083049459959350387833576650439940555904740093711106135354349147285989519886656718912184682386315896206989366275018662546888181089693155351063543310525666599519664999670467212004258451883374665048537685218482548429123594399227248763844204594514509887655868241467502572993594404967296707354949922680739110120427569279669702461903597219025110619882170333089475478953264068921111491301947792411483556065736877265023697559335159668724651640401770926858574846568783161729106441991004654376123546271298301283928969921010603804960734921341135522496607988725100440213718630011274881907232298004149924959047262768114805485543369572515582869036624037823526722938999317515086514886764319914041234748387468136047851911199077016043980753831401727314446466605445120607579607034196848160201082151962524181730837137085357136063782116182720640855015634930487993887367242721618937992268036167883734493964240478154761582491203128679585098267552701591415682212988773318770265736988849864980901950352143684526047933738225879548349848988568298681503610880188221391123511396586107441136177000998018468170941765710206307143834242251642682725134232543717786739274564435349687564492477808172199747174431620206679673197666922150154663661339521004130928128848936130344927446807561749263115611357701964059135436404212659965705113878019497059740956127467655067690164549267844225125566435266495210144953872546077025675092382363979108444198703336201491736024229050820192884341819382641900935583467311068671913350188839126535643820136874649265190075974929922603822993972943027825035449803622899397125788217481817946577666164400772427590575112719689147956840270371050468198632864621341554616117287903986282551823947993164757089796183556100812127485463559776585425410114557956541165935454361537502067443624020504256450698924445251925658720183799884713867965092507636278336663352536907922673781592376920327900624968386167660671403294781749927069697135191129756236047643708073213198648531963013616804432549300523418363254081667664624829546284592970640294136183445814059261756096798623837056247212053787437418570700428424953185315206573583922006157821882107082074437774949818146598220304532474670811281819450402867524091682309290406823935146020774292893981216955134625434035401316509150238609482247015043797926991159611587891636181090429250561522044085121448492696900756585091814174089191151083426639376042051737646612424610365011041511260206010216016310559502079118209109228214252363883850602130987129947408506574203641480400986361677129440981386972252557357575586607266413467219919449940799793950455239070153961602534284051826099099688537454885400874755752228925782586469874096922413574268168806570605241276789086883665313019058436958568117843815831694813595530994752785834136613872917242649875997692720984469019049096799951594471609482039123780147837322337321782875293776246944479239521514234381867666850073229160654632910427105479233514050819491785635180291104681867937224049019035056545161913371298220503726373898325146844114553358950479895620020861997544677193778247628367153238141229833136077379890068728680092478105130862211109831173900369490972229394397500224918492245677878416582706877276382957226078425865710505498950496621244805253182280694839567242499829063382783056626081743530713602803821280604826605005571506403853532073529163040497467783928779232601908753694247000296970611037303329558392174416210791491599030794969073090569870592961586037312177890821474400308258168507770957588797007700337454239687961659791915308399151632541977252284330114404161751865936342716745620834371119995903561766023259734429334271986391163665324215650593727632326486243155618428242856428616849159465029219409687904428168033862988173334026901263946848411485043522321572947084317067514754507268609575955538072945412271496038867298000960222512817364181187478066031121249428584385082625759080683664670549407508914141280102939901535640463105324296686936294356496094453845206293042649590275206491625423980216659746377870146260101444331462576545863485573485446415217898124587036453959041623992792015281588601229116021374995656376574543957139373082709380686191258265327010808944484918945393270206113508914560266120910494274057910907180985848670197012732545946298254659033240522102141344089559606607824094407225233788114173650835847068982699951093679869980627141082530774585596310727418054489147870643491298110037976096104441177322156732330779389124410659288658350833993528060526608334132811774522400499124803246721720556261253814436416902060624214298668727561473993362328273594377171364933635673527443151882991313001026470385494652023875074023883478937070832670427606569798708836460718981426403756525786532556800224993634457825376407035379196820208712925390596558318017241841431080747737760636873736985552762643152633945594191233724765759777769899610426413102280003800847880386017165058664805661614962948355440316965750383130471971403348722023072604375355833412388620205537322022155352449160704294774513679503273926100310451515709465346684579898963195624946918619872375190721843506264537525187345698357069800781765608080508966712168976336369046408833092632158685130936401888544963220186219211744792398820931363712238961468267223451676520236852339327176242100443459393294348710128975746304413204086072425454737501560000896531030793816868162241714224047068185006327863113611414330331345635297958233696730777641624279219350271871101445525221621832144949329178772648848037101222694483236750811096467486859239569033277743347048540623548481430195205765032868230287265372132742978182865014108173004996451587069580720616435027371324152525831839080356178082561804644070442672550442430842158773498963896738479128956895872166451243318012842380212322143101584122802040034672003242422879349781523065162591247440003678798494310388874459658948375117535948674733771733687806531631563429701545303996590479523162869346086784183328016931216379237731840500948577443990412383525212537609429380337145893799943099564516925700980951808756601637555454228975892923139757128972021370194818432092420499838789289503860852081553293653041016380499567796483512983193937979107523858498578474716242691298072679544930303047792575624307214471826583961188111223017780566023971221105028819673713624354171245393374106214376395640846117961219044918135639262160205299612147646506284581183724864223209475831135940952166278693859732047543888539612695351952092370368233395347407031668193060831405649285733881850315128341831889711519998285555489079159433169313952824153366656360247672425701109173475370341574204241214558433579252748009641906041510828629039153684281991396501260962151094349573638685346190111090816415983652084493594035063230783081012472558848327921805529434861263454736192406880291566667446721610965495786141739530325351055161932762312130407780232763226579450709857367721170882865144327697762764269353787885874717345909587073244296071795040671907496193019523845912700199866105871392916729027242224401558837492772479998558138798071152669160123164331076440673803165417264084552463457793194322428650125437139706272399894724005329191282184002064636494339738471273164253296121350200334456238040902516419217795200598302822413017712129956057575484535646614368220663370322230581593140030383786615513328280519657567507822789120441071194004784012643002985540404146892476260778865777712496196475071076002329735700266137997301507187593888904123103511535656403047442965674472062160411946050109581566274452183148332846633339716929265283755951951403026770694990588224156619244271409331577321077339482726276044013504805626319108545514444040311314004207329649648879697989941872287087698055224881186944402713266075869764870910695509692423469190723901584209124310712553566296237233709528002986250503494631475563338827019064874760938932697992349420424206355821708895838583207922043544738725990219570611424651193818489887972922188461731124557283290580137164394029790740703296310818343792245554991424001708297084379852864000217488449620416636201270320702645823641390757427784280699994722490767115328058201122813075754138599741511779901367476420711351398831647417518680768776327315278633030300130289451237872965139941297106791831803122892354143901473402584885694065277500934454898766100301786494647634855078681942858235757692281431767207452163527044085916180821226983614925568073560619829839427918901849434050525190566145565552107295130192385674020136585028275803078462428745771840042725547090283732739577882420119075881064761965866735687794971584856257072711145639371342427531549944258038331298044200935115882597098629316630797493657974222709097934924755978124603459519935930577458243771443245662094028177180913577418393988234767679517783156305990057586684454290779436089920492889454797556517657782923075373731243827302476901755200114919523967866452733619414041022480880645081266885476591173688222663764526992217491995828613956353558120870548658419081294398770738210774333165989729710667069329032170912573239111391608568674945085571334410409834208689989531786762677562556321482509770684646281355459761461429925987014119849230637459491138938311108010364160530102923583671849017261353076562480770539333039559023784898820385283446345059885521258535644690066654990781317912633433447512808649156753068288001452408865234999826684575774509112444245615217986868847145666138094961459768556141219406976867780545200684037318111731615444156195225835157204337049690412340985641092338108954907894298377686453641432143457676322306347861196250695933443750750046621197166878745635329332476609713356032312592922017817127077325927813873009224153246958963109415957922382833262350370285666340769903402221260020740637987168617047415436176366971778892917546599301895754142004470975326438503594285391423723933608708248914270099021459593025752639165708602372004303691859405828120617303027907292584068333424490899260369837246312974112112274215979026407621050030607445176314787836720891590645007952720175559657145967361227215135647398383102578673318495724966739197173931995963825231290444398031769663629523506713204807932814309610834925226811006855476173316921014614378217418885143808443304473109987781766243492503728271492061277177427639780365342842349263536745545309129922297222824790469499444652804322495629584579681678606426504442996480842537135214714052265586651091850754951866920615033568970646183558442252473871728110768320579744194050347979636512360114684261694542059732714381048323903318086934823327127324658972282888246537255898516534055062538062803984765684694185634852816614601158957043012094836301493569095458719009380938147949558274358973879929984583549108387967006357141932203482832957110502766400538675130693032625884880314008624072371681782660749438090866047012585125097049624403838620457818167067616993877218319627009483991097491331892245958297076603769522531273453763480929080342666014142589061603428477641254422560891830347537751722180152142668712175955448404858283109034362134827837526791607469499270640881108276382099946228445805502377891875773185241642436076990427059734876822354642137736815124580155562260157096551537008138046158242863260223225861343546427274003276960873479888317471086801819173298246473974061449954403800019717509899596954525957095114872556917563537667511416553032751871096086775116173020701441671660313805466141904912631561865062823590275448316471209177782923588978654303193995868089263160144074187383995883719014267692039489671502485634963582984743015748000944319567028651528245297188016933813654370092013825235452760538140300578311556068208611347271715644765033070720611356561697312961337907854772451191158336584906521199193105872802997883340064276728819042796959295790915863504021405266626274427123205696121055496529423147354436193775548248776015977635839521482725627346822627406512883136654311272803785097533522173839788603131040569026601697418397973012729690532568938066469605503230148575859881989521008067672541283314036156679496785168750467989516257413779582386528797048650699575073457271128324617406821201159737131753838684616129120542006622877444479966269667709551479401473015106502435789074753551268564973520160412230332462866377067295843122421306908316287180423997648047417125727004141583526174125259892727339632064780069508558682510374068784608108736930223002867777780017064676849784203111554306287407578857979149621346780460169613450845838656825940894809174047356689628668811898346448846530174385878095509659500935235043875164350940632434099454416459156087687421683558113841820246607700740099532970363220881800624874509928878745724293248059875781135762160726293135242797310716744769613062580554737506561769323005633596368244210364057292070430807541927836915023187729278676831050269194941915945189151620870260738696706984873478186398976479727158961329559110880174030300184483085320432524882992159280290963213923841123172339289389922363588381752879446123640355868726707562922148847846616949638979129731676170256361921515595727332970531524794897569277780631143501655011768039299563902531371699478418304053012105494760722423214558868317093272327073359152417102702175107440881007872442593145300387486045604178223612569368798328839512042192033124816239229853314070067974968545115846874692200753077977836528194162160082941206197522275430497752174452604126065735493274595222763376319331487451926535133145837757328638505429472320023207163618903076889835472550340277339568608730968608485864748101865557914317130809285761643320746092126538030099776769835566212935830292871255835984632748038775771229945802742249754266055443605959711556439175937549747094342834366553137815235748883138086447819333825787086262512235086003567766677672813981965149758362108202497393405543347952395685498941520776178373998556159256342378789312783209396009104618685834456465812939908365297484201750576482659724627286548429860444078440705218388281547279805072641932137623712071760891262373044119907060546288359758085637293040001311906414113048801967856965461813075765427216052257548754542014608916721935738314338100898189799247437832516448621442462419162711283960544504960549154810027920433815290345505641928759262897329434916829954143759353271659155172892357035373602149186641131884736327720959594819970634817894099662822206247577103913794118494640908720384289872718850962390294203949348686273861698797482173626051461512801954319894571160439859848103659904253297168820076191796748046171510599019422352316683909215493942348650457680819641563580930206268575128359615757362500357895690626191834785933294386508725577917420083377187683553831616820694130347162221455758789126890961481448475384506778016315698079135510951092104406100333413239781879834257585401826012660665603945841562573122420378107743855068904863945864242139360239049443487105864430502089895985099657554442314864776348274875115705581444247554094080742040456305880992285895543682833363048434890608794637390064151975055479061500195318547117878264190234197898155836061293668768617399401704771263207823910573539051912320143639168308888540007525798609364801957878847777495815082676971630204525330348387112535358514831596695511081666694727812464793510873235857695821808387273235256586640884638543665179545713735924613376955035598431746856593189464358829610319143769081677247320317699669704897147044506796039077428214248254113835092622240287097348919765507669238796055335028270753165601544389144257751169451188995307518832678967684316420672781073296059094352128686168999244870399804029278603862936663612272373253797962820537358639894050586037947196616416669226133804250068882057513323624823422918400953150702950195509994265333703932064474481562829145630394549892560134726690141683430360934934010593668440144413589831915613742742522609964912507870297017985388104488862253194781427071265464079016964200924853243649971459376964405727261658583884178457909789113751496249075266303502456159649023583524156070629505362865165550508252856242310634688193138205223182889115668103554939240782707624986278812535228411290997664368899497748935098886288086006577899064562594245613489700962426265660363225556759700792777979011590467187884345956119342380217402571357451634289338520571989914817826770900353325600546912682120220093846573474036889527776522128004280219597495477016908227743169294879724593408092456420839404252720447457823162123089145629981682326198031408166864475233895352888931856347364257200901204654676291243489756934025041717435192656295947233555122419882007042056729971010533894796300007615428999541600453535319185520308600813820193861732842972282797947864993070675173004103998060903869511217083947671745430085183540921979141853013764266244307682842113682456697300838213495287374972472815099439403669120822750736732825444187979290791856414895616781144146949398898063133631874531050500171418491360989761697475380850651556517601530523140809008727318587716765364535926176037298709118886708537959401273290200966189320740666020990467725982720324149246344295111085556199924738871772205557174745167221865399118000955677070232475267303673228274465667356227453531801676118140621150414224563196960831568988037166424804856493206509469793722197362569641167891132206576180760841352172975074933479740828756996250826534880372511422068273210756643413781318700492610061795763505997450900645154008538327105240236419695305427820278748399728563632699573333433989704362332926643333287256176828265678192273084602942973417794841588445167627129976312971905379243464966571612573207338381413456362666594241648991119795617647053733770340466138530063602646082161964293202908887506156743793539930074163679418375026218032334617682142872916232892374074640651362189700069113959280714211510546514621674502444014567403872362529818110520788777055509000956529700880121286697616184262977115902083191465929724168077881956241105094307233682571734807508749450744434684703879397934260059041717749678222227228027253632615857111646452377479899116748762360381552680506258306255387167906084799465315070665157602547499347210530182143085832825890125007487488094453042063687036689628616392871336145049969014362991046920787161707207824640078093726157119352007150640422628827421469892076060077101976119712760567776212081066991523945485604476117223708711503878739821487977388575208727392128598471151679365043069726864703020534337334428967158006715751965095948780397282129655839418790636751386724205868449328933297257013458876067551077319679129510997284320278054643541608954631360523465773710263672006210811311138738646902781626335058991250270613921761821259336009285225306727337972762733318199785902762271012296456783102602031283697217077152463741556331113139369017529098832610698629142049893253026770618082448864230419258440383068107981602137160040747694635928233072399271693339264004204472921070925446583830454725672837667785107430314692163084746311402016772056073058470606947572353985894265173204399942410303771924814943115610945903544605549941809128711527112685057841741642714907001742432546285444663503432440982517773624661968390342873345685055500326890576996510958707341689522648913551503981780183381823013317357504200680952073529253793001553581928890874105881451426582161309038129597179313811265592933265760397973456624123897445306419218702697492521899266725975943922448957902728127297478064012296197171105232810741384315799305684159860360506260043702188874583905314724072518809798876822765697593167845557757611159875037870954628730731897030027928275298752131035328220947888711008590382470702353548429309592747091052187023340429167931977027078928589097428924514898639878959603212608355619242739305912550099837717381476383279622994857717144656109674681932811576089121668469839672693549010406243124596137994916402119412668888915785931693473939541333919335595364821393707497725639711285528361799901425911369961232956344379198408818697699477197457392588550262661986290965307988146936617604018624300436717633163808048964274930158356315888517532247752926965542018939032911512417538134385392868545051882589037757294318667103617367204307364277270366227585844039548286919793005964445959840034906474306721607015222742088220101952669275568862711516697094060801943548130377001133558474149064166231635218987698155217523529964436835507078218677623112905418863002192560537214367315356576623003732591323828628578543668099110961959446626685097839216568088282798861217435988072667833405644342893259009041538953112612970572954376667444767569892519223317487000871221533426442324367878506271966740836939390063627333902889743153374699156492586759322046429944962541608581537824986643334432975864542073232960533247086873212814884158874849280412351717382333688849695532350287716408201652843717254639351542210287711353272264928173228139172557426631436007585923745335660088796782843680280088305468448713341397118140470346924822461865113852809781639932046052160783838425641907801823135629435696989636288142176926279892220031492146423745767831681204351760722666108467665107225634680557681691632327498179141161685523832531151038854720486114416014192192825836246923640624131985624354550103583288541650818865198770020552527242133395873846821422937469985966470059455557345157466737188253370234101589772167324682348932824192204345318712577847801101824497368315412782284921697712710748177968979247180269078041117080203131142622572233384079614707931572867251655014614378989481306314219887399108804209239163871464129745925055472347734484067172692143225262465694853669800164150483398965505916675778247282810053349386218591631460462110248056600348568704693092686824790648673010164704640481977047169011210506496160985398388269466674987557266655926224236301741938516553566123678313911091267341181968844198868391753379384114191569871676844082897627372216421830114116168420565262919432239884629888269547900387734540747929777012067654234433360753280691281748977606007639392902766316596695024530112582362882487467666236314915750697582463931395832068956556679577378043371377306198926934853438483346968649624543177171107758681009913418703739966763958522725715598814711487514664100788730862911784114979939784825916574535297822070506123461592534184337876457820511612071744454588857424653270723441380013400006404648193016548940233713838835863249548651514072334265578303687213324720644713586305834768512298606170177862723216745947156146094552507716873684695695014654995970759186195820266739211716198427438900615374424592828376321567363652795929856207413056523346014004029969281618699433492558093181784010866164124477991287799103766858749010714537085275215440161508343076675097002935885494676490500488510600692804677390288092384934969036159939308051103903477103156002951930328155261990184595802898970667521216377319898953086367880572281938251652380197971137023073763243126561129003953002204986029377160854639792807297624666601504843788726143459665922628885036565924377042229385933809078289328324466989284655595224817902993440843036103544429146190047643952603457290724568486252299035804832195062265213067349694903579000086607783861068854021634656026922048829598028496032201281587472748285116440845961069552352621813926576295061581891376269448581894832802851787534255524471322130407722788342950749435439290588853908924928935472485852920213149483003548549403013113895080698569815687684915047304635059556466996063571370264271348668675841462159078079487900611606208251020124042084465881988540723323409674017600377955685628698562806216412667460255230389720481824115652528817618204724020123314913689978711077416961791226922410430833099071624221959558233249937233204180228729340995558735816030307518898970675016111332906128020191424055315355651052879310897279527121115733387107077414425160923333069675217913277744040744142102758191366730610586325940481677759622155418990005557056673152389945344385772730952127220479949623838770978178465614653507625774531976185207280762760186146524748482089650950644409964583895238623225571547867406105252122645631631976226235046589202630416272857325588429416974571837758453293864046558209278926932742851539800924200127057366407259363755417912166955355032155668592961835312206269994041890099612181813887339478458837703739481511063350730123312585552150642528011601323311299053406143261036668772457074580228153126129174853519892565158043161152047963520665116092664190858033183868315193514061591257889625367593745212502286502688205135427655429964564489206808458632716773378079985991270284531430741269695778954629490331819459949809207596016513126291623410692824474124854432496469627957084659770029266271252303577167299969982573808914695325930158545772268968281321059456140235090600246128214571657921041026173113740036113991055809978912179908469793665099892902983784389058688921296471851806692855488849970558825936141188491475953842879202663524497182658065335575169401220826366243174261964395929605663128517277178380183843588011523894674497535546347667433006722494518348306124643668955856457338701171358030319207171991619572229131812646620572532160643919751417815035479793962509325071365372234903840808904751032845874954952312800221706566049323045866993201846648532577178134469136874068120056787699625245128003724333537811920346307867588963042172747374150530920871510240089485965187620919645358765974395395998095092854370928609792324394557808125885257937997356115490094082424227993881569167342563745192113478697847171887070025729077885063737510173204435027503906632573617139270782996920347166707146923699111126480467417633254514226965507943094920592616397796812918965720055676066088288584243001264859783619199857984483860685708222686938381976423346258922668216315179467955266600914989990701576646775846570982399409781540133818760308315546258279257979877669994986277185655785755947022473847250666089854535715723607397338832210891577966595175629018460909657621968436961367235742062727535152080452027844376053342383590671700059636666733247849022107140165525108840471277452603196966328428950623697657062537237476570691315717072541650903052374401686789023698275902846779380746922054585333092214505885963932805725277225890864919280806589225954912762454993292528118579821381616764946430309201954695131185862219441310388269313227280984142240331682607733095436415449565843330442145852665760872611525674254844026314632257110523180073631807908068007876268406417801191296731601496199314239910318123125239864838428255380554069107741403583020969794245132232488128544459315454809194760179440522620836780418331809756363232968094052075555002722903473002466553663815970184989318427956414631265318888001592414620964559640066538487647585743069430838006741878177033376342836282301577266893067419839133720127204289054344731895722772301225721989201719440098229880095762560661571402819456365443925389834925052669504455681981926918223022927566371025832801460523408967714704158697932579303180635957727702507921460249134839198379946409876988229482534819122865443627218983525715726855201852167909653938120110311035209217770864230665159018434057300528540003215716561916196951720073898440112920761467478030538791773434716199601986838652318521331593786313213329160040873495979255521016211274179573586101783508691118494657906111369781247606139149567139235933410155153647950319835055801533852223441799381353770704289277456496793488088899358119517313919580321382728420790041682443742285273651958118064871510005659957120440811676522031350206031212403239359443057626248560774423956963477323138315904491133392547379366571749490546413353562719963717402554676976503900477452953814507771100632899224978872449117157301366112359206184968067751152081371952744590340999831299930333903783148033655961071975769047634115870194243345286737864246002122359416976817775512063216837842123275794407530627128342160315444394483557931292495448177596446271979759727254437032864825440980649137004964454220043563513004085360746638377031728287306802778146217829101178785267687199941997775042653814397591965514252603483442073374490909311669984265951386102515166801222575038366719731825826594933372550783712290975731494070229800461139978910656986503336019173487063675101829689997254814887970234781961164820013908174425188100917132427697948480739690467789142474341427268795799118974193823545251556063328458685590475735679602761401309872175219058568421899525302438718390944090761715202543786326836705414167715635564761607578314681910605478365944993849010796668370208626723864717643642977063089336136644574844275429326913693913792230673763876921397563076822557020689388741332258045604517600374856031068746311820172806851811872418331820237562491686535323018811141874216716803399138812086344417620330008092615103049351163292430588088042780896946774728972814972867851862080435162356614667750720726482653706881298522071050664100450480546970217246369458308649307265124212038405037114027152725287810051390594145161195181808599946156688527920922223398520643647386702406324570204404303218174690381730978383349562826239390127263163122651941677490614447307054306214977225947072750649475350905417428670028084559422398099516721533117424691410214930943866600961704344681799341487614491319158046824522232249865119227922000257948517962367279649972743831624652936532522060040255081481458011883121134345565292435247385765836526020226575142252493931032949785420946099341824170686884198707468223396780494404077406886820223889663426897372610909619601678590739426165500600457257540776321209416612072286966103452576246901537497697734974397869234916639843359318114401683872262784313975215823277027986167662335283969598786813084999112616301482489575880526853865631553103490427292405749818549421877600558738550205336443836261869968485407383141399810629473469255883454130565106231455661930110961161002135365495388424303471376223231496708719075903196680802078819261682674670898949218727098455867660709968104784136550019812199352965717672311937176346617866326824955505197680431208705848779112872378519953698364315074179258268558363019360080869615463109048558754738357199489614061611653221539763583217566326866904408731523654212862065486276018225450260789734556452973268791242607757676348565942762415045484406182723144690029782388185773223914291931688857316126595558942981083149777948334891406324901074343182389313518080280470352349447546760176342664377771701179772002028940152562389308528596081083518892943295056663414428191878770144895654669139148096983328365700318045763177166343043255011991817218544835115017770831603327050383023281683483901567997842899479353144311196918980267081292312104364543551981028901390447742904235044048366933261540757836353510655263723221446456418750690183506656108622384710497942271608098051566007394404278333825554831345045946155039877022238250604420662210811628065030314931868176794380705481730580173091783372912528769391199271699961379213208658421728381666805169150514232247661782721062160157261629406937777055268441888809106866523124088493397065262392300687664330840153844515693162357862250943506164103075406420491683576513177274740996260650904834118899104177876080571368376882548794770777255615748282979781169245108786102790983057833275762367815573736798738200854745634467211971619476377580419397401099998229131385853913281351786592600914549075925925530869443605401125567725383022779801052164194207169062657985195531721087333511960583386158312253684672772265294513660114651042548995277158345980970042952151292294393535373597699824395759213760020709918567553442265099981910458483609113081339147264303301150421066241751791306927689844852175585695600639322978718791930581573365075183125186618758001236511927163523196113426948674060329571796498700694725013198583393337434023588447395473644745163724774571356470731625997792238452018335237663564785160243544694047856254156177116676502793008564250970175464918950103129161163408255423456760134200692734420090026307130464100511860592855490654303416500363055608446858335924747733391690222208542239018253801412545262286659390472567195982828177199189609644503662248969469397521653029430779639282983221473930628705330655436551569145000778090275034385443609369142495568545335779945236681625154649225692815602665295091267611854328237674970520593948721880289686115883320176198077169424192528859829876403303846179042781643873061433478200927977235237212697313140237662979884028047828954401743003674280184035577432339728190100922479187712826047078531543157143137095851385104000346163825541846009705140654770583776067570058905075074367679592042127469234668166842554249919158567167929055400023966660765657942388186713185336160235416998160812774706960291315257568657701114631428410996086242143608081353270301598444290667360196305695319672441437287262830292271719558643701769284507336652928650816657743501366664043739897937047210691759246981767885576072577585454643351204603956284094148521962073759038697196935878821000948946497259716518648652784743635156520904120157516589942079332745328088579305165999833811654027094895506546729136935352867216190641995409987082897556764454899118381960549054284994867565963605788907064026919808501648423954234185361504718063332172684818373332659683779435805533739521224080012343681004648553993955238960101771065043105474517641362688470559385754654917234181486714762740508216629917369038516953677139552703301088265415835347273302212252281397793064279184326603257048804216643067881147061615131647743132926249198880017157148274122570133204481236332272766036651506529168290699627845320243139609857435560794562874435975112732423715747755880304800207748631096282162336025359354144097106771615777282395538645980847019944694174734801230759692022763427857746243701222253540776964280579108864337835267843270762604048155244724948456730508479610782304997994256194970457510375407776752043631171123973552574774324102498174610645272994566133283866025542186530220340899211806374004424547254782827755225748591364561909805901827617032677941359472339693311638217334152022932475190159649228347466818196499965827640412931021078565526095717410263898354409690917390061555249704061469948831466867657382350378041722156358597019578886361690608939961392231407226768904597009637186481333458777483323795647574392065348046453910193779579549563862024455765676829884101089708027137795851066807804755156169177946056356721112883761907563244356694839565680033978816768494459675811624176868676421758072146504097372158676086898761341218530548331164217027277377034056674162687114600030018862500038645433417191308047669001023497550089902387437366815860567466409303315497904873779517952872330712636551668444054514618253503257839147708299584694718320948378742883730343409484114931094590506164005188013072901175369719268617249916210623758433394693246505605310378900982691452131063067761518635238407030683159672034798088684074813859169137083249882897776330862624872728847832484371095841649766699881251321107883543625570380332599439625262255396716902434854315453124972018897880906898582206646320805051880861004340900884562159683766699974939297390602998541328159348998509662328354440533052011465949527133581524752410274435552868374246544496764084565751812550214159360029306307128638483679890933139222575722675554807331964251107616715476124018806666144486645804588226590857881121503113277591037925531639039683128590689304865483214449149039833031370424864493050135896398115844683133509350092301418128342060744255525073936725532869926453601589718415900057752517992392919003494690300432980007641374190025572622747932805474424450957748866286861411824090837212868096977480297054195485573655779030332154098665075559345797717438702313474756569255072103902850033804568306123326974807186926795870640889573943118512014529821357944466967074798605637292831779503104912562763300414084729099071192477541035760807827461104710329711331341940755310051049603094873327536913490876875548195715533748893766657539612804652500673553795495208901200673499249312187747017452353226674170187128901948192523496606357063684054202904703402764146890983239243098591164444407314270352424054254933169431806111625518378751345712566957478458730480507831664278825316173069654214295991263414456754363285729178532419127119396564923270735439547424210767285628324779479421905616005099413722337691974156907149235051136761529655116227301167619813576637865093079165162687976929736683863970396942420184438765180498650088858314205512000156802616946347624073152554247781920257884464855484830798199308679353646533188577280321693205414591920592180908066797053344349580081435285588353216273626423498334700368689744680153812710941331845553137825678220487023848461510333531563099515686975873952808370776171399423502335221326235622159598159458469723577093619804343474251007910749863143037866556995323813995607799694934069368029824273298642433632115557323268620096799249339319527940732143122980418397419281015730581628933816448420647125133302841070843308890211334455413901104099800229395852819922284160355483903857653356397978325440419486699092444887242831251887485845581007046481816386187593029963976027125980373127165603632825168456683101246770366211354681319089894662736554551333293311286581412201236092849222077760812331625755597888442131260622547851247927546278442663836299987240429991056472658974615304964347733562029031527602396215499684131213419939878862097541975666700443108279789944280620898509273056119311276370770517122798392582750296326668611667558302307029073057098904938880873511255590550191008866931746756884008563474436977095850786092908600647259662142617785123644115259860972585073770007139463974066462397592430212005496949978716679782071346237284385032318745307624879993594780386134640981161429985165692827473673908414174846297257508532350525301067620676506967923909963533737204645373549284084718448210093499055585730903745015122042388588319630632123792770710743978820683113811917562111916826513980196108453372317803894364855647828224556915693995004206691639027861536390635126717134469022339071209110160959930972841612362480362418135562757097078182931430477308577378923945287131821419590986611293360397204923203741262802708907875605779690633771111886568755982940875439817786200071649320625293528739154833561096928503974463601462277142899156758985901089493433354227440331993724015468545010561959661637559562993548293321392078346489103668888081878398647866285639720361866731747552618929112819144322624356399210172036025225735884693439635745090272059673909836040413321919541778648577050519016947472368135540666148239974457399953503791258419855881728181661938618286937084206358114144861220144308658406997285982663946045441786845211710476856400438443909135395534272426559506633378665179499977034540080980034654864305482468822423573315288799106570717365752536700712668882808654165385798498074663497317948804636554346989804700619304803002491008607297016825921647658856543587913317931611918984689697623108708467480765644550934333645622277939538332550441164162901360120574519931993694646302264556890724809313083082086689366900268928562405763673240633902457028836408775308376349156624762701497995733362262475453941844410885699305341211205787250558427578658558020466998457175523915571709029683157825161397575351822101807475928723678114632623066466362237756959401609871392637353108123231627858449644020727885498302563303289156909322870918347770038670397402912548531514053786636950214968889338796990443196760188417630788158123015006304397396938549903533779085573976681891617542430504229175180469051122481870742768233960421004052365448696661693806942456574834394174670665713340069347020382272422732420136988915446728164729243986144274980886538985746213580289437823373139916898404564434010967229811335371063201796762828975992869939688878803872896169804917003545333678960988058727743373642636191191095372255589268065021280304997003518233374930187121221023109775327723064131537296136894597480257973462261106969108868162617116026281477663444786346532729018680131840914270313711186170354394378168904748947935738741099048994774069265907056861372813141429622936076027287783128970976744712965673527901733523070344606372297772579083464315898929601351870899274787126150754773334002542480629073575938518049046498526775279201535134706088681016975343246371339529098531182864746669518349256222196127237689216496894584132938818006796670475400598339822332525470604311718666249671099550421344653398236835469707873814043442979462618483748957580449346244139213276821673971224471576672067350133032550419917473928972224010168173944591927287811260902202871552737032049127844118814569396161850476471071025298039529704862202310772920596689633097795126666685077347416455903349889740083688155099775957018591586466528091423113423906173172738969192082891055846472160016331626059347447267723189838435313020019285222210213538911577602638529712751668424513549605335904779288291423931265372640867800338004516403048165560323799371609941032633253797024597674777004427063808101434611854261494729310110303673548961114930170491824331238127496789377266164187108718941810490830299096038229906193445219738174918131766038770729991535745528789600985531881936175499014006275861289529601817825822914689312205383306559019916334425523398873849143492096082775518617093365622969557168348691833081214196124560385489745129964480422904296416577219367204935331173495067005901944406492282943519546545832770331278133495171434268798845324927449460773757199532521135615626584267995670591100463853406027135350220503007948797249728211773876584784076123949287002757185137018077188272819103921165159133171943664042215555397836349099998241229862361238116841891802546830694264008737286551568652713896059641656123642355912367489829877035726640644078136480451010309986455943808609222352779215498103772587183495199317451894903272267045092806548726328361489884895663073628216466706399594983004389316184601998056505100977748024407723532676985808393678007905943682205651634895387363526281365559595331293987322619183738242408114778744841593874141286644375038830511282911207257249586975585567776504394190881914827661794156259187164824562509112149291203561590311766713694528360441242628768032440076843243633011475597474489875792721180797821468073101054196042419073483096828392846239216473711266513607899023741183096702007350294593602008011321724258872843649874657134726633053686017974116549979909459732866935487551759322448018615917453647215249200713677356409702542985426093327646395168933111484553787804263537107238123516793227537538478840702774082183316818324804221389657429315163638162783450134013573538256171731642222001036578898993095102102550124859136144896559291746373233563791486283010427564023034780652631193906731929557045856553522559596976163145928294389324466158658500873893055451393435859757753458774807486997475153195478013744078273256702734219566513795312384588620798782097580043131822788534976790308874607662052322563889694303829717405612684333896060810523920002623305884062905898882329563305963905515786955118097473079404827052585882709907346866600349231860520771089243831084484070079724869850129134557626288604985919242007288044571820930436061299626063661081629475844462047954040483027279155077552786579006559694113503727527554137071516295705148309709605714610304172236995694089222582662143707850274414261411899659971852746404350168592774257858559258868366457225543010883959416225378618999266811050949647307818131703208295171299499908715951697045047547997470601143766175991747171874618304744116035761798885796128525737405762733216092135430582477871292659734279932881389961598549437399924378019561405580610460515078663688532207606664408015063328506262492495212679735110392740266139507798657405664437918798813423527977795793062160610304638803844088139693004228056108485688377348791334074560752704076087144191090706149682482924838504306416730292513776642412337980610587950742855555416923814084243678165751450215877031396718900692716776828543199087466436464510744370887242417767607544173271111055819123675940083446037730179925161468267293884140624266953913314534587575364832476176075655875048996293863992744043423977107085890255051862022206101146857550267688924490871380775403055736769613726164500636432459137273155198503150934327432574810980448471856151329939975766230499666848213585140219482431662686858262578151912327142071663749892537178407783180994758344442496995587380024236480779541590992624574350211721147217275791655795207245033676639212923649629136677834156950892797858491328898479975352262333259923759525809672779287588702191396169166621155913064279206866492202287730678452389877565748765821159078032659985814908912250522176037520418166252079957877638736884695863052013328605900621253536649449615584308442332744085156631423244597254796646779754771865772467721062840992142346085478224864923597281865104127087448455707654559479824200211823742856667723822124026681605697929462230356306932694658744619339116633482919288750788088362140953198213464643175617320296643998946779129485073786258936905355722782940295421974732035680155803331179391244826662203273704583045725684785326985854260409895764637369020405103323081767170731032064439497818956837037152433566298376615825868590671334987421611901664462354164897663344893418741468182866600820392918022697028205154484380468599416751688126269103800650705007088761887102865626230654095560859123636024103514368768035965872814439661253314475002781326220481991738531514995694551554950951250492394654754972485067244679973739993380983441774715219853403237762755392357971261236820279272754211796879309665233887146200397704282454261817739797954410565590366092174422315470404369548768199414539909721996032873761228080276173446193986942404726088880033604003859280826100005749341964889767740781218304153232948081624287857764076144493562495652233418462699818525709880284173567530294709692090964664963985772987472457159697974407356354380993714757128600512688368313599628489062593612552610693514652123559343078297203563750640156974734624755281889686216948934368525809259678705665052652501543109581696962954383410667381506056425733541673136805357943898995871044571183510998345759963637862769306386096085530405169454540127148436078122578756100107504357823395087490561634486626426107389371234579643733301639808454541211657832413235434151956261345720292735792792588415326959662355203536153258580732064753925523992959751384200717782782335683124223119282104184110176277627247576572338325687508035554602540123558863618665584374108926302811884166460999605808639214422862415304041781465382168094493106759935205682959817251793516207158015232898477056521403360763673641590518148786294271547440524609351706243146739069595822823388151029909843071193924423458277173846736450371520315199793191325428549562235520921441230299391398912620904796729342180217980762913525574134324974691515110240962267637819508156699149112536181014001562279623142778517968235190270920190367331660439605352000226309980863397741258631579409531119944301593714207581775578043667547240796244116629080294632573626134161636094924628639739125802147794801273507412633030345797359885109012617347262015222200449665578871359383562002613044900043455965498051642623260747546449235887145173668007226111039527118768956635254904056201350342417684846094037820855610454188341104064399053451944183714747200770978109340411765987370756429373354598779870956241126698380214127138945037323147314303448722006124758766190265530757242595417307775946945022585340391289193385395457048471849144013395729414866664408773902449726053997885498868714870521161725894793901289480052155203169344889136283923382648671470868496649907323626418878479503553407868751398098092566793402286771435572813147511178870796233741496053332401442628044554395523997189218179759623804527436570925517665550900155454816803336393958588615346972255084676801836305332958327864718298185863293910134107066033636120060986174733516026371441752595961895034570059951795681516244484317487286164557809663672121921363680202449007843422310451110968453669669550623117168720215412710393578178043737336556179715896639529355288983930422763461871246648196965715094832169232371242072236358978157143640525656138968289466599829291691766283673777698459460956417218058478237252860844917681265847672948836949717846747775134544018682753414390458477691880548016242390593822250465917103410640922571358403434411262643576455025787256440453008579209408138736980785061440036507184680344476316187442982715984934443993286940894260795789376699562686977449795615448777939527291144992776547870697439847838202411284085823438493072764254708975670048671303037458788848757611046875322401602876654343663902340380565448663786225426803876869708155332540160878698583341679751085981909047143570375678980219241219230624011045121142468152447889194854084174823089369730197213343482103946825330426614435861341629936059073724073637170406687401466973483080472972517118609384112026745443548564488494790540950891245524554928520738407866624292123201412493758828308025024997737109783961899888094732971459928086147099612405681019540549088247591734885707486348742379215218280723422121823435444439224790526530553844147218718138656624135772841298834684808880354098574921597969870609179179838599281753986453106294853851017041760869802933585070069304586701945928249124421930530259662580924317684123412850406334656619137815753647630385478099624774793827614086633151821746484804862664750921638839544036177871894058627598197100975578232961574760879601626902383189269383939140198537159101880645260867077041007531153389054599288609817270585749808113832218868634369198953090543331308489069545592055326821486446099026437713232943321832891892433047238995716275053485240894692575258844551120511234806264110795207434913109163119654516084805052785014354323520837528890678401172057257794726504575505124898007243843757840817073505518129607994396674163940109897648049304036978830171593925627162075036285571107103264141417417367255204237055974876203224690181787379057260402221115884298596527045670020877508988339368033069058780865575527945346940229941593631482317500641172048661210128203733550621915290026976408443972981489818707871780200248874952005947020204160701121153334083801872349059129005793326552284271580928980021031541046790313247380527759554070239129946952853042049997414492707379754160074572833659671755499383535375040904372345967203253634815564826207191898177600460512992094153660156488888925901384277635391008559591035083484764681062443011326228917303944424271598423538898486419872578063447179752659715752102127868005540991973302140458172300032665921633754526686175584057458740924553046781967850427680850658216354561405206967554700967426330267901062620177323637583927647372684035837782002203898151263745247221122460451070794928257975820943218720273734079580720118905293651053589933818090449759872855509351914566006396486310319413333397094465554027212269049410843908755054273516601372039851229731323416811415306030916578608647164126393673249081479877893595579940820698427685932782244374086992988528005897528393543820596985126581054907080094721510620574575586456844870090849460998419702518105029050953511702578776957505013620663004562251277419310318602470731099591751209973954044166831709792945979568996448711557932333485349764859987106022211079917188028177777321888443545296223333108919067556390657853127822121344378913875281347822781897440086068171910110301524261111255837533800020801579361509575336497393877686426791678256204545813209907181424935647854274402824121968228385693709400310281875233194021151141300119719978414942785976277688325464950484861877727412692732773946324008846325722122041158307674595869354937125481571329084718027049540672078643111223416113435636493109358067679787355870784891360098269569337166599770916525597352670849455791453234144617681153802557118617632592807303487797472633058807694805948638407065855634471145974649123803431042217550932864669790423755765091634686497467823363109149129177694985356459885702840347945473318843115534862634339908171075864656977512867364366145571762246861823856847781080386150026899939375285641758483396921051687404521254601502631982907422724768072806698826102030601105744821788228301459186904840932631170352569196356489799589126028839455593741012904770790218852940718399598218275250169502096401381186285956520334732165288448482994451077868729037520172245801754814151638831470735139998659369060533869543971190391918271899458797624248664527503048288030318346118715488890364853424591820960549664230405703413433269053252745803228926052231209502376445652756376333865786622874127984533989091227728030448019839879594533450927911086114474289987297550399144273408242202489764394857787510481676971394249743641302078892802609660479822435174132367492949849463518756380258193318921100976472909410253859985279419356926926548248508961306438427337221443916046956820272127421242142514567523433353479795041607694260144853412957369606361568374114407499928384838629785089728623077966440003794844808860523002055889864396370291916487940427506391117297693372880890372289186245636298423567486424483724697371386158220053346576751120191144761140474709293329359175999123345831182220523387603941618263488252364697003254682434430853404075728232144187829881351580022104570950759424190258125108652437133835463316439946622535868414626472799160758441025887663643969542802851135223474821651332948904180226274020549654124839590778031204400008386153708338615921474373167662859867959436400662645823216977608823038645429018305273346040478687192392222303501704842045355343382263009953443313092631295994561239087769500640181909669096060335503901465462309130799574016542729431015281174148489579166506059924685066024012931942676322924808676109373743363344040658627732990713164448623041050224445147657324533753301558964722865346944156736637713699386535894764113553735911900096878150057592582199372427604129596757124112291357488505169007491265806163731430143542931979998733248134311594266969931928249488268343417986095481093025441862003372229024830637083400547122867026846548105699935156519849851610410989733642381413029187230004637975472021691384850811010687215126171414532840004678040847619166139630368763247455092355844077185017614788201357665028201695630890799824823821190205651523998380610937306331697398864313590321677712137374409774218336006510731151662975168605880303697600412977685101785993251360815644136606215246948285640876031116134626253253282227459731791205591076545819580161043998053741878562782211187468497354686538680955375489452884784355273713151135165905378112304247209857592029270636258499075266858438389946252588546217694112164265247794898554939587838760237568914993866518493948500681252092834329887067341301035868331709930635662321619042029965095542227247221901193041413883387134117046786289399151635276916623396143877536663873745084704866895887849812551513303570233010116697274901397567812207239390706494539052134195332369891600748279192479341652694123526146461394141862443749989939567359963795657346224234732201891472744942472589143658120629647137007325539585009381425206047211522443713346343477874099858411256398967574960183269460324891481808134468219020381927050794031012288300984021733682810801832695108816510858349611900315724383208646320495729729700578963668214492310105692231474404096265901568260691720580798666854246561787088896148974004702256475182207355704645441826385261316529546708529796500602139311912604202154226503271375564979696904947831345742482141240999643797390864778566919715847034803251512496026934796880799066304534406470114497824266399584312629180490343060327137161841036473740391328409704555721729351591327501965318359274147351093871392740274510608615688343572103565203787583103390751972696778456033228852542752595258343780446474323652525291851082748761735271567427240502494111108256626657993959110553054814678174185014444596664716387205284318806404710750493537265146313563139624907584059472279671998161245032787337729629138459447771369452700058462932350636407292613267228120247090737653542764603010045299905734127764154786403273043416857865347686209811396140493864426012752357215626365575265916383448479325814164417305045155839384956675656616770338106526515862990544509286094583974025500460726250801621030695091624400412021294292641075056698598230018032601095612903213847673102415602481445946374566703601468222192433796255114701927912692710746993427736649409640750014654084807237894752702805472076312691513840203337530341721564987264402282396539554679824206260677263881134024456420331663627724492838268629760915548901166276117927625319810262430202367463712141140651256936947087508304630627666825737232814313060316768154091235713112803064710938127707511089047400797009931335871549401382388762948083766665243975142126222171378942773088250136214519839416441141331343547569797445847847712202896769521083827198202172252794310411779370752290943733799967467257392427319278750823293730119524961315691692786023067711990872914448251715496142746359072585731911189282759529896606467586653586090197129963079284396334164868170138215372655114830888230924304060356804473703983293519289356479981542983778691436068036212957471652986428249967288036658925606201346352381723681983746522551655043404675753825272914620033766515313641262048518409063329079660560283111706430651345727885406843047516842155544533839521891246384213181352392148512498123347355768396075484825158947606068577694158661109521141819697348184460694212020029485221147876828451764487513124511094487835283464386093818542881696682996710504864956525335524660700295130407479430796124470110266378231465287921786421159684797337629858344426388805538822325316408922908981922611251912587871264137707197123349601324793943088258211869685652284029287148153527654302732641085557140709316727419396485183304840962064082474463178331766570972457034327576988545007088669685250401381552426118957583126298548755125092029541599409272861620469592206130034038377461563533862549999432432082036672896022452003082418208855383152249182130296773359984456800400100381335041303873651797228808098220092289623464327059589996879023270832438179093080689693169440325842487758132764145754483888742676505362510626036517724885745761408752610564884381556477558824075234809239778579667579208115461221454754067347115434804354723572407994245647304879209086976620345762456874502661720860660933822684309595824790634905994385565666940742335823558857934627364570968701417849406241504539751169590921252019965615982373979728003630056802545685671705975971833780493796261890116610145555730988789242755277915187844493839473147572043423423001987963367497119807330683478858709743016862886870621143414157725116606677599499790036623602141378527565755652813788720193605472403744885757736380393450432585324060402922999321203563454732156973780142053840442120337625755898120811047892043839240824323485626798779009759903267634321513161432174354418743338912950629630423758652359469565972752499717741693967671912804127034180169826838241921549188151928974402881032487087080764534570207147016213913578580403122862559853854449669992985126290199906543909109276101891274262105121514281624849767477867523694219439565321409637253314253174692286251472361151426285697191271360766078169535455320884880923087769492368047646364198047983941008549109639683773356596339567078270946302481762913949426482267614251162482872209200805098897661752414950728176772593956659049195692412714227058472676080758816116233472728818829998234351901570391490219378765207641017608370026462490593817939225709982524853148734025560679266708736252404664195904302424797376705977375574731924799173603547793719456141739921457325623834551871149003897391937520491369983121486719248594785719760524716042705167157280989177611496852686787732956948877515472439214011441033374025512055971275649517981140146237885974922843004163794281313892294577191828727803803187248961998039231514478074264487544239465580654689583704332552232468478165809908116556975439317116598795268593759940284554272116099865509572729488913952178329122171340292855800977384927726732690937788877636479254468555896270347334834889652395944701177504467988769700899115441082978493184044442190546047076883904041315997450569127543708439139188607260815550654855733889304329605176328635850431813363979862936049011746638588987070800270755579272218575073969824460522802234465096002426493390160766386744110860387205789010271771596339594655507056383991060098856537408519529154583551182306476560312680997402596939386416424379071416233317485446228893572241078152440682507303945924860907095545594982575938802352319203121592237180502565013455415639720063887108621122375033803388511134720456312821463634288505782952582924382354388249271408222195962254623387431543462779861637050710474714661198173517610001518076352776841265447978641859731259805111487287624945644333642189075205239171435080401957270810560252896707852089731450155341758412097358834142286079162122061355977203714715971800427915150122177835144997978306079799452716797558998636570674211378894332548594177591365433250987243079931033362102956807400151039887500826887746083454763747525875780646471130860915284169603940066558371174761154651478979590614471316458800845440846382934382833549131153289007317569504371256320939258139864307452533490675081869010078651061896945015987166618940130939705509536817651436323714991940220421807505425185672036103929787047040706192527243876004472139257821601070394371542627727137076685723529390632661715316737175410188621956267957906715508839333594836389967177002060464630014037230605309934167817468733978120689114650785672882155439839020738851750903903533168180583440122957059450133329287209266618221108665018054386741087784210849640525226870713441790634924373955627759127302424844513838516786106560777209848679734362054287825527476373764311590267653976414922621270405923600565099426870589553986643192279854198752318533655931465725005113207476030945765838071581115758838467598369613313543334784535497000048139723149487859124600081302282243844990783308138678213243675949104004301507609137583229496642604837153081905628074708460461233779556404439095711035304241091243793193534952351217544193281120723052004963437904899861359986455550865416384662069022510994356720714953059114871038713989758398104561088139592694429786952361995727441191136789227122579787188889033444811721121722783976146148211794863135165481823556662582318499136546432165215867548227815870145352743794383325515051218832445339125090729533816964920070336225154212219630619780859459893797815230014179630853532483136487049837712414028294401766487230446152141723616842829694073310558951294750347086356485431780901031112616917083944492317668777914331289154973490416973662077040621829686795442541069038621411091928183482732507445745305146477019731917688693530501712747761367182766842684962853743952940955794235103024808403991624197436124882540555094370834521316969926828566853921404825080580438679262656008639503711180457540062361733519806950790079283813026125133448404574479229759244789285780256119704670639098875795101798604030509697894075070752621715984554054727573507800803014146459934141721386925476192508517880691382907227286384470170986261619647100716828476619552844331383446561469169546798222913297115957181746389740730874947234493721287746900524231854767243273476873203591906315023441481593924926399781983454310452677166184952394998091397062128068321310456275582251412585397948154652079721640688970254726268356923146778903567668221718356541208342097538382387471834905359028440952451089096575863987395323381824409016495061452703373631539483679011795882673027826113856444491943911829758917611050574571066076809195479769557739621681402113789964572701667665794007817864914813064714303663282540408759892495820356088901447905095405064526237356790719762684817144162210981838125069981811224559536630537973744694650651691074611129161538679882021388187625819983411310632214936070047861264794104314457940141727983659587016756627520292014624673622016888141791518385801480902167199614220625412378226865458927086641723558550398046551854453263575550440449570140320934735264032053322155139165159493976772762752224374501924736988856097451657313583361762480122642597132614379436358313944347285109188983892661381644911488319336720125707770964837172411099656986294258828869103476994867250813243079509503399734784322417883711667115460690665382311375590601471889681764937230803570649176160661100059276696836292041389325682079540969955504870708616182741775517463846551093982699502971464790681690015991228869509569154491059187943800012444842606232029825546192466942295185899486913329337384555349236368605094931192421498508413186731052155796223392353173959291491603279238397629932252235886021939896431888822603559497885622547632847543351727510446956225004417726659462671528053670270015040807201341566999433546248781881847649665769800507130474489909464135531489195018010601761319293913348792762390988757793510643191680407012567084273076349988837633016668541651200965930494192853152991694475406388921435407063757546911991473990254489892008823030427039688724518038078880147332606482697930233051225612699113969723124043530491304709623612133999560543537672405644272022915982013321571385586091586008878849299471769939874693170916081195741913251186482141923898799446085929667828036537941477560000415312897421603966113018035449608693803571448211705947629662935119881293112004876748670792838044864065994283140144627264971962517458325321075950797555613404272748967235491057091806075035263599522005735785406621586129552596112126841008556078253907596935188971267738645743688061036188946007820088497040264280545203747042622890471044409805202294175420387904508909502306138241608280178649506113080209521370548097508916853846632809348781440291686920360557216264547154759517846729893201204652253462585849750226730030950995012706315919813249185980823726847364929085145249306385634501832932097068690336376916163832656846716607609432983124808114449394540155163558934791104611024448006107527096712984853559437277304900402073119998490928192612823412044568253203574513329824754182061466307222996485400771935023111738712171054777851212053679731279127161963061149631721510320291621605298004884572795818445513870833828187158837467751558071747423427590870787372892087680444480096107908917954013826368359078531892856796515499418212426655925436814098605367530119799797955370678401253054515857917415714104250659015245010156023079153970123643813597329991778374946307428451691531670009700098406959601623910347327914526931970102466538245262837149843895245703554616803366671678462255657061648981184681602418276243533691523112461230789055310318270725177824138548984578545571801812106645357302305801353630176947230523719291474620899637058182637959089468979191009533192948050293973910383633397014678675791874056924750500968254549712895879472804563017801772391979203005773593988212413996718604687690343888858676223407175304879200810611083230294030397658824862652776966733912774194746767212143379260455995322365680992906337798937723444560977946380110076724289059432529173099190285130449666628324361440745880681920474474582336925113294442720893100684875613369987196741536128296580657002636079525961365764922983240864689307418422604441442920226541953485816694936386601573741179832644964754253575561988656317593060522787726785467308955255259634355814018555157041541559234198537636091443734642623152460956753154144969673604819010656186342926932906284749986813375256541875135708588667900064685350023073711649338060436651851807121651783312804195009251776684867415280508477766132797737907487202354722897650687184950100238509935978590633752155936577668075383671506159903634865160882983347613281999134540278552739391324327487808893071198748811638816782771095844479244549570389768137291249148154231266808180933358386957218089175515243862448702432068261480424323869936995794727804678766403977018794881710640453659937442722823723580361385963084370862487793437185872579706254895597570791049119306559805619277318277102486603956519301138962702439479025748452566801063700045440458748551035727601029232025072603374288961961713094782227827269133424933202602514387511841276663710917026775438167367222097186321168147393977089559413250686941344039659234981383439443601066303963844137502018158860369075338593381506524252545057105427051854004686225306521130755569650673035320862928721738263907069701560450897991306365659307548809141802767334789597514904754956545899714400701749876851507479824564283273140289243080772985799795637409110785924588119113271847073118769761858333849249257910971802459000807844785875903809791115158878808731114375821717901561233458726621264197649529085278860610655413305730261311889112143579056706195705445679355084689218497410343946630788228446648299467711790272925529703183192227055996758607943140217752790891799813976728390978503640283012488775883959101613713434144429986092161264042750384027256469018200590568443807864670622307954952564949133147967425892659637137604750855490449035299243974499964505220112173166346717168467787122266306159743407933980107836382309289812297378343719243534773968230930772506094135830953440153569816408563344914262734329793531875863317016709092186519858607275758239151665865605689157588438243061574671734961292767888367111254776024606991080310279345905011505625248771472134614421644373793288217634103020206043217679238343668708254879514140862602143998546654951358913518752651480115980376001087277666748221159015668037487914506122867989408651450519916805263324967459127734641019380246598591634538160808324618063364223249163587246905337091230327171290281243346793025401924449383820849173455960992665241101526023194301002425035929086102572305494999487547666711720179068313599138176917955977411489615121143622120524498699579855319744909558096620313142985945135123208605377316273789590404734776040654299052265410158476897805878826077950061551029066246804875903322838128917103775124705217612476705204038603116283941400668686465896798545529237794044195333313868812104384485269750985638881957723308224531049742573590397521893009601917881860151921326434510867925770880063981356245034292034444149712853878953348398082151010809340568248574271401994783325926160927850517618973445363377352295068919872740456747215268374921083945205191593452329019053215473367012269278474237834063579031993805047093791848714685047416985363492669944536849859380324417252492417632339653572996228344544824120806781469582319626976216519083744553007787271221762422928301622705121930390700957163380781131984424619420156456689051104633151754712170228938525852711140034696592392640199422467778079266162794768581323497275812278899059167867753709791995731483177196478088324597243099331550115109993073149207994086491914646101281043212633146176620479852165605132557743394932902002932591704688693104681960324184625356411468196232899337983560598297930505610803342212430104996243847182255021415364369980925712985436298206061637620679217861798712149096329980659773705279657421855260818924336835982437075099026464832130700352807030503084346683313028466309949706413939289286427201224607464049688558173009977637244844277581963284289722070108286845271834625789176790439899747469590232125858416514671668440252015036694098019001526967381135723028179938545218776085947893505776382848086614615650642883012642743763213833457135605073317404381756124872301851076222563264166769373086441960393882287292951773908723966279549265783130799359674323617370718029072151375657622436235637549353857611279958419017362276246696266135507482643306039668760574544261937551820043226938938703951434030199125626623238692434844370772587900025228168057923859604034905481592142299988747997856507599302068390114612831997954725189949490751631179812513951042127036093251680191186750677549248921906866294698321199516357425091058554856071360449154659960286478402209557811541997138707127850846360436979036995747136225920072961900445106334037697399511714398037397778986889229329205069367974176125463739927052757145955083688992420658163870925501336485215209324676676228220454860215874445536594900894226323337056552102347678316551449142986156909778715994116153942694103315563600702282110376144746335243858997439600818906322604993030147492516001481110723395865280461909580775196458363063066030241407097603978566968911616632626375203148011800082845868866944524526701540970057577922534287371817550123274977203634936736501996780813863112386233988981102095275184274107211534539627868393403986147655137035313735982952371432120626046761694572700861134709189538249096261015324417959832008032086442378556250824431993608878675735625920260610433551939105704335390861916697752553654349130055088042403605504668686745285193799880266244901153932789973908712338987577070676437926222042103283053203879103612917145898130380391119237644452582860505245132638358565437453217679097995153251127918991829473157674220438699341158985290503311214017167805667485604094089758083041213447231905407313127974667766114649787505381201167878068604127447844149701123772578015366313940135452275424071135732557096830880747991492061465900203513413080090706519376253306749793487059466300363350417822351783206274359802207586914810161511520482693720322318213336754412544126087959498240741014094564603772915415174577757201120092021659864902391060923623549061079899760121235365222173284982394222727277337741391328189158602728719347537270236492737296015939474222378180030603163449231094394424926238873065138735338135468503484562281098684747689746349812394391542688547268498528568721863034560888045845370348707528269958211221326053786457179187697922671359959853177475853635204077082270244365192187987476391209275873122977743787228965757138388621469622523757381451897353065097835523403414197637386865017978004085626089654656625836198826131406172641148612375117130731984998781004864792886239563254986407858284791783847920471599030025543667098706222673478609274730706666936718238653764876394433537128434203455109764318601933959852146435535998274747283509096836639115232614353680609284105623409333314798740247359040405057183560910707772012356072070465810347619202645651796958280053291291403775399304833032574992920879790224063685435815521025987597942466317840949159016128959035740338749400050102388399671124681144875434293608532102217282856821337538266328781269363091603945002948706083409181195936934897857102465699785367806314060375213219114209747792631529509821652263762245692194976128089005045555400251304671278258232524371224565781629139034094686105319461763795149257974546842562391122296878148819358935568926974688399214820309538094192817425191444749316767762817093962809724629556269011833412828278717641350161359527508161933053619134225001659543439017632379694195007504342935128182874502227761361540705468122977199647693676397800874991107302130496449367008825518915801139505262896644063560784877289941547775900695733079996273786996429002432884219832357149555637877918690497187148475497651430669567681518181825483840592750072995663007763200086723279665370895929172607727507572812037016689363398132261028089740043794199111905332961905232408112300561946579435319562344519153860182462179006135136888678495314739703868078549524692934794972276810571129088729380040274643440465608304313681901261054448400252372783519931674624764508519724467148762985255595195192418808793775975231173903626818625387800248221091514055093160492924328714480701193086546450314897857180807461604206121518172130599561101874636555277910326645714746163512394696299468248666698100552788500137622115235700904050019520259050719585435128261006387134639354642323476817478406137382273117369013647024000415231031124604039181310647369018679119508675403763081504930825724211778343218162811482315564289276199015369660228618125026461700248465047137808667305813823903148456032887504765767964264688677405803939641071051070084048374641389976566367924987544890040211922237224059510579967202362263086720759542623117982681510658831414520850600315744023645135179465080790875508069205927717766363617848369826685950382345233203194804536395906392562958472660097266627181452928035221849795400376127475323889721586667812702524503157068371461693011778425760694321999511094197697158229637074961773679751165331916323524867861567128122415784144318142959782619966106899698830050812528676921173963985674924716997615859100969192014445713100205229737927630605541833291841746763401106471907444754937886692029051001518767576632883511238179659498294347355848965309066334338477252351815357867831885586123141178191281209953313984006450166373072999105945280762355174430310601507926371957031020709073475057739491036028816390301821993701981504015479347098751029535947037721355761485085810215361448657127185938047741382113552732354089323195848412540245921734086212259289856322412742345604372117212970619996487096176457731196953388944101923937737770811887074228903260315261655963571807805365606172196032197160676906265633311123085535391857355333687224868222887829301091036281883961906280358472070396147132227070286680518731766589884969668414640642450093959943134229874100795997110075920189795314697703783620252489238803430366489226649928506635707258065634624578858425091939201405686428992167330531781404223325840877974490569254022024015871997404685177111263798723996371849061316672695721074734891140425285519526819191537989952918504039904652354970091847404272211455935531326922247163708468119307298668527317573970375460424551139867629506096409881274659719941694044423724333323869658128308361343141887247194701527451925805626949611313824649730355293299278039722300016974459658112685567126165510473471372058793099577876290773586582534986398438750192831135040505212938701848080171725190406690183200045956181654922124257790380117720850642508389758093017244283328141039631541811423070972678587913328509167309934752740644944826027420364698441946683835987375416500639142218145590328866035214175203561504369932763097658272877761329471460342194338194209449177712514497099243060156934300487062048202667731170626990246911547257841532104027837325673568263621053904303383859144862863883253491145542174477684324769231465324850054357143114702924011744931905684872074514338635477420688686726212564455512920073282695933540013856023125033081650267991863358812130280085181866950172411317516435500922450266223086266503167394583865699519631300583131312040468868820826366370322430055621511524217602377809296894049186831500602349789267750650480601331115326405607638109595222825807028863458171859005543405133503211285056616482525527490327030377173027184151957422229318104184020638315696763153996549842567800457339645949835536416404026750534994734054846466468822128745355570318445112634826269018423171169952994938375992632196537149990784749347488751301753679582797247843382144550203413131601050810993784657880130255838963559889809223924407189405826489919490066288797990054373444873477698305861539827106712511523783424710178348139079515561360215299397370956341165913970242525181857311794545285699156340110966050344359431761136224423206189990295373582568862539232491871717199115878224989565517323033442766453458566832337735566093040674480718338509731663867758724422062167768473712631528069603316509594096943091838547202173874835530825460687463779657161443755500377952117513448560383017835599164181371721035941536778326394493195839326023532590392091471260634093662873725439360487245291667316833713375675861291546320135603212309683871591334958547883075026601497325950528232948831724308503750851767133929959225591010173759104599853972907914053235312442560817122179086581414203244235067036749695164356490129773359418219886787384192070265729206185869553950164400435669409179300163182295555006894159698417165014640287382365181199742656665638871278140440761426222309748858776254153387072810184148707141124265251173463381008758100070780274375535035592437442956139738055886787346495182753114397928096225123226125158407549560172561269076443710708173794542500102429700303913502070293512819090533744548783355861705298284865244834792814187945695764975076462213802029366475737133869173805167060771976195421573279211491179051239290047721983366521392637216661595824179318227744320502080288905485558069776549238664909617894764319149848532400493817177431151962343449402636245162247944458001685658619378228538463391227893991115996210334890504585075789892881433348993261405660982758807126075991173290586581863572991677369483585103452699322586722782426647114178589364588532512889029003656446591567647800895755727827930476580705871918560125045333746658385009557174446628062178691549963427190307863171056744962923205662431743525283412572278301203350489501908291188347859695795752457188411664166162549196276309529804072381413057977044793579067464755929491906011288992462959977115257263229738924110320298461153697598615514801465651677123367769455583015243672913119468478575047732543623107151272396959893211449394736759266270567532847974652905501126095912977552355232896178239476245329862876946160085680411434967069914824114237218588788536538906266192831389170763951419180884276680334197789490428646885747924187922970152224640180319030308532903615757139565318247172581882680140384200169988785112809965287067421777730500754728657176766027358053849206313460550294971366102441138774084180036914917204665049490535813645470683587760133936925461951745076834649771114822609737512380219279630241889716299756079706137011294725401007464569016339271178990844879596183324912136829022188151945060838180618527216655530877619503255335698213094294987169054955523358635325434288089930547997756038048247446680076153952961236315602057123560169254714671126018025845735547532873036231475055502036779067250672525851028291087197350211037677484227506226872720915930851896888116144441987368131163724789896757260234499860888166117645740710358317508926548423857188515871140158977266427912148577856126486790083830562004801176131198586415622178884078790005759220367907439836394607017501049920161806110826884908754839505312717112534131902067345646965137125163658348563902372707681635283583131552216845787659071651344968415854028258469946077579259620037481085804143390145395643494059290460109054851365914291161980565803094008761327598624335973871553762311597320539283999256128995673537503138511222415758378114160713634873946939421312876990737446409374152204128324749036446678485874688343799946269327221228481359087116093716106742691089540102440504054715495537977265273483498470129665121455033211437662947308660340013396741815061229673701026559170982548214875406930162106211916871144003575307574868570852074992908588606562784888479425972638437772483050087930477016397977926967495424145617267504379075838424946496404436581336841510857067162226803968829465543708929542193364990495352111810436660135192422697052702364255928339379982753378594262335606495141502254094268498663812352974598500921115394585197255303647010914710065293788076111130872139052805586601588069462891231803025532800484752324398852632973299094212738563370735424725023412264576372473017289943917698879448268821264587907369190375512914401912420871862779491719443617687321426171561262437638868560379566833532432211590790156484379284604394878894842457005672711147700478696942044663183770526234779119915066060699941805822713303166717574775512345497562503084003033158075740594758897636017811612882322211809313201083503339332272955776333151585536900422477728464577157867859242282113272504072211025844145956395153688193445933689068562568261578587226706787778876190148758449115453355028897625794546511154678827147391589869365929088494282663571161932248005554315531496248565016048443683494351973647304099927384395773443485064737479875385621522606424100947627130245184524327473962001088840536552254738916031978314661026050190410266576517309638684594041031731196096918856076493599765988788842273410408208630105741197505613808861745693413215725715717009235683145742130954990755268788315888371848673592757597235758819111105484919639333054638001773494728461538551379762895066024026570904252034425009740084469354112688327390812198770460144144442241396815724917939192944233869139938420853077192448128448457966986906928068126086495098358790495526814330499560579674188124895569542723208774089921948137799682478128223250234765662755176299380798787996464151634593491810598531510328765419906619580944925863028032086141063522335893108519645129641679192493685374770298786165740609084770098622088981408684017693418114374929134137885275550688843517337746240453464080603091668057287311927727570028678378073220424917597904161252114603968419506726953390396702812043479598876925873592667897159223979649533557054365003664517871257856847399111919751763376006531523608267803745480675099884235585273461662485324765589074927477651546239398893191897891517895764875926537541180585356942429071336422270571286892035272789676960438573755509314334163548783945887680605127004445429592624855518952032846632667810826718767650114939558924729145740291202768744064367657842610981222868752562560423621227271718463005307962683090188905597038693422540283737286233548438736482163436192108513716962660746617046866905132993879559560739240658667622033650939926233669576085987229427266367410652766445864882716658007749335266198613507354475322398656491773764472608336088991888054137471626995256681191708808770315247155643871758845469487048267836920267254557096679766928005753921328728527630531599714759845101998273738366906344051150094194555108040300564817215532145465323394405972135639151529552612620292498853455627759554782307095978333897929500751666969611572360687420076209942227531822539707567139338866272319078332247238379770203620999789159709691323118610047275934270318879413400222398228441746531791062101899159813652154176822310903406416928192506207667259012107319512821184490228842888163475747687820332828245891291427615890174006403804241740765110802847320796787530073340353751195986485955921771454720081071842611062219639877130093810238139811863225824082469112188350610947139080064860337565409301663324542313030356946346954832589294834426003942986338552018653333427678990115741267829291392618193976207902764357554438886317189868396500573352050327295546479403600494311988067153965074470037519288627669442103579452213768114202985878142365857424142341133681889187361448047452379161669984972241390006802400167391518054127051524950839208251955734306207110804724409102071103679895609001681874657872840272702890259547164718853345904803243299717506916345264048398414597464116329572477496480326775417112403945474980281664517573120826059180751431326795964628986218087063172127115851255409156589065844235774464557984728019960773748847803232331853197213290443598066534883769661371013034919359243043921182122437378721637149755459161028839479669024792327202017533915959994807148422767225203533045307670366895077438740334231917100042246457455086181922873917595234886451654858606172213308277753681980537299904556538243049416505370804221379794686174438885039656374096827377904234332870617754776591583000858608425094277013878640212322407553522543477128472799611273135970097826368816597557579355548901842862474870036373003015157921198858782589653209733217202768900710487838407658534734073868270496327570190399898122923252542193327400501537312097053766626011973786505768765941404585471787093593438374844149372199239082716948647612263759710683975003337702098070484334591614789515191949154593882606167854909317182778837939450153797881157121573390341483097855585549444494562397977852269791167645898437143591703647189031013145419052258560084247051186137395919072500391904750785280751747857638837257805338031009925692758407476515959053090186716027401307726324971729696936926329735504342986266265466749336421346814803609318092117490892851999814466520954167778742895261843401223240050429847118143322147202635413177095469487422491707186887753065059605084256761574086871048957633245588426787126856338356201567690199133214310919396046071619667545658296117806925366258834679169743891527717108843922245959142442000397175271331367631735068749546264456227912976492813997009194144497529888895493278319044331960155158904387451625521222067624163060371394422089993026852174170819225617383039598459085263391605104551994148891052477000157669725966991680110157150493067251537338612141031655543044479834279572397640964495458006016123629781580807582780419995800629176202052516149101345591582892469736858162628692529684724549683617601968738028644694053206933068999417177441348559806614750618760164367031276287874370932682293735906414610424648631387079126165232730630018696288872878893311752819074906338492209431842004757892132932304929908236604568043007430931593848679897306943568278853598159877681960480928543590643522189318658596162938784856160491654229192400088545008534176455241463707953194442219565173042890325949788235724854799663408795842256849917097146347404256111375419169215109211461242148554265997169053351962824793298318608937972313882333895947791656180927115665350033018333573047658194421588708389958822081544791200563809318756307254788440150994426903428017493244006118365959986136931791497861422532385056653133116111822318155793065987126715530136519378481739782549724311164560879389785248232554481620555684723790267466018720641055831047824919261071660740997034123922559080677072954231865453002559643729116729193668364194527915532863141288565592434670601560471262584382408134927032031845447545526470050160871856052451570373054046824140926410979080833395634167636693735364849369826949263511899943468584946054471516379661756628849623535033584195809589159720691551433399931729710444671700742120804033155672032824550473331703933771691096700769512455887686869242563033800917888648558822871045652434490861862758242493365126046049187764630688345329981769943169549320382690452015292877031479617181375856540585366109088600879356466095468753159981554627269958010593628408803366304704811967520988353578068728608708329847565139286458120619405011911216014845209751462559055452991991134731901172311159458093905255331346793895518493174496871071910854477841683432241827842284552582207208401853370065282460280448429576200728545143735084022188279519780090328093759348630424611286903523633111780837604834776975829284130289474586082515881591673404637749740268253694438439417899686787305842800496003260004885400356410906847291919105735437111647196115826086309549320551884215369700790112969746840145035448881362258451632192650212289510841070754813896927218182424849175081578610837596479081418553796197415877297928070434658665579950384861490481678508468207123929189770289505865347094450419692071880707789428232724587162672887684436499601041658376883318456412566698096163839772817382712405891324265651799227147364094822846534964049211325918011727090013438021044058862102733112547883997708833584889402112087234702333710981324739074410785305262769997111789983540437175168885764726472638620954646836233644930738573072788566483307647524249439542649726590107068187791774770931316948845009522009987277121967528671512831631967547951265426065684643834369334026134156442052149279207496894677598144911998225591390132073914291316311021155041262608805772627454402779228869613612438772662077413428465978101319722250821951603615145117538814123948347552489856036132869698933433704735145759264369921079479864100157401260003564282142795289266076425165135618086521437310340177935618651809743230529510357742393617985000059517638526752793658318288043868922665793567633800542408666009819036258212647968725481001417837215006389492597368869678488498444983991825549998077409705008443984271563666374409869977568120731064092778082508418031023621413383583680619268073882825684042414762477381800814751284157940660645408204584886001222794233389592913027550166645145258154877608099063064276688124535862505223615351942268836786468897984044274303892427066412846454493357639282667739535985203566778434571079768680426200729788007837987951543185879625838116407447709643730827227620825406323058072712819388447658617640414086683695701199112221012414105782962975364638571185751366987693128833667565572459431249942934068753751378651879785402314965967403144147093717780708134050443408045908321603535393445492692261256025080222942369581115515609587333496291123730910754891341448191084175415552346814005381546662793687856801545381276183401841272292357531548544809969022565034835520138618518782188747104260540670252357840508075673646504385288264110151970083823055791742242698902890225129503431474195660998049354733190639167847214647193570070345663146584709239333763802807424646192983613086637871777081483315341827621810721869759550074514628017287907087243381316514635791526238050309656065414740678843830990997295363330600540055778971714154723421081352996179315891795979362627233281884429221064345908461059956344490318342206024931411396563288686675504415169620660149672262649123283894139049207511294432708553240695865794016126480051847745238988428510265688153869284947159357328711690132542981055732904408955408570637972297411092797616445304560616144758963934537643724170115428381095764873406658442602797161457034891891697875852764489057843165551440859009656959299274863500988730152396192051554997938204116743270764539157134604666265962911057764638219000882457487437197252864277325071415481469693772609696877240745969256150796793222506479908888543929904824337043909629717222469903071679784537607240391994181630490282135789054726873685941674964043034181133757976659352063027758153183770067171002934274498108407764276386291208255639461896604958837495202701943616804249393471036613019419680616808321612172273549774530059900793213190089752727810549622357730709259120225591361381670637717998645810198930953520748349584032881130299500479049766420056730704086414850960297331358179632567315612766203753377595332628718823232060870842051253391385105512091939909737287582647768289667146306750659148301681909843291194273633581461240283661971348511123747530700407594206657655565819814061909294697949811397553672427291312012132981690607163812934048719885670950715043545805943573817861283157452050862497217849065290616857383147468581782453943326839299597887148573453249177209307469785536886293982352485455590977910002374991849346427658004879229379046208005222001808630538712708352280862223199518255215450713284842789237681779574342762378010466427315799466816874770301133308935772011444717609957906270409378748436011540718471651109669543955462357772068505670520186885000443384845734269372517220612532816366135065137049278698592861372089796374800783735793573341800004347102667039881827085665075432519894183723193856686356838739682892550239089243496909148401815087732473345521440455707324255026845155688079347048443590911186518005675712771240136509152684170056788748950064690071818627092660088548214498336282377582260101290191344550459859167771823963597617908490481033655509472309399266055166476188686899727833361727784214767810758186043752503679822037674091436381306454773622080319788165001249736338485418198370765324418441018426354028481429244713958281436148495243330434579380858227037789477483808399399348857991615146721588900920952524977768845338019082497296228049985846720963843138664117004035309166700262671909555438999243393655519123040721519842666640761844525902326402755001592087369308092939918783817446868338066219610580612002193742632277691104817622829117131438581791519990584350758738721294303179085362508275611480232430329633661250394541493388156193254473985772220854257279600804997712914032705460150766291808609678435259879147176176555791958458931384695140743273433857934963803792702056521072015587519830669831563118109396507041272105739798395589975538611305414962766888851796469255930132139375094626089254355282152018142002909130024666048992137511215024738896603097683678766186102542719691069215382333411488556856749056397395085540944190291638442110745863299593713884857289033647627403832596402507063592725140575162590042832200658749348234058516491643241632097295841088745210207910153394499799672361425804509443206410069532336813970671026793423812126468408502815334765463981398159004845054463294267947843372765992719728844576608905509890323433764361204727346057574706733804872677788153070764488872665370602451832103792486888743207823455904019222134334386149379646855649532043879758720835071219407700257987888238853019977752304274680679451910959826033187842245125139411446750829159956000810202472167274348279588693812835727502824115765761495359909901848901036224545597874625768620890706267209297479743820727981214215990604651065679529852437543373586027533420944706131552463742127686107877378087502033286256776810725566221656030440603874171237029030976330037567824440919590250438104078216369668336405481379982452149236729876341058448025082720404875977919038273627243417375515333339511261997629871897790429636481278807627192919124408278253310738957276852467261119485436737508849447861370369660979790438646722971216428641818871367840491784580373365231907211466109733244874633731395809401024781469506922066060262763144986866155639905628409030819401267808632277157394707265343168219964253003196078707951558216646030879614842302503504000478956838571643076005421727615415271339377203324001551974334753960803273815153485912504223031988615737429637556848902111140927540074739825656647185469326921330549227310087382060599709918296230143358409995234887550537615641678433160310096259444539596316833514146212585753726823982273870273659103138790962845355937897576853020369493710964523492959393847636299586678087715318848168662859288200202741760207067800559864052542877395252629783125118904925017759279785852271714711844507999248822131410235679315112879475668564537755517165244293660166609571046278211711249754624919251877012699550898802777944916799756776378583574451628253139347802444633053133298846016473624237468552401489144982940772102056244419627240710712350666661231115337199591315504482740655081467857519726088621055182161978484527356138226211985993240476847809722249360380992583787687020207932463719176836573677511025394586998195546511907812783270124676986706775816069469399768067929873463147594318874343531312776531754436785051986369856012888681087062366690470042308652601819138533304456387767426904335716848660394514292640327203097748767073993352192872165667537253264204846397731154668306401089886748796038207237932526520808467962000019111746560552478439850184639415867410425972033609754470548932492522626366184247081916228150027843642759053238259907577639316500429509678025298548507600518436057718222302160876250021918836288260458778233828321224933587882338014490494400775615020329981080342241574516235281281860302010944315453194810447208043329917835938368495450460067976067360381988463329458219164302442214942587347951712806398511590556365312307777009757024711997096725797808644129948781003295186731615624859516782658945349938351938801290867543657930640348415815823868258153184417292512856461412870351373072550473049257499680950822929129412300512866498645140192457130047178846406201748301711871968631492833088408174960754240059158820923988085685285354439543572916808948798863878853314304925563087004237570646723923921664510483712755757209146654636202311261462330789984215430568139196021509685554976054851917691432535932915316738246525990498288889509726499220625838737613927480002697276041709725102705481910949536080364524392914294900794273888475267142417590874128051403021793004351684845808082000189856832828235998138960604290189145907222157732845630262784213563077928498895190325275925496831991027024204954086528770256966529740070705138235441727911155801383282052072384261941037217485577990555007527798642667684711485402378099552631578466488062280345785384660919868982548047015853484054614853649879681915413931369827634396029907079807336936477244071002042674300994997636371677279377322488317484874261293247242910732243191427947373190698953843663211663335949661330077424763880852481529936986894541274164589638251105351447211052801836178587853532952123230729224840209486753373540948972514413942403177118716314893400497497391288653135931160629802042049675298976220903569986693488941723207643685130777380021010220700765132930466052159827975795390997887862264169295834679017753904829005391921820080621614192486539202881339313439447398751011614915782227811341419708615328199281439317009202474448480341209401318343692498339085418246431706921808833524863997452549273055488773816697926025708624983802677403899614582283753282166973128927154564052930139995859266042936295893661212683530237979207065709238857280413815591417172785887700008022873540641221023388755718623853483952492717452653642702473818971647176616233940225059649962496277696462993875915590662399404231161717720766567102210423422955407102166437451183853090087798285873884668570025682552375297339705481092795110682576851373581142589403609110385539163916937096082619363547027564536091022531215176315269769811883078244587921087658302699738229099393016543518041383496214315227708065136660867121690348593559879802315855004993113775690880589946505411704639005401982916413006610252525358997002944520312962655921934570736471757698833899978114963763408289529024922851487780846886328713272652533365864437370259578964652105584534861696344826993199833800191539494503743806399610782992902814863961371802772372655352815790586599553756911538115579927580420164306101778465612247259088628749262277056984219045205295605726948322571880084078008225062361394721934030139658871040190076595855837722552842640530313808299554739740423002974122277022067507104889631595196491344428276234430006183636199434269555433210745435232881911398825445255990519800215544485281296259881787008363990603153907741913207730429963958887260921283401057537648079882534948838633676477403808579442271931453219274482847347634600143909473561051190137371007651713737271888975791597177590383961800849654340044054625112799892279539902734124699866572938223988001441269317212716979969457507962752498452570822697197041479005468465302121872724444787382297640526987986397224574345312446202969117208731117475843285770238656170111322834519607919472498663318334921066979280137015754347850225216495619227077481322307989479114285991556597450146679344599185625714877721279718228887630726316336048339021672169863612171053778926645108866070538051018070750732438004175260894394141394854987510865223088482980039520378824570291103071885331090950666553277461103276838417757012428728938920428361221355896837921622137772602006615406037351621901896337102277985606892359425063510105252100722165101804117253838342388955337247468951474370505343238802544594425221560600753789989460326486510877238196980277952607002216119697336115319536841899926449703304720856406910558824210043623325724256467493410437613475281702702027457695966151741538021032205904601186664807526692082611340483538270868539854394522215244347007662537562981254315231652201229701290211113378056611527874358014893033511416266491200017098598979327594644681956544407336433932954862640716843364301346151646975949309280726518328967739698397173094311084052236386947434302062488194453448383528941662302005481845198546541503023488099302517596112800716101121960382537033417332328576889653884434678640666850324702431117630719199137554599164508680770313187722049801082558671874352242317319730087774534690401536707104222584160271349012288764046689400435188428041632803241762809379519978585581450327014205027008353940197030364424628824796963969396989318845880486876909134760261758424881948631441686337398442618551970618718586828836635787775876599834161846735107676430593448918696231339952985735015618942040740713532935562329984495616227864639418345736021708340805537236764672514317058420812216250880751775906262981203713515864708226856684992700256161277489558298110987602650269214337932054153954417939585254750022869795489333963675950816181232280360290719358088782134564753989748999004153070887563241285586586683955461977738005035866280258724468067879292362047704109991487738635043215840043440118399916169290366710918870893022642177649907552521279217226042652799754166452347817448159390036592384567846318299201997989567955085805405395327675881884477864298122021757203251430806015609011744385575613220246516565319661903052004237308239136841874029694858953231753980487878875715514222004654684235400360683502845294592822816382280139894421216598814378992715558452025276646899855440471527985931298897467711482582974191001966679972257660220531013877193234831215760715182617152131428257712565077985298658657621190387118077754561830415155450193846793076357751770716362204970094387193240478755554042211255258362058922814672714813469784891450030314721547954250410825981280689356805137180984351306642927756458121667239904860476992423455396464568754901107930879764496966175544550297260326276583740064364720527200613360229526479331466768913909742882668780754690061477861058943962789079298071313516858981257251674968322576114598654836576270221693494403841896334645597371865074006249685557234329837303208221652519592225836381890661156352279392138599518574447533389078819109807011847390286933536230927126662666605510672708450308834241589731040613562592994263515586121816598317331372357851776956243844529342209302457859012152366611367440193257191967931683132032884756541272785988508912413434159092988577879548830796200451227057872631800678752600246922827395414432642093372479095274695602923369227334142714945367817939624426280322302384415119804112013797626621411512662219248973842119568187221910833924937685207795577855842864766023893667502889755428083284932644163479755781123381591925414618204679094355727467316415708111863462162676916361677864149450631954915808742294995881100025300163483859717939406623850255865978960181805059858247914612480935686580530280249768888249928342110071491639821906561963512184621636679689904062705295250963032378802995628603700827877627122763713453660038175990819625353893112314412894205137289026308090030894027420053925603427776570322143591793060076631022392256483910421711585247711230876382041520327633830077678991498998861436583304679767948490338289929336399373338031366710784898901528035928641697851278052918266900550038621265828093144633711601346915683027402527130742712194394683329699131577304891283931856425212006130709114638448286031107191680980661516408893981003715191545265774828742783880799864727123523844982968168362959927892041898750735018089612660463136633638468115891492535599032707458808979689998280300816891538870784920796861827803815098574348816825535109167438571348671275822957449634262674621592737639213282411251333301663543856561261685786735296743068751449362453941669188241853272161504773191522275559286064170542777277596239085698894333558825790426868879388778491750048677941566450637003832720254201301784541214810643368851837309179683414385618523421308507773181726800222062737417180698415941993615699634246886497215715876660795353712651229057577003741753354087769175085891875926418391837809996046845611395701968487809372649292357569630550873278622232437236067989512927879774394011223458144826572136049076080621197458808766254588459461591421687829388104257665855975199450572331889919190351822769964705074208602832017159983553336922290945148280752267372578680139572094645264028759407106748266509899992896248847928741518630149388913953602133850310554091061815427505990160562971816573770699532172883854795928431757116890407851370930806170279494782633877684476640301225711229839499997591760415492179488543347765781948298531315729968438232540445829243614028124657398179475356606411514952706689410258442024222205160644382776969173848205934477928880864849388325181828808305332777520556003352428082520706870440749042390495354909925120933700115613948192635465997853859759700496206518727343666475609507979145606390364791931524381926014163626601604638803113518891074403249312962739711609214857506549779316346346052077015294490176481988939116329133037575131177197103730052148055462440326831958042395401129901525982463776813129408651294133863829066814021558547797531923000886927826297591995191866658337712497020176115809761853118552154903874223031709731246338054907386134942059019063041905382632724682082155355718702756281212030606062691903213451468355898116233298172478515530726401991448900651661097603057053765863163709281108586583159600184618214816588544764163174441107935415916274331493373747364956125281341768559643279286396114975465151617145005332195030484670556939379416575118501030316249176164705767139470401307151931085024761079052266105161761880072704669031859036560649650451285971770578441645056306878891801033038737490739934228720569235776238671373652248347925607773620594505017681943541476800909927744984155846557696290272576198097522160991699502230144037118996966576682213774751701346235150496908898552285476953356774828102358530044282905339966852618235330907426780290263399167065697343826122152161046939143849540044604303876066502865118764685912449543209093018125524686542230814894561999536721483161564379845533131627920632477702319894075030382197307569028722599138557631696617202721917529791616407557871930498911773900176385167846545032057877375018616018995048671513031341385746134104897041553230346399157109813262071170220876021805721237826868164590258033015499664896486418166839896653521953284162327755889759292403981804279041977501814920288009348553356017848874363027816315814361940097889338012305756522427616422719914767766993269807725519076442946975774414435448782801595899944633568952169058980837981459711318153003635404698072340303606932277734591686649275202079863985504703996214021906497597974613221598644550934873665013746842351850266003886153809207760432966845312462732564494196801877715980428925092256974077404736277408371835062216246512337283337915841655853484160651728893160855049567151470421104405741584361196836573074586606430566196897610534137953133360664360770032911962298612204640497029257603780279020422515849622715651319102148078203983083263794033275943868307704970852411019280687728486276268811189969092366373728300914406890168838041243601389436777542588921931084091174751444997165749562187243547211490650907584061963754646205223755043344263564601509376204173447966395997647805506091251985425225338950810371223806880241198304600251584132443615498711408704663901656070304828355756024327641122624887087448302519740945820374568957158646974322858554796247406820362504262899463929326580450001540731743896730273529387519814611788273311743353137795966032680954825330801025278280084939958204671303056413136087661452629471127350953097299123621875417805741556986888927704081068097952850385837524498405877234202377953208041600207410606805383610566042723248989997606674425251247513347601096827357116540032118503924138583462895767168337053679080237153683437729518391563045317453933912039103299585273343231967512989775745490588262230089500429003532519107819881874023193258936702957795743747471597695410459517982733281744545133042941625652831421763536969995362997482580121697279447087148700890660752386041214509801433367024169589357373856223468932805014313118758306089161186408132202371592475352804962235309605938054517880587527718788264914286709843449854402448733574821804179830789458351943948456284662398559637703283855664318383994966364799178183633887237525686247984071380602632043015505004342339798573946159993516854321682177971043680563130143980644380881323990632925741474475636325886920817345763601608521938256970766884325529936165424233293366930427472447024899825588046057385783007134727593455711665790200683155135795420993493906944814765347448298622911961243416637823113420921524080669808822471043675303071519713680680990830723994344108725675870181930854604779347103706012060695044809679534972787438372052187138715795269285226125042630992699704313274786227323923288104634685119544665003430848843348833061669528384902022163891765375030268648302544136581930074515701059194474308107986197637083577854988447218852646263027019071229126752838758759435477273914591288601180205910138326394198104553861902390486208157525278401370603247462944762289838957917607026320128551052682693010865271732668941950682195389536795619570638269938386858006427339319745493724097869175327590178307853067633395009656663244650730864592549694869595010192974154163080577631309187674103267644832568725990006688032696864260037583112864987289689558977736688636548612779973802297144272328538273479755112900290656270080995602217541203739728465793140012026338961414096335877441085798152194620106687224795671093866613084929251392320874048527611300189405397116557733337193102012121814849023141975125413772321009872739953452979582259060520776858002892791078563824020067034607035319609389505580068756724155540507783205449894720427480432285805947822148082176701924448997496145251295902112411157846211747565293524592088493251836715356868799963862537199809045932790834777710626818144734652854398404678734972560680831954922627145381073326116325217770327384587424463670649119818831241291068625613188832027865196175527392553138393885274559028874426394921318290990202521085533968889727345719244325191020518986659702950311397133860348675487960882931855096560069173502327812365323669299720006786065881899694835150887376999507659009760400979659085067141420885827849152338040275765214888550107786490755297011835502409139109842937715778681633100795094581194469043930254736130077639519757518988448103101384168781939026311292883509971409010134110487923948989190549052007192213021679875690530159440062711920243391704518512844976283521883540249436512088794442980444775691121944565206415010920019446483687178182540838502627133382488193706172847751132566509231719456252694144561191222392935768218038820838748164664097146604294192833475032932992800263285317905500115802359997403668286838235534849341046018398505435509502434398922847668334154179821510624858546747701084760268041465568530318467897456972533070346734821102066850291595371501666378076550599340096707572936348478914741858971073163682392051968394348075799981152823656671673387828064223090751279737046634244805984210945028075427368762316376922217481711516565978595697354511613666088189302098767035068713413046500578816085087471117471337886020386800067676241335830978908127626779482965779327674722265922246266331457727366148621649876079189114407103804295864642820765733837293161780770896603028420962475567238591628591081747159343643834298239375885508459997723063638664834638973911058194533223145660562359732284985157080653212107074253846499578271526639904218368935106545719175607421476467616776966298836015823344062593600917630707001921548465403902637023350632666464069743928481408146092672378195314972679508924177050521859899668744155055935338617927229149528563183648751250381675235129586318748323021501902129172391983525827715476042434980323722225165788199975229594027693093640200321457989144944954498215928233808092413253614412843240213085038272061642814153748611148919118015318226432729440276720747476604026705753169259616469372431172970131306145889537470954684084769871512692191845320767266761758854554452133232352293462344083867670497462469457880309861737663547819541483421659493087283931129371586584617269818704187734488833941744327460797696111710816900107523871687929324131834839830070115502610580663447659656048214779953632579976841366320196507740167237493525413407207929632369667146042741584389148475697993643323554723652079601670257765167643251029698710602350235178985446374219162755168477247437785507872259846528204495355386496652933678401160163891018467911826231146861178812548337182040244751822493943280221222952078065568244940428876613021844857286635856665209639486903809135728993003869284944742088998470853083253723227597258917720076575619482360832188570671385549181238838581869602234841415856689450753880357583225554859385242101102607913843902159516545197717685371711957491061800089995461750482411634319116559885665884548554235255250952638020070193964883708685743218119204933945648330250984044226291374763971939348869571995446604154489723882936537630571139629250512752803579533158699421254912957850518542864298314363720672331034251633612908794538738834062632376086249939809455997940904104423514290692107248296598876078994180399569074922301429693233718999345081596520384480086018219656696311482697583569747914430768268904071961274320027838742839182239904072838633203539015182586476408537160172577388638032889731221021686538348318650893232805129399885075086736685793534333024597794250879367247837589935182677912693950497277495570344749878519438230877454494631347971963346105862709701481407424054753253476857903625662612829444705466117304815388691207978753794863140415174287216058076790617200380789983207509128687910949000024687218355467705124295184462297127373335555294235195305649043034873834165224662893942729886959385031799450099106102138795933886626602332605191915996908651527985927992291587392164806139779342475408953771783422096102793007845400565306958771736659852824340459638105545887423312287272681941727306053334390055230124715539387356931122323532747326917938559154152548104996200254723659249582540376973157155663117906933020818712638968538178064460320916866189125826917929017246326242671305686380272571827594063109095389703734577809719900997901522426141995493857381791838589084143706385278824086933053753383657546587220703221936254270940028160985804175482570771760054109700218184053616961203337579693777499797226077457600959958131186911096149985198251606216396762467662900081405334880734519464447217916618840702080300568145386884507656164504838166310413550104923561500046499336217933975398982199877809880328075338231108229019711557926586720366457372777453091719424903778687157396716810874805756308193376602906672744537589403386413314977957056341169477120333095276623872598436261118189794580227824079160718267200142627183275678117357707152871425179452120108366095954992559846456352873079576952970164080395443189483913361138987776196185993284919281747289626200685646774815633252988579203600827184920166321428314326451046796107996743743730172173095712771410459296555290407518105797109190978646707296245147392301214311596813841311123588636937847878267482980184969257016059399793258216236813131902469008102732988240467069732719980863727373710152677643404512268262294179157969228105948748434714438294345336736103996049374761194862778985437177828864823370787714172781241486624171216020450431157186275826437887830310351428766948519629330523076263244722667764751240471195238145686709067494465837592577473203302355020191486129637268638250090857871668925546773021033249662773271394406516070855318218802961331583058571749820068059312297675563437767077782571814785119851750645214363990430071032600803663851092657954463834411946666791914299405239026615333006406613665079220290246938846698041447533757588918569546987576293493238515875407192676390874790344175751715136348864025820104986048747492018495221732135075533403543446906886143030418079066292400227707944142068889938079288404199306069458509809869779995572736932088930309570511598139648695466621468461779777156999070543204917386117233712725695581087826268287385120652872534630537930173050981795656961415981097313344284154287348989884743525910462015920585055402842321515743458972390403480703238582613087904306881021057528918309400376412158306614256075600263355049950100171130061267187711153010381888882353305018225464286471164563605935355488119995762669862938951476912042684228482687002779391417231959443748091029855941378157921140122741651736205709636827934116196977769013827903688533085554155272619516255736367277752234071117068065810420690753640784621412806180568622751991759851651381973386167920903381075745873733010095553952021943613167653848389537524985837341859886326387594078023579848178140779942732648022885357098086133533690054514830480470789962409735049728774389998768595801455797767649982142303944421611978265036857686649284111409380685200328598964464173267263791649450529241603880007090023376933383350610913217380631501865992029572318888952024405105140729317320458273874596104256928439535004489073420976343689479386739382201026343343827555409565548127896128744452529067724141220060268874219561573855971224611071193346445934801778413194530875488754081692198679647367140844169640554925767313201872935869823945492547258472841449234347727453272932725536516356905823071635852709967972272213580037883001872663774706113821269035057762869561511058638919114640037015529684742676462096172863074361706306444085733252111612694295551539800195119999127704142812251355338090417883007701695100788712669294819819291732187016959026448047551818355402240993619397580596490350821503332326216732523753905251634983359391033623741538049176729715962382630811050370766786271147860998453236073629875165012485980627042765586803122500449338534825658187853192015444162071864298356314036422883442250893013167294862750934791145095187410377429027136220278886560603128773031295749650692163610940409863514953205494478445291360343838637711755078650865990067077647722155220278016896221880691321456266657486006256486235046316467825230750687023988800855678229158547993243554766543793076881653528230649530005724633345981003667598046301639640069678967289572958123930708511746784268668481566680536847581161962423922750195110975705577979378079793145658997522500401091559635174200565588415798935590695448311680539375979606802336552435414356427651637101094701996054896933061716558959938094269352328188066952345481580723959240312617887583995726823047391201039879823869437833800047125890276997552161374104573090245102148634467938304265836535146746323570123732094459630877715648264008425102842534598116320962032510943251700636751590333896394010850472787658207590589783612919399767056673358281456025043260079965232698207729000182881063019894953130952621040196537923436900129812775603550140322863545466725358335470957193807982718328044916832719268715671903813531637599003426872572097094727562951610261133189269406786531050156158168980422768056302851284246874585752578047447068401930686044654836132588101428266711472086705078248320318601452188596757170613642405282930463084703897317641987579646334159319117870019556483818006187849369639665730869846527625936398839382292481476459572431930216750449506345611897968393778272310141872091316191673621243380992001523833914140621451582770719716875369140797559255505972305780159899329592196310700749988696601697892277924455399870265568278746020377332150420638892049571706381320601401939056959747652454043618761386535465704938455630460730381161173202700760088983960648918268424472282877472733743649204027649331997202543259863188705408836304003033242018329500883229866021427292366999234418106037468158502102235543788854340605366064224690798802388690020141891264710195643709874888297236247079900853150206701193784035615018748123669800763044795083452455181523829556175530885275774082371119247302619964554834710731719631399348683126180888844926656479892918376106254468134483195472315653913717086660396635714553806945711679269974473227349090977192831475679511820921335095204908894347307292760798315866022220880997126413717452647919065230338621361106630994660821420714062995157161509359412731075943786470218400434071974623587153962704658690026877910544788074745140471159677875694634459034139740364538425583416884414378671401445048117008791227635001885162260174301463041761048936330700036506587807216278199194732170058874928134731014130019556379389636868457813647126442499127200037809750325155925969467217271138294064322637788577462797149907703475850723251301115233110183968504738334141513797271382302287386629579813105040930240119323635517503037268424297516572827046915198722380541464770156975772331831605476682598540287430677434842427579752455722429345990864219149278715583641858181991130448668699810325608601642985847441232296636667753833706219688855006032301153023658479444054856087368559957622450198466583020234612001079032702382252935247222521442338905138522311721670456092268443490427181149082169708793836088222084793860463038115083311133245348593374699562703522572199124763118936767464890756446398292016827438620470347648674901531770174723458291566744626418598194911277148633240635458502940116630026705726893533053820650619617935334495230732982244895237821679711248935225811613662284411324117616575146372189312137336547723237291662109830530699298119332894046585439151230211643850590020780500755997615794907550423849917249482523292650972194664198793517504558097550592903545803569170258978882411949200677467292724045001607824087950607715789974304333223087243937786220425664893882132632727442539448588603267426972043832903198371996234336895775355328040931782746891403583966499318312807712566073818244678129351727498266365385950189741925794077924964473741732024178377362225624354766755118903681933641271648870813389037416560517259551880926485039982227577546841968873909965966062200346455005686316911701499068492942372980601472383174463351651073256979336307790283221070517875371935693908590937315457646628607087151311053364616290937538550868074314887552879904367311001407852916336907385908290061742867796792934002339365407993272573664836911624404802401144337666324599700987913172354412654467785442332562967585891476378419820649214550545375553001984424870373629739010794124893769366233234103606017278569662084011779588345316036994223292712115089001710346808863157262788752015277356793127743755575775404978625073404082620255629455446599646993208404676299602721397714872109913114635593318297238654567140315663634891241815029515340940023815044448631104089600150229458427398204887633426677933089841635994024495611685185609564056610075666617151892004358918501467131345590973768146187812261622746209718213928326969966101195805520386061940131925647847183893373620611691461688718840665854012516603409495214604883239430092161022386081243188472169792176454662791686015362879644485622661351477616022690840765051217413480708716773825645570568177683392414300437260504238893156245825922085930137124213184185375816231729543356563291734483959941606273944772779846986079888570584146351460473900289702987475540724232389001679226106019627549512142670431921124366126658298311821419232607878091203378173591786100098877789024051601656618346825621123835827552800580872978922669811808539650763298787731222442191647183121024226757657765037851343493539389966808072248033996107666329721743384520494667298549838394584922531908033361822328547681184825393689609251317548341107920297158148907779526908046102921047651006808002994063923487166472032698467819092938831662327824888698912110151570478130212227059611015145640654905136570296179440433625597206488212033721719305453931930552621491773131019210616471190879659860481403468339835300288533996322010326398688882649839739904239809118115062222288942684472200589819562572092759524624037967333515514710999273319070544576260238937904421703524148858867083871342530010189388669576389919791672878477393690533746971457844724068260427915950132989308867617987788453041866687917113385717455998103427733411560918245582433581840448619146699986683080005400620223158127766938725073367842647779271945623830155858341946580699998137304695078261723764931709709643730219643474265699144231345849337166592471116840185833739169122277949757304483263246565064945161029925548731635191801694280636600845443728435180081964717827140074469178575546705823747361557914841626207271406158665608046426855870745090609229829254994056945760909106740157007116675292430106041553529995275684521173972162795441326780941937928623020067215005122513216690794248148466235238359329054061602478841953225293197803712277558883440698531984162072782316341363654556683433802181618317777988616747512175769266023759809021917944665170457875420233246562450597297721417131415839824525549417203800403485153395019978987481289518419031511787481385536416712065658041772879261938820694694373182402902530864654044160831558627903402061189529656305744102416890043919448037105587741167544062492085674215222287407657779649657720092803401506792889166114506784476630094908401474964738360693935382931494620994770953678392235806920847129074171301829361859273074310642407076054068635934811716683159553610803050915329222481946621496049601160148590012912449641295466380359357471508895289375617103662854773201500518593353273448826873097145985210147823071372914086177665820435499677378351931043258221234764594432064123443360121974846142178267696844940836478152099249793013143384940983339482585807586093601715934341346326957791374870568048123434488386981298615418874098618631980632694778392699926757219821372200500689085342849928600992101079088663276535994713547866264492708399901322161371623000941900785795161987031663598391382019927546134099959607407420230389748791252425427976363102241701663948359950937189896970260834245270863728141875836279572455284834706718458835997946825263565282000734899285703861932221014071855693515088782706698416127100024204954552224928234406326041164059931179577775421445735460269100927732532021161271439556376315269568639371341131709844379569737313712675034166349625225320172215145958824387344430612805035848402339240253172831169990264027052127040055198078792864198421430922284875349121404078435040609231199593425122549990165820572504339434645157266663532012735414554487350421214610429596213233061524677583692100297449358134820509697367639668207693407615041302246376702957870789763784708481226979789069541616595606033422726802933407178907937760555011255453532142985446330054199860780474885491482329727029604587069829109171280098774026775783905920120190165636466825272505682603751392085302011685394344030145819843556489895060156888332984503690109801042775253766531212461910787321758205875635428269177659842910844067092478386143796508752422566644384281746077154862678909800760093195649749744166296412219828544280697860284556634181309211195317419884407291608577222141925631786983214223910243046172950522815844393086574400132491954623085547494479352846616763949840178825044819709725260517867811149462000426120720112189103539822189510445553238974026347521199232165532571002355372203486327079632480778334239924668866059925058274002522523221898266939151991013017522784121486529341695045284594531564253602148998398154734568792734894551007578953862020179406044347164748982076861407840447157026467630465724120239173672842571651892264558922503577784336708051078423297573846007916450505309684991464773776698524100379952063670019314581109731368593009806731594156956837347885305619400795606212826760249301209023300556958303871685133795134546898413101562784042786426839315338357623127297463590279387687563893053050133470728681925998737443157539367302413910762588585108132682824772626468118861845430219803093592522963419196919981644017727309143972752183774270437557508950534544737273007434380579881996319493061500650086820558053702739073069683774234029160128165802196010390811807775249818951464919097113502118009410045104109992146767188065210928606188873095048094690576684058094383131414076697657639972040444414430284350062172576141088369955173048445464553225943204198067013568928058160608373143166025733462564636732802426337641362069894676810926503279115977385262519369328844108478291959668065655917361670980138868117301577575082134190944964761549318700546527559515871388040014165490408465320036495233461569556693420035739773581982163110163098182632944121072687133330872611438392208096952901302947189048272058889601913662239688498695104993175069017980986119952243601718673112567966571752722556197550141400115436293621050177869199030372101935884880252360097517695178537013556890791536497990026170258257214768339153315093833659901494861051592445050983029348388537309921364105941269108229973857902344082053820103954531926883988797444123957839311158031281081436801998994727819971466659022858948915828172524851955956257567435382958615633931559917900196047293499642124975437812217745893448895997718316993102944813220840115655438558475903846605288993806496334633379714906580596482357566789313204846126836860245624154250720702191161340096906485172859764497476879885734378776088686071670895240061672191291955929370470462173815924747145561610009532735156237424587684795177080930295075976924819330244285413429039616963180136090438371381297997019021208680958724573575161208123808315965463835351080565013024634072932102072910467225364031942467611212450847228434481496874696369168310881273206396517145470869872026966320626875738996686424659771808928826194193693691868852745934991164613876838861638815207135489111574284796946489865354724631281221139768274569700112984310726712073744173304068507913406810224727954698067675503379920322710234067784645789602955401998264347634802704380214452781684400389624251731326562900669884820255855157047688808339721234106560615918382764617535891476857770495740758040900670686458487534000338173730505843651529884856879854115725926090601954533603300985446359811458021163691360990138377229032835455262655727208940496577024471086787952328809777534356244216868747314840749771219367856930456447285749684576716721991509647102942563722023419572878062346772443561535541820094934055893281696829955687603209713813337407845016590097671860323442924880797407138353319416345561448201888024512610769284449000318987885061281928911097005401934467864766584327419396057683463069785844086643257827666094311036990203404312635423738498058985383000011855557002157156625429874436957080748427026914383964510680048542611785963454708293961416843949901459497340953333472023242485819687396901897501433868315362085783939645486585158621996843615121898760662222256207459605789939775966470061420992431562769876257533221410419807247995031713016204573621354301101287542226355651387669738234375079383377649598664352029245052924580949757057939518678167252964083288565731676969930597635448054321841096339321836694830390468151076211174153671458719937578218176507965612988308583938657616568631408517446453989079786422718548030870245149036435541359866178583931922111650950070020022410527021461000545333362753621718382512104242103995660938789727392826576692324636274790036816966578922505464052933751737136903367904689727436741745544385848068227066629822930816105175892449276915235956710846322654590837710365849310046112222360792866139754888496928905089308291927819489177545315437590817892066641311412329362746927929340676410887072837758221528730578208221250893454177149700028276693695175551603141588860568317393893122696697918262063383616464600927473550216058187059297585630985158992667206910431534843309247849909741911436994179911573947562108739900953043776112657825112307522864113876248714529190776852672086979619301900891588115071532163885574894399609426315801522701307669654334861097023315809709264280735070755990821422526799883665000047950451509064629481946240965877837407132925236844901402423580060305258263080746449484649559683364369334670767723061748317558374933664417252680578373895778867164433290040244791322368381716699636612968792986098321679681927822293947785185168247123110557553555060380158176448000963432082058347190484042377815296947374039333625866075186345041953579041840988923122919363541315188240644770689800424248575598257974868879589185138781388094188133909961343899735658833582047756122493256706704688563311595520610526130939244495848067636427908080117320663398294382695786394727537183843800727025942793457861388700383017110626253368282163490898903168666287889833160950681847698963960794550519525801308417164013169550449385110623548209889943967096919206252269857057736292021315285364822161634484331681786053529194285302887802913314925892166441957641539325977486348451745318422508340284182066671607187472213184559788137554739772982375876140712225920220273709445277478748896262461778632932419377558864261361747219667266233436149046759726513234961515067070983843914398425529815986087102179286159097358415842145293658118183104518158381381820164411870269342906431456726794708776691126591931552208106879315486103353362422523971873717830350746095904907639646254538379989456865144916126568857224221097743575474776800342239298212968394713633047867233188225062285859914439138195934314300796169259631620578974374234438254699125561253980249543437153668612089162997612989879294685303631205114677826434294265510338796259534247716615611404513879325247298388568125130297729752340832780512466977151078941947953287440498171297744209440097357700652002495576921755920524805693322626869796119078547376645749066869670938680471925644104014823628643324948394692931943891007591362117688825579488117313104861804486515158256796173079151412774337766598855179620564100002108426149337986245959303373108219672013223755047470299796006544993938205841393926884952249743137989772052266504643022711391551222340805780811328202437501214700734241315988294565160742132632156911977537097722830212730617061098452127216241662240596314458777046286464214000011521695005900441958087136709204179070337343455588023654737394587490387056193568838405202719627867343605499501791479844785336045033010930729261539524105682994131130340136088947501940209033909616066640496045462471398035172924304843920296734505027065086379453498612214394476436765341936402933489044323229960436826606355086830641497900536588523108579685402714798715348559356233076959659750723662959014169654011040659411710115887025387165881965439494588165079527228798534314575570987621153019046129714465760723520380703044263571857673983320304375871092811580852641360619592333733244598938540459164947446802266996343093356690873890789571451789323298446165822772251124042015787522063956980008371570331454019730957385626429063247651556247321217255750748384313225818563941337666577596547534211083363455140750583556859357403936351419787649912421081833408752482971716153537002442779942547327640830191466583851360114642169583402895519802622440100473337816999391908100651736206733081123769127129737319081279191797800210660708455836799419335654949338273015310334477537735013667762894023294941844566246657375095163346858629298928888896983012398573489829400435886667739692423473651510880043826791485019562337262977780746998126185703835894155548460864148912191383719228521152780975781025731480688906759981571152543625258004849817570468541285185246070789925833370645834404073796344747292870392052706086998787351551597998044976687843788453844111637413305003874712133546915363282963956892899270896541650293523786211815805299885927039458544764961471257907419126131519371537292645308720595161612069945820976972871158294721778907063124631187673455303278874427776710555690506650238156219773252335030617833276454877195813477971964872124271483419488227959759302534902837547456512031110613131964601097723633935802684109840091553460805437026498779815895440995302449569862048246556653964021328361337990314733411688665086577067198299287044236628659573647640548145310659824830103467360234097369627879531316532476289975930711603834673595177966837696065648448751393610517011275319459585521947596394374233818825367378597810626050407897473043631162221094459144560170030293596095465853693907918382017974391818530861084275944972799871322854417425723088665362890661201705620674290407997717387030739988395600742851148999525692669354077709477005036056313699777420368814455832601107317400518710467580961548497133444427390956301645767365314031386710066311465476508627316397479059256036205785603439567132031765832584406721237133394502849843311775078932134841888075103199666103522434679442212617053952364549131683514819686981483660973344474491702281867343745056025428942352041012147847435392451633741063625952591089623350185987658316390790182647900741176005991867077921134180778121984807011541423442707361504403156668190499164161758547339642160598843865455825853882241125764125286746559924404185814116186658178887400933332219810750809588877366720946777143600556217409387251143769781001825694299789820252967004770353293375898723774677468199711707646702886806880552535834206333747865770031755157322230268488156928864679975446880426701835756798945609280155926006396125903689490220312191369167683629029131036170135286271520273063174636604407925490354500191032981804696817264338825994511546102228857723870707732348096996879624360209994933103420364701804429215578758913770203686035219432669813499486476765524192769263187586347736076925628466539780602787577036248261430805680906078092064837010317857499863219814074033548929542929899951061814243461522758312408715980975148194166660618341912686589141259614802878175428570812871134000659542391727419168886991079112373450951922890302454435354503381731951145599560372587314303959587415352977321900711186465830244423976731590342452093740043756991984251345392883636263406373292379890360056221039431652074920507702181262635611125016243027557253167659369607184539225177545637237574507321667980593850806248442890727944117020305897199653919600473798053259213459839982025308726977659584907951237082037090509904848521307754277594597422167754978195152505030099713846342418278676885206242755191926974109317117856086027573286199489589267200880412396540539607566954755735445219272095957651462116637446733421337014877120242076978219197099285503720690412648966766990508269753615195022903736085824843849253964473419801671328160307678266986984118754809759668274595021450648762270391615913833400374069917586487867817448654372728243938268515180475381161463038483189432958231257121408986623025939901509721781690753141583842384949417177599833235748505718113191153661013524273073007498966725903791187469875947497036474687879961667023216253267234680273926057033407282692249493394957751359799329619336068181969160599176669776575565591740003663744756074512278912684664413549916007845337717250763623034279702096855093460905918735453350821021126179366707405825464530562829022570192833264007321945271491274057697869831341049099406281047659025784100746361817320415359748430317171546283607784383484482234306761790417723343169703604956478158718816918023876994809107501736800085658182630870145185545787493173718059195605107241813805070384139652894339963317403497133271438169077908532687914799519547475338136105879887619482509424315634059968504960217997686530030330618989969615409671475965590586595985157525687087687297247788587814741960419890186536227857094434259202837329811995238164285001115438362581616522427344139690413402271054414530567811002827705743035908188629813723272693373651295095343570560358249997508216840435072606399564614070238995856161799661576293105461788031399172035578407647887959449644740397943357133286962270594079385114516621299089680622845252614342024712542562469177196635009630219176779258291784635277012538764371339692875537984954423440701724009465631179046641030715064457656399675746833561991396015568833969000313934034239523525401903175082071101797969717120212677059738259570475294774659605932678419639455779664873606673446422423873135500866966185643152790277020847536988957554542312784219784576353035147675977817755423640996479140957641235847241964159794862380219076714156190118828458123124932473139805709355710094640341040269069108856376329625609956650823099529191160069554784714327888595697179384521686180673557967428818157505893213846246870902707365977957725065923621298746153840177239577910041039233950051503017487035966684027881718694227520242301936539003529991278992103297767258983377336281630983069774135267426578548933664732709945973802750861150445160492096597280341667469994503429108720297895913580793394135411234980478061967435673233251011804225913606181954931616110477561791476930358425185040098793735860769741053785208532042489651186621893884724070859469502237523801476439018291658389573709839396736324322650540305056834257613520998996033005547958407037687749585196134060947089423687404205039355276855775975332748508180427726113115623016708112096698895130248344403321104557764237521286687458832069551452169125487390074954016080591231253544438721356892338302903600424457677093949526810332393679680464873009374851796486303649816528495914825396071044909257114370569930479315868403707280670352370565320255229115033135702877382907490615532788649122076268308170582873517261589759615051114914483535846791174383316909741720549317454403498380913750880792280386960951718992693468854444255144637666584800698684184003059709709616777051027709489452260865036609055155629110973763550949728792878760261625111967866177807330028350774107608764939660026337786680630826136811335782413180885384117754612421989172675399263587001001386829857154267303223915306156717362305871439173905253809620830140455931224458142562239364652407070016065310439258562705613272590266584654371657837154326234150278141340501423175654592527132582259801410124129262230482161880677605165386310141827575596175581227847111566246518009126821399690083695637295907119065498304246749568783209947471327889437725203848581824816233902529820512659357664686089233352650157482031562653228242973633523930771872933842329142355698465354994888043329121044889380419736997738153693059968015985434722925416562196939232980233605940038985024532591861170505735528976146838421723677773272623939408755975865396271413756197985497908518770643875176898550171513550662702858920918520994817692005562521499198196896122555006579896780835329805298882354476466757639862294687743384123943830526881894794699966207880026383320075229028754494501313367327451315485478213405607699409630769502280631244781011283448115923770093556610532648308760583692351760249295732817927552079587980609710416330772359592161081832366248066573990423141783722227984520094283059738716843713258814259815529220601343946267603674719069329019184737286478245182943144188225160768727093969968098316444445598434867897622086367519372501748800924351149218148128087899441379713471588333097270322940718853722111288339104262980632761238580540949601782064140986604609916864613644035293104485071840727418872877388895452359291873866705575438151297604036296038446984748305176230385219380646670842222295846426762830960540890569102391412492045375674642240994411845048105359308895281003330305635212563215385720424054285529776867521861648468399389503373947605857231326436136754040546224056845064781421688527938316083522933007839165822320510823503443335790966783257204477957046587431943602784157941897859373343194783206655461747164520146821552079297204432384290874764972692596716340658974534838926037215013216475305639560266108488570365215301802563641889287348600310684827179982601494600856291532989472589623270393214186028187959286810330794095528896780964822278311546043278700102529311229847145819871872427477667103885869404474249589059610826905936771856103504024566434513744366955694576289211577122959965657134233073468135698008218934167664090253639558780128727707686781598061517655989980457148615270558710594745420804749825878200391427479805383194821933466773675029175649205466884314209967652295032484687884705480989838295777140295024270838576644541133474326058774987990570023529873907552855380911430674585631482704827505310210954547426072552457531868507439779408868989264357682844183927857291299377579460082628741407304351693016846020254436482921845188200217629374872441335997590216600626998503726939867381966840260474375445573609995778035439984017285910812782973705533031200460888240609153312656959741294238032494791242437750143315873586654699155410429913675769263334832425898521805601904055380652843654148756208548817809399813559435663632079069000353148699652917756731489531741683213303736007898966950821940691769118137177989675305414763168005672277561249339123089951381172926871554761948351503021631174577281203191902957500370112887025007510742601398831237666042013936791622278677907668531899905060984817003294964650843673779909661908881607126280483072603934274012224839481404179104173605210542889990616290093189747143755621810798957270499704009644707803919669318998945240112138925971262022420254806016569101557541360242056802397989422982520661488928469647018533917611325949433805948521452480303254410443033200206778164252497738857612527409636044323532915631457554643064617794351663670090965951504931455610655730921341057485538700297620201981031814069856896601533922779526407688370050164692516324057235466158235296355379417165105384661328406220337571293847277055573962181474443638476224859157209509789200880499045100994482312778918067503707618388725233105657190459489765548761744730880909213124966825484752837658234066581258920663075828923337178228957449520061286615416950592671095800773434526142890716385148938243515497104713070048765039560281352287592955006292195058809204288146343782834690664059429062435318268866518437217510434703331193782439399030478173150985879476298107291061349607568598140096469956931347858635807583799573514044692559787488092759430844392381646506299643416931403819249928789001012511454271409540845052837626788973951499058592845201334285076121912816934357701542056647475705588287221352238621128741911101797407730080682955528230575599402331223344121653165116826458338869873170107677117545244918083419934982619350075844088618640274420323807422310959800093735303693402698250554520263612229576968127672444295892502106919578982828754138591016221576509523283854048628032478001542800134898016532867532650817138519470014907838068411128452286596307258385969300353135108693794733145510041185878933499851301830793130375365180261236119719253388432567880919084517733167899386661280306249938208254061348917860136605064381614334178184457588340341217660537849772988245132005982035422580182577161030743254517075704686829537338318686244557446745009673780306211213909839957943110363525766965891541017177310164675820163727778812126478963128992294737405364731068450685483789077384685704894194032559989186976450632315837842198554557819721900338049740100176665028906385759489658040906306508474204832064155126422010051412125513608043228158116807449231285440205946055331267568007125460278334931218596797894379731323421351119277369121143102980340971389848358206746292129886459971930925298203887544639685351295173724525628119549359874065988651489927391203117067539793047281994669611536096582186783891775894282441231877755228733300659512845130394221064800460166012946190655233513443602930254924998779665929360776169112451001424050192981399393578590673536766876394256950723127534012385190704839227154051885726830337981342509589267106880170790452349435568955234324565882902368307131268120233194107034211084179112449043012766700031683260319828989279454568417253939422112384008495871983860825744553031517785374946619420954565511363870247031675866652835669365048163330113573876197346218770143569832835396005079230216819496749870151807430624794055554065409407615615934606923089591156739804392612904054182144655693700307584723532771560521991674204304877770522449815012437068595616106026959804907718672457880891165200072075424405934477406797321465479242956889753888278550690794712642584680549012406597130316459649101066658199082322030561248125901649805443555065563143706088662604659826880985061817812649724264453460019719429280349882252870134938263124494647988302099896722060562031981256945128225893001957374832865784307955495827534896885793875832955074367806849429228692566873468646090899967035744563642298305604835869248976922985296643253877531641639706395176628327239745790314598852253341063217546006787155889518748636714671849358057144395355437036078470588769735113735920894628342504372537783152120805916220715926964881634297420419131750399095363520641503940473288484768267517324347556398524279572984048275028298205781867514715667621503489394048678355220411255056057453287901023317069159319847400417645361664364647257887165230112162472483568003078399596783381090420889860176962453551297734314151958770449594501295944007440932168535241744101407010715933466643119193547037639168697674375526877577293191855032411192880927822274644574522878180867996879701633994697572362572030524391279217405694403045028346061996805585132159212510486975202882742574180562965844349949456840543505963988877824491576328150439388752391000532794454902219332578214082455582908921600605239256076688415284650711146475683654137428189348949434916127234447088237628757001537134702453056663969803211685389280623275253453568958328368992399329061179285256165652203966023423850120360048209231639647655170427956264864583066097565994891256507343522512390057464128761168731056551250234836895223944935827252514180033419531680407234688446652427224615613608083453283751300813498129992295129915712458201109895000481945455686396683944188815049471632249898161892185314646533298860238936779752215938921253788061251642602490625783016666474670565347776541035817336831550289509762563750117194319044633366893767539516583184803113875287852818897981380098063469834985965724487545403228104478206594767226561536623764894982320826954309166590174383898470724161547789211891935865684859704749564444110026524417780208500280905330826978833272771989285925591077606859757986189676418497271180610066202235595798163603830714069096087336227091103691910015260206338398261382396068757211965418101951900283468521632304699472306226702163975462332300795127530161769419748274256474046478978047058972943173742050648013124597881726419155149272772850098159416712564483988319849755495344802777270033018525151038289343304596787739511332812234271522381993205457678971473233928130415334673796600496315084412205414838510273460882624642366848636838024111580151695550580771290069674716357850565114368795094856354641714688570807789905718325945142104006558695280442373159507922959221992545047675365495607785967007724282274600423677015665190536585403574345292613815957721667603281932308191114124422102614206151190193589743755350017685237356758376655264764783647620415256439554565795363918386035820552964986268965865429053030022174170297564557452792318547825909914773838605646171293788343206649988223088633309226388646150718788397738856767629383014598143038960386546911752694238604877522788673613961853676559968977895068464388639747741558101731208477463804835177351638369366950485267769586768721083929668247239534140817334106047733141393113023368354176512937473124895922179938370471996574414122527618044696858456166448169239703752328808977705274899873558286553571169349224443850656402040451981038316208587216950019996492159680569501683427299583317604045031369329242802894056372308990733069549729670679666470911177063295869383472997494835125654080262957680967883847354211867499232288449832045696022145257790328251083412003373709323059219010395634282545119588346201489515091053291842638225453793955305730529493560807758802826632531300697308738197765974694731284997776621503735068967207071527996993674855167800436341712534772424406135284322578971800578927297864669014495371989578483350684320141393091260617059506871893989479070850447092263556406209375230989666658656243870538327577526460612575573459746519000498639137487801185916236352469746698853836627356047647337199739693392201168262250176851498220533962296387255749341898318681362349638883742966365926539797320896358494899196302228428510234533784063372695002556070339420284554692342576736841108697878563015592161645402770937673645555510332177366547101351220050251292816828523740444920790644934912942064874244422411485163877394398267338006612893602585964552000429462665392048988567903118052579088125791771411967106796471618325896855088526326217787290382808078155063495510712550291406145646990621622896838599865504996280181141224974664096758269089427638836946293261970471233182003879382884036403852228141688168752148651887432611007576568569986488312965271504099209510769648972870889238609668032819649919139487490965763218459687270134734538524396441900031640557316209347576666273643737984467689811067547031297967881837447414034966282447283276486069317292853428064118493673715427333426863038557620701350597093951694857849964798900448979713664161779600253407722406739879890864377045456988152983559355996137553532828902607282652753881968033202002012311330558854347799345214352083899883799406685434832842842172691178796271526474810219999626591177214591108882952484486196712928260078245002919548469297474197204012249814760168294481680403879739095623176088158208901566455837685331783149801028857975111748261503043053211738874355395914470397833808760353693145836632214600419131531916912237327172267999286275644629577013190259453721133147893011683630955700157829496669172718029694443499486018966202552586216613907071170850172610681006126917554801710622359424324280064374582181183831351690310580223937801847336700073663694686175101220555320760298079079320179509060083652604885010521167587946189767090100008607917708569604603277583629414638726722522259293072399353361838854466093096635419753927515055216004878110485923492381326406518585418015371267042358495401241575900745418944684851384333252967332304894061560513650576034914976811466521873589059151646775870088355306156415136140082722962541937416167022882810289522385123732771211314528950184182203444281991801067338670176707100606799819740689684950206016363370788171859112908666789185880067981930670832234523867034135115862581578672392421451995801737684886992251039432348309599284722029121265223031847912412308523036507919073113733091331558326279617227424499576979941371292686451081147639183341800227773641284834929929170911148880672526372332649412699461625635990829428961198338559101326012345238813663054113460022143596328129212298789052813092394553515059140905879813416995214804000164474532921698257346466682241936981165621063222204153302357824376310151099775213659633822467441722869630984450035414216937994480215446407992660764554001292650793458360631945789251222720812670627066957727755853787903775301960439918684464568935204630619594642036609979521406462794691587466497200539304752773328183363470906315551713041676893328207506152656752422291299161771380650044358870042094598852486769623687080441840229132664797672599029495809218257460266575492222955736368112519350094277908318768413250099852364804752594455246261861334918686297976314902971850782460925096548277656645412383940125806445909006582945433863665614466036611388973107186837838476999217206982766478952312789456209353048692885463187664195857088931742565147038795202192535757434534350632155712855517193821594412809125046766223755418037523066322612353263078600809648788913416161070194351987637575724474501920137832086426237354069002899854171015058553776033978672108259348174979869794189585492289152546304862443946020448392933538636287617378995931841304395990744350859138045902703438568600502698797586221019601926423299158342494274126286340546999668604037557072476598494821938154242337735452385906901272901668687408809339761653061236549179561109677503683992337568388684649327825346691574359249316642087462550757061932069401951859887522806377823926666024804155749880262862552580017820263205144496937522619741120348105642191975357398523978647372014844790484665334884382389706662282267173567748698138505133832994299842286747445535815625661683012968256176943960737912557054414286236094384155836674932213849169071180349621215071670886577686539900719184051125615432788100738067777036605477123698906292349901595979135831037384070103084319639038477197002794959153248545211310859958439970104115440844335770230876562059791805867304403413579822037573304166567143965852010516525180423966414213957577223808375735856150174503948532271898230028941111742399039613788916844970037718367432586798267230697186296819146359183965568748806825928105346144029863214684558751933714947527887571265071889046697934696744886328589253623803502725484211426564980554663465502572679320129684822124522583019902160075815840234841798406105600419236050861447444946662673745377662956469175452722003016824237296101684711517655432001625775737079403136021398262151980491556914065521178702860123849097140509063347748019687906275489487401691967350352652421293412753158878221132212660712514395120160298461274974634527988863820171122590658775289856542389322803616651517980246921555185139140808399262164367041515842350220121077702929946180108042176420941100619153232388806468495793611739862313662306905742974661687791856529005502875682365805071500926384708300597437305308791707922737962158294369219131221736272860199839638369897202573042919161601283922989655241064982550039425421395806945165227599265131189953704816561220956275443550289035002032097095286576865555446701459132340577987622802378508690989071273210740005216735280622560760012184637839410980194077348159568229589680552071030157266734619406779704547105016122898056513198385020743158270199838808065100399436473582477985936517590967451522105944390618929536052582738753430804736940122509621995262436796109964444996800482554006375412769859392723917409095927044661822322960317943194558564815089712461587593093211348542847140411642306463476851278839666113443109630392980536912449370628821449401608475000750841828296310075097718966362662995223221128600448356681028626209869511739717153319302463917213054025018817380852637572102936234653560876009307004742432641177039690077293695339119245227492812955516264188376039956068984777437558266850125670868693127672794390875655724576595485776971680931081809243824671138962881559417564205537003949025557151421626269234292199724979968571915983395706354667794486498438279149334448349423031127250313223721229922086398151365173290462204305730945298084007338547447159343436106793650238446784582810143767929068114921602859667354184352127467407428066422080004067344052687300257108308765962907767226197167485385491797077771711046425787897267482304503891260561492247226882768497119686372527803415411125819628729509107513053493988554802167654149589023565381807932207498757380729845643873912637543132779621312328048703642110614091535901440749383192080361962565725529719773807043180545030023476582122892410606407461699928971366703852559433214485749049296578171948733986866042540161308669101459805890380125423792458372683650641732172572897774964453730600355364211752773677462346318650552416224820005379505585518460287464499945988343067695142869926189770229815113387575903099941117271798984262303202633326903982426019928145542546587394283517179292331031806202187914610568754923464129833809332162687782385344931556753148169593442192286740133063400422312579586049773440891457619794795425465652409463386538718012620789197833931321403281479900035137925755401832654468555289278234831434769869407300340830727419580520364436497420685709533990041837362047139102555047669410437577459070969033435012616729592611759425127367633001928271272091806970940295407854924338960107698762531788905834707053903067837654748651865454908207214191789879129283198446583563468405034258694871928612411046859140123540829972565863446654388040905199915227042861603444836824677815949658568195921750961875038747012401798234476031864728820069610146464038887864980030002251939783223040100441802160066122108708021147998022334755696823600075025873724574053107436919237718929662071886366158440811957310679051524277854924126752857619740472626229197885976619184708331384700022589420735556391059831127012932763346651063740765087908688034444306335245715556403286179600469094939501509040599566104958912469101116994055384865776136789031384510304683332988406762712139097866019078836372156085266084747910104934745436471989881098505307827721046352439922377984338453765745689116636413875906020563985003354761651655542820735040480819918275452445720766854745031501800031473591271352677619134943775500408153531706421223210321238321535957552543146833035715664765877625213774194489529975156437210313524626800344473144133392495100189195350803977952357971219481837431397639869221558579589926194221667743144625875589865113537484803298480979102033522511415548740962186310247730647653896236914264831408513153776659088546697063381443965372365479734406405389672592037859562282948441057832701678910083854970693972967135272531378002346609555580742412072906572268215124351512097396940747937842449581175265495170724847318160085255153388305885326977879540477023166862231898959072169314529818869840664885418877270036463419540219891591251307760816082885326612719703122110596295636398853953111535169363197997141986434662123596885306372564078223434297238454265736593183393538114078872021507231923635508008316344553190858841434918075349250819350482352007424481598963182036886852483010302154340743296043929214884007993255552391313214821387377503741175030315815568201253420678114454114036027650290332485012418495897618705547186167312418802566171423948627886571682153503479308555397896498864275153184547172617746093796524527254323658674350286521036386080556999089368421722680180920723184865387717036322473054774499873813309068078056651164061444581036623702224159032632975682776289688141490212240774834139100770190074218714641719170853409052769165965565901320826784736380670268895361935566994439420774390480867984922479295516207365670439900516006693301305973790329267113620382542344175225988362990205572567312851122556586400636258371223328055710409985212214553514147053609892272367565551981812123621858508836655461926770212914039936544429000554736178790283025919942071062378383763523143141360810270517843053677053186687390367877546252766562675415119185755533611028465285834385726485759327452388711023387811606187222296895101735893790050781053469834468397786479787563173546241542836933701902414942873225173980281337015201286180232376048074727254189621045319981488823397359235893667834141013162099779023153393496026721505826696547674242748145004735814886393424329090492193098365327209847772990664829699960378385185722356892192182371326298554675272166467189386946707892420683879318744473506236029016374406626466418047766057690437786670546911113233217816852836170513381416280904133976632849127216863790685520001948152935813165876774657802508702149091074679574937105912059426475209740968230385566499449910221415001395681442842145532223954904628516354610331677789083567267981014506320299728324402638521121146329572036707041223263939562470878289758137966858968597587181616283242541075171297597140998291704561683975431799961052785579362454516056640151974071651437335066892599988835362561066254144045004591561006652243524777311162484749735787799417989433812866761163965755915888274131639219690920998650254089212289547336623283039518564581262982482079268066653551522981057047500738103604770424729310020885452245596658121199318848555890292861992142735461276957820878693267043264608622600718242000227841937453104686271040563251876925888153043393505904060151616886726276259231109360699081523084531573308383909504025425306963627644665441347533787132510486628285743833775174478514348221290352757382166116216193904165800083794000554167440145503198420828725100633946842014422550908361476562418852571089768932965099453643573997363573688134519437880099473922415508661157368899986387907886927677069050280402244497766646129357298600891289015329589849609419442674403810975337465364646165087997495827803786474247897007852866469533806313733467704261162602130643941545483863203036843775831941349703536894731924877768394859523594120690852920291230310208164400026760609779330811756373634926847503268259775575302679416559485927146968010803826332068203538585471776969041714761059851990239716352092379662706158412567413789141233602267481234197308530685599817287150363353791785427167660821600009817321191951477679401672570031477093985498509092531300343350816024662276477180164003391543067025570804137758798090997828678979103355540789363742000192157660202805384341494631618409881694021581554486874752139994785515244294736914214804276176558162576328742124681965658359840232830947948949597557471912666786338844407698107075980923880715024227788109859199753476009676620767970262308543355953740838928926272863565954865803131677073121626842179856826663464614963171586642021191799309947870691653947558009490978342640736411276233565737754194117911524854414710299233769344354280624956096445125402903231123263886025233076569138610788428877641076924067910616333482802842724934568786295616951421472972079080070350588841777622408320988910538405430205029168926614904421350186081469139553959260174867299117991487461692110400377596102531315452897968583534055006176766526660465909749999712345784181981644909864474241708055438291086910155156430552934395927226559147065137653849539942049665751063388881368284466995149511032792576962077225475535173757428540901973804154487693728841310545487036680871471708847185489398577165950780962725679802176252720020901399841311432903763912388267080134920061338732573247929670734196470983532834283327227505881524272207232227697386809595326250151261441727364850559017834158899923758734982758551831343752012307508444925538584600600948298067494867881900714331938021196697515915221281805350451620133134207620192722440056803345900839519500629048487565059114217224285129138671590759203887774414857167190031363876176906758114971527279696999094677155983724892634280308812004667106220155594127450109338808778969673358987161965982805054134370799650333669646714575776656903156057209947035381847231748257355987801278001901922653316409082261574911187337490154143981215383260781721487736486499506620146132607426021944822572512979200032402779202933384628162644668349587789585591929739947208866907237300095231055033055390412065093497095054262630098829186268418019495337226535332514914247869773620625784123415470927352689181323407066429003871782229446481650024965332592412186867860619618662191410580017351033811664925254580134931460344862490687199484111742259017132558408993324957962908916492984139584868688015766552769207630297463966565518810446711026288740548581432935417314243997579709632862066370179063970357906573099978399981878009793260315060217748398836416442328083142607801999590026354365290389635580272708178694669466722570128948402583660754757883386180810006605200269717151967147470431078226432688838969248436308718395705921538409448206347289394214697363255304001839233509969795023881058454822595548744843434594479568766243596162375227150461003380155180940327933928835297512915825790605448142898672294911255834564908141778804140801267488526099219146196645099871379731303677274458829435718200556197401002185253091690457568392122599564185962630393215670731346624444414925233576636732439731037579951389391960312002848225425090947040792686427677748097213271067936062885180614113639216042584833542478118590571283446704188836438376854676874334245045155945977249617301940542755693631144282544555303517392364628672409734923589906830766663028310838348372706583547328571618050612694009535694416838901515588745633018344631052598780081043576154104673472462614105287070055120163422110926135747557460103968184897899151436514652635099880845643122480447167759344146797537170555376264277570242549345358636810722375862675775228029539868121417383022769773572402180448428306186449608711955237396514598619613600265923153832952263509686500734875767033114481968743992671745721136199802615631309060827112863144751829842947915077796615845857783279511618652853739850196235747224928649114327897945440373615621586103221725587050147155962569012160781782833837570556050341970426235551353652468516203704018840925808824159139078007095922725534709917788722300981764415866774688008572250704597261561356913190762943235385276112249586093002112537226898961429968545332341082307152730057973229697711722992132834455137286563219410248403970694258323096510564710902543647741104538399955792928477881655739079049296882623984692129144607044999980884131096843944598820585395379703219485741117234881768966222327261049990294489455037634326111832960578572426510097438737138425333159274215464175995967894530938411445185983582059174861833675894956325038960089468211444683274179089256416565647167657913907234778729325644671607754358254410747603610603787577358071663997419374183221554362375013009130281474561931823935105019298928992485811197041992861914285288512004486250789499276798558627908473210511608644087977826993524364298800359953380245468932389463623447438507408302829969423343356770576405360780676758674482080515871230157064569152320407099614743713129507286697661597139947406961318028108226854142296619914030070274085200101849780614183635103952056759492782694876525740140462865808566294276933286918187425633200938143639400612376318579753320338377684781833926821386352413740397196331886641169226089353370960852713322746741428185620583150301812416267728880352287496399067765639428567215888033746507316552909216749388974380088869115226821453412694390738766822796111398226156179819444093942512093260338316121941706434508815842717063628679850911843163051801058251221795411809790437176297248456845961117494596047071461908219668739601563934307554152447662589728091810506812006932182144445476587573749938525472489688475807454836800836598803521920254222794548151933746418435854081675736496377578938421521703238473050507108644440330845351533709391882880609465147383725626067716601888668836897277328832973117079061753626833060163837333207023993173118669097400908998760094996820005482740883742654704583604963569002453911509407655375928077155279753793922016566725352540936831715492431997589754427102456612504913139924732488903029165720260981487427618265744638207227957749161142168039086752937842608634095646188068318984526496995014110567049977014281917053994489036200614295089671504732477569153657538231964338658655524037864176000100772420378054088463028842157231229607780979072561788342749597642988463008239898520507151461160585838123596237173133992283270884335330693394585316545700800623163590896570915801660749511803919781050352161910788051596511406829289063508014065264861377735189647971143711025903896277236462396284737273079949736010140479942624156518580420194363308416820004261333786135002168246338026465874800630006927677056140861442985434367529060440135656149391554667504187429926952823847536179190510730749023425916744477536732780627509046247426172296637171213126884893131334162243015146334332696338615679761616294577386666110612514642196074723597751208686834645366083859055131673706012634871533936578628028752993232847064095338316991340332020479328767662851784339590809099936310201325728211575507416752459051859498747891921590173273595107023423940237008549346396086222266217325973641179100067006522783448207594926577840559549753986070322056647933867973736582458442667374455267178161154474813957652655317825399438997839786361067528894620570203368557823334706845097282581050117820709139458671493630274462618137837869932326639061363259849413198313864889360728696778510280210723564680209180947048967871679576072528207904808632377502754233302157634358354553776277877003587386335141433094487616036499242328401553637747348069980689188234747066304475204498351689340910824002464599778074784209722219731561903242555595861275218238647571533706200215254807100852791254295302375146895212677666428058642183160289434729547440329318692242242373529538148953499144595850836153332485365237310426769555850510644585510235272091359357089004407789762204072850376068414964942583627176919014227462737661611609659377494090205200137422316977513229665782732397880900114997308399634437504578044099239695542658550613205992452540479647745942026749511662305207699431848855866773898856711031197366153904966159022392855006923033277426016878644539529952326779270144291096945244231755810809533178497281926624161398170183428119913107756658432185333900393215649834282379687872802501115563838534973436149410420146467709822643736558888066926634147082975425848363962049596931602998284880851053728401515219648464911984792303758007560157714468573737363011005377143466174950656014128867869639333871125664911298364318710857008988690057786695480798887289970989269857149009793224115483849633344909283545576374330658255002133710212924865011429663987853587296722783141440473624041124093455860160844078048687454676729896250367900122310748085148999998040308136557935975054388811828792719565008956396620478908786639814879713830484786605692986472819157691183451401950351790415857993026202712811049154198988179510492600560943312194989313082549356135581919364732867800495209689629895273711690551309594666109143127572767601773376678914175424239361975713236268246082505802075391353815514092715029938922963333499985709113596926758213362469053318359198925429775341686954803323227208207502014569725269502505547334154191989317824110088450888348552624472018164129187434950331791787763220322166868334992808649355910768550295278622128558789907469224331887181505099440672761739952643684427665775805813996015491121379877496144622931372508653550627087875359186389347699820265022513793663643486289613835814259623777149668560886919509311545150379349614359526055556500026913948884440310287352521649795434504370233265191561316399124253209708404011575670799335477804382388119043656124050823585083387989811127384636116649055802598236269613985762038120705352626490215155842637397415570393060841509868957875030561441388536511543096989364730418490209349387677219611212608366430455085002825041225813882705266855901580833535104332008136328094884444650971526313197956168120670995857011229701419420622040539129670952273006917106315668803500690405500109190753116130463225858283191908940866417502119329065065114987230866776113851970790622772252679071549521444605885594568914681938749180660833748582678618063062566443498488439874251842061380267723760927627621352221789706619342499400361664730779032827926191207804476111499340455018388304130570363617424892283444553624356030738052762287092983158712444265809171704303038593953134983898067451680146212542793417466501407806880315225662364904759749197662133090927283099775886033239357224803720717789231635624941759900149562946632575687524085456030483652580009976323223667872516832098517375728619433654687380469847400903188809869101537465723740488382915855894855924348336847237979834309676116094836811770143685753915711428928262845850620199711409611100464527173698444847902312064087841861405330781786229977537081596686718218031752053325578873440499454648500292783577824626216268251048181888676383486141533557406490426908351257829422656337859289067767019327828490115933755555523983519266194644011020083028273663471969390033601579413533687759509112206488031488170479150392011038577419156461641643480119439718103735241836923455660250584930535640132596155209005849472892278045606555598716487241486118599158811033319638086429190890349777360734715266819547158282081157644342888448451382497774807842247130733139642331853177280176763432936610794719469111301087886524098508904993957693751902423520472067667647526664865448462282722634810001153168205087524612281612951147333993157635781678843981233972911829719445210543122983541973360223681074841520303298444829955555506100990284391175337067369784913452387627028927636532115564059895815505895097532131370380438254776303737807152077847562215806910823703985459638946017090865245184948204196756104216646099091784422306218421604878593993487257500006413584627530947598297202479455559283921537616820815100396779089221091391622845952075350283951666685951524034895027747588903223241499847602116816045030941189729150591610730620624510494899823298467014915014162422022134233296943280475771006643327838150670508223596944341547943536740746248448104486005103547783068413157929923268985256276483359765751755728455780419154459787419720939555342165064561745823961113483324144067173416190849424707741940142796659258681389366842640618041626144319405543253427056081057416819744343760984179887049207186997704693206853822069695658246313606352793695806151940749567932009201716973455871565776078208172976212206455264963631193151826188374521821803405873698653200714398896905140216112691158188873440716600078928500067033731664278527014985459865542443410057636096967726033215552186187150639990829058449036844482973940011513437927773854415959356781053768679481499037956376044576135165397870292551027919123918647944941948645474422985387871837914449759061982268286876651278716052742683898549585638028664873825851735675207825355684306920979007956505979824432844491190506558995433639324462563400901938074883538875494307938610819414416780980338870626006213308743516442319259066849330035514498144136812303159100779319680477182485509302313763058166753603790135819258752512961481058441623392737641106405594121417196378616500338359738974097781532817504480248535033217102861012839585630193458264649892860892308230045266250141006280483396237642836828651815121270934731348420943840675058887568148623989356141570758205359497591910504470762185881559903228949213674188447838390609284121322487321992229369253088576614772766071518537543782837015864058376965693177798778084179257609630120940806317367178281222497964296345825203900256317141003953998750632542209099602820571572614235820976716763181902226973358805212850995034844047159988408829471118400917993334986629989068662195970338459342020587176547498319657614345342175219543216547239203656491692465663683852080833397125477514406950826869765189643097324121385499984531993154374104790044828457722122174839270468730732563087886634808401267863863729124249822759357462358113336772147088777038928109118541591850620080302777590221182883893866226102252588353079136311598642053620629865111239690687829727472977246340371169560424664231574930930870490178778793548669614594038092215883931237977156767548265093788656920101339846376702472874284388601424613036830395832582657470720175011590707165555136590145230563561084718428056929811692381487864973425865891737281068438261525108242892395685979384655214761473837697520487304423654276875976321843896326042291036325413322161970062387169868879009925946794361996626159993173272885437932370928142674434801846411383259838246506505204314225845984371913013494238797684973403185408276363476122628576692828453175129850692901261536724225543430340630398286522640675646502483769270545445891429158146537288794897353703692305439304552473971252472515356142184497137661593482845145454012368214730710572217861559357331316318668223140694227873111532973955329263266681485096627587029966798977439208507819172940638451232311211857442689208325901926831863868168042555681591973810947437033288351152445886423336362948561347149210271822457664311722917030827613276998278059258506700351932685921139926611146658698849255556970015210747969578603524112025830815148697323755058683967087500693551834135701403030715641861907112890211288834559365375151978583190377023031496605405587911956551356069544923844036472400560749754287671538113195854595068346449098088055128402171739043835169127845212484118475120751564178296554306446487358164384266997061277390649417850060613594068598070297507580297641868956951291337344787814598419167195357652693949328524088278552169317537675558717629366423307527738312642367598607628042737407040160777505435495396880694915852402306922685649710542065465318521776968972659669930384630940585882972962671572469553529769037315825959031474791020572880716782769555954848607909634763103725304171752927099625535011654713292191441554452569471786827068320017189256488119509635747648091243228178491070281046718604377992486753430023202247655594232198829461371410734582473831126396138821394954749770402302063716665140528965745955678735998714800987511452400450331949024931260308481612108516258168052645087115557881971777447239661835199521063960636376896734233652044145711436862077819976344143997894074590791931825839188461079344563188745682679418681926825433114167277181898286130808553146938048811061045087778897854124817965758513800481856031458497854305957721861180878041490286044477243819506715839012230578913683477658768420035971523588412235121293757890608322583918170932828969159779529712717606988021014796195602420378300002336785870631035834158091341563075578988340703164878230551233787707551554030061601242774161883589571918445344234283649909823435791957992617857682041604758968877477622359744018915033802595990878941222387767608896910315886679271181623482582515507027283546443955069743274740301792088643206621948830659303520349874294248422369282010389425569732087772518251758943186537525305885074639781591113736628913525466924199543190214161182672261688820788046313769501755281726283857111388328852386133977765883800927895973644622833588339590511905594961577058204307252523327250862131215658810798334681713779382863009936050423809270387319460718613748894671105783466830399976736228366072478171183364789535590073936868559217244541653917887159838437814697976168223589675943037389401903142454799844210469418424064286911221069936791677148860613296266455202861409040212847920335206488631334773964143589099749751352791590149898314631411506111721070066850363358844517841819191233790858990376601156806703024920156512159463035477820753076287235050199003157925630577267242771692544918766400817983393810579892719462509770059720252674553026006935959172624154283262803810950827235748694013020198539322693976301867749959164646962849833422429919126864319033535223107430488680280540980831873431185743103359637165833904380889236198254291235603387504450474004371294575181204966477495385028623154920255618770292824282142231287914650447857628731449269269494380934113943828059658917004457594102096194330245692357317956185417788566104907826060277777661297702117434172312696901026374684976464788259538308262441117094941756722690547006310101062591128131884193410169825913498096457369947825712999130669134769057177544829165449970279003817532115791107553353266474911893939866550476400931326739747539120922560251735435585052221128185016924404958938203667452662063564077239091536938109183330097850358054336093505469546474167944147394807027085405467375544943738232113376236300803609002946737657028849979999845369029026594732478526747006387694910917858832078784009413481921553569676747279292922119620373135241629023590070057419722863751985454414259996562129579593093925744302896394790322604327257992847477863442263794853463698145392636046899378432077452452332772870624681429195017643749069527664964528270872803027181600403246876020939428607115992468262027495499293054804567658413461592955518432355194967595235697115102202290879722279193579193330369365344741321405789369030206714402474249202928483614847978784423091501070126230010451113362445821734961390997744982487188345904402587522723744165068600219458248825342168220584995231807652746308948600440215245411884894756892568040016067128099506712677362819707534824115821508613045337043096326188070472773782118034550126106446259893668666059393829177085029095447480762319829180128239153762101116582695534346229857564031640990379154932262129897648210720207883103233630722744440974461357682763279439526043071957380761201621617014191284842611321631892171864081493281621922629023473467972724729154621080291891467222038435406329299570656115367599490384521098011027826173463975179141581743393353901443163965750847415164381819773833012207816918686176312409322665289216015455244458742979395939959366975964421720830258935309742283576237340138435570978274370038457193044355934906528425232914786230963483758370754545134892139336364923348365036961260258398606191973080781019375602596615558527521126134436912909894923729346539782903830645954929837148512799329913290755428711934640307259768596315698949674099878412924319650393307364216241011427254690246860542252952317910964624640456651310229040661107516137561506964801468589895512615502337948454364381715914764746438367006389244542392019563383439613690584632151092444464119863349859616204074315123807502157683211051457291707549897431187638780542472603834503860783550620725127527296850106483357807563937971222833863679735764371275675848449377955755766722308147378814493219634073565756083341958610388888305475626041730432207732636803355283305491108135054953513863741791402592699824796968941016001260164886409887175247568767590945081465514423491168668492759264596821350922102876223330436404246600503718224027765795795186422222603476609263621831830398580289800793251921585080551739596192766555934860550602210390748702935422900001596171161304850555110920575499464239070427165169789892021472450724818587092476550247516583106957554961991460490346178379163161829674599071214219554469010925542458022713804460219908263345549055544639692017748635380314126158506760838535164066745648314291375973961444019706013985756457000773115105631671184616111054552282715801695634090815203642325586290290622011563431170177180267837789310516948234514140409344362808398103876926797786073088735989637822789003982998709790479485511393489971123682312392189081754463775306000659232651396461960733948461257518380838890055576234190140049528345151042399648610414113788359068446811637021512895272997270850894490868544003477524933233235305473910896661761036698988432351828992560379084973370711059773472672982146488051874369034178467136898982269364171826531934095484374294556756924310069227786930882326518902992128208338835379740453395410381131369634126486618019724230603222095388888316388166344950991756339282531635622245082299129793000924029818175408927711191255652324339235811067999889106029143290473629337179482005172511219691558549684011969571506138483290550158340059664641693422724883991441539352791200033447556387115908102463068881774433548488731764970934924601848259778045402789930072849169691835086197091194042040032020847113004843221871817222157611214108873197957849421804136065258470239296655718057023854875601417532728018664326675065459618983651575248280346981402894508488092941926304088975749603100289807375230882565486912498537804100115247007112817393798822615193947167501372225344655157936229044281380444955163971857510852133932705892387221539427427285835868050151655369485896549385002564672707661995818769280339540965308421087622565724873308887011116957076476154935945888046961212969233793573602232791745535595418521237061164126336491049135548483081684048177851129443622183456660167613323834945316754356652927113346346361893697160892426220128158091748671559729665631895153182202620653620294309210968010633061128966836139519475454123153759377404445048382809198812775104160287137907477179451271423081813996866487069572599936543539247117223690229993977475518174288929576447494589086826276922512090572360362682313430848559336662024620127742746960229954283502263769786294479466205321069397001746885945928074907758595417488379937666611195386990243455294824698434428912729282533343745925727156163752486052907681303986890990126738019556312660638278573837838821346274677380985623171820185323863600620283097392645813270222337235528958710308508099405275948579005394326981640829131974046211919346911293384034812460652182895448233301054929961397000399835076035537669526814927601330160464648698393793405681211783156759872826865653223708064050274891600860782502027959015849046747503205663285545328562302710311128205690758735423154370290845409324204003914385425660347886954394282537803009900114472129770598295359565921622700554202311941901940578519209766900423262784134549008664615867043794160945947933429109829404600637633642498347486267494633433609311382798957607873508173422862659138942324532288909041846257087083416752879174934780196278995765068291603189175398991444744530343874223842582949934424823607286122830443574424362852411822623010132087704401953666024400374840690214144385003139207188629070407985069616644816107216941296312999647135667813924141695562904926751024270347300493693501347662781543245192722697092317007336551165732866056138720623893785904218592615650576003534695508151475764920732516000307540697124772574763827548779443059827218579126042553023818085556792502633260621967385815331710986465427218374751877932310094264215808294861654479974306229343173550631412942946902493739437040208906085966400207736728788220802977551230740793324345700808351699805134557474108151624259480884484517221126262580894477963889800160972336948717832300546188957010516075362363852737448215623016006965522645357754890583586574318399167496850696111235851862966773338085059830903895043711933162557663866542828809145781359669940209747476178967731802444214276712916429780293984764885613796555686501080496639916447761031111172878186857210306731235278005620971166315989603761979789282614050300766376852542995786085848210658445732580663255998080443064705555744581285073025731824132719152631058675983455995279261987041747747463157578114313403036994428647847067324234567343558082960302137716166081793157461874155760390512864461453873289161325093857580270904143986151415238600588084318407122264554205997875876772917286893306368994807949786414234184740515356190939862673846737262613101431523140409046383218310071738575399547088317023248603606108090513608555329832059219573972078240818530054125054201351462758603960843620936144171875607259617211516892683717000392062691592849244331514128374578357143766557004495052936984669035633087261300271250172009390230097625977955788896172705547367689634344140184905664097195686592779450004529965165508662600797540332327814090726743610261448836056935019917307896976628747467288541683331396274702815598917764334010283874726025228646286728708736388376620442116672948233225886441569132774810603493932214539007441548044349896341345871777058346177287424488318730983638930718512147711706073096648614807720809128905277465270434058873424076991213212616663532970890586275959799790718112430150380658360063307637979724051055496346279469077894984623801360831777289968080484063111986934024985546376068522879580549498685746295725483099582514006449832073864389861778772164307758905128040672353530397633671903531054877020955340798327005414709390294871830873606204281440864299268554417189166963640934681326469723835826067418671666026360787732376055797069092362817164230278973091453098627608435558658995857837651303530622156388645689684214677165882330529266015744609207621840360460091536866362226677569997843985820978876642366134189105392519227450640412006002560586214815185670749238534075786901646938464990490667892220141492189726353470221552982471490642225342330935703634296223204789307577735785745690343697043370551104961750896231836359905871888249165391202947558528900807925274272896591445804844808416104396924972918494303847798223204680800105378620680266623549325412939799144343081472405726787147450600031273996996189405657960976120962792564025529431376338349077984174562272432418756283658402274577962361194140176827521489518231023805524834417503206098916982200779734455227064028870573041463763316395478006484502361709658022233063208997179837568071352586570570701054226750565069770110482463105830015233956632305449658093160146217438563176584166948943814645597706229896542574889853251309130002608401037020673332387800342075817305957209536614339809646248572102706565684527022628213639871382881336530372702089876146360164749871270094009816785755016593451557146848541082942033058525241642326570742205515307836078561459212095941568745519252671972539150125600207097429378803730431034260107286545683701599359183972349306805556150639432516961145275621771559525431320969465696239060333419084619123778730904663472277513554060376623971184592942210308811804709527708065048375954528560417109987635105061977942549183525940776115798030694815586077563174148019284614079063114815780350448032734024976123402554418521410500223595224307604329655131752603023582392242335550596449094608500138517333076386690926348065455491520030746241341047139174629005922270977164421540935836767444460034442669415464856246360209726196130793646573048275168474354038239831241220245565050622018731041971053117752730587993670767753060537957068141101074565309771465606799870354706957966840038035505914080212744168776311242047254438820134203418627635722616890921363811495207258070478584688966908855533708286813391995998363203887332576717579163349602721740622443400669329099020679534956715876605732797916692318830516760738626420189213565741410526428942606511643971844582826499373346485007386633713841984723077907462864452530187509541941850722405126798427481965638357804509141992704388476006485050701971013326132519427804580969104253744396539085550569924728898978531540119553223235089638689566246296220446281951041775627754899449766176351740153242879063099953698889123361346300657336012940198669952386141442792214967314125436639104307083308396744051883954158812026100711457462642957601378842596380772335169007543447956922491338603753957049797539600424224326316688128794149972803781833682284269534546639197889746003203777741737997303973827403057169882071579139765121821181962032897014678883796419873751288333981422397071761752989102217809300463585200793394618842031784822133594538481871652637679579024623093860343845500791407024448730852594590617521786981561280831149960114112597547464711615753111841003825785711059839908130286507931638189653935153157570314546039200274224472986782105143383884268746632484946738581427077451079364260470514652501711508014633084458586761159406843489866570575609580590709364074967643299159055161787811724407476653653712338161335180200883253376231888032526104363211650912792099270200015892747609623781913879379821773186846927969507767839605680433956694794353764446005572545020975317363700124917176022435618535629780157473219907109833940106300864361986521950280025225810989643143316341886851297546722993080228694574399528405750113650543627094162928767647156278099094819874292938270688387162699922673905428113530919417683494869695803512229792068342564435951374411983265849623259050901171707575923353610889978484549608923801913841907840159884242093069204445797144953759038596652658701322437697395333063711620862772718930187623270906981232350504707224226986462278990827383220665780100562035694488864741067841459862635482069963741340126831019439152761827983989107056786988118449681246035720030465337112361732658508472739758104517197410999057271282936287907177924408956140908067363038958220363272390152622213734050731276751758372461391115432514304698983292595080954754600033178876036040495417687625080441101895724761076733704142611204415043071441698927233453101531146790354268695298214799156515477758355994337271271221968631249106365544106982865634521269284317722073095823143794116287082861403350854296827298967258398856589479867424413246091587625581562301871718283660170281684797090777756093260451919156894207731506004500616155463408294027399446476489416894127967297991498075139225555604216319605799891835007060963398579138742155758376241965471247169933080445006164429378083467298669299266821762025528169847328650053598627408984641958833104136678794324983039956708340011078445208246211311340774913505706523899674731940034075250844218142727083041997223688568988041355269823666452484346165939846072545423363930172754420348535724560750391484515851637993819619820340896261903727929006018488126834479005733019571900900303695780162413147657515327938072944549680475943953556289513135922397286775428344645317832530229466416780285446810182282538528004179884199621155761216666931279090850180888792886547796480051079476736323483248252821601577972685305305018292156802385523810749529661194996583029285284772240350231766950604851415192669195966500127635759067827235411210012417135508978793691821913550983805440038049489140224516462550069245377935511540237750188819642812389281425811841844623745864726885836362125303651869550533515407229008210560457402707157639817034539573373078132993879142829391342370551837036084580828427589973109584344599908274574344808071885236180533281765730472832979080192471381818252221671827779484667277481216187978242128233156310402597141963214211009395485761774276279407497640912475414313619616303939776896473754902748073707001020498530817389972416424289512535308818018958630898546239484745103967962947844282482891170997928029967599515970912654024587675126960279963242383805973322299863593198752253296862436325296684156277802879777037594209507037774550334956501396999144165371549661075509712838740520870679731406724349801877044275057857784993703028914122710022957844496006898359096151314390479365154542117474130367942367644104675187904025969837928092398974449887704188526085803086590198424068747139320590170034382888058160641257951177201474836515818338136478081523291839409595334594211211633599686865838291328512512547211556088848065049792909846647346907270124213591770753912398572081044699617191500740187785590773606565573200863356378564959526978019784009630210720388116959238284926864458862263446734030437096406130257513466743457618687569623452594661025799683874738019050207001268797424281638097828128211056953438241968291492229142826839441444462597183881972808887954200518219330519294222156857620392382988849993014635151061924428988842068189812271824632536905074175509780815777287638158425548943590663473306643133601574266033914262408513750225445910116413410078200320828589099145188258368984195463332434427090329883257312257347048397281649121808770009768029561008450487810668691595820610938757615984638823350995607456576524584436567674042163440705356926706908304366498692864706608329793011196912051628623303901897340803413107141470527287263094153646469996287188205741502006803240733993450017313488945568725732512090222322274831886376740915840732583148388682176202772742423855326614011193768018165718832390221722542750793695356115398708299845762569473263169877279917504143401189585190570332896015688408015455747719762765993068819085691575837441729273254506012329148813715542910523285733736055977456860619875928367017436564746102338697657696321167443082365055954636426564010466628882129043483626225367065716631069484161138222312561884781750318431421121640959974854761172918113211383391666599115727551494072025113876740045666211648915572777864193141934299046939631723967490965652052326555500831152786552028582221428984887735360880896271366471373966176558363588309301599863370569983195981990232942280892986133942451707353432754145077773030219008116025587996799624759215995660309715523189497733301416351912363337930164883848274048895907836967594492780472509436513296816220137165036983694825115327616694420270325278150909287497317975600395060369010936322766511838790823542507799698044978218540674356215552670500512405498199529724630390664964532675143467594090979003245500369296298290791077786485662080271281122259982007767708352059064162640490477069127190565854062337414769434067972175021264110529699550372824250891001564279647188727957998069383457407746277549327186209814179464086783657647879080540739659618042924320509104952408523666633370093263944118653890573798663770600012760110762309575809535037223112456216332668071235170806820446537448708728500785226905791855267489671742936527692912938535767445114684921660795271217029957507356119936476992974321364420747377560409337298799705717469705151713641739945132068510741052509024129187569691270677664426134634633033408918785992217218607789331988579080878752384725173077887114920039157563634036024746658769084790712576849408583113765356166086823395582086856270677144821729011141474246466243759804766337901467701875040811979350189012807791549506073776349585167097001372763291105035161791859003205984234284300755775418797836123225318260128452836463122388527132967307995394440638134611794891047469979486422532563398495588500031002795152340411307834129655417360280300720655463437714464109811648866528223300081771736863302593406677718242224943355292578886978797908941813329261014413470095976413312342918075327625335842900432841353745289376172138354590579264236716192849189224315797303283019839762087527434088629896606291369685893386921502778139612188069000029717786059746502139743547288196706904143338906747160883172886526989331410089317561960884568471809483370399253607376864153188498533617259317710204130386359404284725293981121024094902283271570455552380765139133058172621766537012999947049890163453747653097019938703697817088621584148200241795921852113889083955432055225347845334770506249111500404975492953848896239255538874457717264000014824166325807924477613961521004183858732093126666986972258613737823146961970385462379596079176463477315479520470498135556951658077926194244624811272104071524949008830809063431309016740699856757132544906192019454106094975907089894476740819514726745275678753896201599498757472826860643030691286322408805914910109585053711624559833102171824004641170307568056440134751796459935768070243491762707965227487755401034712502118990931194281650311867051762071830732241381820310945774168831945855482311448026270465244563328922671972616755596685908394632494944530658802566712538178523646235391470500856362023773742026091563766073359237783269742854789382464608444260230354713521097075542844543171219604098525650777609512484563034630385316130415814600549870049830915907056178619584609201747551629939828442255751075670072954792525154023829241885881617437469770218205133425474077533079617110935284073792627185722125742392901553000082041105632056746981400412644812419821773033737745210986269566511636134819716249913630963355688774145362763825739840657768885601181591625768769554039186324318536230365352120603930454511664795268193558150134661109252373250726367426204188990022039310411862826782023201532185515627201560121466279182680275147971215956138477865290890560264499410939800924812309352878815968251678482114954171018202933391376991286060497497965244912675720470256642136101385144958663285321497840304423749287258576173854384060125777364653266876643780336586873180588662779010733250656919510135328206783333276100162629378232774832891700685573475858740196223375628431357211123780071869275121713516839812704373682351965064628023026934467084515401625174040146697590277106998555347646797948154544200660449679318196754954048814266356646765776140093667040339369302798763500877706800933641640812502316763355454782150885063133679649365441526497046431866906510341382087547460537637388317022550516889418271440574148549160542989697132223059655550901397410449427974554470967560143345917763912585803920117276321733722262037135297008793568886259716737680506517434854275030265887848890344311546021639099657260562966062439791125844793973391816824393537891598765724590552671218884938203196167648611240206745395476620773270738223165556808035817862819249345066450045871873561842041600954964298332967887543775050640858656019241991929953709826491302494965995070687412523433192170544136458965845203604500937725089414234323756875986761415633976412156890477111174610077345180068603473917189331538247146866350179726666121950043857717355559279917918186342454741449723620248727089838546447710782908288702029745557492380992740330844400672524581758500726165441210209315100365098564112190079204947240357292279727980566764718282085572277436201244193077189559029227084083195861437175714834777358524736749726712554771706242969162806085416302097566651416707099450303777117179702643548825077000080890994811281614050142717382143216404984859544455817437079869967990630498671462421229861560699319350976868146752582220094335563572851192424305518994803379951916437261246259113430653208290239742650911941863614182058890222571271656656690256359450870361125550577711478854841746090809608227636790103807608740498478597120763051676911579308894322231546260885959342679620517795876164941458081539390991582631101112001500893110317773303152078561583532280618157636143132932240995343263200570823452736207143210416342675808103264385087637005206704653098510610156964697579366346761732133465928476435227534679693785473056204574344014264966456277087119883599773884403289425218953163209254865470110883633977897428623675059187878283825796281470938680448504663266007307223680357978782416658351468534357121401650474190513866979525116540520440075988156780384466638345886431085875405474957110666504398557637090970210715975685807735141319870861014464714073795662869489847097480484798127001902639020475756975929636144210861799519546078590026162715927339844936736799055096053854586004774367068823051257516403852587466727147496882000565041348442905724102976727379915242063157063350248381752861572037017848944863180647680949502271031976534892507255226367180189029712338972965212476407840232619942456268473384650302023008613368519044769831009050493868023286534802111584856038072508373884532477989558369215210472669674270761304349069033536508248057518336207716938461678532252091204809578750770677285026591904127024104443752257000493610338403662244556809846784352999421891898474532516095997993298463500432047738216258458157789745687264413339702322430970268214254987141336985839626250301309221282916424336115472229285093799782510511623650101388770089119876998874739617740683409905333361599292574952927152961263532246980984428408988885851935199869857792929134402932772147921959425283379691082916918293197400223372866867879122869416575926512899775924840350596177331502619301809543724400473106595858600039282196746095006643327701094490632833765112988078629716300003221100164639073185516932683800936263524687078780009612808878837766962551427342874074183534894755162473916659071683585586792040785482825506271685136386829919700312334173134982638971403427540155448140155370885974437890869677773136989990329368184095635442789049390076469887079607981916071860040374414999997654294798152043908837073684167788461621749402918237864569732864229813404322651988360933125190727784982244912604356952554669199145499376266497897165123014851291455717035116516844193208502257836983017982743380592464798819978382089367368507723353201595032211564173059652554537870743480962868096947145686206224220364164134280067475248771981389613109736934049785965702721344045625928088021476985048271856772788223387259997994256393416605555655013673873610776984084649629290574809610260065948741478477520848646278433833786705072093194576985774515565374203983247619513243729207585178034804396113229142184893698620624607358143662230392709890873972587478853080021520729044674156370572983771427988341674320380147660419260930143779254335782300745117689368343786748112597642852774909881165355712899951342573625937923334367635402728898836308209013131689335485552353699474618086574089338393825456571244680670887455369643276148423219184420117361961592010331627025475333508989010128675333024569190701742521458248937831979038213048321964264646363953814485665414119755580999869229216662612974124534344326642479052423936460512761390916043711491666041228996076891523543994340254595811090611594846782240104869871084352675962059598861982101377479198279525915988273594951179960073257142469524677734833153386931286393140272358108105240993457511559550823999602588100927719025197877698313082924684160265944343378408742415313090101040967914764184155346642333456449832555525302200760330525485797956148943941554428698292399382869053110216626157473390217637099016282241419141335526171488222986757830245920364360279144334069868554539559372683282151606571865580816667816645660820243781378514711585976111128342321620714170437618559130046497993149096273408560635857379768499001671999257822183409426027808590638740384017493238223836094874792516479692091131390365126686766513469965894740104540727013853656819080144917287641718863361387072855700914208778487501243916934636509553646348340642457479082148333751947312154746044496750812982967529319355536668161622918169466459168841704516902127250073744915757076888984384803057408936089717686148790488197909152462944559546478649700806569548224881784990164884326998021702850607870732611999566254188555885121850301354614859390577764176379376273094558944863670376398610331028877026992110801703193475969400283768587882661991550986936103957507633936979804713185319439465733049707740298600572605159744882393045477776584883194890287656391244483197063551643884322659050737287845251432664368961628373028309695279700869051354967701261988388472374650938532779669954761457746214281502088385606754589683082630468184954946523908366532122743944775046265101569888213187126435647118354785854363903952644836855165397957933191080092684470867675887115667067755835512806093414953753041781677132681715099316955224595650622605583272767328649170050940386974917110257987980776892244152731722524080348900746226032962865973953895549004422730337920237375646275152059039618020494449452417689465292409455500680186489768702432322633417107917669209083970516168588209377358451939563353305765280427739122566274376429737009961729154880816610693466442216621490560962832285446861650424802811474555403689849633921216884230961361791293252970181455268924330052030026438040992689484306727659088117218252552730896443788001205937165770930128430272863820346897769684389528698191245081390293734628337538383078242676827727456067881511388225704662591294643545489858082356403543089017019902162283677064298589959766975325420947475028924663950083836454736809342168947968491813789023077772998338816288928927360478319260333085477903120447403596909360882794651194544330491569562776935153194947307153927860666365151123062892301553128158743216595303542516743373085350821113347336896533875785537500721487508399071643552707611618757406299380253530365447901902683435658873278498198548683243455233718342223502580663358520101189246787222239275848379729392257063216355043136120924252198790135096633351828008223089735728421399741255734701590857811230435782354432876698342569550687487227968520958473453284331997663674207216090488323867461573859640987698705214122694567554828772345637680877991567646576877000276690055979897650441845008457356184932900594221351260879730811587473679260588241155936740703038265911460019427972882485594065200402509513754379026337441591508925024173157555031671737329957401197856985466453384750866284237188808289839999363959845787742668246767426717674153635013084703601819349786305624739499019032216109830743194104943348316669843053123895558401781378360509937454353137810537584003563826757631673662120463767518746405695396005443949510402050028519482087498293013079138452216237972772548536403016693850538501665189658870057102671473927239144060941079405544525684971942865983461076201946890486452540521466042717054285091571736307758556398634712451676100010605070123288305430528668814502360583602976195530191297844486589165591948805281444691970304656968231367623618483571248131464184528160929690232921552216070034116009499253231283589425797643001030318242673377226694993922203094277580117983726389511441700630472137676033366590734128008033259020190721311009959481533716575979535627650039852346253239718218998777345864264016382586638947152552630231423206439216587729024261761967403135312707050436889720980012037285793165191828177363802976235258051785787163332625563481210948379791815963154767459425898467080005266032978436074140462756639115684643943450288462793067818395230085818611604764084826533453268348151039409024785000055332909139159940898733911958803280321322411187215844326140232636401742493977630862408148691756025582286293724939812595291903446362163031390195814407454537628970244853844039840988595133160148992042506009996085083589868389445960601606476784696170331385052951250705442033678371476820089526650009749425351009614243605027738453210497180136064637272303390328839177919284687796695513422493644968347013560540762958348561661923568577837877503780147926090565677741096123934057521397350544770240525489883538878845966474458670279448310109287458437623761832689886532186848421608388006331485925130658994277810179581973139429824071230125672066867848725399140877292998155151403264654056115439208083514980640281894264716947815721311129317493840808282902841918319910439576946394551887255560613520779626088518537897155472596846492724445057752813073948965679171158343007152782744147965179348322605028998590865829023172496095144354153945486149025446198021687400812364883058745120969437499721480991033023013399859632690946648884148347960897456725397592169960852216864861088627554243483502911207283363856814521606576375106432263954850159473547750217057919352428738947881918936873119617390220886596880214657400975245939438661314141554687856520984243059794137350694800720009876409807790542344766876704357141393910624384457643729996102491604478439116169914463482394095856396049491565072164385511441123100500303272033176129942980450881061054066097717130146578563922425643164178296884257316866054163362775105976187566026869371770713934029556350891530729838578984382331223804650997516301767491101817882054561518679629491046680414141863183863680722261960821007449226743851032076328913435392980796240411867762639978761243087118277527960949745425027238481783334066949842654302360836330031243930652409721518426013287066672157352497135866482461188952149185167854715545563370579021948397635651777598634137442778826613415890258153703021435260911745511335791641374950589780102407451538679730469897356838946810368195757855012639930333528171777838825327450441320755840150673253046017062863565240722999629460882684360325706631839128957852583545266403102190439933172686222105912782012024599511897726636502733882631643084691789072679005105660225654467941685840095472631534290765825652577400636875399419743064056285365682360491505692933341406227188247416562920710479518199514723344189874651637236883409673735791710383509950919422480639641837507514208709866365730547194772095385090373046024115717337485084899600448222783940715161608804066260355474614384359758661003013984238454190393452083159625449272568660646199251579830462125396796724866103311679006780209529983129318052853243636693554137512123762652875660119572430135843209248941658068766401524604990981012663930614206297275106464828390656701774599582072452259847885292807631992826221908301297159576650839808138592111245651114873040648294772872449862790265872690386490892529977736307979131526822372806370540996959118438867843750959467638705178910518376540629992862795299608404778447351634348005085878250671708309888821740335613215268489460383055060845158905419556311084745783361202408016422361876859171578847249738262529441876624755206061904006568292704993318096103575371595013664316864480268069033919099268250069760526633072477973965617769564379317976030090102465544489930762774737846901521180379119325676650776798004503814522878716423029759090849303029984040338128565190677050256821113510259369864583212909831767520606122816818794511875066320700023584401571261884916342173046928317268055882842084553871351277378942356270092586235455298040760040526494555200368529102169789295951133773592623307259852394947638172435875137627477400732581184239454813567610466287109092024781887543573027778577689192145293752667902188178146172070614574711036388918233415461465756960778026442191687138654884750580413525010612268192274016587244884368422088953042493554142286477099298513435709519303998308743447169236105125075758120704191452317551346182217487660755088511749708368186338104292705555253157182532676063993274344409335772874804471423137233093525608804888247289994125027209065638447801936081935635827764762518055897718366900131068698868195113607738012149742672691998321856603226485064771865219492061038718856857783085547786409065935142033461004615208556324293449619811586176294739899177002590352378286606556880676388051168384640752135560948225922666782879341379042988923794933999698131096364250995602308161039661365881553389259026594578480971811182180339386355690306070774073642690177550732798424568334483135725738570686037706663018251214560497621920044159262329325846996958829626836820453526364609159744337452035378889117158533974574984579900232347415582637226791156528161900547193703178638856155165289576811310208408037471367349113451081445041347458938043900409095182311634507892107945188695365516474280020378284476498715479020884625401847204392897561971317977982436521443118187699764926671964933051163544305477319766106690737797975396947310414404533632756450742160994392526096666308209612669160442868385823033618505770213116056726512582758607611955750372075562643932170800700299269409544460705188032898351433225748585395421412802744729626834749924366620090592866232860702095014028018996245820800814694515993039601199743174929794246460720684549071254449073679783094371014784903622953055712504831827680701463012691273378254218770372408310580674964736958200738659703698363943433650370553827346070477507900759244852109474515340929841474069349508481789780530476798330968277690800428658088796478975285418675540468181169407099541107503141793818589572449502807176496047432948770830243554415687039816843045928811475495405750655671625249881801472771749351084522163453497577933311124830533753947470188517094800133893835526606762295824273768755317510829185265802890857351816527418570528648334954739829247094699498627198585237356852366992160717071597586852090423914267742787058843455852805356542654418873076061582607730563592479504042638943121853378591785359734825273138728547608466612163048522736059906695824504094131372316411431540826059642394089094431115540747537701700359283094647194917847697091173499963934319842537015592810921639009005841677681175238691946946670753414277888509966945133967551101317569532988245295611810590439885559906439878726009495451548742165698740508962605978372965399367402734077810429401468017980546122737853542953753638090662140406380822168200786133863037660743431732781706128384556587458918487508564963588266971817287647153539421201282830841541130828708554320060134905734995836335576291203016610495074224887755031671432099499336383372966357473094218682455595586807976300750156930571262175905988835130126467412051894527333353237667716384577231688206712081614934560242910629451350160173485233301680142589826359704686938618284636253932380515570545474848199025935784646439895587480801384609757122630661257165635817424112621911444945863022207018489574399213460090387644949374099425758162002508226753411385813993242810407017399336747433771082901660816624128135874879651622148100381684558755656519168834621971211229008456207091492226003128408238765008535854302144953660706348094306686690192029222757210453252646938400992391170028392365149809637197873929102500771772570517626420663222132940170470364456489626992111908139818563193675643208183360135196774835759644098592274900745014190406991333541846079665911395300514074785096306104945594523412113963428448309397001996834200532520481372167873522505488694991950301268511154028489379692719435139805563891735635998611741483161534261454072662046098162554922789080628581149886422181527977601552037939144794519450774258182502811941532226371678725267766162427936412002200475337936591245654921190609596116917562410633422976295123673937881892116397698076530668506654874633869990429959145287002783400229520589742754623835035669805913027347523855918784725493223675822221306200577278502249694219444775206241151478921174530531044536372811334472120119131649511976171761868594943085092692420715151727831963157421970210048382004509776925423321815202667783445966180546431503983405168792824004093031523382324310384511824046343696181530604356265720810990416456053355226824364254201814143711604987479747917200565968517796863058069860910630390705078957796995818483454552757235009054730420185872624612323886190933017705205289668455936383922911595933230743867219465907418023348348766430722448715916051671958197024060147274010831691634171070768133349945340358181052725444718048598095575696148139266247068715189401235561291811666367325277975633907508872701780486728151816375840229563902070802912110591354249174884777241347900075856593568671536033285607653072254672973819320729545651289665131428943948551378287350990773202751855244870046245275021845406928995590507519293457068755124711213901121300782186489416785029701267901045169232940089100024308440588132283699779232056146648437015130034547084630354578368975919796594027591059621455758592084697381753613071359357034743932589730630921017609831331757646889811921889019867766155132078469653302015107936906411202910327413570978066356204984953814705660096750574469112852428587469087898390215441475448347718581760678405773074893457649244140093882989315825724638066481939669655656521814610672113944035782268156764439756327343329171783979549144731282657800027880180574189365694277921673734683590368553001694457752778274251240200636227249414691746985398253884633150675608617544371554740501811884202179132891016035522453014793898765495917214330489250407063720403054829032580960085638113717179625501897744138319185334465711978588054533893365852182454346986576455953117119633744468354771598976745653496051187196103276067095940138413678056244193136600520260416913918329028664697297422701381299436242108437851184821823342119867668676929071765558401235125592966380904097924782591949134538205346408194708688018423254420209993064737577620920596195597702650596351896361921976022064310717906999320262181197363720499629866964243106169121927763271338225405489068503802657374306579108827844148408110757490529850929580426633230649754477696315302214574744432564040200135963120954141857007034120705574594175500828906476255256479935805240132355388969610199344911887212369219032868724067819027550727212180458521567604329182999503798181390111148050075318378216845065096269337711713112754160390711543878347403614530828587061665108683906964928121527004733397566722884802823024802343179166628289115694723395851894028248353465703438789818496335354514054252502549633300856501945943416767714861369783733821613090461969001499018605620038569641894786434803646218176843988562295299297611009547114027988572808330637918299742321972077113068274844288890017879482914836337050746571982502828974467532905535189850971650766816725999051785602963370957657189135162837414495778901138294235102482659803313919305238005443037237736201047363331418060211295990130175306677335150915020970236966315580357424963257970373849995220683745163595597784692660611678292613523779887735712964534621226864537241717027427772559907291796965533119264291651841711398019861420687725300390596485549444416467991696624818726419361948487132932378084643944034197134086392817531821753823734687661227834919279706343971995451143198942268961244497349638626027778664841722070836575865066791121500350085245871144119038662601789770884787661054351674378767603952852195403105196711563416418543417377909991889268565706281539274642561081586884455929312649096455852277820000225846592789253207054637127266010330298241150689083955667807089449373840926545728052673485829132935072320152686527950720318463543410965946690769629099063351321249316211937790830662845357617384720359394611192520605587304076044353224679640243827737375717130525849759401464316872003242598765273164092925414959241032704369375410649218016390166351694671824845033578929864937996178531073844357702056043203457666395060404527455197722628756022016073066579635776675999395132802009011848030764407274594692603636314135002650131861822273472357654902914385126661233248989761859180839515613032696924011381524288179290129543400389026620731908534571524832940722879769321146673359606346957737541105111948606434887748834071119781086251684557876102182197554258503584966477081898543552261458733599817805911167772142775144468204608676628190620280687605002736518355945706151303701811356873566193012309778767226639494653059619273586750292497435177129947069802650412249728445918140535808868324867731062125488333747946552789512014936385421267737747955293458822691275344831646875867012353488599438511559957006510393137767875493800213675217039561874878587815572498265286129338595858940092794301843650344634315370987327104408550532026721873527772262662638586604893708188650131470837628529759252801912452921945562914674380272729425210689171457441735822464103986883960791794991557217169128319111061912400403194257593278190138214988881143872970844209450878961069646246493272113037576347638696455936357687648565352778955985396535704582347142936945826366818009036404170099621952669071253962579397602953004659912184729550976097418982150811954943790715323945312743166667267089285550688427072204853314507283622496247227596589317070316673783160475017388947014780291750749022698516904544816350647097420669617016421308601246416750816263578979189067678191508342926540107532036047153389975232939440740379199656493263439688994190988480103340997252972970677747666135081150880990425751549804170906980812096881703228598799017488476770827378053129407675134178624188347950079902089313499689627215208938475833577002179940625548559683527852012613919901204724004338798253499354282412104803631420262424959111385151641270458893841069159148664456406933504880440336166966465395011851579131169647409179353359860400149770183759784784021650044288582166417994824747041852907079742452271764555392742390088205869646692734648990216789370269355697923960785603267795079126914792885380948211503384842895006347254263690947021721311277403028572083580746577211523318138590888764750339116220648990572872181640784922861636575322641351056583302013322864049296950046161054270907379042172393362513404997586018113064554862593859514550016903470636404075930698574167770908633187443184527034587100327184145665066482607707338746162061334623825347817064652321892007703518057982057427672969231955287875417847320903943018805769248935297736360175658354253443638641232829727774806505082714197039263232153583395355973484897002640340846466611492867145219064499287228297051898633538088898702795937134319825623940399300307316339677646674773995485968700618562045362530288890883771520410986089061540104550779985881451372532729195558660546048104955213770313863943024671141758853991812610920792105794036382386023618964246684773197639721320040381537745553645923929361080792878454274244099519944388339315686294776332928983716328566842797891135131887962675557517512472798040447497960941717523395402128155575636677648770553360368508194960188026266425727982160769315521517782183707455415369371022180306610707478801049450328144789107490089576293090984982159612306223694762686303600331346268260582483324879822467998716427732052320478962678078075878146904307186667764570985011623640788427242816956307880460617177559846121490322913047147356971435288465126790487625278793107611260389341935735192588230614777885214941661145734398809770925546297260943978299659359862337614945351181254794338665588528501889235380089886835571086508933050701377882749602226642358182997548997058053283334138639718352761595719568328720898862100581057648757076287083282680389909572940825419301565537773036708493058864147530514903839223029762603970687964187845636266563612038891637794526548125473490392270481260512044718231153688871820135786884654484749041006333346432213778798954980056044379624645273356737416176003774891543511471309835581083675362118727746587486938892355546831520514578349289171793044608156815212970169053119556034513298637249375002210268210564855642920998326421796372871909742607605630660479280753173225442263942375855765201839690480871079749711936474732303026758841860315084364477625527873708725318450953370884387851076490051059214835626200107911044044847815458221218832904363938013215450242258088769211324371170316493756197380581799033773674758536369287707716520666953377364945277523121273520050966754473316795821855643402360428035134767420158029326762085819902767052186784533156818872887679296023787389494531186334156516896170082889854906995327819781355699699140062471330114692076797377775195176415909976967708409598262949085638222483246515902971679316707353542371159652377064147525922806512729388825340489593966047097091642573116470541666071458688904783131334468570165674958424040445930104276759810806429791933583466037394211278091960894096908918825541663685260608462921443828288893675715592830457676697767956336463466379709884456906297815108669659615719882062012458201411077843938399585426549473312476219715261182232635950004930169060244439531524036762052148199899565135974850680856102882424730888598453663393637618522736908402404993740730724284068506380796100205006051909075468747395470730484497359386752915201346869159420344646275649578603459218603724117141529625591267187909225950425549217091071122215614102057486511588954287115859650468806666230121201484092167076352688544777528934293500525988505049660319637564133644205983191212812274352197817375757643279759588716197226075580134314284932923559830126649791023475763956031518672281324573769731207468462033155653036093496418478131200769546166763154773839514587772828573736537833955552919758575806345551961351146252385024895276847275469193456748540269560070656812369978545614418412760601560783724679812089095475744610541315749028651391388351399810001651317834758797311535892177023369135820443503665567161880034604046760296975955555359329578545981169048252900053721782405543692948048528289286666206693903541156574220747336060821793507907930758638287834485805092344628767943847823375951060142508864835551762461003841465800970294762387857846401325666629215024389656908698500958811042944707755394188230977584677266165934293616450486892373978811764136672307750311048611062125432702404514050913744490945323299571274901247113152884382748833459158292792661604460128846789828503735797910636302766499687220105482658468087108901025261077614703061219096840120643416941381559083242303163596774554188165159487085270797355433876705044896405111538561535885473227233292455059994090641873867451630874332697898400813058154428421689579103987600414976294121452342167537189036588696156089828065378745233253339572204524548187504631699697409257960347030597107564193817771366069569081903136286289754934422322986783034446433862758036469366241312268402664958182215234821735201120324362191479700357695003757922073236802410476423267386512217795516899293412736369577385334801189507060566426059762082764787890570789236578152955817703535559901628074325534496636155163731240888503630184612085191364345009798920683746861574493678222266879818070069009868225747396985801601909319645755552145537586049031303143134703216963064979999122677774028229511622677465427962550243520748087317284446322485389616542275026173026439425282427794488512731121793358490821352431284910459150955414624590418414570498533214548815630709295011835704134482928494651032069537895010971512913692208985575490841057541417901514242911364378795566917889959620203888445837096599181781220712623773129283120915891637200060968011881979225026176322629977187228012815101058008309814459745463819466665925368446205280638866653767321441216993742629553645155001353425773833425845644709628150772387775865502485639551871373444876389229380532732712457376372728910717573734342890068770718149357001336945976262239737154326270055229158612889338829255311380606770917936935967341022477896376706790635340549735610533403215983786609673479323503164351988452650222794808524161100794622186723011090755378503752587042920393243919570303718295224605984617153786429824668008645731322397929874780750695728713638450755682368341258623984830251296033201755645823584943307918774826154542054684666858100460560692488858985906358779736162403141196575373284380556977796203087026719076496239502632057334963422953975329378076820976375623251962529734203205668124956912531801003476463137667632890339033294684633811093786162972069775692444700049356414810815286906211239466448723275212357741361018908819634286850556341198124783878435336476606964779773049763008847747136349924456536922983013026483474513689474240947955136067020451444026594773161308794509839966738276803034255484111800420946376644166287547595990380634342527327469258453503796103542224771387870906418886118886487912009663922957117760669808885921750199175753655915573549692146758330290200167632973507021777072752853952808644841969096821900663544590283242891722006967222061481337003772821731623649182436438259639504406998926397716787446766395979341785166846067033852343463972215154662099341693695141645202415193367388323653214267663868172921936308779053543883086085339099454217433376571871605137291551446456184975108176137496168427368948159107187092613882880212952638560328906460725444785052536162731609107384754353835388111418001680514780302966473802732231482743988911419915684527018687281274060007524354014225866946910269748837632656980004728702851081021589042306652451272075392475050924095057596463913910097265835839858452321925710675045874268125104831143472997620154717190821208687630711794811244775680686482493724635683044145674950214924381041489681683583825384741893599405080741556099000643793303451823494743785156213005516935853887094960924463941554962730456260808560449543020709612528904889918627891086537286339349271112921883505075038943477680708476540193853781640812813864044316302204047402764653236823424067559790203645148030557870738976041745931853770459179804488911819049861290348790524708071332617072960239747794395951964303118554161619525093587474101361418747435398490209329608070828631248673258297150124413092534131710306662983467157519346272954843645879052709773866833722129580333245222686938820378810121154285292172319766277893763984486811874331885732673562476065692923614266363041273369871902497365551483752478284438364176184148565740000099882640862813854484203111300523103504665295634891163375517138014158238210979977743889102178045645202043528404662758943172883860986134926690951703347878732054679528974304584118208476985960100863421852276186021792406219055914926410208741954115313555998594798698759345108876375383589098799279650642334648343758996274156008951218648996718714804446387180198743856721485779127919760658013481461238559201093476998477072039451733568311107628074573763582895833898451141038653617450219510303437039557761239197284486765283941119815997119937532749827970279185858827365998663168524154567758641614038380410481439502320057449766863688816702143078362492916254741594262160888392218744028104789785466240650861454450945062029089753746335829696036870455717241949104591278639880461992360454526082011674585426227878867793108166280041189428363994879340974854592022507793146993737521373107947536908436601759257718435524337042502636911160123299311930950213902929274955364076049358873812310302121184030262375112506271590506178467650103468730805556328707799744862882736570276885228722126474338912339289373161819699879596672980108771938165581147142374757327248354383973606069200602920595152550886215504801086282090716723471824819193285843628803262579423405077012398497365148543644558930742373290217306266289306777466409073005559649779645543402032878940482181249151438145441132388710665065936029479459357126115028243954112185562102461701393294272359882431279701472622477204687136670717882768164917619485886990608292084198021163511311678551794677695224740175835371039514996631282683491678744058715605201651147777663125713672853514680211030778709849242125427785651965464515216532693425425488591130658704326066860084023412541053165057470385087297572680295351527885450844206868182406574949289648386122452911357143781616107349954965217446224284644615672540847235737218698330123884189484760326566894809753842958785858564868514100613764259343620526671022382652372298349204321051815853168426028158305012365045390906645995943239210000262375262592081301626321440832481456570900189931217320660860052105890928520425624119331906839369932281029773443062647382385986109648308997767602950977849521766090714029274654924491663598986146769745182350901810695192252071913746249321134315916194697088353641449956509263809552902823704218286415590579599520851528616092495876482524955171964417173094883857417880079878328468658022155781555173393508389757478906127137806499304131456776687416125523046248518472811384240309920241694928942343164311965490740300025674301332633434662590024001098143180301021837176692383863489421641400460358959644663775147384901193688781785126321953890215409183295340814428662849261986801339251796265800937071382425581202825120124345399785182463477095461972930307343958901538605025161596686569061758967378094043453049154565819691716669031549425785372968611225967346166750787139947526655210534067518161433158587739504269993600578441424724271458399235290266898290645757995303108197610738356162006299567925426063065370412072350492648458061610985270281329264969389541264846603000170712913519136511783003175064152250131294497738220390690852654889263546277530221668278775593209097473670518717784106702851217743569327042522053103028721939361626089330816064847839700587172339682820314997626560175046247248633430338201358580153893297613700624756213682208804201096207463506211642856622427925560540549559582332145622479370715210777589532772334895661614164170372435213044393564678365810796418679291391001098919237893241368180846868525932328831727809735632306968178874592343917776966430330770856864043693507072543598018358034303228908468452686131869576640402511029447441095364516820433985685429050959223133279589212179209443170703279660040930980753372662625674592398106807743868503536971972955478960535023969424456416847851120392398384274148761129370906603747592567660566672084158287016749850186526137855624414801075652275225039777467172674515865049722991126482990158767909969070397958643654611326400054786355733672828530637628112818625028054108649931992962569409436626317914783049982178533216772317468778957910130556397649276867998881171433969334641965424476414850365366374845303388164420398426507572520370719381453677088632915557815891606750788099995650302110930190052588784611959872128925105674975276356063436043169768378532063115976267875104388123030277886485028126183294194724997776277385262711202724851029306221870862193273046309649517023618923829593362438483061563967078489406348579322518998162758800705156216435450255420766659169192295738057595481459973136154999873968791424091872212228602971146415331788868620415030382971153285281088102952085826404601263563522425493424622841640887601090797787405898811493314638005486664767429406923417336053858613570815304262835356811054357192809295994526384146684939105168419002663730124615710114662310224657753149114847988686217242844857789264311587973093140891584685923437049492970906293105298744974042854490388896862317657666986825294779478979325735223156181898001287391133804567014290455526210691065172261440349782146843999405625950312319838912486477434700086118047071140712674795801414455754468795426407911239041633032605915835685982707505195248825945498200684079712786178988530118990910757295920569016571594664461064987591031193995117332835882291923347538029741440693401891653564081136217948082990145757702243869271795226196425986459495742432004779117436313183820843151925598178561371239451462210612761431766457926743211774350807174288753059906675887095267736722427430003915621226270736490399597534966589050118419694748336636322321559708367105599310378784301679113690451798157336458303082080416600640535776280981104025139667928980854623983484781154816277275928237408104148426937652255930490575497452689515184566278980537391764979817125197428467873354758580532423012467817333501314069447590030976974519848064128253419657949729442125460145407944716019160673630127443261328325329828572198616624658934438357899049511973751384265194348184474361078300384339711933824682289074271518170307373790599059630942575000896037175955314044715323285656384304695472010562573813694952369726789567578095977681740274499535042857315914948574635729128990496888771668120197811758891319880900390461178440677103877660805657864550710447050684448857451561175622082312665627237372648115121249904577175971843188416943365532590650504223178717464791413175980909071557557687667050721695265173620869649498911318249121866043181799096145692977549884785145117386184542673070920694847391453065999090355351900869809831563279616143231703260018170230594094533671560147638876521197837518630968120713399192077432366126440069833869206410606063397616143416964692373438755803060097328290747896505219612284620101979068616837950788187139646187347235082980194326185275856380809672507277809940033748912958087465377537775896965431243351945307355210498824690019153432416059394839463875585479093881477778217840510785214814647705340800601891417623059836107692319554057960258483826274977002236574992018502052569962338724292663256024450804278940601150667278950707932966629444041460369476333429054789542387344647643350072537873937122970472882298507974114194472331661092876761335968635447174216063380413142978902845974652098537122683022923660583812889996285249842247231436324349662880860581745180787629834569115356484977763100131093106235168867240928343714354485631767767716461648418357802303015693979580858492644205616638888616482718170444084794082331072868765561587095658929381924050908667215055941141745182977995325719685100925341147001125358199739350960992345995624164580594621010812508793428097746791906880202007890792203685637225425426121921308196509171801344428899030873988228445528673339675331495315668593270125651137211354420166219059995099479972210002296739088162494079459111927082397708411412354367238324281304087850947376696186483941217346756693239660245340113117928421773161533520099005688072460284777383208198996191504812889809765698717579695201711353199394186424162597417702096150834244484503033831755211666947510190841765886399007461089496895581878002358186294962072469796442489854538294022883232028568545371589489571043734964082885187910952187695758606381797225894022926477197085321683901287142844993454124833573529163051456655600227818794749117702879402942204909193000075392250989873354570632602947908977367532158902213435556997825447644460769675776654910439278128249000073635056179203186509113006840811385922438400110664718390755408032655065323805513847013461744353907805109701930118537322175477535353954929356641098053726946003760869940855355890362611927614216347873509265506646777453085606300058479606996789426758793110855182393202863396179542318089505920431307098328425824736860802835670409898786791692247720041452518035305188744237352587732252674430822518024956467163864064389453722682579663941388988206347638517321657512877996575431175239576831602067382084597619808327957969826208219165954725049223176925203047073531734019422130235971327718842264184753221883361210217767582788398497221094399510389923428381579362189278443128404849829404321961860320895892622412256210250501358243439175813417063934284828653260059927117709015199464130157811299749796214660514768017468328946641770725934627566273079664264813743204570582281195925509441985858952674113886291292627636564632138422466181220328293317313152083383598269419959490142852382113927128772496955469705547746512022490904504139097535195353732575694440683742299124865057265611885655740875903026966370803211379241911844188269724003842992659450298294849633927238576869197009545541826780663470846711611293596356267900453325028239262364275536984556161345349471586246251840134091460969012792301279766734470704383840839469784918410143287187222193810539199871710829514511339387791513918954120804723070308171084660180165826103506121415732947282966567501435039793046387610780446858095968451287141179346273756924112457867286989245544068142950423195051002318326143756509348329515534326214203333507345503135030752042970426611131550323341093889697878865671987015156887710538357566383174560728480827251427965955293915290747087837220047602018174886960606902749729958943081948569045186507426618207548833014776938235602264293235681501625215236528746439269995512725234962738287327516465410110189171258555336258772041825206858568155293327209533528619010490444930956175428350994556106220863601236857463817210253275579241109151163695465482298647490241491125788791656201472453088835453270139876090834927372668746382109230259956651647359969296286980514536803819419031612496971317553269294936452913101379197095844541960952437245948752632442250510222440366319567370847820957676664583500283375765514315091451571473838520954050491877821404098051275071099113783250854849473697599589930037781165885574623050231686120327869800893519700279339746594707251241758725733788765828489914538848611403911504864286698550381297213505720226350524486631643898078328790423845287654097377764819298124446038267114448257644894005154144098472511226520073129382979772354715298385393847942672598129979493795975388120708624706061326142209353205936832073025505564595979542569347955032909408757729447730968438971004403869553029016549765409211157049193535568403465178189415957457344713425649709413744618698596296953684124084535467551089223485733279513987538286277103926324555121426861604917552445545826953763991943176635210122207418365272359890046140032047592846011506703039218703670262792312410228004335973761308558587901452159866471845978701252127272699226508067821497334627080727504442834803853965600720757420635356266422125065774556277062517970882785077372809520792382925501267862546670396335199460882846809207279572061175708584151932585206195924529534128218457215494285935073618359374198351750845079841158103147766296902973239407154766861571777549783295275532411205487538292594901285989434917982452763966532297558547561715480784051012681021793461189291262207179683261555093455100828918162047344282916572856744534569132514302859358973845305716527787654101362985045594992648990488770428356585976806932283753780723257292529653041813685955952566877332757875898103121135810843421723572003621923280403655358809353203929688838061704251447068221536165697207280366271549640572443760187028872102092569368846130439929221014441055415129322243797193999125846476042000499674025748019496554153175785860001059590618845941047876645036389201032499531796003659421711020921973958947263868654985678165987199557680822078506299957077031917906244285136516083726150435993046539429924224405534993568492146203959828696418169962670415734515720704316788190988222187543032018454250090870898424346285177351311022025068123800074287271025717013931724517350459176278552187643601005819911039802795711545328169230090059955077556978082402157996704298641821554167628151127556355435702805639714683919095346982400617823153400052349281333481574772229676271113452289345911955308545000540755417556735134559009921017401218462595057322326671916486689631694189464109234779682840003312581614228235983790361077339283195270378982123171187083385896946117068935815746740272839127122057315769586968532949851396383803645592661236591363356467678417463234667070375816147113794287894782392129501028891651143960012110245726138211005073518527673371368390367041379362229891836335981535124740496218387272765486323884272451433100455805465568312330896480637220745576803520359217128219725691882684188287288155243882890980884472721833302096992029093316419801876816670744919556930939127809335337160445645019381042265044313110873466930328013841533739287732452178652491882331569742329230730798854974956414933872209977250385483664814400097868307319683355130699749030615277735950272559800895671004471721175727119614899028847029653227272049734550239705019114120973480452664494450900096845009613359397509824758985201529958952659933451224434953545265748496437597793136247792397801239073726674244217132264060818099778416864069964550039193357220729876998072314096696350284911744922604897587761788920819459079832541716248701375720741989298991974999886034247785508665967733513543117542821103702733801602356819822894151645455728367242323721899586917394472840722094520935576024927835449205534831330907419778003425208675820561104771125564362951409796698690740003135686182986091403665518223487969561261336538929862828662262054633304899314130552921400224225618907219097871590081262443749119412893804514747961165748157920676224031202779312388492100520695770787146089541469130608287167046115964499921873346568785851421578284298889654199373038235977741125060186520994936888015038367816811860468518566348841959712778857192140231707384629465197651678208794104956539506064391590689700722539556778730552194407048090760683008062200531480951842012752201296881969027705899599206861187700770263397965823659962498141684110634549115605022996698474559157298615869853843655479352306129328155552099491886447083871454218948494873498760618797423128508157305605435298918439929798148768962968161549036819388008330763108243872281881151950964885928592147090125874715508154893548896552708056617200810255332445594592258835578461534067869481630086061418408046890954926766279545603969580760613732794348694859620614983657392194071698727201250263989007469793118555934522081413617376690248175464704618843719386448337295597806830680336877257973569184938314284826581855141974377274666564029840547464413549251585409706938502000461190480102952950055904020667103617598683674137439236156681170071427809129367525344315748524005369621030363598281782015641170859455423905070238802439155812699722475112312173081635701042111210206983687351452877912296953099850785506020470976204466162750086568735767704513518708814830447692916843046757012710850566419419759570555830464935816432507550229684200594342571791735128758335294890399441722340929016788893100430099522327550034801110961831595428020065511867793470056893658420863644260331204503679684584843503823300301773892126172975695343635395384506920300756434475820674915764151479961384321944246731581227335188478882642164201364096629828281608574746199391323635231253095421789600408679958046569819562929516154000008915196267484509675539504044936372439563844533631431001055742608250335744058450765954676036291093456359971858520743919581067567627673519632057377859373574049668074879943857850071596321567133509803444083144949299579817758483976606241233539788225442412929169088555643966869005133416076611935055855654094718613892240617527507736253003669861494444041691670729424460192443247450041362803144916446833727234018472090379831434872211357412886033672836074341841996101734874781661855382200400166084235126103858747055743164661792209691224725992624339252965755780251202159554350932828491234334354173982030416988184892192483342887973379558166533129159591117670500122002091083563320812837064958180584411031695317915963570066377091357234002259431199245804286356289384727008703197525230448386126068464890540521280649425359081291767234984558205869407189916349838526010049255608847579405481631524143693654657153401925684241050409505688156482439261925391303701701976005409095128979368669846565525936540268390810709182949651792087831329828864528796200589717078526210724249876094443787743153537511501368416398511724624244293986011801010586847059454775515744611966331678135019548620088209650585094916315587221419065757466732748532829712420888671675157290610471172834826536014702775972116491104404749858488444706565744538829038574065027020233164420531577979843260649166930813990679464579127875870970625090841161960688199965426283821709061267827704119654077290755160341606425639025033237528549236319349102069714597784211117798965795061572665457477432358940675817193087071263032484038009601241522782235590761876227248865405094553116542630731388199771253818540251569422025417226659313200349491611380129763906962455297677974382170849687871618885435823257260131450830191573239641927711292563198338681868279057461576277544605583344304701813411172288157263479819051526926001307192408592451599685521634120981477981025417151257941406654114855642885349189784332486453861957526290294057850500579852344865887289512679134579899007982353082941644251267579150246955603368738371833638451627691326368178997139804321517425980813142348708472036969360041090858092259356163382638195651779657421289644463876496755281154035464154401141888747876886313553882407564890884793969178460505311135359964274265327969627854476732995072373051129402569224733337797942766110545981816002403876892351246675111375678752246798886343201438464135000677340282998137066970511987481169384831799743401811490254256424974118063628233555865220869812165713947572692967341355773258360831201124253917639545523789324382342361369251092802290046916240559186038960350393100766348198549923691514516277783020863775713813405599540505610121019001048935821342240534611894608674837800845994966394456268346444186065508864393508542171436954424364732764900495629813336261351583945036028787911651546697595164156654845708410550696562090888395776213794483683038869712845364899915623846912982901283196694566338785985071837661960770231225756465639906314264046991705373221051403401860173492031052672564791975928394040594295595275723907920462155779680007301014831827262277095279672146985070575571764378551176081411537968172639731829991755663977649186249280626062633144802921849319538902790156287211438475837983231778236735315050810477011241324894400357800120069909401283185340566985832581756792283696325062754533438729988279419694773405383298524207606588351105137717628899426352091865624703680362441792535369197369902403414632735687781454078303659189277256607616424249405391302406852950708346189832374749707162108481504789384754007291841994841567642761795581872313684180953983900824728386537102708002804177088228362203213351322674288812827221267455531431746676484145574905942576236063733881971101570677745858177052410189482905182962510498905625697910831181577714454169075231257869110551463989930259017498510579973750957896756556226894269264341074028813508819657577693365882405067662614176646455462963687276279390078744066285104817126356407816940235607997331982735806830326272797325589066681244957726464687282414414597434558025479051108820918736857821771132173426788875594838162663182068149231624965087291588384512453853024930372096402386842356455931304562064509281079416980717153456701944152109912108798994503944625462333628052820389363563969508804670194355311842032054568929337754408653119656265033800160996488457144978977552788067276518789791558215343655325473712888238666943955827983332798735084144551720450046879273086591325928673923381622097546275733214956561685852337870078646324713508980389019106436675999594440815485179752463140012231008602849990276641475738496903124879977329393874797325012415217032929392385937816849428875952453709173976053597705197198127845911699399229165415294200180224128164196518664516480261032107669151006062992919712633988909024593792501766617801523264665536307118638922081315397391818219100918307752630300059664716549055369035417003157736255572290126922685349876286845317855760589129028088072873672273364108336864052691288891568537006323767700933348033402940391414351011692014573471377667918760031991572021693782821574877734447375691792512145442185701959755319362855863564020691078488178950133301330838438116633238520915519027440709372595638037208425692619078845473213545870942398541458787526790464209601932129285299838482984726316705185685134327292749295958280150220973317613137910657809959207575333818752247438105529135492785834700426263696316838947813392461977590367847254163788628785825384732500664480300281776550549390803532465125173067836185079812773592192466552676196843239301154677207919466660558541685288982229521981395274540810295291139186765236393825588098417663629246407057914802612651136465645238136525925652825033040797093884341075514679245315007707612428752851057382555973270078621330536487024130378152554166767174288164957715257985844026586400092365130787572303360731975708954357036693107827360882367168075117226030847452883152832327373070589755167248091369544501294167675556176226424896051616176619059255323412854616341894731461555802247719973293485884679122736098793160926262935090236277020020950059149348225992431711821641643941171077910444274923204863438374173050056508792677124375628763222716616865151629747004885194956409634451672084873251804093166855752969211444300414122727180160942443664598357474534818782525579128148010694042488763338844371611802092593480156025081057551016574214893556156032255576820565155449710466031808869361149537677541152169592512117882579284620909892776117169793292483318548946308177048638603568751889330953768945470446940104871794046392488779671636966838877003958308907006306288564870032218502357941327638101770364438933149397735389585597510790019843269947547253105530857724528310377528320477567573890601418977553827904095157138281078847430774328332307419023154273822061212842035570004083637095329353268432419720433163550936650374258588750203973833734898023798027522623408166620898886125730120009938936751086722748419502900797274604060295971747296955540313124400778309754882817996402672526057905206274392214544416328397938395303367124397661850348675190238710044303080265160339719665990968591806186881636802538610960721414066000235599751716865203351274226381187877660809607450899104822231487403724856101622309113586984586866951760217885701203000996606380581668334218101426648538728999593944696558019798588922428745316361961693674228259714835372983359304800390190326815907039411268270341572008669696050305655660883764586168933570241241831545411366279933453717114573332922036472576284817977572464952355000536307674784409460863459493155751313378023136556621970058340497085607703253762492438044284606085760832594586779071823890158028658653936085450874765057063660005022558423020586747744096712667734842705204323365696742135495510868609857316073054303553306824066299812190604943245982635430630068003154315614238076729977344500591729379533877983896917237211766592704097023413939630643136707335063669780855947000758000762325233937807088649217787697069750218633959947094783130712939857460715264566559649276606058360996652330547853932238226877768749316001801451908363438060251552021690429849892001527345843918149469458472634317094069749052039288542792287835204276018671917901772333123918950901314614061899745169003323413882572880172312391679965414794215586072155451109384248411643986570347124905179656083071876994267100299773478110648879331663073728509026051091397944817415372461097337633809038681051504577674924260568587701733934765685817942461010506033420450632476861286012691933099315298295679095173904687550797358715505966698971772612305823137938377915679993693935728640843823222507286228355514821394320954320911761579716159169158148670696895400729235097330371291439763840895604287533403935011900972724227500162099816520244941486610321913655126445973090773917055326089837706799753472570934530717932594881080391117830494911222263812133365674280967417407648661148976839635916723571203808980452484624017423306722598893556427808401152787776375212917212311319318004812202221231431859637252665408369425890900932187069798137953380879659750546761522123315120563306933640578525716757241523550499828742557396703665204707378823272086524455862666789615848319768561039120094316993813793004366099040387236434476206389030460048975206605022888305291587679099762796100671204215417285064924979709186503579977647911172510499599861454647431618975711585773256374754863453005588736929287179726714918561491082286259296146495705131099811581944134476659555426648630178376465716973309169052954867590420116639823037351213777127900851473142557498239559428023106963389688870693726979929612555732556112473984979396123007668895184631222233754360256223263498685861876543080474286370474041619392257102890696427320523980534864809635895432726994142636080788667487220404036087441553089503957331391840844095001489598775683438556633549222262048785892808659556743450197374788886157445691423080065085023273227336517953457438091230841569333522820961113137852935368611734303940965773974048239525451205989477936242076859486692079521406473699022451647739246921241462738270047675149963997198526644794739695463267592307093943014878428058419858222750286200895221073587330759662355923750975634604216259009883079899556409318608246966589456380460354043978624473039450123244242699580455059561924448330913228783388084486898290278218254959147293411379253161110798953834653435088935704568978657726367091790643844137564943522067112635118254496775572853950773156951853941028281530129539492881399287266097623521601211731517984763448236070767543031410597779458532220773126934982678495154551891498154243017509177846075395893186557972303605379488374218581142208836847187959170815463564481707282998173807633241853802281105782498122324560638367230372279871503639339454779214118165527985107017511631875536739030478389891030370479814062050244138727198545341271935649966893202630881054811819422761730710290055606569594625655634522606347749464452551309705023502184217987146654758251957972126085024959639093652946532769651569722816636170204246870415814192589872793998899005237915640837793535241226444573827883249069298546000995548180157151974439503724082512469785807995200191810468787337656944659338467774301467207040317936277114806752391969044926447067670390006770032251118426247457144689572842225689579826249592203677899246984119743667330710711657139095398623685424533928745386105976700689835047426416209501291383122782463614210124154864751925833535756976460428332076858926055674563344605679710542818349401588181742365367791893656983934504753858630095382805859717999234935202860633901192140134119494037305012469648669550563294239185763897445921688933620402483853593274066138503528702598933331230869504242883760859916033659543155213835299092689533901048754861511392242769423484214203255857952674853413765714254894801335755814446950641000080259506678255068931972883043356315134050092851659266673738371159127655156542128833637976881902675055143956283423873296071052228423141393127880741049580167349208801580887377493749805413455928874869612563004098819411820426117018288549724075088825601417667501340811985362551000957664360017942671972966578119287113339916972277364253278010227361984391785279501810483644931528709238066711509612753378078570636988231452707954295587363105749744292250606398809454406131603453494083639449511356223556560141753061558089822377348667996534265112004718035170850601572189861832216722298602813663529456213663446308843369095372870019984079124176513685542984374893958856693576909020506572201504236403046455976936620307790234559084803357428033905479612469095526763445437825246926840635867851682064430247876901643251740287973893498713005950764615762978077419997833479912010415624114001520431486344446008850165010185376264098327056638662380951546039500828375002657406862150629639987377119990790550085652488470682253785023762970511851627826984992447604604688342370500923820203063757161687599682309488275297326489155122401768267902846580214380791153637870944946312005260973771161233128631799146547356273724255047820636908534420019576503567197681665937005058692990451078327633676293169455175181453463434133668192187780806801641508357177027634481480325139359111625549343726591722763230755471773639909541638749238736908369622910642204821072492665656301242337282109509203897340023286411306214159202161399320424582849201572279112269888476613081148213967436242774427697985092239353686413162501267138794129943195145737288459431982741045158925585518716824923644297265701985726600576617821018240301582018302176292891487384003198855479706718948967143504337739995610690410490122917310655249463965801133346721223313577493748321091997866008505721599825398203721881817137923982029139492451064578229256265590515030439733195512406977217091262717442995916170544007919881896497926816251556247314745183189430161296687670787379140160744549911287807443906839470974523082788089788540813599359130017191005657658364542411595954626257664459552249600935935350697237108116837096355580629404690245134860264749404001965873064440782746377405325684910847460482656342660966832533715934122020702189810209014681926629432764425885021086290332340734202098040363691042861727451090945805106967108781176850615960349480716245373288690732739410214524083384498626717047430175962245033103915625720197042393216642250708131730047735628582957570144959746618697836268563029019763863367913145414220202759395265100741351486632133825992134958948151335866906266298583451232273118138065465140942265027132284369510054472355370377522016060968021825964020595622067262700336149723901735679305069546097891596347467559442818718300498772462105281867048365407778027449181886215826593820292536322492313950299372674696902835118838168773219772005297130848887409134372377510642772676714462363160114544218696610900469250306326442830631656348970064614918745135786374669892033615653537408009561516554921102748640281527196473804913898118796016191837699329439012701153598967111541621239498322279240219849337502943894338424824790291381061694864911550298227552196213615831755340221573992195863576752859731615064342788478233916792848942386630751094787871708959550209890871105890400334558120490357100513056298068878846382419330030823790076272639545936968236234126906350219994425620656990364909530706534443479866989590302129255847231006052627354569646346626891339366645663702941156796016509260114163824711257433231764456565856968841916392025754165521639620018333584684991651535419845650488512958477614012206223696229830105395478610271732214299635646361876221400732780169359077462460003648087032186401936995058447063249044133692837011631428898738356861242574865502504757179524531728488069972603613596838945682820216104497465601640989876869983655487257385604855736855812585246588863914739592452381604452391000901989672609240960478428268238717254204463599249159082935468951507052428624289816613328083831033810470056729975936841978182028158909898694015851994034791744240455347943228529080322456449736776197163121457758190614298949231987562227779423720200250328282137640376249495423987933561974460778039758944958103701744086987932502529092876870866030300444031047728659933094934325700711778760522718102816748759331836587648351540747775529380989711998454710003451710669666112943520236035774868017609302847228876030153472370616595203888702353718451187395581527052283763508111859707482657414484000321461198357084723207728450001185730694645735791153936094288316862567329693363980133488244372353871846648689132235248578093303540457700394969867718813695836962503005178632505295145849740030060826886016863912008292206634679243380638081556073584136060234924986852359046414177521480170375517203319194306230640179909531247086158893922329266127921678324184916244436310956585185335378652116194728155782668904542326049444102971270563017757941587662967392082387520380792648267212700835163172902549140940169882512355775675529274044922865044961382586770165940587174858283865893534391233998385018099399287008205234258851164043932901601516349630268132723200718406802953445357377230300399602333501917668567354309529441665488274948137521781372068187682418949472375145024078233522155388449554512380933831135636254810660718705523118255091635062722839126236235450726724213770084354409951638523175351544612470008238807618439747188528124145847561946869024964109923078520663781828432891809577733558358005646939960087988787496298899152453961766154254692380500945171336339013552038207215260929410459618082063471349614977077120869063271619649338946296973471497144943897733155381507509030564594358712010770215152114796149961945700223546596560740639278181934413847742354784137384398151523559772494028991460283446254648176872938178062800989563496135966555073574572654756565824196240964762744156267651647904317361804983453936940365921518104804061752516709608942529058985832042915201966713887812769526964745134782579761178530305242398167145544242087074561442016954490464305087372481082210268350001489594806938171195545477116497728951216016550763115503496526847700247018405330436940837033728325419338453115283369828634527128303357159534995090014881764382009044281388939256443581274000208141050055610285330566916490483440429207851802618622292013584482511480538160834398388976593449709931063231287016998587845389542462188861277492301397082039661744087140549290795353905692871743885095386202389169313108095333177901613928600929382710632028372177247823019206889978395571439082719952446868957338959487744581227317016981281494909073909791972993862732763365737193636803427108804079220860198902297095643145053058197094315899601881617604521032925898069626953297955701675246771952886921394126050316588260051034382758163206457185588121453325047496497708967337846867861093053569753924744213372062588506123726192038783873234312694623330604434602354479905009789957553829676579305255597438296358268715270183747474600808655749344267483109973799782359721173182298626865296953070687804930242526797102214484558601085142340858782482097793660992956313743391521679749074061724227992508237415449335006813972634368253482825468628004901055041245381657443897357177351619340988834404749942518981035490097631208896102277297184795961634336477232542743760150489875426741202738346376533787343251063862813607991990933742013482426354019154248024896403764587782542242311951058168300960576222929929952755854461612200930453468363656174902786273695931563833399877209817645386334315919798383202583873456181561278873179214673097412583369793161547693248636636698210103057926974729406218982408715346913463491030179652723564512607861620434070118144763604996647260997524677071548885806803874892563448580362821816662023000390179360967017783678414411416609509741321137331532637786749147080146814497303656351604946356205313261873574975375829720057710411924772126567074452512590488422748098083945724312927233668724650017901618900685214710697824838979986794151263788113758142278270388814754628791539953986185918249840843863779716811177633654855922139650394497477608536963428737104650119294762994122912769240405613691903553833372443886296478136137740651268705100824242467753050935740890980625671149094205664806205312245139612660389110664989495614943010159257053155905478529280880511087772071108620601524752502391085381226196535737565616146878810691904016863068556282373268211996736039081739598460320943873114201412437318755462046039336682773867290227513332229096993106108565983547736616174794875542772815670334671157089626313778947617371272284545023078287155520525536821608356803236183341859498771785299979276939857807775004167026400572632217388244846921614370440586807634803109927411327173718913750011909802461060408954280187815822430821237884129759344651175811386545036652918939741982103094453795651174787673306598591393276679117573918348972199791569341065298853567606543845061295414636777370067338463519401356695872101039823296264904029423983954129209074630345085383084099504738195479192599491528376674724455207504864285439114129151075001569814069102442212641451376855009327250284170649737219408877990983748084145537249608476848904799802402105554738995944316044270861947534413118917284001220979238789957568909975591143227801839022019112670571616510947517588792473242367449044954103760200119425379575658985252604296747264473811986056746738246797346822572012511685935614269217871881340476357828529931492994249258217260558273664779254237070681357212542973136288274637359666495079957225904567017201201515650315400175419466182258111958594245839061130726991904486480411724198395227562172355694240101053320010192241117873026444833928608673286976654530948560431374002671814248451616755614251468738797471002846943363093364288650255870756159228098048707187876852698120120621081817172543694007193602938319689865700286336833562674191479826969603889635800845688754374717757444713045194748090184986696338764665235092082095628764124123933550773303477229158819394170069160596094010168187025206166392084553455740486577341180621009249152718370197119658637047989065976916235900359597841434400715749596335612524556829213979666680465547905364752099874776903567033400621081557929543616953812408968650153824034708649545066118379221065922846440863886094194088704462983743688816888124373842605947468438513095910538504594945282563061388724949863387199925385223215448636336016598012194966789494923327027735140955867878116343670314755445884950009320479040682803142379715810671807092936494847501798933291483536099556519558154034379951614232722555788142778820603337929939845436540566949814622436035921800922281261834100508035339439484509263094135048307103403677305754446251530808212557807864246960338749197694197438132954489831050397245442425067831958007762013410179379029048674296136043931294961175920758516988147928106827073960189061269964444982377043202157279220294002929273276889149371640746841108587133211809726018505714412880004240914821748896105049832658059356784029768532475347673430120789547192029130172248203731917505645950020787953324530546595859591666648081406689187372903217966005337817814284707071116003199871994056294061442835047816831850850571796088565840740432324305985290199313972346211716789037839428781958963396779758031988090822212204129845824017657790914231701513030797769174115130754495707464748323363645825885314256520742083471046066944467915694401830080425244792108963312122906067959955544281556222920771823742666684502895140070159180413410985626036765586079574108848894163509647656290971917694036194744390521317403425370565329391196799933600546225224814524902561906443060075681685750693394782547479363157773126285209425546882708257155816485750278328468809496420288549045412322984335594634384282693862428913761256969544717286053733768003263051285284819378769716345199694671287273347791752562502575772921998571874520369377944874159073820913023043893689630007796761785313828751011139778177594618676615118134747061016970729024747895102354031623701476456149819241055436216623538020041243893406906882415206838872261900245153097855200954277417129950805620733268541012587838288496432895072455141054346904108658724975711657968094044048536931075758171507229569630529773326411482856489930166587555420255578985874682651497690988396870954624356311798888234403591439086852197530256755385135958540027350825646043739075941465984088872332306094122674186306675699419763913389482329253906143092137903986204111296528398355299002317631941262199120102117670556160272981080033025824072505219426497733135048955453363814764329406288770566248252378231852046526518112926658225041336021533398438262476164284589384686533068587640412809592558303486807830713595861786071375096790284104725983703506093313809737120674737036579969693377853037332365305648394290873658376600328666241632702144178877287423210708940834455557175056041892491730724260363886179914263727726316813409370838180532262066630255944967294380050425844517440041249543472326976479205574281898137049877634622125095252483547591785805971230504554432556374945121985198672615769231194051586641406314799461014683312319813981484976441250924859669541049360216593097133486575164633980064912307527183803578552844580738462419111516450246685655098404608632157557249756016798359879840957563988282765651101809742485768548774543109469819088236639688048631239075275655794812014700358766719051428770247392034640557579168603553178342042559746221223956987288305149271876986975261102156168182770259344078064370073708743815018926978491018130140173537636142060547478118503074729348890223511908103409304713240292153717552932833724610384560207813626772197943899297691203829547256737128147301203168824041134367271833488671821720844219398630966791818191620163653348236333183347066409605421671357528253357378936485170140513482585224201020458886076084017822203998534559343945425787053931522593178000376725388587247441680444479342831848008438042562174647564440799824730103461975897083129045428641802200434413575094660215348535383328058955524366002806140837620392403372389612622860834874880172728853171878998061348155427438884726172248347446682543834229496309383759450509440295800565186128976434351974039157334355487574753368174939526707072844238331357323940171390310689766059814163630662066455122640067334780558635133647634168427417254878620867161133075658447646682492679401207819221122221551542984677911450510368596396841669834112163603843287834936784760968670713945674171600179894898463965601687066459045212657557215744649820533747549625287388057461878397541495696342386125247484973671263477936794429158733462604989990634313306465909188541042381138330705876185971533939776019888672357545556682520153716078868206975506444251703517601628336528273220378926526559905631728492470785207447179677925120872775500549391851726987734555191430790128349778206168531200842860278496006809016424285562951052291938021310796518961880131370105154012811922150455722231811345526666983770307985003039863324811840089754021141581307278181416584345072516252711660228754804216959786771788222392247209095786016048835011406751444368624184736679580464908661621507340641501762189157579177386571595523498885524575126945717109559781351897038434757869029214567686378291857538629768373570910788571214830511562773076605998628257037395577393082555177480571466756531063740506480227777757449792492315861494257615769298146009963172954302729546594414721266399957142206120253712464918339598803856303731297660767368957760427218895875943977883878742899584875038046787325450171323612721741533867607926225856844925954471435448928240150945704736623180077579344749823103602470436516128345997627747759129766016458576582576447427831113494910359805688011518140373640378413446927074543912573215783186476295254681454217369586568685102301069421630195330624361084535862056770154223274990371125727826657073997581964228034326473289320475302815670715883121611093089945978284200016249965237269877184325253496179753405725212443348984196495099777488061598024389592948183778352116187402679953813073420091520131602865508923378007553233285911277082207849793591640243218331447579978974568513837900781971761785662172857194192185062318660733174616608944355025060807471805595340620069914579963621317071296494501257351709438946682388846247957027065316172670784196742672073409555205534511483642759226735170274449748078223565550905447137493489170638238704398011676999213339514306521038479008504238859132752457702006653375603843420300754968043152595793205876754514327784757902288773683336415527256818671946637757579327508143875729044972642601467953486602958044737542910948996536451548540892634132404276025514282522877367598214455157159284243534701726159205646830326406303469260734493166552870569461753106571263817495949948953057046551330085251904638497239709712389224811242267260062534905909177182246569062745042161279909611357806980854124505806358000630653409241914806997786330775903451950295667785718286685883571824634832380962637955772569229116517049558885180677332437393863849546825691965227525360076772241697246197529704415793666493985611567494002271051514113589796717854651755448021745054043398744864343411053105385653634533135014865259759764065741824745944008765990791410755564646440220593784997200881372517179041174140382340392514455729900941930648301049478247262463081789476224447349538839457291561562344449762103620436308620407867588080467621393625903934253228203993556511377614526293598122574986230326033171667723567959045136711829457679778802662623382516710527419291667133064537947579956443196599481940271825572230977691853916014236586077970928226248087572026419857696164135749726471238500184632589434602762423275944219974255304884648567026021209668391987086206906298301713648499247142482578738916517792789132921620180619370571304276921919458717784758051069286264939322731928237665907514767763322478968247207938583180508971798610290433474071967312208371534825828836952416920714376973147162356303983646612740533300800357925134929779742040534141142881007272176574754546202725547665930543433391818937375367471371891447263362852413372388197269524771191371200156719960619628023075467904670144517879344953141678379136371655783894825981940737451332921315209995758231464646038461990171244080528866079369096142322411387509688221579495362132001533182745370662095713885701293538466111490649360002953882498606449229231159167833759679334332361581152184729005099388782162405340858923140370103336880448576238522360810043625852740367226907397448164411474162302496202479168557886682195702220891883102536951578642159839878606379399462544118683338139968219060731935244893232642739028694423185354790764198750016851311912057751338437126336237022189681544502728934619250009386732991768008229225591483150957242544014754266980905713950636272506881590419414040936248607677298323861080189537846390964444738451079401078831992083624978247367891347729871865782061447352740989138375003680362275531678442424196729376704484780999212382179296605156672850130168153596537023512534195376732928210547751104502079631974587634373071856915518422165129690153876383145579370651202325455751792496668458364331435867675929839211951246434978848293592038290538785302174311866547820763635533919309630177073776535703397983371772225790253220964766384053579275737215525626708345108310586624932182113635698106380347358454835937308717352149812040517765567758253610629641478827288193966359432360616422676820813671167847435867281271336907037651618511890685531558915625494706928253393793626072551853422810071247298112780920000694274822961532112974678640648271593595371890226295024866309615760488305025320296841782054556316529608244643226862856458897445151555890734747276970412965426981800828235820267390607953543669892141109760942783116446860835859710728122101022234248244473868818910651623596517083306295188389678706800649928351878588188393118287975057221747630649769947071507956885041775591961278017085272849786287055772883831285273518586316650269045712122382469338952575377849317759540186926702016177476960850894795846140055828629329458912734207382393274039904819614609744343503570503187659998581621442051166580122102316358711745933051432186135447328608209609773526774946702307523101935535347990098849171878656592441003065691598954065461462410566094553149768152106720833454528225645727438941786881683228294490483697582203017712448001303527301496159362825186810328339491766489555269989234172887249625570654949684812410829484512645707547071468474198845257333888721241464320455642391331970495329649418674364020931230908813124875139078679405097598902777923177515153306043103899484176428423328631974523583082103462672775014244521876485427654344174476415249922830613258689794796690584963583873692575912587579025353745145102447371487426895083149169172911847745893031558281745426680534372974339308650883949347548125652701701892436261219189110058146348906187891491505033165297952381065159361724174552460357594600564801995310148213105098438671895017594255414242065439880199538833667871428686368636010739366300101487991017305199986862386500556142843829115734424889622272138508302312200021805348894498509977596866667271126603110885504395911535947693090154833321362692877672980208732502459300298398445306577316716104355151630107796827778342149448304201438542744194322696572369627481016840571516502542422406472717433793752909725154673685592065118615176153710647042450735989284314014087450953726635710747279500717220829251248119292657714921045820166086767042123120501795977623348846143325840675699633302787009040332473709208878074828276563804846820168700488231410797941013233410295298136800500395946062205611798687991121307196868522927036713378315671062624227793764932833842446093112878714522728341613761878002237105833547281507801022236685889151691309936581590103364326073424571724891035143384522434191980165295080275793563720863733210109570735232490558844982227967975375855111326141278392806847800084932199372329917585677742160955779333807090969461820771377722154030063171505375634834074289062168542051550207913719292066843518019900762773663563658547413721512230577372399357912917529741775456397506606140546165611158129065841683131003521015773572890506615371204525211947188016971505666930252388721518830630227908324135662462229751873591268695956805676271908197894778502773567595603573416567763458867165198716932018353875653066201105701898820202196503949339618842555366240571097212240791620036043605385991375086364439746595546853101100118933380903787015239353568879963263555312028336671470839455825650286633035699729137234985987342397691352452112240066582547089827202411617281607337358859635182809905102029985514052795021469117826409858852535708665416967196386784930008670811664726185467195759889494941320031615982337228146937784569008706202785438935107437069880613142707740774580346768669370081587178250454684453024625522307312298012309261916434613229372775403517820955473843284887316638360368632837424370376127425792494692132674759726245443367167482144511864223007378030547431302343490280220489164283586836510010519646267713343422561243328280738521298997668181297168557533107300075959797350250021398197420461439495048796013305487774214511949778231523537870803507945186003415189349764468426799992406060022372864864229442819628892633558286557749843826881314571445041251280300161828140042900546421172117910866982994414224561185892737778959147861912830121600004118803267216440351011388648068736864577808777970167178214010121270419901564341505417804769257980689495373125827433100754944522380744523363759100380035258078234399419773825765514871901289429731890447919733621340397949333886253348220350310171601869307538604766987926699793318960676383224113496180865266997621999954242333850772574710529493276177179947557356568628220438182880291455734267497114280509594892905981796876452425309068876525062016788833433338375412797211354577337876166481477693732025713882972874238476024802826743847608266581196983207328369381559257372443089915811570602804666177658989728099904679710795548875230174590582696381039177425629149577495551538938404725426881717575578651650845885901502685217937145286012391899366840159268847743901682770167836621279701573858299251777125216014573420998604813097653448349992578902136624081111099913888210914054379233973003068450226173385717939540232778278333413216291451643519150000172069394311818562535806054548734177296748363726230723660792969040286756095405170275725152584840429532813811143846564244141280975235518120279061121007373174165218194947537124730402266268384998236809747712333979036596304684025298090534828724320989740216556091000494845124648046641995115653077806299239715055116268705632735903128087935722484361372091903056466988919414628772316905439073685820402147262620618562457808186813610872877896190229711184740224772605031311246231058671528817049092408892407479938272785585350946441666042637818819004518918200184944441002688365022251890948835615469962249459466360657801972397498075065460168955300670506811986666262892790593577102582945672060203281413970463019588765307705194993380842354294012242178728335682557599048719375209327893860226963437862291891784728882528846039743783903784903867994109174988771010782774526882529972900265027152595258824932274987484312533588414062414528619833392660178047249737209610097175143887096185025543488201599158991837706258773887248052224095555386460939628370269121856369161898442082499640942528886493425829444235682073084038807702095101356279771059524438762995110483812752942568863371609479508271111930581890377819169086489787660617458650793843698780505282796277117989419908390686203358447185008936287469751044522328969124511186821846190589525021350402308342151371345078268493214699561076559364950876594192640692910166473328294066181576131289701908456067546786135357993430103958041168856241503654068969619588632526609670878716742892025225033130318381835092766854251715129073619310562562539546437866777252389899900659881757270312518843423840683266789465989946857843307892237609749592738416883912920651065091089132038666244175971256869014249505949254190913216766077719326694587732588048306454225659641876293897594326239030453278322302111013543205780419162789835483480510630500581625064183195667738992497406262471107074555756500559184804174078876554527454206511645491972647132377872691024585841485699349517485449939802321079917959546200551416015004459290935077541428595538719723900811050652015534670381197547700725877455075024663576875735069141613568618738723697528874857076980170421877394797347680257406778210006471468393823841692171184622795728415632714030763853198446624675631016114520686148233554544765381673011910784816917348279920493118080981461510011983833728946703211568777563440806466690871734258115227471500899071103960739992001909123802552743481187814989690269422303600877741200655499857841718926851069243045491608966694357115248630083417660408731285159200165645996750253730498102971471389170427187410332431990885832541712400866393815717007169425629432869915435567791631099189636518906963887130258463207883945331164084230965722919431401449002161944409005824697486731971579414208116600723598471801967979793197616454115507512147661403592455651206721430869463044492669600911320914013167483032126860140260573117856453940574458337736457622176123465284265148773971692199671026828606547543820259188799035023505542505891205228598255006677064064507106264627080917870986626620546759454689178317493351249374643727892625583586104089715603989365273286987058008394891894764685171245861269461651447826821912208172868353544008797820707667054648893568606597587963341382224311667914983048620236683147835585216915591124223074888726132779683176578561192162939661535456049971104554943474779598830755398410910548120560468351073241003933886147931540213424006789892295970417255917760247468934957475045718521018368217836809089560979974410472730788131726549464717231779436786359959044764411602970265788689363070149233422984014787993543173218696765195234188949369235547420938529626133734831200450977607208914172659138275112476910479767486006894533085727397068859751015392220142101752794096571415615135149756023200205555268410354501785818404914557841699049436664253423480405865419696370992424446845239843693657908788711356210550384778336910603488759489760261545343775952997331299564177582367918099555909432677114419465054504667778558811626205665122166702341535158455781966509404365092003432856013696074270013827247297882954151686078476013822868496316818484678111544204443623448688043743213005970500540227990498707258527003517002098862266589386545063006609626553895575274641901468520200660547609451810210784127508472164758748906723878483874164284596580758782619898805271278917494373794703024336839777377963046769758897869688754889556851033732562733231814625043967526589079302666321454201443191177051891752315234244547665643630703411290735235639363468707705671780278007152083117923660843271922256160644139122160361061126553249090910309031188601562755899397198886152800103075727075699508502242225361652423201003263037224427304804870672853534914237910038229908172059865850512063899578511957824733353128285138235942915215304386181823704375097282289826084108097154907534850902518359201506099340414863069276994670625928765137465210872182146413812134829920970203646901362997505917181951146890734984967079620942863661230470852894195923905673075558174526935511910838473033957344381379842159367851713136995047712717661316834945403199110972134753573660285821040309362763825062289007681377464337058835842818150720690372552713020466503391474695170569965637171440116190076553128633519992480265624283425147162138167345666089130967800128258158515301687762146154443504611103220804982267913212733965641825301206430515778602124944234749524121749887275137160095507356936844299824639529104366405428644690794217865474510724319026078120634254979170433650419011909772269193111318918053529677935297863750589506014201455922682087817234962281670580518652079173378153400308079642205874476295052939727415809147224210529630025151897809396400700068322444619704047878877452869867148437336390602090368994034616183082823025570539002720871568882194986072724015503374090604543997623554677959133520747087879310474532883029689019296050941633425061910092993578994145653287578932440187491182408920468807557727958797817427266474712807300955762839194126032659861806832943995065626772072382701456132139327400207294909281826224055821209740109914429275407985799048968152130133832049977912734684869474604956423399200611037026564078944123680024877783910805574068348527458974233053563616883863950973723871366673011922871881187055608162815500312325025076403968712163776998168460025348056373575345691006153227355227128888973157997615950103567290230928389725426259024604926992409187412366568932364083835407980925172303097281798640678647127071109402591346683354165024488968027440057119750683620158120254703025847522949686689181785588549283373144143562622312812148798747821792591459147787068605097155618121332545350747982351922508880029575941510186091098528327780018331155075247228644826361569500396354261327012254728905322480693669965429188279382780856828433696280009522396150517075270488783366231719618012830951860849426958709660017725993244620280861887956625465841707443494820838416757642851489242512462320921084798162299567888104737558044021172200874943507025577190884148091637727546014588143812952515185700826415810806868054672743288704118040995396159154676876289109496379354683505438911391944417522275597601864748278061093106249539553199069026068571777758939613768163223049293237870205510811426452635555778166225585305247142184691411151968418479266834473714900556632173739375715587028860823068054025116541034026955465143450933020998246565111170874186226777236984801065271390709013808198078071796200107943537748079647658581769821079531450409954106707176446748947235312757837174438543364521612328786405930617546702048952292413030913823543730746129670304075661502786059545167815227205216211589302243789319161967362492007016699663347473468578902823466687291397576899540039267719990772109796339622073225257146374214137666745981491727471603938295062233822076481604149362043023905677959964827948073428362373545813851817595240505967195805737792393749650288261327476922236256537691826885513847656753475759291638323929168457801322264582384144756539345121330344178446316226703953087507263336925662979394684604776941985798547298664800290938318230990913348182248681251201003321843018276298509899533303916349771383922704334367909758869598483013149513125813986415322163184692890538206397501569613187286489765987776411001313542869015148203683523271800447883242788017430315974212345429904504587285698634837660453651745153101986680846863504811987839642922724192677012547869495942853388646685707224265955032369501410323631256810901584067844135891371288000409744855736743077881118512013036284584566764925593974934987145975183138851712551775542411605631699675186335698871123103916258432808115630030059836634549140811290296779857226956883567869490824849729638327819374244640687198635511103445227622513915536845559276316924870446673907927826520859838584674205386461307112670684275078826670673812003110486899085751613467022227180247022636351363251072224071560915470014977349107654765088540860850375333678670101082887010641125836739184190027584847793171800448891464656788820820091428217724346632455281618930021572229134588899944914189152980442663152305033756308988220498079286837479976008747081149039421972974206915973199153475368442742880845707448271465818784411658460598556074807039285639675974171082297569262948218728608302285894255108747622186824715995818890058253082869304947012371735717241216452665067797121024602439083544448770201968143551858736227611097745803878087619191132387829434261854255975084394186151640775254051464239561652371906769814748234531156577288934117360874413475479521842410556429976159278248458107552835426552444232086073737744128843234839713735734096340502601360985863116099301027907144598524568701065001858084793599304061836364218174953258736742324493787791743084978070801718486425854991360433627797724796078827966383449341850371790903167818842032975878274814431754205769846129868508508803591124621305625414656141360588632949585307710007839567999922668105125665233601469364883884481126865811889808321883025673072580548752879277415485411666463903841399099251686261001238692300088338259988691039316139101928034683282608889814077720605482984980992422815510855559372762382542462252331724985042814514887151212564613396187106633648005683826159926611239752634328760047746780042124284242261590008303413967236720063055248777777104851818915684417627653922110084158172556096007168784009425863864925214230893466292101681885613095290550599011450305268197818077345767437516384391924265280457653074708758502949639684696544507757977006150125040179047117127575453441837912787069431270753440875812643272924449127930492025860632535549672489214891440745208705457939724882774878724299008462208961458782341571505981160079867085459691499719392240928587038392738948417718727950500350042381812467699610001406679639923137779952624112318513611810089018192756386371906821299658942337074068360136267902525191257501741878244912659039949152596629437791916874647160873650519861880176848151758078261572492202393801767096155122216232255846375540591615527998524580628257766426467136792386972052506433712762737620010300264160968035545722753558514073822261388748499735139685761235532263591684650909232774628975853422290494004951532174500899884708409836920492412869066911850294595403125199620823986889691930776207266864842772338620763935661650998147009333594931979368505249319574163331062354209901847466223734471040531862881356900614775999425561338887166943647560761069485983610571285360326759962897854552077073756853187080330968608075657832524730187893442333161377198507635909324461752112311521887651685241613034743058402279855772158201808394072870911999307154166956417373394631587881029362863551809377859974067072635361510039913790320166757924406746348232862219149664397574807370841078520858573998773255339225900579023543398356145866674871128600222031588642015375024551780523214602329464830168387191979402598847325660747767393097322504347767775596068323822718443044302307572008905822998790480431841227835706076363936292830975911628159060450231664691516743227935757030873425337115543823302887196823955794651019064511487730660852866031819268980366031290574669891798377193303850519911779109978883625959953834979097408789176971198757545944465037937780869168120544009106707472995835787331159949598181161430277521658288875077181713600008925115784128630603983138735117168442799842113429347809767924649606036629153015463323757624182089658817252096478350026800219588209937689461225884124086075825471691128239188371477983650379138923713196496339236037296675923629685541323364841502303198647465891330780923455117416305038554597280633999432331758433816073537836343425138691076571143241365197954511533454933384005703163948817394737919246517524422202027396643098795721271562865341110447065848948743089025249073216717119627717515325010056864136822134633379196822709310175244934149893574069573694088174894868057694606937814930525055795868208959374996521149210035096509899008916292958679220135543732788431953453456241032009081672161931735891496618172523017021269376559761824805615680918455391762572769605746671636155825363658733491318522667744036735601288897885554142449264256089399217785585887477252972626616626626161356966435853876880197072065866910134456803979694774584385329031455554489604873306791338881236657813714464867289837456065290999245844261041070609366752119818742220311063262905481436779333179438209588813741287873473059413326309984486395978989518188375006633485325149064351183291415592379807255280126030675959935853900161122695141215302755701974011604341777162847893656005346571678375882145322962000342302490274072134452255880044997864039791873906919147986948954066611394338776987343779692175964380906397401322176629604285491102005241400854084069346302942282927959278576634003860423446500097185448851419809053844878654578770086592389615110434850779011326747381709697874394744855083660286321912504115261328460880193889395584274170982279576221257355062408869569750504093392287404436046589289369199075333276119612868664958281337666611235939286652930184129767313991027316816839653545314314882133228692037430791047358412115286315142570822419036140610340341899526972739286555929525104834369465869204523419042168983384668102560404934387344054893949648351318028569867392314257331629346645794304273796834769637427714700897340761280155029069553482944727466415004267378540505657637181990172886455298439200843673582819664628611629804387709158320327711549301642060448229992528842321677233643167151964669311551886034582101172381017039773723871625434979427958766040620658575659373242604262443658565321971952951150652244963746572607348946540821434379290943080354799990064481579427130372904689976022215255189432181563212920517066737310296242216481368062738379442766345322288772052421491051788843630652271463289748154329890312687405175633661187205235338308731122360705017694786774757180219922478587898940319764277891017431777865642279142731135063820313438628372169130545356274265712094767038629407620604424731642456023481017777283539892120402509912348418795238211805087581168139778351820261727635654825000305867761477330398303040177951190662139079603355502736315065591571718036913476719522303262338876038871471922583171144512188460364333645903277787795629715631348592584259539931928064210579604690945641759571432743799449535140373362975036343878901146331467906132573428901398102959715659292831356508955695645887149643473172553959533537603392064478184796098610957515464421550255007896134402957272023881312270923168207004474392661721839023753758279782261026136767733106450880239335180025886565621328213373003969986384218417046494894844657034838082418783836701297083921492777614773152471510054411206896580929910097803590143124602331914711997781898568496233195336136974574222533530867575085087785297706665750567267819516934626899433791501127368409080300394280673369572846125067074695917174591599723182430220969718807447670307828017004019681682399116377424494063761133895660996527442386583331234243572643424792926904290328721981405642417187002742322900371881195019058512307679130522450003893485985626361242037703793238697929920090484458014662659691918017060537599710077537293319837350856675038106704310508855655929627811570370316728340144056703217319421681888087197974810468964141265678703576299971658877718195111500283544073837574237740377741705406264437334934918169336033773661441158251759576144112853433127764684388283891658120954434075721500073462242657629347957384088883003434245635406144756265429506302941178319117917403601179071637292926167920032738624042176782689291199994615170353794172000865760996125924813807767258426046968187618276159711242343791485190863177193882355432322839301161922220983785374400431758507328805350761381714066898679552954648544343042891788682048856140895794978043836672012572303718342932832339356383382071821951462312088848586406287725214709748037593353242704091522773921375863980177165200049603681266181830084340967304777999700825622208049148217852167474348089820438577833329866356011877642747640393260256558985341310770740867854873167773867413219981379546509324284486992969523731579048201512851059330947660510517201599121805047795882769121638393272193839608976389562336823498876260820748211460306575490544075788156879121436155264709844807920268021654421917698561556497115185386604802621902820900191961509008652983094348504356874748824250261373386450371454359128246335175472685060136916098280237772031659587078967828994422957857869642533812001499177611502439312801701102432309013922747931237004591835465819764309975952335419904189048237461157537882108023818498749976666486934526861939673713359419366205785517547039745028109783948331688451447088809296143804264488957246683731889008983016781237401756745566167437470974736741237601247369076184665748069417371926322747206781819121001842741209771380747681150281644670165952909141980752384554666052112031555344154857090712897725204125294027193574706365009612304263995946973197832035692454653350984081522080743403299008272243105040355583402875421817628988395921056966160206212534925336732748106795696357184735366288200871128309040772059444056273167131078951385942663901659275525276740808727634845172805848603421125641282194048520862606429841924556600128354317645779561007731099013324844888261861968914425412007476398882230168176847707473218425112552564214326692635864443410808793049736923047815928500872903596728243775584906927439598039853999148810474198484478138363328757006889268151849979822001921769267555105864407601430861114828452770991248593109907700865202603337595835046243419518496630982771490269910431090309567533858918820229918393685607047268090099931725879514253709406676834182201383234582826103841249003086312804993041334696095871803170254304107599425257955373148855621580303171400372928555981235114611688729811470523372912535613308052365801394196506343457338662319136524208895793746163071497743679378396302160859646722317023393730297672341789644584067570200079726353672964440984228339283607060188908070528176112867483612762270598867121494421801840202683220056121183114717471526273939206168837619762921844659862299573736646943044156071600280253627713754328095467872713411588034750002156754887045129896944629252920122832523830403027854394385622150963489672000464464745182999280108651235151088548205921108129600485278256043520203563476878667285602950503800205081648424294354414185556503612429206119711513576593046335055153836214179427773039833985228293573712133707404381532317068638930893855990096935053268977067797005203325580746545200214190916999300878772122864423614915207377059032038142361447271358708381052448929043237964784488523660000379839058884160748030941747385714193660366597461048393585608170178394855310604170606122070658742692953241073283142567403685736091175979176791338203374095638033144550708849362485967611334371625161048145002287266138513816561991652256902005499235925897437562353407351666990702221302287880155601321963765118070475861471210761363029590683864615678439955449420311280920408586548453071628847831517636500327573973972727531334199934436778536137746357907252477786795691357433592138423432291676604125184170526851328857935344636527964554279009208743353575327548432908793329526648921685561675995361315435419769133360723294690855030907505015829926380102644676534043483090856515913441219739069114869878869607930019667775046813042209871701083530309904839343423569964130121163725299106699273788528060985532336682116924365208834395878743149607783686433040031469236871198834783191634310496255422010735399652804797687998601218284082586369923130478328922906613862909130063265004443862879759706927299404338564967542944051887418955532446900890026501823490669464582181924083146376621710872032755149707236972229997361574938105868480594820011384322644672015746598495948196661520125158114760375943754171549502811767066492036519539862673522704299235211695515124784700427569134544845355173315662487505904852901638693294195147375511887746314822101386283393923381853078190614472182826524976914731859705654371392077724808257165319819261796751400884381342813299122642976035476209141932225326847458348721025472912213453971344947014223838789037048804886078021358135742570635176688013169831152645815265887775287490041963131081833895519937293699621494162396186323476850889219648440423482705275212471201042614339823336366418053124636851597668133899527802364134965050127313934624441416822684982609302152569929119582515303766024378155121762012597472004085731973432007435064830972553631102439161331191119739307050199361335152863550171198394853918974231855629363380071737451922692597713466098265264686235668765730818933756767897430344706590435705167545657480711288383919873485557660005628429036205529754510330659378470703688679494299477482580161477415993359433054722320558038935279819712199012058901987485395394062540109928569623134714424610598967317735809188468574784189954636718649539468103453475878744713741876900658300377062364290848372059918632934568319959608864796519092251782007978980138776677136223848127482634333231151250977128267305518217036701790456390958347074025388428999502111369607460864996827694707835061841741203495768234549590618126982233568942067915533503770857704488905007201725436307889093901339792336472192010159335450119081035600568459966849759737124447894581297464551553550017013626276109054344452584718837414574094621698129803913430511767685014345249094012272647607294860330542280866667547887021485647948258436049618972001941068583435766111000944994061011499006518916840501993793892767783403575475588757008421307510237696492980423867550471810174082200853893846135828362387037297826102384541033209324856423364514609535096598769969094507832178567320303537502252784006457057156352715972668551333777118036966137172660183395978290832448412527858222084697055626225130705240565221264787033703480054862943433109162224239386371250800285365082979717143739388345819241327653007078124763702004349930251149382237504755328255863682298842933351456369181773146063197788114177009433077459121028161684273483742569113772046794764675555452538459419531793993007255551216957808374897138956203957122202949091627450129113415379382941729053332614932038424070970750033062908531664308496871500871605859577053862411832769510673000158472407321421208841503303352379581667341921690398919066465840770180565297558031598878750523005695413076318167575233709351262894291537195844415679488592392559975069333893018748436904355992717667519086817709767761697550542720773582190193764190412609806988537728835863380525270876691644018566520298027836378543760909405976496475405273706390756792705522498507770443404041631948723585633499792097535661399908743521444198082027383831690148017885807273998255372048445375047358480263963817333947455209705423392793171997383374689657812190659267274177263286083256676448473062970005252104641575994301458596630472477678226340341126864533167483663032050062634676534962485343722731382796805719210831539096239269251239561737246857391519953901706260676530262799931515380391673280827407699230202470718569774436960647853412340403675347966600286016981606706883042382655497658913421038944495406814876529547354633398332782163621349185287001378268232568406437910943139345013518673377719016290547329650410986282663241269453750178257040582721153067442431409614637077753852012909415775915782896512180907155028626326204886042806652075550379155082414302899899101957904698562775758901326299659513965705187384617837826897494773168421670757770623586762157333503484812969768285477787302606866459705696781664904706825890368241975681409467407295515197628499020896226455448658018721744093883944142689212035687912885671984626716118481186385675153809079648980119726531620872373642338489978198929448579551256786094799813845053575371309733334926056729854712247305987600222349449305564938801302475933422994895030344602843322209375156566676791520958918136935875455388316048633594250673017993092736896234610528898001435288018051115005075846848585834540416710313368779933210204717138925058882166245239266295919570639199837936543926445506168930943134135141213501276880917492107980338778394463143475801787517355995045235552646269470691756288264534793062824965580045761856321883476104706838274373326421666244290856256096427201869924525536805227130497374350982465271217887640514234919500128713129194382687718744970362329184917476819876830901219119299757527814707594300525554080468518370200248062540209080836688473234440164971265706565001112565590261530551821724368018281385943205351240695563379642021212359585935320246434893931058311965426026045121358175525222440114961253823704099943452520933338613050810510304895572885269650336566757990443784030144007125107893366083144700033966617043969377643921550627575913252671902661153429957362085083953994527707178152329225496121333475157263162802536467055189792280353092794444051676519721023521397314256736832170692488124076738160329009898441377856799876418894504829058343527802440385253253320855499600804668866400080466543323608651893271091205726371737923988711828598464401926644986338373984329923998410133282306365430678051320930442361596307662348339130878617561095948118530554497079238895587827657480364720415925030735925128513367591745792599623412377906002783677170449655315297134564559240608422856473272664385365481769235362315676030662866056647113151327270741686916161482278470101414745248536495128193941642331988428106081813183008987036050495293824636643186632495101915863726770772183372546945306838119126659883624123647993024295434927824165790713922150810607421604504274538334082751541574975745708144949022376003821013023551569723605748035777405056346066287323058783612049774366992546901102106661857828990524333621420035824923477062379516689070370939495954000358036060749727126040400987275436091150327345422558702664997883028013690794119674411472167635824390190341227280529304836677679265900141325311209863332699623435213966591183881846582817743971452818013095132549739223577103956617539500300473865878440042238109882265413145362300281451873470759172302834607775357800877654873477336747920525632090933223923798327815392983641348546451176829613534173138359792212570256575388540181115192732543664565837271576738873295514794017159107521389924588775217053966430287188816748650705387583960085088168495276342254468956851903689095865740119170590788771621320232817672528830951808957417166826116556787040110426180816646744393807475522379555479763742178027957056112234948888280900067647631620951819040644938949767719503385575912240580563298297222004270660945816893503027633076093573629809093642763644296632795937789337199003347883316130470400430711373552253588395915857718349593715166662521620004906919028178684277909458086631140940951320534841327236739174957790951171586061400910805618884187261852491375869317810363864809135081299351185592460214921022062637141855008189749761244773378749270454302038466572411391369676065947092028261153348146079237678004877745156068659982401850328544018446556091503240621025899935467932426952730024225279969608322267774141138219137691106943486560144639394742628207358349331629881567381778579355452431598996275941531870165989050398800659251749010930670133393825062154581177691212271735325199552702411588475060502247620320928572873183175943940295606475738352611347664309818261710698419963865060676334167425993866572735295555649628325536297488686208357181260141012658429714340111684129426125751474822210197868935019690145281246906373692052604232651202640943559165946795851995112924396842852336025521126641548455486222100859346624738009006312196105618767647480135560191288167017664464265953436720595424313387365301792937621356297601324173276815230557725828315262167366680322775324693310630463553134060989182681722055332885328465392152599429618696455422126942667616128377323539090242800808539816397758321143275558216630747357566290055297557556919674769782067143575518385860951631589874374354165567412942706017110491533517838029959865985981303440723428298883352502839068971548096938584433218947684737054651490812547754497215782943951189907262825539395530310024996377465167574140101579997812651270321874976620007749750092421169235970891302738536172588489094849936979284150876528533962496810018141711586451407993693017146937363311745382655688288853411853956717397549272936962524373272765359151392154486382056065335145281446959616382892204524130659894350651188304090142718987913768089531193439987034459041396515956006216447056632198452679945050368663244038928812467085852485762091242032629890588549415139991758346882239670179386670542772850442343134590182502010245324780247919356630185816307731433353952914741954468053972177397060331422132996093122831357373613189973448444565238102974939882072928806125093734205404926143179276518680108026035614616805845469046857330322952089816771683056615339029301440664719183306752270166972708198935031889981685318186254921876004595001168096692308743609513584074893424538103905434122235112811138661600376124220585812957890577966069575639904298206237892247241442242516710943439479561738413757801949348778384616422061685406233731843279246720281549262618935708424240751482247500974423012349753682926287095215147097452397326693534215000213654027102968626860703010342420801705584094273668244277074331583922592539813916370868379415544960548536427244603468192203084606233588492438664641566625796015169111616080269968149496343355646253321026989172957080403745696298475325915906476729971690257610895381321614364056422505868920156262591714967403468110718709570488300455041689475692587627725475467039653205767803004772484819027206294813713044838667011319102636300608979928099836844333635387913787788887774040585127662780366119910285075768061898448815104764984603747565145619558572244752925362899135608954624939822738032148885923340935005142681426192278408386316616577756145528774418215879470097029571031203911974050670545864700340596775075988439758919347472155248409554891043772984731645127689388218106337215471235147181304903572476029364240645518286383752187233198236102694374901381135775584338118367512991731422060844543068912814437682439355762777912064836074970392680641519378318417657938647919224075910944011336742244513392784652732867788644576170532890550738556362025079775174799294014400706780322393870000952370167801637726472879812502103489565191544622869037628069639734154700972738744396408279159839823903839146844769397141032727504232739359103251042304800218871777258452062550545243535378034440511381004419434663946404990056558287015319174127515528304953703280661525664746745909996611920524968819662563881077900921955549252807774365663603876300854494089981899239974875716885387446604515932359766735820350361188666018646397969306702998641365991969674955927619213829464628019576913187826749061127038188182644938787558414156917190600074946297289178633804229580331104298604681284272752761870443327662287306197148504974825403067516226653264074936890008356182318807069738935666486740733362675646836870941596540345906994192142530973665684714394348977265009797309981049911608661532612141945174747564097917115217253515210780546509762707608056374428603190009276356063273736825783382013925721266121251336637324971943315860334281532107014056822300184281356203695591277177353327378310390988900909679301994617816623467131480433252904490922360140279891634790785000439974882275401980620957021709143021586232384642127644257060369464907797274641567815492285530017599127807314172356821218644034038829904189295133189323320288762841983504226595783864015924881605807322600576948186326255151163406288249201854982128966661817360970362910026171741814070671799243404614823086640965951508564035393388783209775366192230894902012249778445141445045279059721862166021469534266253326753074565859223955437013587342401608231684022464911234864927541879316215673012412050380029777333842518802451739232892108760136858967629825332031062195126812176617305171772462043022884193424241260519262352250272632312012578210692448104883608685302598435776657485932574003995169527875929490598526027080070852617562836469699484337472388416540843439130154560682549302010075271027818118261062667324672551484475309092697350206735003269500602706842572345420752227131759399360119546602631809027865188456274356260096005132424521644019514627699242382340196912686663014727382595014419517363286066510130612213130029383942788485926979444988149457596417095619705781941334912269423472399593103953950920183651192369925358852961889662180359804051915917327994352580179135825678704995418495382684806310657691644413636022870916698630219873121331004985595266760119983756876373980769458108518291810943892617210624993868081703227466124966181597125334717092975765201136860090135617942906622474562571598623972909444505691544096114791005519382299514295434949880232275427722544500954874428163030902057563861234753716518783544944399406238863425466694729238378568141583378712238729048221523763112273302892288053442955638629339134112814926086935137875173642677555417039381281649303103347542132095500142454939254664388841806528063850106703339547020508217228870267960225874618801805359215062503323872642981639085721557501573927285059764825324441256275102050804555291854700562146591331339568087136866260533863323442978558874574014901297483334780577030515704315726434198585596178977066508526147905921567543025561905685222974636145223219612650785354002507217847783561833160526485199381063814431631420197127906166096783447162245730162862835469628663843260555067624023457609860074095669352248022123960306411501274367225588833087030053061005614700670011596953155397498735795432382940877533309399717161893793623641563752556483407858025171144147310163383733059612554045700910822752440883710083948529946043529545587755269603134636358041019456655468751382998545345428172472013278392337404075562151991403484291717136861391431885842866043406447699315957716507319423754212224047755479003063971694433825387477191702781171074175348761047962346278194463092755547745377057325975217637802031940585655535660260111269548144456737678855026324817423701371282374141845723047026090851246012475721714981482742241245622632382169804004622921224280680632199664733779342694513961383520601994790415987961539226720589240824370960601989779675250318268736047640901359046343955551968022479608993126322980580253700144918418383453338838352453254077298880323795703162089325681754337886939087891135157056680137026263379176690910046321846331952967207660207705759372237015769085360687607195733783537336501849114356096128376719971078138356278876372794414504083147375357537943282928559534792510876921604125026502672417511684939345482348453409836806657028248998586165699664719951267893720839568227046331751816482177537898968952881818013473253378925930973355431770820652153430792538191794364236358869923995780814361204663995446849155922159414253987451205022516578248935149482336766883657589083331619844313875379371391931654197295297520062452012485041596963044193721442222750158860567250237991976447658121912577471850828658328917982683237201248113266197928544341349444650189007756631417953875897642460741566779338118677289180156879807062070810683666329498137327577440599332321647826526690495421452314212181953626432462216484070545878655833229437431367709963334238376589464128756016490803525567177168267163837439324654220688111486544070493596406960119133763003186638076597390058905999105071389569633967212853290733094029831763603831214066853796095497240413462025919767907342010944920608339270651518778356085756804475501290191397232631342803629926148042661892620819223812980484029243911036195702476806903779884584043309427670961621462788769992237110337272291003336187595200541175778909085984249001805619354934478081201905227384488983202676434287250731014933904464601984416955586395414708321674872642615247539117814051130977181313849066658778794755102175400819545976930817820928730782603728707142218559346836460274140010342400879272708428592346422543975318049453993859701242578203881207657000669466692233644448081162817993010156123659723533703124297185651553973605209918812490022488268717600389961640960327182485516480636616650729534375563633841096108807618986150890610396805951121240669053422566382930348788352084672985740889410614565773684345170444934880457518251400282503910961295430401930123816959848005221792965154319618602220323506290489859437289109922724544751859533634020319043765245411226901964350556970091264198950327701023268535168494945034888347797540411259486185448737685169376534619905629801929527035507761563157269296215876072902834993705686507569729031885109721139595983740201582051675116119696603061670817529600584021036858197948779937611312826969050207028965051970058475410403491179107888849397487957183915927807439885609730139959800617855991331547266951103054119917846443128883666564685708174693856187309302443873630584196050767243337753777930422664762595602984154596552301590752843652424494455956143989037613055548684649944738862312606146904513491319137619863480410746835760780064927590828311605366487415224699944392910080389019736182953405155552685580632055705704451307563003213280781381726948830727782964949081847388558739870495901338565238492541921851633608247069409933783640796128167839506333061588138471118393019964499637591696539970377226759929384272698001944079875361030158452825020582892277686384720886302515886311039881130701953303303824169673506477552317427236168296883589796076005757465925998412135822169879119455083875589853646706533178463876817292198715852040962997544514883410823127502710110447597315744913625820524471679512349115525245369054563067448428495895603530518339077219369636975380724896451473565425232776721270410904176855634148501141837019918119122918731072863769602112640838422335565949466123145049159697503592186242465177656326256238530364924797878495012190945404955911683650940949157498408175980406513745948062201547713752599164618647790295881593896336645165985729401577829608610588595722051161491329822116747215594211412065644900036371880913322300345295243217518205334509073289467301995029888250926423238554754955375120976314243577766837540872788716925250677251478003607948644601666069541071608404798269054460718502735471708975736107514288154541193388782877646805267715530880948115318912481409784436666451828079769540817470346797915565084900631338716563902535399835781068762594597026766045606756409393812808421089069050703114949276820006516739855860235303039997475779311966890708116345364409976204972525232912170318083444780611095221563424486459087066121738448093130188784515420819770347627409666067140494524217045386423522399436868940487690196786380533141938101536018354926078508154470383637771054857326830745358805892559406631188447697984320121807296020930093565898955411883068419609087908247228548826650392258842623891643300983381662234289934655010469680051306295107782973832685972068292962720791066724408023568660800931683635022377529967393722519816011874130621422274915970599212517670484878528637869867869405035924652935405590609666843229273199910343318412058308312042776844766633501965384664749712902349254556971412747663402133670849046282075396884948064803354899472933700904497800163906454189564960689705726354949747318216331785540554056308219942541339021033164002799343509568890140052611552372025689471485808055233767052292963772851658624224127015781200050448698436382557910854269845090604915765381710101470928010395314566008335513610163808190414130662793032560953544235363672664851035843548110177496350845476767699099568689410871641124607121108837104566745101350189015981257347958946746539403835616327191592577037069975388129061267626709213201393078427969916544134248971761721448007664157876006928519972543581740920046991543252485668059437673040225120196173226064203802277640107243932446646897432009501873659007157353347261101895098960817670582087162543257187898778082224708740700738429564989124558517382579600639081245214879119698858810028863752531177149612136726496173056185830207830312938202264971726657203436192985888338035220059056549141417466170241943439064554260706719973311454592823217329942410462736107403053342903857985705186002258698812008089122828419099439652598661373358033479932874735734050630544102580827998672013100614017199398068623895759980007770164897216376408984467493865570743259552902207062735997460798359149298180682636184356654311497950564026214188309446741298976415515550023290631940980570596014732171036388620626709547749663620112089986493919035083526742075878545337765574413478234578362656382780539023762860026064037577219019709980291386402761490268234015358889232139061589468834098289096009382811361800929564051534877150695556762381967818789467158817460462366897380292723541885383603173175171351317001944879253410219426104447101251540056484849570460202811275592634268630725492832452909796578069628362187530904071172650551894715188394253596892753455979719910775753999262689134051132050134924569903256160525117643011305631391891548106820849677374825377710132911272136384172488510748009882320659562439951402700086262603399266665345504125192400441224184910021649886301627851830675130969420984165181298302895980230839242729945049180785702455181184181320039527119153368253891419055836668387308265174159793307695803439904173530859969904904583696164224759732232681965227372515461214000379025653834539217139286744726769857649449900872232707708586170740020850518371414346917722124988883090409343921301348697038539518059366871935592409765057151630356169157387489272362184667660132540614102360957452277606743263117053758583735349874219837872308270921530188650911154439521974108956621342212698173850696609749755098419637749836165641780484982762766019194668912063291489925467113020575330313227701110948555496894115083621074854108124509191241854004037935926276986682498095305144713545149765153743359645173004564407319759987918718355775805894366667142022848922050118527814373861419237721162842142626254834267954102800548037747742248495293695652164469626832993487320112042706095029973079444136034121906994110322951938236448014929750680087409754758874345667638160857515342061348810847574893919629087605014127581805786559900555035801412159314274551847734387380768876352079971567033596945088726891763146362869169824911153466049979642383481535452389821017538963608226219597185769353110690039700679273644010208353595466292156485241420609879912886312945402574147832699386460378876574216869958820940644589146530871058405797677397355090777487202081951621395490105212795780510831378849732133674152324552342735057771681071457609887214738721912656410057449767633550281311106186531201201159679386684462711030173658250806725637807305334936186948461052092420805699627472571725365406050836682005040483454040664279660083121783667076551794725446549343321847724258821839268102611905791068368143536445688514876958312848986588865564155367159755726441092883229686251266191744041916545830159635723273776190896816606668508848185622797349270045556132953516339448477139410704709014201632870811206572729173651281533976623590389035400695646795601150662135469450474767381697337246900157536289601251084384545367872453036000741724004414537399797110206490744381486593211416333424445713601682809811373742742171016887121693947431593004911563704526279057111162382559126577939954964427373973950663873130403628267604766097653872861938479595368193002906792689513110568862889407222091539538135465491272593810991351304494852130548071625760775320666780219669102763418205997425021877209718660888907686635003479033575896714275556280144330814329728319398439001440997684791478222362222796495778467002615870833345690863780310678546854030538651422790673673956850888158398472219234682864298006212134987512453142817473694140654407669830735280311391753575889500406890381857892054347243463574681479952560516789178887212419459668316334805924155944081502842643682751276728927271498213780254335452133096971295390538154876744242731128868009297664170560391380063912630880153475032235862135897585590009434820818637088730166773021883415458010457315593760376959831570343203433718138194113042206715839865260764686845232956194709828543006258681526770391415030735596719191799957055537553331419941912210450901305771069380570336054688139575576259114648792407477838144825377058204303723099937256027560642904762873429418422819114403636906292613636210355220956535182028091091979665236389131065071711265571904426765896865757443625171488548253722301590928766942855360649111288026819321726825098311078069076164058630684735804315073823043454561601626701735823657198128705062575153925535558806641389879764245694131900787305970061315406873638469109167997053676042266783607687334465451538050081133915113047393242250653201056537063491869378663066330464075781196203268258053660853488964344432205116071492443399699779719128265441723109050690102272552547005165021526717071397816260248242720884395513332502296871363137210520647611358974862115746457436105259554765313488353628450512281117588909217810211292417854475224829040734963267053225871949944394281408960456181994802054229281931320908140408102656993346460789168328355284554155924555798055672337740039556081023570116014845869552527791033503889144164714257534245872958496228538801998765235674584564044394298373141587827620088219938757494749379425985424522006864565843693208406978191600034270639113439498271616377590633044587828214929866186377015910581106335864371575560602809121775613064715230123790320486786774139006246200937473412721764241627060230284605331860603196655401758154345807176141684416718362770207183149714481292650062455378411379041346753741390642861065908949237293313557837250291131962121489927673956410436554691158003230762458390599998111237069725016395778904196824137697345778314887086862798623918574236365425568795399675412389923778666747949536710388151971410437889031021330187572837416866823322285064897352869532794119627278883676645251058965030893212849175943950761750297670101707689551506580676455170172956139466852605221859558718483971993618026014543408874971858020766091163802902115324788469100483589174477862145892753699652324137008746922112854143223304008073507837171419201499139480662185879381175413482444134225798242636392344391633523929715864803336770569346476759400898220434694964531952109653761636480817653739415183053989861901958760597706414127339856101927544527373022140453438380162259559913197365739276515381667464535578820670232275301215454726050127580954754455551357612750787922074474462714293804466923187631534370001370057569886162466238498656939705874306060097717484035302567907194906228627111256608019645350877358272102254014047645003275522887414037247318968169822572073983248384273980728513121753933956940394546485313271530674713958480172905999190344163259683033755841384537692967031664851038441518459454128943154791228358146032598868204981183588248838357696032854416425566946440342346469533973692582306671974759942543320162492388942182113323014690125325753722432876686087509125666918525759744884719311211492247853565949088471270142971386655466557314404717833017531329433983563919929518004564915128407966196564026061702534633711821218501399274023409591883875604271257151489971392332836536399530982406856309062540429295286922552382998077234988699887417391560477788802879129205808954212521707045887325645894407659713032442904094524971726929414308036275750785900373762560212499342219780034089767831695405080419101660622247528188285346369524344252557054383485896338558511550641181287924672141173043339083699310771626446471387702658695288764730681680665858350381373659697858019831664620129870841225433924652746995841184173604913609567001398492608292967488356024765743335940393683186936188298288750382130466386717810185786413407894034646816280204713485914679272377097440772777658440301602148281481285233082407132785619469711770934808814376949550059863716346083864550749659890786161376060575496189750429577251987969398952900837108937609458115965797804719652865865889803879892532999521358937961762829285326837709283403167744159002348636253038449094769594072526803110117610458128031096728635508325495716443063387054970914434627645330444587100424337109007946462637954255358929148234683029623623686645623284862996175077042372278313826478263289731140034380559821871131070845750921431267202980232293343098060224480276655634539024539957308607539895117914407740820697950390489409009400445453819187669913925743947579606061784681679145254710215295858147024019706354351234934166408408625797080801146963922152683688070532289225014639266841535048172575012595891586830049597793680871863423237058671737688633123212867640183780189759165397290579603779200643772645198653555770789493957574785313056886077734963629389502626382369331598682898350483482139731846452251229900903787975558942743816497419109263440003161681649743908628318956199741172175223591751921104694866028906625868828323032573666001914036174655243994629619849146575658877277334345932792055872390849105487689219005702130627116651599429051771418731075031791737149911705662751397112217193507020256311770757932704248292876188768397015808622955164740701091562686697121706278483422046240378586506963952029832690932339664343299651702116741330515525627637850019314666400061699928772840365639020326318506432651866607028873172228388026128603476013903844468244478284854917408846754636885323134478410487097595424084921899350279556792513548272057497610531837959550716525641307872762746881985373346602584699727499874301900760208495317277399730954295848731555520045540059128834551316748718002465308181468889699345618227782637598572169763240923947401578958375886683198025633501989723103107278645261880117701174047127016870128425333022083270589597206508111029155144209314511710877136825370894219063789874985020538364006827219403844684504820371555096514520310362255336563102611152766441142371933432432028233480477597517206342752314853115651955755876279549991599930670038339597422067048350153255441142686123346600847637684643879965083975175903462687794841418075494477586097539812129678505262566860155730217598813711657589158062464273783566224074330601038955182347840416840790889471112972259293509539581372626292317655623734862147789518819582848712529988380665443596774411345035492714784302604901399900384103306301346820720815662094267785198744297264197687876718732008889230913066617922099211447392555672106051304148226334265110490952169049110852214783927576548502556976044140535226589735003784520004431897597027636065324297084975504454180464311106277564849066646393565527204639841936352306109375095453327878438656851964814090777898666957910923556848723516674555047215204765203090293383513972982037640112760479829814326315803971921699834106233570250058426613173902061421380478001440095393091155640584571047910369588067562930209675883492882785704924241090094338415890405276271888765060533452551916418701196797813458670865367524933765431935967889536888326338790750462779404937729540472882859133572335869039931173270864672246200862754941184326345692626316135971999655974552936271058636076043016948079152855682951370213180369232156450603659530173035424260720245673587161731750404947225219259966505956556723338370521283901897551280785746490137006752373922467842788290244370250314817670018481692485588900954808700087347612543935376748458507944237413630887168311877238702632475036910882637442539794321515460956201715676205928476679091611515093531823602539805203391602952178301020947042263321816834370407227285305688388631725255690745484071153344546848092059120843405355989647571318511465515580910367940895528302449336571652345311937365700182572298123192607826961587100665046087261858506087355959150357613784870744450381818835058086403721952753741503477711780697095915895805227542918207343400457911214940212472584333206673163720558728797279168761821006198843675744973196266360941520815823452705401410550908107945491118137104523027984709307330709630342490158854480367136415448105632233802112153870204651390129715622667370352588728560046093625457063789520207444036633125157079994395440612696321695764321669302375438248176792332931572611415604380513274934220932261842448844558945580147931061526937552847257537271634848548211824721278023611212896689563783887278378867966148785558518911294846137250574002234474875114669237799178326244484600887818391053823746012425420786184048978637791852603188354005850345312083054586240836364077159337217067772035840869495805244288229913757136964378072965643157263452579752075618075433899632863896438825238766258015998878166799101792953168726141714061064856376324828005818786990037442878021165424138714897983709627615339348895569597133168459874076781372730156614565448070137795214621628944247880497348792310255089040601861792691221556125642662429211203883461426102492187818102043175813117133866677031333363716694291124235910319241125309315527354614414980409575794773916363103246224532351828548690778219385611110024415077314364884358718381564881743913737189004751229600850729446209366984655282776420865217271767056455243744054642291504926203758174143894924671905398139415293787124110823626815671169739714169154894131030473024478314218802560476887586212403240439759349319892121947646873849773279332054712830803496324239694640525677176246977335783990718762030369860078736371985418397087913264067378696981877086913039932396586128227325223499603796594210757634043275742954524403355468457316274800121723196140096676276711366918017688615348041357958055865319440687931891381744175776062863714234233520526708927379721960741621628307930690920105052966305680252292626862681338944771211782328491702093510451075057087314367213948718199921105911342055069297540756363723860620534325917650603172052017016524422515421746545233970562295054427746519815257586440106478580597692481573458894892881725318389530483483746004768405833527615689733795094820229586866738343948076462500549053566247759645242009062224866859335513059993945694377666676986448190617023526322419620222075083329335432047092343086742740611239158250160322377062429027187509863086047819470538443789036914665305317742054921297907008826862347166729447165119919504347990296519315360347529220046984601299833768504169928221826162354882066680332920998502706940749367085847695533023509482212093605943485433726334948332795064883602221880120838807928712949397621419976683724988492614468884006557460016318712748367660440672719029566585535385932618236877047704505190685625937251593156184636118461610926300820146224065434952387457146949810028377237227531312423026063168671487285926116306748892638169884555413702729245124207081149130099783795278727838368491067542474330426113083246299884115817656415337528423960061236708072292679698303412952014634253187581626825417838604746486520495222089271681674972683588883674174065017290523922174288892069859357137616473793467956435185171825515915645257764994586626392111970458103497918624201237373211573214107408548640257253804196877579260579751900008563124456028999460589593449136514395401565865519575060731044272795505274286173410580022871898606340399851566579072408134916917108340028984718723394059035534489742158136133240094932727524861601513033661267368862782780445602792972939635598191657654122684970275391558723941139541838781128187824423116455466392499444394442545137024485416821895770867689088602768345132726743868312943953324251738152174914129197479380014400220535104738569751231289332714247445737234320787652735369131232937716768447431464481074370857824428395409165754214811168923558493497389735147505928471776964371081626213985910986758766736477489247083022418570661642003410586933181694309219342909922400020481289435827507995967924256006748670584898481504677235097553390808155214845471829091357317166508370611390400079201453753631421712872829063802752786922447610273700737883285179652637032340342925326506527232940522280480588703770231164873539719203465794045399848981114445538567962571474805704966937209494066062040363346290239649524198535640047978124821006775482547340961806849115878472884196062212031304430466283336332057694600062518009536963612918081539036316388038912305987901664324152645291483556319033985467135108466586279877397084624545643732164057477365808640723958888042975711043555536641357014044990083961726133076012196155940793393057015173768332573419837529391288546319441421975561568846636781352751005791235338493517680677729764009195960514001513825593395812450624816166035492069636807997506179378647012821682663162274670011585465379484508580724351628054727259586305787923942303814600547148442062961321901408836290472285961740051435098376412965479268680273987374067951892896325018594066548609526256846235002376281827305213015433979337829836578003846574276075531992168859805804970352198829054420478627947055494942565992317095729996250900387035559607612263261841633609437185331591621851465201414294344591027775321457785134795914864906917873579722676918988949552198973193653157694528493187669693044204491951019508464116378765010994497608288497235156542944981836986202623761494741487691755543206221022815166887242622009402889927371188260840684838965577730257553102477587641339168150174146063777717575439944022456654346655634583607568497882403534926597701162017541250054764312845827294428507340193116443781662387959181694079859315361094289399282632825952812858127145824960694252202141520638283558907641230136738021278466224894060400050936050321402150126483081719933443429849666873915610266461472439998428323062990594985336517362014384807802339186244256271325382542661913336189954694978353683015600861143410329597608769622583181711923862497834231357498766968038794811682681077210006154975987704827392901159452091097354572122733252652064703742257772789327094228638790215330245240403412306606559206166385663109607490179754461185337636272014114827831249824960622460551032145379332464751590730915113755251940069414050024122015501445324932796000843098170378368314924058865136613139426854278796815733876038667139940102967130681309830399174128460387285936832482332473663238789307011452984124691642489708156993784073386418697639840955089948731080199340341580895432397235817577833003105316303218229303302133448829795071085375568900404107578569106328133108434559660441870550832971012100796773185533152837024100236204020209233047801030265950367692559438923888908212929376016372787055026273470068163426210558881144520889181353730731873770525057697267857004489655810125644176624881543403387145730037292560173754254228773516372828092186511335232956692835034399593231647027975834837533264535183878501612647323435665087562114191440520024944846745444298869140569023109033844925224742473281565147532850654585646819694412846989512546544527879018340153773601171316735509625738676954173488830383734366722596436725464131164201318858518326199201615675302052200782237050463634447168487857357144693503722684797945479726101664327981689039280868364636360492699280180503146884301340347461030883491800202599150728841510493161939113626367803727971387773163721891476269280594351111265147274973860140568698350468810251489956309148492131775496655123398516597636952280005610050185391759934332804020237591109513721022478180629413632820090855799639125328234927308606230943600675927495996115793237810583558233788117975698000398805407907246685059595044952648511589481792175097669011765985922113849098907768980935516805876303377768707962807568368269807012082358439681324809097091252136882877856327121467329948366333211454655407563326563170436724006518110353008355925603069966968127705122935764734685040856508441354820012225045385285407745207253264149392595975261342429699901117982913325009481356743014216495030699607229308239517318549163370938275012161527956308495724111183511748089856738915824350161549902465843625652286541123543393207286560227429834883040631631782427991372566118040916981459963315028235144935172686637560586572323175094321768137722828468393995997848467636973640784566451520588661893241674222075742226211629264347522916543894531522590143436130054077948985767387983789619934816001985215374289992310304539866119826100195917686066978634493778033496444670117862928498065411133472049915265034341344360662352486124613845720040878566556133396883046533452502305289479384382180840132186954472116044894883620703943465750201958291531937510577093297734096723181060769828006641621697787143636626396138832322932582215534539498640400619395853444250391433610695799670188765370777946006960543943685025511641836977006347457525915336761639674649713002176892338726887146224822824510585512486250136137760224203098299878128600553164440327140144792071210298433142556011267546619186405074109269596945981004224807895708097894861810292746367830225672099998416370724143188576396853803708573937024674741217402431492624217466070046675762176802847569884335625872457966612658639437579302671798099250624937438320607135848852183841254594637966491912679806653338046138354221977087672035016300396135345802988911879262318674287539716446093248110905870369452481711870413780547183057736474510395922244248634376289691160744107382074598334640099384296512521572713346290051022306205897718032298242259338262723863448809810756013623772490921255840042024638689900425110126681422433700626458862619769519532338553271775073332746937926463585753478659781004293199705029260794452857758056114957683209633430575028650118206456996679818200182718796132626258261042306702822721868340708923641804064575434465728534588807510122018795391724581021270179138446032524673488821105315432544782200183127649372735826292537173876147584831128397533760747331633336449915000012947205712135030113687842593192120651172652110695282651374093413957523934565407683976588980826983516206109480359908888572061532060367603154688718122734625289534447174488808645991934265273830167331254103560016374398595323224641475003260352565796865205996988303388331808929674959563305464470312888204232168609401718663354348580075729559459829871944068881256862037878002239787644605289828905128952556783710622619210276944319024724439692828828087509781605764161903931147519584089088905135097622889153467355228049231250969978546745683531462078348057341084282464618177380164131726055741065772967245509666442570347493075402857231872361055958455808032302605875508448220591349878812213711134006467995163661972718064026542535188591948672311236161224229480545771032806560897686242676473753731494322809082760125962224546559425870891609259365933199642104416807916015397114354985984310265809314485352933320536402657440808662699874885957156929006522538895601074107373376968896139648361308844812906960878311775515073586767351812553731407595955116231201338053054738729474124332707713598422726939206953238784926133586111140754154341602880547330670168155205705757408707667363677929647956298209490597014745846656511615943985657107963762471394151258896970619213244761635172841509859762586364827426691741670863328736084202278788608892097469568295680947794311824987697566370790777786592127396035169358071227484274758815203947849848703738065669275909784306846630676654136285425672008434798900352360126325008175748240486594419967679716923239021875168347083094669149709621339358109496870962738837518881081642271769420355109401548703400171222433797461547024045054640798866679625987250339490681386693044502952911525290449450297140818496551334069514879860339179652409196460587999297165768697312888060741103354264338247029710184218585145445510972005355212220156821434953272700188975841837114032582981446972852992201138746543767396829447900394905209005863944337801044360380983242981531616493128736515129418130821256995223734140141445208735387622299409833680337268169674135332058382163564122229392479374255561533439293005118406215871476123628542284343683958574919168090229567787723351115386140938734127480989264795328481760508618116674044152807992066036757713370664020735179961368030915015138313310883924352164023072144443722768449798106855031617041191758506633640279979669797751503047427123215095655940211398298452113584050352477250548086520318586110861196657400073338394750377247722249902739817209894124000457273673227085803217879970840110705844383014446680472667325807789276542708594292793522081408433304738776199029767527375431347219084751295504791628640494618274456613065532965995705356832662620791098900875080440049716814992714769505183540500956439046437633039789933572783490619972626132441748958982641719047038006685812394312640814492598690158809090852722510181772981276405273942776524055338332864499447762954602074353434107141539665488178565090025876475653974757719068459153470949303645512402105496204005906867658233246404860857989216597723890678762096035503694804084754211675936955267346071541831619954594943165308954078179308025538848663016131677823983277976548018637028339438016530581206873999939604631545989932527666900196149736443106130340348104852994236564236367383362517758785070779309343690862292397237871178628984503088919741380303612394117775743364266328075260735208798245027500169114747441692548221077969874815817610828053973266355949600861109587922042974022483182135190198505436022573419402828816305238042220305612761636173511808687972692526941947917009532036310743989826763186445035803838360894476310242579299039790698302200417080434326986097871588122940669023452600527591375966952352319638285693992549301703784566972182037647774236328582389589501502404068193593326463088613859395296835615324908946691218320025933680272083999925679949448165955954121513681768349609498045781618908390125162628638708297802519467964308782565132999532312182290467327204145681589494445450086131502239548412207384223151414847593862828125621153024413201517971255135492002692247325214116596256596907733741953257503998215956553185541769026533082698030162434653080823699560747957189157187582007119984850720243450123059361774653576734636867205175911414238414363916418791971813776156844525529945471986333768968390676290168562066670825280165746492849772028298189848334900778171580591036313791818016303945153515519783456786411457284702521559052195904722835552161605519400796829170069164382200431364814503474591434368320178853645379320693248899756631054016032748379160729837615919766546241715289977477096549186141942189747694110836659989601402370277320684301821756804077433672925443130736332302122620276937105954228311958252073617214935833370100860293722396330298108999644801482192098074787808162830188492732921660482780585787490470319053227075031962046890639193913300256303527710110417691119304325457747345280011361731258344538697476863855919371949503443788052756990557011421973931130843195707966745840559003353379285083807741550255351528907788292764528247999127249452274103602708086653884899076777375300900904132517476560103983637831756314718343097839241836769766079205857214802237741278281590612964091127191302962775416098360028319317122151091406551627866585000031684987534147058103986598753449614927371958449483351377497721760393516582588442096461089566926844402808917037898868119885996420969011057836232880452663661126941743000560468014764863668397635004212592487242016964112980552821978619951194786487732545707689886129046253307557751783932304095326296391540489238069149577353135282538698598111022320125748516137902358658006079385487278694410061286711815809496174932194684709143061422704069626894884464333170772889444232676137818596002174466422301745014791527116998800089125630818759694595934940444580673435490764068719591579772569306288710664262115164752023148058410153929064839876205309906601407751270907284716308323161899969086756877970460999399633428551364135527489274381916645234712402313494949090295773842595751179772736273057919762952428890674660151696775328913399748276353888744995982748118650700240660915985188755449668973363528458805180686459880577433168541651896348473393033266630652053823424377816859941276780440306645221765001777983702616312576740162360859056985109004887556057210002014452097429153488036477724371382288645792747228845199517811456529393032854183755902970955675497699315141512610766463543781830169768710301234310348111623673469819021142276312539023443148725037631510198714058464688763034030270857231594062286033398636039544296229327502702029620245046591042827213436866116904951964603749239781905968512970706018328750428734715205981107651903198591562140101404970041843817656607164997862593474677389428848086712124901628718036204480841532761196488165156643843586024497499441999851127038222923667375584494748728634638959286532339411631453685714322219369759394797730742020203052128429138889776826268921459714037853717629350259839425532549292441824251888912154025114664714923659637900972288468372940117618693459861673543571188502026642569222653463347243312795265880486044925416245121585358063710216696368863269626872656255467692592040451026537665239651683196990811133524889544955327467037236822733788066521481970598068776283701391017778062662334619758037606193561999802878805883124963682629927303182999748574172283010395616036958194704745117994406052663780835582154205961803035344034119657119366810230175277616237771582707770192114495297518985736942825606686348437267563300069963123270462459388747825306358172911643293714494778613222527770419781748985364631238358740070527469693867187643542714724970734397357840157159059551863706863097795275326894059196570557941709959001630077876663304951593007904931432348696818460636698021028920059484613964424312544934464242121000016558494608195950894943349557654297505371801825691481819826468497606308108809104617966072556635781597565084039232977904655756919708698300019342057704415921078778089034865911572463616295042505419954935331873887914557958010144907241914943770452298889387414555252368684896419199695449958428858512365768098636927577467131234386600202965431661527240129617278944145362015127797112978417480905539184371397846908052962108426325031342513192449735780827161310879196411117354874903616661290372087049772858737456400529138041047173749900542564475757536678627673545421618303315956078156462457480818915340829192985105512149948070477516754158666808416244274364986435580147984262225572734712342944349877996822272333785577621185758742695794899085573688273308337649049177368122360268035769988429387752480647227479246889439153437361767721714481263431101257775191597460910746509862424473905352256295770558594696738890531495758606021273753084607699831949995575835322333246444203908707248955015798683015550197885944374311616698524427675043621626570213058495972330724213693032979719559915597567898559754856676993249020520598963803182433993750338705396744829027988058557846131120999669573329465270631712417322574500206859634505530546744441830799391809323291309995313292394603581292161504929022559719013591283176870920005407633010081809975138480488069293618704319336202436370829406243211217836865513261567009118119073838671242316197160902128919210439989591520634366234348207639325052209623471861413909560663833941739670088321649606292075127939849651586221521989504688925682671766424317489634555433783533011583368687063768995939347501615383668973845195299369697066866396402435261176925519907072748153251781969498735153959886558469326099454016833537165327658538143654421494026408801465007353987706479560634193911401654093475102188506189625594096534167322343131633020040605218722015216100254694422912827874124997042344024491955476393708892227962406835249162747445277234855757451518591412787290725886517717141664378267590630714347494564359893535773871944739659338085103735766884807203209900457206570474078252503051085351486589262361475161679821178790121581401206949070158318908124199366462725787691870936643667235609829224522618648550103022743438447497104054282082262552980272347250708843658538740298860521815864508300846933915419451552962691748228758435172870215685037135451266215203748136304572899783145819169893009036329379429730253295939838401733831890215787672701848235147860553514257035757089224534110417610920553180657531667098512325096629218566726620641503357027830892228219016097743002026807405965405754413402039869818783378208678348842792832184642043700756531194243840558954930787084550154888486101326324279588445255928902792720713834715109431349441786872175894292694796672240618741915795567489341499231184952334305375646713316232152373844660936209728741222141001605256479478211490838787904927058553447580137316959210397174860551683674951048857049132559443146315001798491347885810789161422716509958858790351160696696377667322713791510977809799344777916653005839217535541249227450712421356214357990713849605843596243511782887398800000499927183039934315804686580221441048713772902111892901722703785609085649062235701169145311515811387881073688729066852302447876269509470227796116579160517619261451012687265930463434071517353751821133856585465187078223207447529542542178855754310889739803518780791592937468169499638344559568924009762459255299438535256711204374531133780003132824126154496303031845294360318527868250015364154469459510549326655750627522344425996518500553757362684048621859226599848891113969629867504416570410466129266121084551681383302676691445122891881129151410659961150877705542912205903470147054231924572050685286452361721372245672171034322337927615316523916694572390182830097840458662914345595359670693921524406631050925750555014536902082679679206434130173100937167913048718844577219406839929739763680219529509355471187630933467055474356910200209310397151855591750675618323642917593620460780618902398555312344734438024836604875433385675413048595634773647783045959470229941203242903993650356211775575022015639341949704684475692089270856701250709882501466641387871639741008692733788998277415235559586127319434626925143206493672528992547296261009279602655491062087970313050332767030392133484834427769076143951892600371400097428483019583071180168176378592580578601155508714773839307717328652152928267439813621229683483156005728189965167893560305622926487596830541646938537711371689718712665220997009831528563783996964270107441163025575759187553887315765203513872750020347239794242006635749923049020826208863506251875545195667324322038927501698700407530246513462849245813216280194277705418372995686724200204968235291065976572943567288794520068897707137824280441150481800069239269741317889343518192445975601675202237326861075766260607350644281944646909436488644477828122279132438524956770494551157192983800557830467671823006842841360853964099204824529516791356048287111676254442852308014636791021269417071387092078938173995155741843114908454855355101028622441162931471794144669948631297481910315888998467450360767321987027524058814190425937666991031732050949578080898029852432315599294765222763854098642529710379235857206629033188790787326415568138003723999949764258564933128825066898170458765512170217432749124587766840431801936996597501881638736687045293198248780396636226853912912913591631565086275146549802014294444313361591184451885799816906716191624968442671271517306260919305715982420908189307079343158394753468707451685031962179000762718480893195081174956784776302345791417714498299438014416316979945196890718236326518553273004052819684753473912216086075063871258290671768879521502578442071840727238928440905048823242428931513780020756569355910027870863946415720195387696763452794715747058998596728419582970974267410410259337122856890993856863680300603267356177592475922810288474029643997257629156655341212643054040684981293114832848316517066417805747621503621540773012282563286851434970090802292954126675135501725625260616030589688507997548160822742769696994880063371752155901737094625497953157369222032043653032076497494235508657041791254335294560879925700264926035374778118085674120971306690243525117082115349339430324229180454881154767832987875399370136226618539570175448847709395828510325167995502082565040936166967897484210497216680104889794241588185100804904918722365748219279306295683893048588548330527960675949331919493800328075994076049721873337013420561370855400532871734471731106980086437712090623003895870862688821966889677190931164062576083900053526124188810915748026381621378969241254958247644367279892001876940672291770378091815659118817649314265706393049179011877469783618930956322202061703031474828561972822187307886773618360305217683870080087159800934525924236144613008058523737244372028415360027361538024121654563316078735484007667757101632574123898662760374154694602455096708548437959343560141770416014392164421261752387872471670938689700056363362396283792915458053962939645652838336659860337158691918764057256306219495084525851919166909067300150912579080482493384112151352072331556238548624693472652871352966792919931112899213161354387194054368412507103650867693452277517494865707297799687959263551838532493667692065016333081891571113739951170345940444756455965234951887347593626270949275992799847941118984644563534361229992925220852594210123664708798273028134105766772300741514336265949570620300060750731597825275235207144913909277849904644107929042121290570796892772117919816896789237666543128473749432483696574137162806621406795172982437221692478944639958067802080661461394124928613444211130907229469523863442104518193429202791278024811097604733125652772714642934332958219432092138661239370003202383080001732314311127901561062139150728421251694345813767573543241825511411587897881233019035272078471934188015741898833572078912975400689147533458918260539325582608141563006624682392202033411874681771381009061712674703489916619483300002698343578380205677397006255259543874847071336681302423238409901053540358763083789059540170069361218211516100106840860633607683719135839261385681274113805295382251627060680158674667263984425984286570642361792518627728223216706847193960186056616790789346030238671100761195463487402910717295412812198397814730098272363842551284229591437199686392609913393398771674086210897097216580592275416238298132031521557741147998772700391847136611191360528402367107007445144235428320839723988242707392300607027924187593452725954648590819158157256979565235807744517168987821387677958310867204332486530932549563752619666232062881719752255254830256131808204496902119550837500048476795259803474800324268540306447740276683133059513123982162575900319117004321475739581969925616721968847557623902155232338202359151943702318094485600012295588142547522063332040172499707532505383958170882779159327303268076652515543120331184261665488064722069228651011477229909196096926177830535993154390717969756062600136769540320745003441172754215441804646210368576106036759985281321432632682087333538288431179185383836681544709623656677865183330175565231928629235001641866095370530771896473137319713727869100252652842873604556603988962798532227694296282642687099033198813230139880946178981353826779549898141673908963687757193088196445791957830927924075714995538823622054591971624384445476812022546732876103231415634541127589578290064837398445837019494851136952285728039264539075803062805014961103402200610213195917776074114409949296804824249704465797852348514940470521365762504876946639511365922306262110086854323647051121133028545236770245941454421694476750276083761218553530795196622766828022542241298721375373210555640504693360512451449127356264707099735123506919088862638683842538034446637929708527807085758290319957346107272766368627945959654113470381048774720827106841695512625561949320796133214328504339151344811160689810255266895773625792224712338141481507232315972809764983644008911001991085651357295746790700238647768512618179667965310652999690327473214909308594916087610304639768414276029249109226171781636978704217592592867508341709949876777295810202828752643587947855068226099349129889079868952089801325195899931707706965621640508543072888629477468921390913081361516989339838440468865224505625334596282560344206459054284516797699185651825161461126302966759815302328089586349355567712900694480378636699888785246990274896773390811521683246928880383407756999996291617961596675087718953302768108487377860810391161535427443139455395905442317771817857292426051818970897079201505235726306242706748842764477288374947997572447426235987103080314782820215986712096887268778109162379146724452631066906162125843010506911267115558932938889700097044604306860843203216718647260513706480290950297237859203688931569034023638982817850408119958092299267167154809418121062430442357738251945225958852189587772087329740647044417766160536568954184964811906112241126624320712860908286730785656650359371779824360479587791766191554109160186424590786573336298878212402625795655891533346958450639468788101343623679146520892976495295643372772355806863738058296618814888786049988282374036448873387635503503027859986256361415285224371901681915248028483010673780769630420627512909262139467131365157859571363212506627191484827950486304597309207352460446579842462163658327138575830819758014911697461654694684305600345896176080166115123391156007792150520660933893784316705260765642536127114445449984527597449955577119138148192748150577789179199031112575136193110803628326657192677991098506180959783847189550974189547183251012853252285104027266294602575915198456195315285520487998560509159502139448256278005222892819034932885060835249108272735274858326662224975371094272941803801505709993870515578967424962356278323293972052662132915634464193067673450900145941384714706079549113696920884548728548022202558153821675998782916704480399649915282131653553268639942184073000377302700046669717924265798218389044042288243355042880761923430380628925831278241964960976729081928362822596157941625086093204939027396049605000461122842470373264101429638593902854773084389433941955355425128853826689818387496087609915884311911457977319819645180788533796989231114392941365937687967916931225474292133580419708434108134854650090322406171938021368769008751467500109680322625386651486861439472220142289224317430856976275302221204789998341647486825333115030519175341780013167647859772338451049949674906816254657272471916327178923173724284910821787585245019442539913971161522175957069124597863615215263652070885291781367895586857475367847291418485560824928296543744182089027585297769048643262087922385822874261594604147958648884720689145815670905835804154798665021230972632955557275340903736321367863352263637197222198945851607258694343795437556385122527610769919956797531718581563502807982805478269883236728478654336902799434175118015111404374190457677367269780043962997786351689400611345855710507510223242046506659729753578349963977042819280409456470573218278745564490365915402581383204950840135420225166961088083137822473259940460022082525524560337830466351021515602458282460808840286917755062563098012532579315965313981743463047891344684568274205712007928660962622387840382050219397368994862081277573066357909343802133138357712793498973591277932559635473852619788707989924453628345107795648498926768030688745174180928008298982013716671861888398914157050117759272877035640006013755881306980399009743456601823881918114296556717030283445649726980169563765674507233512803218058799280239135429652861222136613278286009964735424793656869742978177880432850012318450211000530094026045031745874292786612547830632100043524336920002634567445345756154651465142466690035373614927550532967860460232901761975250172596747650447703487373455187080015432930385504550022235762684505406185006572142447284293872735347376152281435646040165322065217214190794943799338870885404463015421054345992941777882364789081481186022453481899316917406303156882629216467085457198954535218088027308301345701228181461500254110073059121341802482796445195526780106423348364752694668036041616913661579016353697137325625410112638306533029698896556547571492114893502128748968581987386979241728461843747510378679936254845625226664516201390345934384841472014659719692351412630140816272695146117590718117013317791510746822818039789279562314110037722815146533432479047061117903905461302033591790821671682534582733318189065012415742987372153619628123454390287337764782288157609820386576262970309725507970086142988405350571298400814593520161066707239522536073595598839775440468091169713607070976442392627677000455823161464315316108915589056022456716177906817665256856141348187718104403491291117152803043350592663682644648219686505756905485454665832822504448238021318235662358209734258155208969859835364585144194364807202059002888467412385377780797125036799968107522380152497030481349840988725904999637759829456564415406827115257634057307743429361231179296991713493422364118992806916296029223632135608077390119281727617433481603343651008119394777864624992821241012740846349087935094102091881128452994903732976661364656615263662826419622915171810897563773972271362526976492191382033478712631837553406831999067598260575319518518283772689603439860589554127400297410546481727242901289683009615575981832078412883074632477306615402924377991148192290971890601909995814114914299134502415633976460532859804916940035367035354174663826886566177263254314326357762016607029499630762258305268203217972022113809955250272645340170207582605175715634824696785858053170361134179731857640060548265196794449698653091684651606628040087572940339340521357499655066916369187803959127287975614561921439024191071335598382238998456912567141942082134372338662952112361912172708974858170598556122707203443424423844701695807853218693343297572323358860361075701443677698376465732998246272438188216672100171279036324283107405680262738558096407313766487071057720102718601017255275568765242302999447681848440456601216285165664949419884331630823266341144461376094984267160691171976767808802576992784590813368896916934454596075244748402889371685738925883093728322077663911957558834847230019128762942122134429511408911495754290570011973043519146009213035133718016478019273569615631316698326182395444799710017473088820887801842350299215784878158355091421777040211627464120206602559786511845504114351108577792832470889082796093318428094370191816754812447927111708321408449510429040715346237140974394385665083259831656882747561863436723790457949895172250116279565380604339933022707390178634965726708984763222163375686227428324620515811564546156511200994300360415920668894579578687771340228121113839307189142736871016080357985053844473002674466480963965959750512128606937698880997608908722406873112058364048022481376186986747078755223945993052974330755910239342227345770632245463268187741986704594698152433948269937327093112273531520476628359039793216174013972064274993487807862750922061308795411172918034155195110706518285868694405815409495863932369205727483899596807656609881296350533613066711484694326393697271172867474786888110797858146413825770292239392061228942139792171328135300371942307969188540066330636381041471675390109824126091869391995970184800409181314425486156674829879238601489001339385815559134523504461493637672458997115140574349750427348029605891735617427703892441551617497303461706498882689563568159031537210147983338222014439432221022558705048974621104256681336075087501640443877903033882709297634543975152764616051938577596159086634988172475168488123614993856604950557984788623021658282719742796056762073400500068647944485314471214184428383303538910654735274776953494167609937731670489620700180816918289493472224468073214798093704165010281271322934370515093687304918563550737810848989158347870881272139155183107431083555981807283845984058767135602792753989001031918451528454901288375476294861196711702745456282144308191887501430570650287623659318220611385845305483542520135478550198280433686958413065155815532049329424549096605811530169912368544473660348920361187075822547988566260130255677390530241447440958087062158986948690402149986422972095914075014228394952377590686885914741928154999602499393821443586485360556679910937548949504989827436212610210428381485024002567446849118152628898523939222700013660421131164555759676083811390778132053359928060677573513014016271664595537847199395949960477077076815217253358147324162330666688175984787224716636906606248636956649716354289713050135543359367302489899535688506338978881649263838620588103646253765090863436101179205608308237302906778336658220012959448640007209590353443851551851558985223942745851929840609260745755205793426840085144042556011849557991168920248238396603352863337223979375147963481311566730347767466283701612932711771030895294486948722156059223885339356625447639627562285213149696993107397224985424820048497191260089090882785867991244235290271627707732557619118259895353514441202045191457419405289318509846167904359396889559138223926139923888141720299266033297530072958045186103301574449017184996466622742616018196146062947671723229409814979833536173447087285213004020324548313615680199965567929595884306222076627692177308260177299730954465036418820890051781485666834557567554227344391786937907104015623197459358984692862614532629738266856412221876287335305988011597745077988946486040221547228491503846158420378713355307210761150566172951714006136181529861639162202648152173072353179834187077613453010047586981322237512313130163360402966076141908848467951091508954483624494969842127456316152628932523252815975174187324521453476438368366109493591971126457855426661640566647340844981106788216763146135947733167180545327895662574350814051876928537576184606769491528818393634342634456479201675008336028877706825569147039024325722440583271291725068576408118335155834568677157847463199905595574045143033564718859117179702584804252128649035592589670967372093613181174478135976751863576676333225750140135612935083128133042082278422264899692886766246490468056723855502081802132286051306682118370223828310308015713975920440641182720112010868600649556392352467094930934239890481503986288140702743802195285777514317784791332365486352818466483975427288229493055979629862739147790080482877698683517936830067811149791687019091147913479492139325925794679420175310137162752425632588956092433612335837900714702615473900940151163274445524654089868198298364912110582413026801792802702540958793452311316823322291081484896859733086420837134544233398509705272914115608131934422026871310603686179745310066017367199535629539415400206151343475983216526479998731870582329647652284858858333170982964544469053918952283309795546030181077146520125796500508054478624136907865489367779903405784055127085441183805088402957170283883610447047922012485858989364920590849075167596731640760771243428333247232761705550009349060695555204509581013594235319665217043295297778977991971032755756360912768703409263197289271368206309820466970610593391676851448553703325072075673026972162140400915677752396230890365006700930935544735054866591534684658544213348549236199510056894122213051454991171470681005360838601757238441138273066296128864683365759975056323002350938478003957078942014052043871286987123055570517081141972172507463935383016416684702953724743399772081232436692303383818618210697590181849165539918552842314983566936893584521063474142928247096807129977575192828166948916192340239819113723314275149805447607722663925927913367236204076603910542133517899211686718473511306824609136023166449625979978535116053629021882502311938593991908715445300165963544197143037131758871995783207972434719649769030171475969041200328098956776705201676767775146502602981147415132842534238624665564219808615642065083129038375653412092367249618821689500026961015428882810621765211790135579917432226260082281478352373160720071398799743264889709005027145583728382135109278759410624800341417235048248174124646259027343935553281067838217596776148037955785972591957016603753291595238985926061374239530341763703872003258222245803437930988320549562288191646925610257620554754646786587232072408028999918549775192109850050926832650058508288246547523887675577528536620219391766021130983082074404787382732835104811793284017083209338251480000091808149430320237254806707876188318012479341145648055910133227142309589256403300981230037175489730507319022238308464600607722760187933322161953889981572565470919200849780479371876326429854239503636963979884594745133094927993894074077544540043739245507714032016891277268062288263385111484142498302903054682584679945544732354658411846755166092828243185448985741085994988413145794739829953560545635299141721594164245876573674814039762808540413855022652252720591322094729334188505715090758214174306554360228229900097407650599768753819352190442567951248408785474339788314538579051150311332032980260221039309037688945775159744550321684883204834789785372162258279398850866321716942886248618935149307135358377503878528118721615030215290811311493505140840640923754445073033387014358269541253818558329018578381073761921022081701413100452617313008973063486138279168180720492124873359760150931351221341209998009662009641455636766194471042179747076620820879404435547223494142803413253418153168877299481549657891330803544571985514231103409181212763882301329645306824463966934372952629895048421762225869412600454852340697789371341165094635178681623473226341005923710634423683360501273997220488663583412690303243462846628251103455452584808830101788614347423177580948491488456645519798841838085833818819996361008983566142399976648056855381572215652450330541365378593565921847782066013981527877695901755599917556320893595520471821597157235916599676414461006172703182526802003688362843862238105575555994986702655733987368258799482813694046311869517900770542310471015342609974497221133104778415901366793699854641948447022646388388252014717591166647753449261069785231824953206781559458061851177996364560718397198054133809617265567933743651586267928099502152565604590355792073117125079644385655177892977557454972456691294681715130960280950825059184679773652890877294851335276497525991758933508624230075025944978412906394670100490671280436976720264885274065337604587770678643504075146197061701377433335492744357248118978406112435756868520143338692764129643997762262982397810629265507844138560174023437225622724582141481609243631708585177729747393864307977846251990354616284878819090184400468371001970341361327842072513699286145050899211492824739934399543976422106365762770212035341570750048093424850308457927237256000967574265746401450882758173914533170406204780420793150965890956470329456753652455491940387221483880128743643731075831186848280367574219118857324460106153425120364641789802850121943938406282101214420062060897510402553135528991638308262098960730062163120814545181257273270467815922266358026034473067484946482462613829790574822732909319571608044395645251936545087909480311389066138941882807213345883141865327696416660867784846875541406755842137970844956500527286094445241355780731709269098844355093128303438245168500071303764204686124753042782075569082054348883959039546669105386050360035302736792546867201430826019038043541970382083286149666732145729718164663181396520714597456402923690570297504858221353763626848327781507060677022903222876100151539011824767319456987563537136410712002132111499586371277856999460607573520343839506467083032889915451081817159760104549398110434509104996491073592945483431066580651933508187484307083242975335623204269662598224380474118098905388922750193279631666481315803739675755097107747763914367014920746207303271467290162189788544500214570686317179691678845333055462349729410139802729425086706718690794384293625937428285034899088359656949981923647857063159985863178869677945658566769119475000227897580310752300758368243700924706988545572117696504783769557528159966794952467867125040035819873372409047506925613552192443523385876658969018198809707483192109627288927251999518767823134658075282757973487918535825549344875465362513325890275925301271757143271086475008615229929971305308292066489997619533044221663014666592466989754236295860823763225444633960905605052533037943898131830626102171227158935378640974740019532118206432120351512956307441810476829169976090352634215917678783636174642392746901560111063470794971764418002163947565076836895880547765043628128724960832769450141959243459217307204342461825154737636857502604324878510649387824534493657697617554148019761220444231840085964073899683726637574197775621139198467762075358004868792890972400166481906154906635070075535562579758797188897058011739813996515559630693100336504276061699195817582717363291817067181066229460869698505396273987572118872077531131071596023667280732998324732134148338530195199018045652144408732136766390917901052470643115161042010608871812381796441712523703142728554771624570596688933302965307536619457784158439826037265595458467942488040480205524151836457285388247078706015935083168399672787413408940661596359847328183549720867217835456312516945541197586928748290495070728889940112442556130182455224818197650953395793839992265258051358844431027564540886813118663928193237411561275556135948370897378307773689343069393029758466977580560402092735423110974749004113132791619675320981619194671827348532284784674397891966606268409747980749616775239104491551434652588520855077818763609203922246424177288253308706164771337290352650040463761157616460580802078053981688165077742098886940301075028830269811404310109370738758824726966978153835345493528881487249133072901925853445725049733188096796990720863868735480031093341521441593471223923730002133311215943720348398821954144701035896478886373948720280265131843159070329972008204602599699249333539297317240696445623234327635118303968199453426542661074385312913947246453837655656359508493613652412104128574443501009460036111838342745964492988270286356875164404914018226039205555927006078245122054937068922338198532689393803684597217776735215051110708835425342837982435844378877159244711672580132660552766799492665329303334170136733493370152122912019234511942013438457493187009684344890600485257028749025881779411314791028533631316752841910928554283230493578444422499237502413161950329185449514229849866359387125032315143592327991852937723761223420701266466786169638298445576157115834673916384007902597091463806767399174345941824453160445898877218948518601040205973935690809110848583183293079939110740731110422695650072929484206486941496908392133399238764320751412784241347539968258164984732808731672211957649609227399394637012833513929108588196960341424682361487640393402674433321436296164468476021029590254384541724678141967146142625362451378781514326719301815996260308605754245360368798347468390732163972191222393953890111762614554505044479813894422684052024714281324696962540056384290561739394740276382562022588821548731852080796027076486119273698627915754727642524748073736845098160926091147576163180014330070396867447253234464678022803793643231150128589681343180784942090858977740071495671425895725133790452232024980074606586696340733743483151511812482833301814935697921400104889328049453900066770205028601446604326990526229540132533764128334872293841869208535851796486132498292771515504224964394131304030801884991986689484077474402383649610809849218085123060017723624643387674819457849047239720077180454216022178982226484521586540925492613386331315044000505662704436837774666900522686414797730007594420595479953710139786720990620017359583761132700130773356764960822132654225490865259731928381393374452316807729036757176531404208216798422100702792238300094533392882016445342823881734775279903671825614618162368726028917629441055990670453651313305839797950868462323663101534337502819991078786936356239655193044317518201431628861482629325899944420020163461842583181415563198242643842433076859790238219819818746380648113959940780228358735494843987841878597580405478984727850613047231549920481705600881486874812517216947832156676185107688393398869497410937591215963565650917499463880685461598860683256880376488616057275295693684510250238188662064811577767617297897008797246431279947173657914473525654747466363400499415294404044231866907165354054488665260596502113976725664217271044400778004579994300539045473213021631562342362729947808683778092699909086373082074110109014612127539338574117447820267880397788928003659575704819746078682617776175140791491419991835144975108410688709985631542819406282383104936805680639421831315885558181122146742706610584054633739109437626731935535817968071693130976397866822023862967257079308748696204726197594366597159401277406625877943488071771734561660632628674699062183877721521634578917231526739352325812432925365589657929615455287251930733865067756351651508657093532481879292066078986259089525441812781396132218940787757173638180648904873760504360477903081068356547119710864104114002550803275965611985077436548042833964770707451961118684802828925387391346585933088237893579825808300504658141449333695343408359459516198498692676355204230542847670928586207989985830054242141886582337278439094710217934222641309300286743039861246192342122022251070657892235084488025213753931086423846423733561193426936514798672629624743948067280400639792897172943675970477062205723501105093195094056236818169902889480946011149490562899471706826911773381988991073451632261472682105746396352186336674944663674324777928430925741762566213629598073898132725323965540794951580054654685649407216908455014155091658362462746261623853418033621574763374234417779534511540525880391288278950714564253133733334507347441203241373899684592750914120513244899226365540144417480273948077233708952677980847830282004142055191046493885447250342893085652194276274534964801333351512066295015623040455774224486901973981863977580507216185664981982035454024580562062094131333369738229713993705729681043994593198937540504748769196238148459435097157176909212600023826527875129319964426257048960736737430610029772932487040994204612160844128783622814281176081184137402949907142970188907990010009193222522829101013287741887583455190625607769495551195662271676995382763660439274087852385553212095555075994317719355224574662791196717490434166057567057795908361926615102487506396412441716422014392551480022067425278323646118163297572261745822548072661568653535506417477986348694947091264148911859622337284232402631381262389655838294510273684330778942695969744697461190734363507643125611217697263834199168612703909274786262068692495128228781600232839686822780181865627461182712775064243922799196785535322193466921485746359843079324323606856176894955017469531267167268319341431279805572519415353250510645953199231165148472561648397604260325461923335841840385918041223434373483059493170900486550947914111094662138380605798092350808772005807773693200549152250718782267233155036520926787406424006656214795169230547410788528197174041083687157439490327104944033503017959073587306889423696256246497002047325550074658889067553572018453517844979925475835603599353767948962407251427922404399874751760395702640350096922160289861053183408799188375928328322362984518169787973545557235261671896788463429960255026939141106060146938047693673617189247509661358595894363684329588822305425619254035157212961446323690074747102865344660804997805158623318028413882174852910100461837067202994318218372390154542840725166301048705502922192456754858059511608481594937835040870416553041304924033210432398815116350391578778576261224557775165033245807591932682543637178919135007475888678137333407914537961477603629277396089987108396743279143453079273399407184433458653136551270067349062185337094222332556852458987837260697067641889884531030490512591549979807554202211794205816834411686874275181415863619406866874602096198705304570615908915480832673218662032813156436695084029763393370856530837229310490668833513739698067019636195743667718417621348354475610097205073158946549264456064942722942346336074782091537784568528192922820714197691525215607149951793230368999942377580405033704337602860467033820701270800544547272172500477257169720940741740301194423985538362809767671229847819666857949473470308653767425894043092963737145672781857686305949163465056556581506780294779445818353468883633590648137686803600629034246192210784401465176437876069765821063757473713391255984459108012333574481669259726369681204713833700300915358707373082106051982079224350972833844441039756807985258725663874729944670631073181267966528381554330329554571358166366192883510403833383412429087372245687761567215465160193254484023833189600460252931975032703391786801135396903648763223256984522213561255039625681717002784055277696890280456316489927212212736448748542519584074777035331329871603129547640623402248908921730395533358614923303752085882307947644947655338823802224623696281344755015871415184061009316412050996578670314672722604448362588236395843968513734860502462063863927367271796850397558600103849183209119857875832198407018874596576645226179149360968699581197769174707997652356521742032089856259644537692247520360407383788606866617756121395062467887286582847437511096304740879183857637663560630664795083807728039166272353805897375029400398067320975584051479325168251895491717192711257050946059034783016822460863730664942240104984264607333366628925152406857298269568416268674095544333892039187968989253945264829979587675819652435343375829418832642960381484910873663386898233761700743680661000373679217117327518764685027337910757477721305028991665833434039772815040544655748683551758222386879800206480348083954488128828348990565437241141121072860301167778347793717663372404678308725225619616179779251684854324495338753138007239420263633405809702890145484817741067855946687566227683769388580938859154589859166632240868086064821985782029196472749699513063783500921586952287666128559814228501710733141465455820154134560757804290459335914337233274410157479531858097327808963165387940527563871695648302228053383102859296995482442339894233867561257891354979638743032508282122649743272780040091578825906655842312152964822071767227140207325600477554023219464403428534983221943915669515870298031766074152150270762167211398079202121487375126447524789251224083717302260496582896654217151379241748049257954469209039968530420515410091629261833785424201312772661659992108707304064134650907134929866423578266733694353017829920304655739719568716313468618337783113980449120426813980872164023295333469016694820454782575543352098572909530500723716172109914066458774646951954297647615821233632849137938265436883603861065485269485216875115716008509023132672657205901686412353071811008102226912067276253431667178854353234570169378877826003056557101746584765204621368951278076316819253972105346985168364366753032492273354078820544441759536234587523629541585489042668775345996346029105500707363878350622369969389404876481929489123115842362388593577986608988418110220343015424355233540002968656594210296543093782487780876969981315818490696012008985493685218391402399175062979152375489141113309604441308986321969288544065551402880087861939513244911788415635939050741676627994898922607709507849770783870950380356071422122954402084598849805434687003768206790857556263032123814638018716425609121277465159363230585636152967082776436982221909217587592341592286827144734827423030918834216192689138130307301407128477410988447927964491598605571949613761431576500460447541767865467911208019350964210322091943404545715706281494798748813221753787705072282223799225585321985909468406536855222639560014487657822950839542136536032891854298648453904144549662461889267273170921541503217000757961575598085339570563266062708550016063616258190190559029932812855848390528207853808584422452082067038902066746942440853759546080250328092358471182378864685701596366403293463980348935819878545677217072801355489354437977845529337908552117222569616948375659047200113837437521979588661925484170364569502901919458794669606914030021855212867756209470314195592717037583113505119879054040222065388153038651761026020803353936000965931299361098898019115530541229529354054247622178380078906063294017816760478451142454408011343971987268210675799051781933843923826681805822211518285331175481273646001256765670811653805901435009647354900110818732690625752504065518643589243581044395113069308114026838652815193778885161973111281750165978408600424067286134065214372192929024838242328073297762655599766199522003990855782503642632532317467347625475411370490070658757827149112723003355564277271736788404238060009322951606859009467615227188268313828570436702742747246297036151282021478332510159910883873754199019338419880779207705347357721643601374428157545618345096833186903754443910675130420988311454637355111617576317738134743048130005035264522032652082450080661470051338015601320925617513687462056818556024475756401478019452692795703924698976460184380202372710192848942491335060042169086650537601641091868592612360569953406758758082939964037367570515433773166144678111395808642277075619284290873124924080564024604958002751039440762732805017061698812217178627852912864459149451986350262045719244350549521121152581758982949873740975271923404292129368035049671746582980069230932642689083537519296827759009121504341028464968347650640954162911033727256359379252858627398942084805441300533220736643979529318611460376244999592980260024430390753545554745161094470356186370550885493452407125103944195741649084112676201563349044762509626077924731685286801842180980642339369463136317349765864478094092540720679582892094060147269052753909090239237081454796226439852041324449541783271438321597714298325645535235460017061017294579651403108886511054722819879131449813813688072003899120367842172798032054035090394283655492971195118065705586396694187237083244152718590463379374065196179183900127880736722730354275214792335996836114917825523838028950086197910902886874799568783525184292467428977268719721466089627200096254875093254537177323750488155193146782346422677166485866532735172462910931083139035427384297133606468358956474877747017431757810725234015405978744945607435170122622754541860954809786735319385546551382475704593760912124725766521779873846314814035785328265273831277978804376276287755742333202651861934201362927578005986234098780404495728487342106233701685289658917395441300604331409559921985327283371441643869201702494800290571958220573789409942200238349969545101287409924649811032301352576530639648893813199852462930973158088703706336049053503468463101489108142310280017886094928803104492629932712678120006384845847775262641954362826758872363071186317839937362677144917169488499798906176611824066697677844417131761813204059075618734236076869480164208756598991051151949253161742009748601110230285726296687275226219237756999119597030742822342847998270469517762806545949684320839185074483024310693594206920975465283562418122182769356580877523333973204633683629249233522937300112126396438864290159418583831987623105486255111139789821310649614541867442441271043149296147650645912149398967323936868341773755096236700868968655408798991382943594516395920421992657071376007082158873056131103360701804140109384666612623923222760390865602942730006089930385152712189111891372704120749593981069141165139966478620319815515132849081471007988032031706238456751256858937865029974286396075896850688128388018474821671043030818644740270889278784034878436263172431317453231723825315435742884610630494410328637679662419601448636683686579663913088145628051738009731417663328211558979569631164061127822756959139026854547678508016215218327499129447404599050115957524524342694663719724460750570835431902047424152116623257898436486262401543864522381551469567204783765570731538820911002392125795172694567106924155753983314979913449651043649086094132041597911943965139210101789716129523551191975770097078429618155254327825597371915028275628734583142157066321469980679058967556710576078741627461238370155478251541735117785443446030311921179093302449028985793415170287324701096594922738083850250825979736610903090767533815693601249615087633582220019480687617497471419942518316753796878667118209876828593151641330276859779340512347216832591762948455334602333071837824044992369390467946921491500492627383124114162428639413630843734996335301655183796372843160637764645399300908615297867740012611708600277619590391684764018349505976304697936685843200561501017209715469856362494626021487732411255904539590155188259677295274123697196486770210647740085444535191154554321987551816660535108288476641985459577366908020086645338143612231974577257183337663541423149642184021325798377648013118934302360900017378058255030813315675362580809352332954797709544324418554151303367731675567474007310065245212957283615381031345998872885696407420590562999711791630636057459170259604302978964548314045946691834099366464927732150815317210300558806525266937832899394988916982725341182292113859616345122578280644937551192085581689991746565530842032546098407143282732320530689386545169552747473428641373019415104277997781580734909014286653411031316657239031025719396209246008220759969551588168978007637491071904794496640431332137210452649842348638851166092506406344461368275994144471711528824572213659636203307558763614201878827975845153616924912547926229832512645776083957459739333374172312895243506579249840989984049639409595125042809665970583702277166943497854774736244745626938180059447577680553887025371162848378936085023878586137587878035757285953538312873192156370171298856308362468696168721017204264337255806594892771001518637465577123564981212147961717601919133829579922994653460218466051618967662901390439080780079068824735349043115231551715800408360587855146239986360130702186971610286691440474607009228521381246979329516583754892451929852433279839824982097885701874676040134867579805809528807627993429496801713459904382333419768352561338519842457152189381816822510379033410571683379416863767348146489236515015259368886140417717059469173778262985828776887580911521253703317685835766678762118102638661260646707049213062279654868938556538208950318610909527811276479331492750786387327448955042414939650804435577573344495063245791124565944660135994751778160788137209159792714614419220770693314322988908519677125419647458340703472959914938334459739347574024032063667257953310207831080785548448069890081406272512526281778155109118892593186455239749061808810224997431269906323745351119155160105210412452589061894950965019815405422322107053243832127774492460609857088906628245531516035431082836878628480106889568189286489973894080997547738234049341831733034399981720568702400419862761468440100393361873556364587108364600868277753299933065806418810819757982388243165012667697677964840187450874911320077939837388355574350724560171405374893359745096808333980911107280399061220053295633106675818986072076629541294648005495330956989110491776414411553627345287244767766002503749397903927646260725637845767167319929068052501824176782133011378664799302127182018992417885509142589680300718322032564886078070519349928120678445061822133782306822276638908824302988730436505968627949213647895082486261499877764478260737818084245173425537618137592640201387749275931492256719662578651601615611777601325540246425288604918814693485463532973728113095322099612608819809888992134677593938260648863116449241765650138443478478975174241627432695252800944128092806758629237292579127626813069196908522208044961162232238712903145771641286868214684209175391443642647980662113405679575181895520895622523056560467389977451385070884359060602475472812268966334437556509688439910530976106817399188152826900356572724314757941809513970753314696026638387203409730119065815180914470757266468713476117714412450982350516644185528855899546018656685405500857898912718693293613541907061538606384761206902759435617388246011040638634793883752732213997795911817202528960055520643761736140355556811600469240296330340149115787093986917297918867295835282671172927358005819254505863624918776116863553531204991220784382894492017171708884085734942855573582193653949316109537135741219065131403848799205074057714466638025345967400247145449120045830626778034292026977696597543028840062514919532614245282892739375835519983997709862043928380091136329414820790157240053742984954400900416966197726736545609441607784128861950663508355574935049507466747770543397079541200409140482960929441104476745766369328159893027582790843037780604251026133594682674118350791762567737102803059456222950200229661225862399601174581465434504200033066182889759947332966304688521964748700438764625691432315960884812178101794083467370766351714362520925531826767519382784334126426381298534960663965969588119765358259110435369903016895760515591015871229696576614746068514776384556266937743719727851801464894674284161346972076547399568642110497527842451511071859674225442380273962886338971642938507870203352984850765936766508172038983968711181348105793880209125102331399210821575908727294291398227712572145080251962687273514684989721436071415931284473246789038441830247658592777586682632785796678294171666332767276720357691729516840322558390038335901217590043053731544005343324021783455378659246442409855585686100187396118476122630957806554673578430472461588456481582390741816928053420748578868776853270291432980519214238911531049185677640842396450747213960323354716305661562839215482961905105192115466641747273225677505639365128714551060502888052047468468443885505919480546427554241340312756760823229189763634381795557466614935402342951907314632766515262326270522460522050946459703707544603756728376453828867308911277637612556623352779628829171735152549132894791531036912657735606239592295887783193277707961266430725135020856255973893952730352969131794943380409473058338366955318950495954136228038191513698863001685760493031307663068342458919483707737145196609181667026875554045499458502662112082969163637605714843128285932330670614023368429556070303686622007557302431429061341751435208687252612394473365714317046643312129099408973632880994139624261822672448943831408264746191872993388552889450211368534422725279506727599648592836293147006692084459792153594067602098463611113462528573747974151155519835834203439507146741604045021413452476186564104211972599690010590258571450123927451077300586544488580659517881380350007629779197432069729004464466629043255226347761689816373759737883063338522186938291473012324740207172444432110442243862999196976944591152943808215319918826418115145697000543410841903301513318565745968263340632037830429030788682194025554552015130033813589818295449287017355071362331396407430408770666316276709454671383003740228222568321579984678655769489890431708970157020134372716987065863131500418086140006227586204562393176310405507896228771868771324315814803738314757414343696356673988979728368016367803992084260585407377779219736655728611006436408569484864463169210348139973277768805083395127883966381500446865979311465200114266532712966965101352941394083822923645634714232091817471872084708215960212233753100925465153713884109810709620014619112414909423821290646691351958862188609398485287365223146152472391225402455532076902101141620519925711029383545395259987495602208955264472470988980892729526929449027352950341784960903658962674859217307870759062694241800625995813082399125845256939901325965097993084071791257738541488118356445395375459609114281701462400798748125498166036846084534371020685783990200759242511437549612306726318931976030795197256389659363681093807980753610408484561858878990992051070236365990737358008238386692098115761695182609781695001050867176133121121924532810204947582074732340969415223479014739123932437088715729250428017981125903109157022736360514464478698415317882872871497808706845184469660572683584628853715083008905549160608027347800485824843737397784622008470070079546505172452356622255821912109387476029985463784696303474556973228942339728240863364787074041908174005181077585032564277056924291616945439149549596814383773961817344719390749040812471537837028990469311129946839626697252989250095896096369712442942739787702565109214473976053679615147928143145016692470725336454874251489108433115898772482458064130537772915465314298199772793078726719708902530122053608096133667169695054973889854251369920508975099950593996272353122470443342230237170536331313363643151614037463271500064539154120629475694363642237556482665512644853705064755883105473985729641392463505011189175190073513379125937406595630510429294245720657814351943481963537246268335090301251128074534596716296085369573835900749597304669053076168627020138617190184779300533579595793925342517019929955282028641981644542350965968873215732059399555842816083526838534462697287883386295918973419324357354881494592296251727395337679728824973219829071314397964643944358876325501058262708951819829299136752943670777278044961030351877098527009926089221716969368042244578718351669369744075812303504059543447790126866634266847870430374787872098791912381197628764954438888617554691701062865158698280523233300335906061115745477308445125503599505863407097573434072255279063758601477811510698826436543862191611267236456215890861193864013980408134742379449429279111739192351048835774850824131865352389430399892443061610726643445144471645588613208186003934290575820269105482635620387896140531202721521794279507365170767447313399253225923978001240096470928837940171016585617718215617737135793922057524036825265270129135012007720109871831376485690488327018919814888685369401042374650922208200615137848166224821704006139254816313183835154398654541907917499761584335777640603276678986091989222012544334727504206107717804870239869421759457844563395195446963295518294817592706030292913322612819155532244623923057383814534959914045469047009733941048871196709005819880474537118747784424343084510711393685274824974233248046920584417879872716944276058995719136121886479092114395742953612467059069763813836924100051768801889349437828899834273566358162513217465226003364953093511182979162746247857798874164118835147428028289698246317978154759156194165692884300879181907660814056826387675741706408123459715909316028070389656292213808154070291885425388530362704211720704822637696918266499113001023816348275578739595362136795422397649144491870192304210147078614505932990057749266556708799984369978804219828007371827267095876881738357704822706394793266267237829907570000705298864871920265361530804510842574548533037612972897037557025830892151579802432771660673845674977929441982203468097696017816815447585459165005350768064591607984646570911849070037603983173334617469200484500486906976280353598774105438041651272256941836041849540393202880880482146089377615949309577437590421720483759791963449941533117626929809007664213063666100807613580673696984321717597984088807510799557959876457284867979094688438725319610542916622740715026136596827439207323666216395257699232032542308435278386520543507524219942611334758920282073392291180816015472432680853688451798962396900167223061480193388316379408898016074049208050143251033129816631008963907076526684359868766545732993905757968160021791614755482960583614851976486584490109309840034939068107172968909273866439068705758217490782971623714608642511208797208964978556506210244966701635415725586528887612313377146891914622031243969511738882267350093903793719758380184230362852080753261356352849130297624202375144880459681712372844510462033942228613098925272833290384391272484338457248515938795696558060620070798217254842129176095788931226574688144606319749950327287687488390376320894471050351563158635368974613494855083328119644007014148806107582168710974265566974533875781016518470335711424281771087432801713151396166073422635836251451065572769101080780032154141511854680083295969525493260101825704166571328641604522001191230133048536031402564950611878147235623897160452908552397736584296950266944618499189230126146376398866964247566239226439205559306421889962424457109994506836875351348577904260803818907171680893153645189523517473118779294291799812101074027129309584918238716926915395775347366696642846388536264074001043774291601822041983939018293234404402479386430421339896543956325683478675111343310695687328049800070535326193767715413554650166905058112928277529213900840710781761158800976753677601878334971012490147219245113384140432584358420491003184500334589119158963725059813197349688480485491287352684390629100495444210552806634576389507961675875919690919687226170568848038859437362168200191329483067339223299261766826646029670027640894201627375747674829545387678258958095530354435876524945786196587797325314398049324203013197913993996413565562446854954011257717111459193257803673080676235104057511210708443904394922654000910930431897578740835380521971275524274027999463800043232457628586512810909037014169732881999125442244323409192013846015973211532823418375291043342533839638959506413948311427007679745378010160548387211141249380843380489124812180668234350053115966720803956118347966463171491591874634068869749619782700103626602798042412670102520938585164582661983050313023733569117453733238991873340692812301134455020267502783218909746665986836771120058591071514227390237140573562084122712276173272765819344398495818849212685689703705758282413985101634980578037535550086924749019404301089806861243133445469336588509184721810504681066504705632672598201078241852641905312632075903249545507554209298521103898788013887338009819736306383138442401595438721502974225611250046489999066894514634876334554183437747438348870286335165790037265586321321074141551773367466274460387282843151472284842989717333290010910700140492145201690495856503413350116078338882703671035544157035043681615896395812121200426270255941348664800288174697858561437011937687856099749643920159251303251064375466673137922109796265193212833709088047473482444606319220817640555538426857391459253171222437544178513728354916521201694493799126821452834516268144883711016425306834507414343410575248871812372947352262306223442126971231142716586786955530401838352998326673970902636240204832397971884780542308210719780936111689246912811937533920413194623856183313585801625916872943479686775394853735018726052445581778736059264396511347788424498807775398016967454360220786397133854370719615075871977586277140317398351461629168226053883635719425001636089128709579466369154780047066973229244477049967515835756048338445834999955329522555550326538999954771252757965743859898410330461177468764951463015730170867883154698961255309351812282079997076924446669078116282952392057897758926806755055863553056329893364284155045121624618308278525985012442830482668911314032168557935637014466687571556969692481175275460622783951099284497768087822933888121576182731965416069903796000369414091494146993309002997758210082093199341072362440395201209361744256951638302398365066649779101152100546728706334152808410474017606296961905892551747308108740440227195837093425567718647520843475432204782203452105766087139024693307255860517257493162160593277619018206137848929569876859017489922992472865632177659004364107060985485603888838527348167024328142021826925785113400075761888867712620934961503574651640902086236139906401652027711076202347757647402937966334661826780531735731351989547238063137644159413434242887636263892454257819666716052894796052637782181741696006607786827198682538588463919704781927284781483298057424411634016208412697837872483891791421849906946608054714196718035099028858912059785671937546092765611228056251701260853183983800458362145883734809227153849088005731876173582073988076003794351940479621778414616767610010833254186165669421750159533667776419423289459126128322909793698763956808034100657740422932291514847034686628284441151679169074745003099453384788470281733371241248372383083845848727775055467057838683372137774360886403138829381525089392783919984419335176803898722710623240766539330609151806694756500723858084751218375268905355271104829947569079017420788086633276782006072498637658111696721091026104050164635542998655420479468660998641683372429563907423222815816250437252195605998830952948277559918221332721857695612842431775572756054342487948283513418452418660328800827979618801442054832599534555243167664204833329775214439854546170713817894507941994772913019959361627468788829023874952354053283585497694371104614275418296059362581616376238878727729614367261484103642778766703312435599394736230229030607914576741238503157522068517722281612259837421830726710286774027404369284567561649074724307413568445478047074877752095482634376515612744149736136845324454999501667800378725020391369442111330195153065875134513912954012970362862170757164733311488690854222807364134395257413545286999039021549325813872859113599609340404698527205581832361136800642259236896897565213245786371713118011724111251948624964546780398150146365640782910798835282590532708355424085191580140962747125821704700713736460286464946390140351969841523861079229199817751539698150525739671915573542358743294016444237018327457811399964968372944076633995003756888615347124346561324871686347623044119442582851780465586416807516027509760991416404925442406959472138935695122841654912777639828702222858821876028002026941733240010629650642099739350196443303520998874468697069391391767429052922517424010689318494918304401557608187659740510218102479827763260674672418291137173616085765634040335521063019552640718160375904678857252813442622892657913052964594646083865645434188462577934151415458240390069180510233417802734327100040330384826157838157819742724908172028856174535047398496457746015368752049190274389116660073309325389259765771498780204204829064474518032915821390027107400188480471635247359629222316257254431038705302194373631377985189941490788176945486319974037069124585878859450182688696078111799570299328386482827027229944901952529329906189437478911628801503046174839191280580739506050320342868834977100227905337969468616085174517031673102370156938129127853311372808756542663351903614029416962501758888804795844083220470922904847656393264874812794161842581701388055099199712835609434989285572899391131680789383407513142758298307403206587966963974560681622167001924936911076406677641974245371385876321791595138751736334399380741269033260832116279787991468758823661610395989225602776468296217044225367721880300917953003718419135997176028126225988179994902591057476008126778367201330792939122853153434003968494193299855779235995484561775743916522472411128151119647600047796485087067482637030168232691686024140269946615801497615510890030942441007796678873094119517490530839207388065273909939882284910522662494524379075542758501109902909793022841146607508074750716055291115298929134980210362797400910435101244096500126587466989289940871142335426508612761321904559019578517197293988151991045071162054447811652556440285778915576529816460914857591252288473823781594180659979640879132918139139848397577697749317509255239395623386774008524554150489629628459943653295019878259214590527386406883542483428793720281559939437682857374075373006222579084852314087868460018016444784171615321484353322552558604689513377595824258110935681643258746678663322764787578742769745890761807426614431892039040369398881346824350179703546450175443909268110330378738785001814354628516154950262605002980467878405107403933228806373035163585447664580503252127062079413496998753962885686792892860155094485680841801242162816104620670833360381688470450267505727513524284978199167820677634522530259570069235783984338671420890657374082514055170066732262983788097355907512885338945068995190606528209297113609297634941431215602849010385993182883891990299327817484215978853205655265068029349287793919668772703733530091341906827019478750268878904679383951469056268950072512035546355565732106152835161247077472338016618126227141689213645231212869477415739832446719449997050196214162348968257782380257237287819231524820485455177487157846661258039804438776625952804883191068979670618584824401080489278375785220730734656287256904453263795606374465531373638321781467424273494587835607415384045265520051550220183745496030082705635279138610037182511397525509673032211957788203554390125048785801846189532666279163327251686253831694883302416178185795036008010680185105006710113571579615049872770410204430350943377635294679018649500928530390497548626602616538031696368985816693692249351931001646444729372436721657157506619897400159273870051958515913576249973141498183656310190705197214640566419404766262127844626883231366305838120789888717632044255813308833870961441135914837773773158993985107892197786873124767398668200211771567860647984427960083659616216243655593330955230691094416453584595447174249219068191856558108450636054442129033548460777883575230597502264486001248767256175913760598785141933021699792783422240311640307407727439318461522681795440964415072563590946400932435043042843599791416181973722297721678204328167565147523323409190015861339640540628847708718534541200782652929512740629888196152636910064911391226211438660562694724858116542452658243520622370258885212244368687763294550040061955293942950804598646937779174113363511124096743897821158199588129720188598672603041027583165958856534019433197609442259209440579105722056069069783788819270784125007002650896498570869675506287364017913505783602121379874560539853027338960141411743694248800075115606469179769693292898645370225103288967253756042180503253379635331542414834760782222679639625876508759994604817012938159158942336192300857336495221982294024744090597059643583373718855365948220409408846160726468796990821477336030672578734384867285280905937019820688013792642792393370125835277290577238058591554012872955398941422506557363248887764581876957405815497409118376035674450210020935619520046028142243540151763394162700412815215385331379686194102625365629324785026758454574400599498057179987674988567948391842643918421807944353871376489601582212076032205956445738277613277741788961806687054527784656706469992798456431610706837881490425741885897489626097051687560653410036020580372005739048891497182803045580639492177400570571565836339464285410820846841422713145798627578425173751924510633882199904211726937241989507383018953843379217875837853372644269608889935232277299919876180750327323901389951403856349715242522217366295318545984460202302375027810606086507742014002181690525802003449697538512822866188155786756906411333397854272721664252883371759400128462470379095690885376641864374435717168225870407147484508359655828839485514538144749421174278993140674935250160127194224820755507660766900980436428543867001417176874137149427008927406162886065159668063630532105488949768324617445710840478836728230597903942766622706638372440900774935504944811114333412102656590533927443772329578790636554503900498420108413729417639151009009323806411081607209610219977481842954699275800902812131062236814726359455737985659508973599720781669806209484176076927384430950482757697078804296520788995879395948822130562946077314177013454680751324941407685425958465837531932766747759673409397457279221444536107015539910517057391887813700915567917786904405800498227074361990764055808405926795679408875069893128173298322459295519144884130638167950794578156531067406559250935610495930193396507636773242408856894020623019758952171244405449931542188193492083877949749038978622385637158977540609933614813731928656004632290372628324070244414625017735157219459029474615185817392648281668000275705177381514678406510430659709938423450351566816029620988968230827138710390634650546579724171579070028607376210634403177547369484166056744263278832087107375933898201928126785867791947660391906858282905582422470911788174957504118869089058336843209371101318302504844748731100626527571431954345431652541712688500248243397283902215875730542767768512652081673220872585457869861869299935975865930908253116400323412699813460550744361204065457136187185339516964014079974972283334274877900838096350494861081903523911043161153504480315940338386588857072917876543841877434716240180257486242782068807490402232201304398887536638605582454547463471079536173657580160904652099481643965009523457946030701642895899670718844939881062811120830270074872069334724066839765960832718253011519507357098719042139724826590157635578487078294861151093138402051786784002811692351136715683036545060215238407027143470043984392384340572746408253902530733560674330958245908691257702784617786016079310493775865511667503705342961709488381429269043642838419901275924552467636587185293418170740085678647402253727999750147121693776515993485896118860251680782333411934066123154342934306508524845122439218105611012447750169724406235974949960096867085497015886144526556238520638214755380132209273012546330555820031812574561592894022155185735574749416214279789405119465756149820650262051036661448117010904923590358685827378578838911880267218730177960522754405375654837310267362732408875835174374352021687974558408252675665045135996905233068672706187701775023370390159137547275654858083328726806112537118588168723953004699887296396882088361250790940715212705987832462642038120938847424795833599139205613759712663547581710161625563392215865426137360848250384835909568507278822217497668943821216798362130802476128361455378387879904238023107569606419539265747229887525205925732364715879499173777650090650369657453132299256136677345205728840899119541097175900693822523184336494382086281276652210295197120647029884795271571608492905479843276433822534962648859669226390560522738738604462675714723840820069223788624440396401394157623789981419277908966553612902284033314965100843716875622807372642460357174482191972978833737269858852791493055074505695528978685430687118182535924350033471882202114543927086879346452464928352470898006069007699048838529064297888761594154895840799775572440918751368878960524674143087117464678684014038811627020682114327169446763733997966792352128040077949013541132912915159459057239915684867487592294325225013648183357605689748588873073380144602664566182485983636347145672256529217785492210887016455865999148171175337263753025124020117575957129675047833084131298889708133212297272073531666888265004986320773155569705564785153160978622693393497256447570510982491698726075992671399270836840722834116486774100051131416723766539594347688195164108507231155648203104950969847564985389096145631551054270785448848253258279925274582301324354785122305682745927664769875060731067977252673059014393146324382223059581250769116944578350009689006166851768533896826748912263218574973588697944216721149799756980067272001610998674573681819336500238000380292100697595340965339193087732804951278207852263516016017290057522717137486663877700352984374084188421376124008706832921249389287892463996576086199062799296762178649387010742697686048530194357894375058379861678581561827240474621764142570990986371479134086280649270076405265753770676890941113651205278358208708358011698965673770812304747012007459856133516678899254657362062531907751293698747769222253611792022649230960158963545175032988869247345060059432936460567530756460266650259470735336352448410189660849573202534744863763140214895064955619430517128296032203460755358384331181197044706231989049983153960401248290712744631016656163427373126274462696462244082239480628691462122189436132375100409553971975522433923442980820132100581404460188714216733277315095707700394213154843986016889829776986006522860487552634420520200643766268332296884388406615294024652640549981294985628887110670929636326806488226766434668406313335412080515065656994675286289132272403076839235045857006408879549945757829539081386416683818283859199209038914109682329470474662219250310724026683354881468158415565613953451037391235593474501189790151502311109872557067572935980395055699185107039619616027217399988672058664594322715661350814243839781242185213624295687233411013365067819075491467008348647736959810435639726177555066651096453105401548123680542642628556128470794076154828652129641660612875334789655915818990674575359809776798828080521567185804588485610082402490151904332978000047591731183195264110104357261813319238407857804279113799841552062064364151592250240272674679212947868698502323250113599448393696159618183434348277666325110520713013286025972011591624195349715916287899221982574481883006411938356669215153390289065589363069421071186289749843070302072842944032127276873910478957367261268361550087479284440954502900773620541788226431727602655572264220170842119923774338161111494378232950574225425583451836452139963712600367127052881728770899512081804678333904548906773498302871804789690984302407751285913766777871303215527064481774861388324025054897260311571122181183719122708634881076330401767947780173173507270178636526546861040990051349996640090252823727619268403802268135428609956081023177526312104159762448935875440587873543002536688530201408457865228447212145704566164056417179575627195946495972631015143193026800370800136793091885799876385135007864427895611798412031343516475228526784931272510994439831823673265783342142384101179269671558679846097461114899431335372639523979464808090831801215705243987316608879867999298040641410786001926330904339882541305725021960919675964433865338692445544816584327022834104730935775493776297462945922733306915941939925176858495398697832649121579221876417364083501530261943980909742515203052492529422997006361883012832584433999478953532798297611556307405542789191467792371584061258156431422722457970174484035477730697792001171231452316436503549228370482436793345353006445677814293215843012294379054690235534952886786503925450687806413555467598123778934775365985309846103311273376982862840105606043337712300087391094014113962001651283608404273776691866805370369076065383013227879979353308735201127781826095471570285876260324028853608856834273271362441400384752527696139213627547685376690773757480906802311637748877253368172387476741404090321624996638881932489667865210537619203436963949442097504456225159834349987205337498242050126433407922460836950677414222178796448743378257280864854952183408737843806798855401137335756948800093555575772739715980961560652101717852554085317519064753589151969059875791574875833252263435673899075702840716446062792087819171310228819722432354359557594186876334417534469512542156806758910067748224189005145348417857764038136014551245388719590938642244772576656007350187060827889448322311331750736021980001021565170195360666094230476900251630928085025428395990936600971377443702906344719897272552656501342963563891772230868304013937222410914995183526956727915022560998508133563881301790810389944475048132012094941401253230758497443453588393030324159784750708159506770331979601077784203979236140918213055953050227716831742572940531721040249369595410875308653276854902415728767966444821905400504288557276083621126360261053209614251325348343047100211580293999724521357243607220880172185434246676127788537115650704203903696288391806553666339075286432757429059942945164791812983574876779793601331169963248794177012161422298405871177705487304424239446941487669518719903765787765675965845207068337098797904791661437853537179882254660458684041078534886500800011367036773969097742117594452404141444340579760725353190735449005018298256968041518492842528856267362328116823936905676212389487660257818565133513508273885783215903901087486282045049285153285690241852813813723594141265982492052584481915018222625808201697844211618143009053319682735711242514497130131472467107096571195529283613078975949282473250511039152821213688861513583069133908313709838621967321888728413024847556454344107209065095237494430907833486916377842946194299619662699693558374909092849454414200834775096810832943619320930859429303170006444819642740721135912956456208554007619210054466994158912414040991730869352416686400306911865880025561445500514333133440559822548262875964250892323185786173968658018022055545818049763660528789577325216919431615346303557778059296219166720293279698090282764680898255765481704129948627493280367651244727085612689200997079728986564697481402938690685760261336520753082436302492570488835414204510892740872609854666468878384398612777697778864500114288093725257982751962956425278289955981092307985721293650406700533194937216612458094782651621160661185122300239600660070662906921765691157973642743680552206504537431332207229132515222803368615826072406942188211508796062376629366950301999914196269490562985946212548542113679474393867921286631549662626941739277952315278700022376468618948654150337129144759758307815738467542569900699979779360748251625834739451911860667574903041977312672476590436388221745741147590987640246837667866600090840343022063741464288751647045904196469379061809554119641439911709690263915921948827686685290581732237003690406306785301188021978262852126697733343967498208598072043653030203092416212153866703538807638858511260093428415967542040428080530639863732014162155009687579786452813615133466523905088713641298860186556212109890680325552074278434533542179022213388441971382752458491909111389318310559018640953076491873029187797591127242137525320774872555801169333383011032364194592282215129705162070795942811620178674074521764911656539543772279344833756355252530980814851314330230880688185301480218256718397578200361613694270462912600099046545935481440102911299364796499735226938948927237437337994552613423224138373734910802646011594844159052722577714309908988618759095984273997100762987834176164352649500018797498127173461710784156469795943651874991327004148388765799300704379041414217023817010122105744571701181318617646041412954641659320987038768635045541370686324419183732790837510148038798176688541218034886387230367258947065711640796466017944747411120957157098148637678611943105147795812380917998901925659433824508378408881576420786606199644734882979716132780735502927809271144159805385974384606946450887029579533107564725553358453707224411199297243903359233620542695340424633301873837863462655514791819135970068993841104764074039591708322779511103748272615250892337997575976875154238342105963473536686088906940096540480434030585591151517958464255200330267818671765622047629857215062563757031099470904621684722164457642963708430259015887808246731402904108986873405106633906747455934193897728250918811601875648330807593807942621163169523400846680492294807925225056497264471984651070129451244169581335980873057829912938024985538354833865362015697084364157974489167151709121306201393029060263554513053240622369983493291175090985131254226810590054205345879755615761281644716050279917855836617605078979274346391399563635856986226141416856271234559160454369269060528646983588424262782281151028557848851231343801483286560843769672776314107066529925551944226531911351096116137258156084364919559401183818701416325568166986416856668935268749450534090655033624867726357199415667915470804197621579784052573128588613286318842769181047381420023345001091571384305491339141016051425527294507132656368744594088856208424786159177631813694204662446451569216462613892967315691074674929441739009843511975518222803536384837200700543082883991608959112761154318263677327596446662668841723704154547420059567581508039046157978647573220347413053286996802582609181979067735778163181699638711125089077666340249020351197145961717984553309793426054304209787663765313610623079569909671334461236814838950156703042637838749237740447297465784341101202933561436467851383586215887527244739380003174731045692210249872596852882339216260731868255264512310439850406893870577061923741558767563356132921662633820268923777168680542730538523187958563300643587472462229500390681965865717034588735346171545658259087379214414179655209913340947571123155450682935172649792866685665578858051356365465501694608967254300926197215649729444644817860295879693106149242816926365900362623007649894932036519279318031684523287717073309650731088148835249043954182501532634183730157114731597365107337031338064802051622920943506349941189895304084996054723704304378651696603697168439704228452188977606057469970444614757408778045316069128591286809405520539885227389413667762310546502226873572891369851757460856262915138200777828883566122593696046754770445678450656234091073369079793639109295707851969079507716573658760087384355944080722391231500914389096157025274616313697058789206357150531649536152615162844775782098760480109554427450011093711261220956649839622058378830066604402931685918240569744859180922142851564261716347284595040228740206835362805422688378216036242223600165837139968984371706169030239864005657384819705247368685911790430071736151657854019273519345735663910636050428907374819408132189007508204154746228785662636453497348531683107598822661085377046020846312478901988828290823901705242870087342520406002847447422220627857620074523814893744498329201591927475352016002752736723216595250589680424862297132243781238620207092994702418385718872709964373519244332967119188071221841951672259650929716232256049099107794680586944142747650521757091972192296983090375034690002426920788462067260533090393463053172100371109666679257422655428393634240424414190058496114710559340884156379626758607714352420036723187357587376888980185866450081642728730457135752199073988284152980892883284661969982397478238282873577404793540709648935366222617459903455369701197701150652158195698854134598033663074495759342473912414291565440311342074654427916180481432042976199689018541239159930705866190717745879102822680781682510590923520349989350472542149221258710428111801354585814624062816568724844191923900375240870744581729527004787487464506512774353986014222560614610809737764629096367282333116001654054362953456164531033383255479032854244020595538761966382736359018607635397993459007847502255008893212972914643875967899938460404150279712912353702353968263798685298228621922945088769610704500690510765492336549823603693144377782349087551901675582695808837452184050486409599770133862394981188344114978822704479762964508756972918071631964318187542602559010862912940396985154775008001180571182442344837064175483109223025607853653510799342702110163092587417935176299044711540629388113857126111891324947936330261702232167392172679006806374552961473579162934224443036369066677734331521751044510926635435103707136163246050995556395460204834161051115494669629549987521371208030329480893574645356765448399459610175668051669469121702892868059676374733643251858197834677454033801499990066724978562517764081493503090653344509921810153131221414323938062643909390759832568420100276763703082469382264380701707781834535630665464615412208428331056687591466665718999631450267260662922849567545119680860544648530882378615309978151050930905403041287652619580366827634445188272290552507558574061075408531288707474133544754639987404209409464134332091152129676513629132720976262550221323428169100338075872504183939135912979544644253544742284485194881903768809787078237711682856682733350782808971760389524774135631627810222913048987174530507491580737462640735088867739125156234763016357891179310653736146276018826224556063343450093158445670667157315431996246056012136108194629269511486543001482799835288404858576871041635625079772166108897059638852849272060403988173213167888469821621370343248146304212077647869616659880862543249365012581033880243187943941250614237905226356308610353759547969893359940855783700117997661406123090805589137602700514664179016442029483336149534423090962168742517280518458910647906655377003789168102428119703202416430091604723189897292611121848428699342169393848112554552325618703253927969093070757641335625070799851705127277565137399836406915944483363807675697283171858321032645124541786923759478239261768666729418044655087977410781143574710444279513884548400908628604896113983586785111435382571780331281752226957143854170788637996765511626055578393900142299428905378092987484929688397843881741621287228785546943865206433952296197649625405022369929748464759937960246166598615481360290219392154476649559615823231650937943362945766857279976670958429136898498597522874034756756280593206347994959650277761237117346187659985037940706251390883515379574677139749456716083649225053747538859839529532116313084507777439702972043756470739972905827854436530932952569784866880411984917934303658541746020589953092089235904985933523145130625657724685044637579653480554769823493377689799836242051713059385575241092881817970534442658369188533183170097171450728067732018674775495551758368581282822180515675342167789685676434735218000173816455324396431158201797323566507111337868356648332806795396467777352886331059258582476830474737555666165179480715012827678619094690283887614981884058987322050788324886186215468520410397937360338478339294182811785653391582327650018382012984373677011720592659052156400802577522024459899702070210544569717259662590664109098526011796742030002194971617981761158288287348825149737700307628890202735854489860765629164162677244245739180574197424964482656425892554757485941721159897168449692678208137472695320338280745797804808377004815364744167852077025618892875245952953350146837745974842442110188944706770889324957094152990695315449304973616011116791909139573898508295333915818740424265868912248611625987446959573771543093721325856180226301099146565771552415599940265027460381824046041673620967935728525434449983432716065775325097288660399099687781093567202665840056782298751200103310396125524980729751432330468446224985594147924258525327132443767883385825527567773988253829154506541683895122800358942995544612739241559813529780264059798971578258695669377763085424937466892852538159810935553311149089110429610435312774415603389898811063969051423186818951037364370570546897538006674018205610084349156072045436310453166675136247069300649729204606828968992398670361180156308556223115289717520466188091818430490830977597628371834695080365681215503566257489587217833489531836453302796657669820782382338796854997600481975574578120364403520955234649872169043871654644427477805133116664557594351303753664543859877087356082272519671155147217291021528252532927106805342685469865419560057139738622519720718473770245311571566462259596842618300474060726711747389304731301376021887324376989483285635533911099524461860135855936820149760592563659268277244147352450903142603585245502624690462829332233742912989935096344787125449799605185092519865654203526966830904718888539022637113393661658961523495001511574782028431505912050900635623869179832101109114804888907545174016045504129253987784508871304023605254637244189956572879623670340413896821197147586455530060741530905164504348060446287520738589353367787262632238756275475605047639402914410434174030397720397205202232725966773156997510453781699734725765488745847350953054756100801445498735404461778834391360293347681799241751894433376208889573650861579469399860695668486542811470864222340691298803905491954707985678095971550976617747627091115451109665064488619645737754119591919737525586524991631838689430529265536922555085855366101103817992998937358334623048655052066980105007332897059889487644751648460678385186927706538512449617662188068968447410102468947766498745728260373338325173476758403460778707508489256218770190646117720674264465059880098926199143847123507858046955266045840845860595157050451890065609835768303501030667627096896644355546387911262996931445847205184900010651198810757791009123998577787970586540098770358917802276214878496635993105288647407034007789524065508213787767024376224027927689617878094763933059948015233416018591228306901213688062584988277608907756872519670348388285817628760130879179849468578398872240314676113298550625621200109072344637787708078916188719168080020323171739523621720402636477504241445601235078199970513567746672791636144264545703196667403482384042205884112838351712874893189187517923743468226228670585699628884608559734101636681016879878593593523972089141628873092078455346337168071252198420400841309160880698863064412156117776409325549243717466143205416993729830452035074013565896654318686544705644343856308142129805390936906532196316848663405928220314803253491080223774740182132380664299583440051872608795557908241652907364676574360915065425707638471053467076042991811802114098384648294728362388398458348693606565668484805921106669006249055964024158522372847649165465168793282821764293130938929521232378634356304459932409139496247962421117463572264014482751951588229015923321746442752447534837245872283004621904686465985926704015877731922943626034083066303341882855593673783958867352408340609420311408549940996435584853046417235197933653275439322468358011247010400353839059794965813378450872237589752950409403217889181217181514837821812923265844042661191452393858590265535948954596313224102341993513754626389763734105392688049568852687930075980940539915036682396846491428123149454950830833590037183431653871950125640384389977297669226884417693249328034642221454946647704798393801576386768383063308690570235916306018168872352138682046203623784900659270723436640650161096236653970377125645330617731218176994909905191702141734969802608029922516546305015439123652988227990899807933648691282921820420382370599026872111798416888627948572345476650412963458779774153813468170653683584001326781519469423929745474681752133753477955045117219423364782206299322326983970197196925661299347514281883952704268941803194701189457211982803301808417561613862828024332370927102211019848034379524605129377153650065324854742414984259155308102726724654983220764644091262512848938503104502052205954993574115962486289115213796215364076352078509015817540562157637759240725951315507477116839607815696283262752503860501473969019306613499504215987080791397954001505259925174213337420571197806969348725650357433334696436735050125939293106514091183877632732595982092687508370736241858478265602842854760030753728500643725710492883271083046026542739996073923989005420094061260622872673928475608203701001284759147387195956762220514442658700017625673046780707636127056159393504683065397114471443803442601384889933368297757819347266379694562737623020840523151563545033534331153203329063931995824909876149870390366230129268870997552521602527974160435114100871124011753191263578194006067093591512410609569366541051006839955492032906091301789422445633197454449406582464595896405152373835734253096185934160827145994905533882996158322254794810105451641999750085888898830086663809585249530339002210976366561481610032709398246702507738329750531781267223835178329832409765425774695629937090151895557755707642784667354103322086294259337167540245835529035838597906437712897043193424852491555235635872876402626134302513084497494164672153625232774693457418621784764819039325891498281419294153089729385554561396294117463732309936181343707657087914982454097906810297389967398744599951959307855463573146019580299498391249329042683636622222691451980800431008254443467590665847337341429894506515640293772530304851128690044743574057663509719806120619884736083937723719054074124863271149786670673668890507208817812899930823514144549705755686668917384381712815334217097652374600660749400596298639095055021249854302156322245633417760787000864263376544313895782132249354596943188066466675846630006260155110237352497411151103495142443241453742991538494817218675160988547099354486037221096381843863827412483714790964596459091484960050412871486693163978059959586630884780803637910403221202520784507474608614848630048795155540527798657645740006495390540249859926003252858638981224507135648227196170704526276668021043335555027317439353742890432728567986164087784190351122673419367057452020674801242194610260807559205170241089315323353989709847910686467562407763827116659061775925692811084167136231580965266260814137751508466587574736231337905264400656233481848887388521470607466177037675734194525209095590601941837353920319943747335568630707609324120755515865831889858366046190366913813813308895826727936585939133996477612702590827842453127963279532304956113006459058176171762690450861952239196330513084461546330287096112394396286229802466641802466924628941324750011434056041448533680700469295776409597091145943611738171896392317605340808359164805924161568740218098435607241484831134273069835713575255385640525801194977937088999102761232393231813786615269657984580716420638830546212858315912151230781544770127732140516284889500670710869555008027977152183266909570601537333790033203494553373204638591013081479891384823825749727947170406624651759151755829009337174231794156470173300177471543046947205548304732272751767669743138552060437593293339957062261499490567171844519491214353912486019154839855514809254632302417623108186198272129171050315318538170440306694344599680746289003193441882980604727025371822160089177333494075892953547868165232384372878953275147169828690714939358782466456074298164752782977687768882804239836355277002086872050734503718305684972089716793908692116189565346789420611980267650102288113131146523485744631334194232425192204054048788432829248832789159589544418493528447197102687651986725607908041845859145021078178270781393050252450159392365498401953842383075040358779689668230959493031959062235704452365614157876640729218750989257041462155447385591791207001259319360452193703194545444647819960219329762500368737487665489525481871795741303217574994922645973543459665572078647284643871152379969780079525483607758647693017571655685997569701094597518846748639916966467737123706645584469748884530260711097420875284667087767802981668912518354181985094512938027573712492567273169477669995543944300293890271568281552128874553235373676109132349786840285608076579776639175886773174001612229809880133003812585499713163889392444940585037481053589278145007020868123807677229225124868635643886580686295399640652607417993383625706701235676941137792523543089967300534563866412550726846586842932657559746038619885320027729075766617410099193112275167572039565216309627868592851493527404333016357031829448760512564612782111834556367940205042935331760858717570795262130996289377918053532793120692702159638056445055880953084289440143112069165428697856369033515820876154648650430712560922342642271121917995091998920390891178681333042975756819747348532653208355507086863551756412038517353542937879678528784607425316107827329137472537126439589211325679278841480793425761984210378150120638818607793755335115624122855591968621397865766305759171542901472268611740463043113177523624312844070959751691365647844013564741769834615595580646989460420022173042863425542417867412178801489812731291447870943311253250782579893235804510936613805618276509435940884074026528423065374531874210026304092129256516936271885346379850947118186845876107932104595900178167993738224365851426304667042978574468502009819200630805852368010406206565177352577386044363931512319426358069462584098883651421734771499099287314901317741775161814459288306563213456454439270689267675874785515447038188592137002371607634714374565099767662432936185765462631373864491356222582767590597144738596676551871891090459469271237904783117057522042002877867778050994153438189881299512340868033739280058774119941340226389893057160585812188792407122239275030883303007268375105119273164559552596604830237757603596772950943063042806176507726822840582562924637828980522417220874589378320091677724499978225801282540445386563353637933174538373364091397397796489221659864353254742134766309344450763821533627519120361872897998754580765135991859493614773048263962526338865093180852957613614291115256378198902001673490974219895317490012415256009185099804486992409790233138001763857576270424682721745878773525882616493716306438060560131730157836180413822045778498394241498147049893146401476349121320925620133884476674383514589900903909532634176228433174266273892655775815873610168553246085800064830695712890310592244316340526200391144594136418908733392042653940110786202871621406817911014990102835236229896727468411181789264146195608506081903194608789579118593354977920799147640406464999429730994780392783877743329432144622547967374904238023418639078707071704835472165463538220262099049978996857544371098176510741344190973744090418107578932167796434759375699484356645317699142416903942137730983231582926163348805528613422013038696827447725089966377892994056790992409867889670093240923863150315167975478194361631789854116527036057053475517709082957337578943083947890391613283801740736924263879913191598654415287957826046645280649313522522584773902277116547982502825656680477030994335377338249576409229724824196853827760930004195619646590192631875386438176628322256007230359680894630685943100752949460481673267863653017788207316595608680406399038418666810083372282426741158584447930792054119665485374795636673169224131511804263206050203720568333971805744750134624749144823754462180694297711652909199173721907936171463546391378558477662117526214589367429231778959068460936022733586771737307909556606565532465960882159845146196215984295855747723179598568182961557112081780783719790287420212925636514711462346387816206260045593764151268181905684154864763903318816434161833222815409160703521967061788966692203197734896448089391275309227058374661658408346305121202393823988951055716196026432765777977652143644785254241594790814079820728345130746138453181748384162086774941056116033607031699536999566564953867753317068973809239382975384027104576677681848881614537016912590527446893478510550895814237666856549483285139669272211450284089470508610995160210034474515570412751467202827088689924763647588672592174497927296814729323732837072975355834690983280067172507690046435457019201846153919089267130682395674280685744437581524228180524228883704510761581530342136448106910388029833261958959818541995563333769839269640475663419876620128626343902490929739430197205966070855030830941617266214743412703189643781224715584873639630739375903640378882493092416428961382416763258518604108626733115120343473798383002273609441117549822505455675196688419368927012078327778821717290800530189407139629377240637290918814062060589872668616169384179955175022683337294761780829493007469950304837609073919764340304238805592394217695738551875422654948906342768855190204292272396536987981537785975883034330745710124159502060239595380822588546481771432705793559640287561951372374215648653314818715037331369340769040600496377786890664435544270565329501356095117776697494506540900480695538264990361150577373390290066396998810941935634829564555362032205060759555624762099724921963438436704398968288727121015040287884580566349629213207304791930982729547939123018921614968297023250551551857487854378885130406401904076135709242414003687437057920676529426568299076576481643150698921719847614290479119537934266848857361801567377375972232379210207692406811233500299309232573186485231263045200452538814454049523411424661560765630153414405419079516647410632434313394918755038130649555840827990713665548419813192980222837409483181444047427187138919771221639882643045868408293881111980699284779211293793214627770941642894445587923550442469416188907388900575683024992051436387816481498565280734886583680653957850433024268794655225632010038494176913109359398670843363446637207911713186740735820702966113187786604769441169670233554342356578971739508920240191914389576724549796979556985080439448619521066511275634553955656723090310056807709686352411288435604896765515222096268397301852286245801745242744120717930122010836279476575394779933001432107715727288645358103722317512276208126059392719462136382774737222591914778672226348423180339478999027722657782171494789576124831179628250611605183960841113140095414393400847041844199264044945316391760321790436137460079736880693001309535229775506289230719440252471676005618762590682363216534478831804227500670463733868265488813074479032403854386195897689670015180317821687138985061310282328895617721694017031225588480692838361736041123611815795931804333584268683235533271181485380627110405094420394027285872937878285358139548053189614112059996943747500066521372801951889936496354228156635936284661166260409951192259856916031864565361126741186470746322031132238634543981105177511134629416929923341785580191432226745312417167951213272685921516156734761792805581478217562985039258075616469079098534135605674152895327900866280974441891578643915019185455218800891120325867204035197371770945453909916529474197584803713959043639729987856843278650921854269671517722491332706023692168550755491724952995490873498690409859374925612868513106117794085898024647702452036218994642664672994137555854768424050189293883895660339599621790086172612743129739749645549902783598056274033394512114536306094884465285117992443212055110876805163235750757832201728574509045288634316479611855451765917492638358054708683598121790576734389728122722114321816988789198769898573586429269492111270560130330473990793867545767368795664595164726966347853463244992181331995889174951144041385656273168336723355373601112767478387249320819995938664326409918564680196788533925419811151983537643582291634183808060153778555255379782799167509900281162519439811465686788186545938840276599013337038821100941014683272029834187023974639661699595494551947380025856606549017610776699906107084652768862588502813125887402664754491897366427964001827164832091404665285512980012975533644047934100801333469463224863549974294305709633487211740236081666605969936054232845192680230783327162351042752133112098033015121870041936141991482736109535988625526167212160272824465362380197615899976073317162560310058084780167394807025868358441602569173126103968608663066459380503276796855490749485391581819348646806746262744344522595161314905666327781111012899151395647844222428068972098371842016659494197453915075306951744868930638772458107642852730275839258980163990707418420228939734144530162958949880084653715925878426520343720207157288679702265765018771539723824926300501667912442085001226130476468575558028966598105699893618768094274151131661407799191072931966164744333719715277217125023265534918471252279738136830113601337824645036031229909531475736185615729109870446667167618986125180163717535092383198380519561000707328801046503063199478382754997296968949989321800297582210719401255391067858463136099200877147488015705424869137825863266243717572359249997720383759608043716700403213475246737247107531372018683057004405579422576643953079628234903226865437614330627323568043388720189828201865600359845696979802932575178793230681309900709424966912867774169234758778846411992717112434935421511590547811760293503683266142602098557416914855532754986322502351610943617482488916135515971563488897132418008581133125782943422860250340059523669038371653166398593256635518531870955415348019192987830577215769717356165919884895399081049212514235805623610565732707807934904959315067143323966535096582475369690309884253952109830720004646395797785136608043659740818060600257488577744409998501335697790872429557113087674623944440410407641736124816652497925367700047391500288141280238389019768142226415685791532212919754376198627887638429829867871503777320670750630528179119546646202719253367075932394601404024479363611401705325181476554360841005499417262277813044007772572773130793950855997347200996966492709764972359258178829179994869924893519454329759481025121913347834843131260825310214218228281053432533131092715428192284024268525404415125966533178681042682356811585666934421637423517816204182392627302485555242408277984372317094512170557564780733160870788948920086944372667028054565889356739361937152077738156641891626858779132041657394223098865996509652880119794590337570037245060718269288862453578742344250171965646005052372214742808149759948447848537156229830003873884021222979018966160786402289073695587829607818422700354388807084862403113116262715575203565485649379791043181076881516709690527860943077132083972479149573641941834044454210960288738803713638553901596083646670265411041169360460492141714037503828976195402068413776692152059775036351569469988314574118065012379419409154801870742742503215758925246894696624157537096221948829153933424048451928273716949808829152618379512118895096518535552205504137211748971711846883032102443430433585671017763425158138532490169875432317851946560706238222676930504614974013667253322729152387087855497193803478706814480637205764583940850915059175825735920406144808264366260038453975512733821656960313612986933340447790771428465167356918369852374662067351891589627861246795856796685323145806549777550856715969163113111750177411249572622396773246477941938768725686505071711586622673642441565509356238710943137062780810716344780874474524016082035003863047956696221183947057593884457823647152840041906182643621195981787395712744058079793829008039736775135724560731169960720276295815045585927528639338217693993003548155360918062270927515311382821817552196146819682717551795681149045041933908233008669135747130029970834531627891738227114688212280422304830234788163985096258384205559218315287361119506566455744267700753234312973870715595115775037460285232087062998497097663160270236092586635899958464345744371047374730105375087743397170401357227549738371932412365307778271739273158179311268823679480074370368631890779043968629471525581340360515552018534538242159267672771075622083588284348271295624316995516907121191184929135426285456351417201586445654010477061800078321720184472049272090779709293396561181813341429646733613430279375798516095252910332339914676062787779726315966191522899933560493524987218953165734729382797146697543765635698694700348457416688008411760472130485303140772273132434583257638218615849496285489617632632821147103272731935048363118823558404074360501942444797715493243272416508653798205415260498060797392901051655766444865297684511365736149927962184655200374115720721460473616822294717183209383339711540175128956097704215538847110801242368052969395768141699823143477216575819166494321133560604979723122872341581231259361502678790746221859433772474028930418945122118668165072549334434657642198739587890047717682068106662554980822067583065396805002646632887792430302299978046074563589402589749668509226378091695346634752096365032444472840590183109601929976244022534381300655006744396561094358497369606269848596051965477585937121069349041965728182046657970055624842460757860351013654788336596188014404786825647357092168473493472884075786060669559382351391515092807491885856338766795269914505180744940860833792408841420292542371839923183379250771382141700867276839451129709480687796408588343331786951568899940922489867414088216758081009751994802914830865481101730208357704823399575033987896252287153049021248868044846835385579431735105239755983835108349095371866242729572117617168139606934478743503997844035779936371742217596182614294055120350571562852959764013267629842131133399252378889730850836183718029626066797713010855620906048587755692370324846676472202285546148501096360610821770314950550297566013339453340208312393416323063496600249704554765579609154980831421040385989236997926464813416842739330239517986579663669599066217486495156340516767993338629622543309193695209320026286199979290796062627630733038784728705161211685148319294762827274713651500054524635459724212576034593073916532630710979168628710241168772383090602219129300833086240103480762824884031219863225615736052517892752418536166440834675824645543996077953168981345806522786124249287799730085848557057994684449120794799471084645150305371427651392959669225250419538169953131565390735233502370328275435530870193562767944539830146990017746774682373796930997637051527269268737435333641840877902664934018756523311060165729339695980648600962420121450951399778432248660377727427173964155770183340278466775346698562496749909026895396715965696628274601612691564701622016061483497464903665787878296170274230271991148290444480795671370563113821944223186035579958149685736956851692573546100686409225886998463376227660431822314559353419693496064196134010056980925572908615694457702726990383228488093968308799426928685604771664505670572341222238625625052079317346221193169103017769986663510131248633202698454257033462682497058994402388057563753350991765398941143323777585619838973995491428416071016722413471323122817462800598569665304094281421354558540713406967571210080728083634916308474784316472739303105063768703711365679557276080184539312918374353419190170439598077694651567496558554698760543024505251811855636074895283387944371070337522537803970719356735451977155726577834355640342829889613993845149783670888811535149155678546866827020929086521408117972609138862590247353039965150635553140682610496077280168186215727273982324238633208555685092570563057026585070244328355010809741593411899785556674210427630024606266741720974514056241435940617072211169509211466234857403186291001720297771954713045774828033778061418617180234700264152604905801800497333406124883775019192472798665464731288059893256244679213229515438341559165113461429293500299662410941982224624239905085973885377271409763196544216746297735629290226011331126167158774557194046288793298682272118095505238410169855978758903063040300047540063045636205691457739056461874604742182382872920368776423765183524822500983699849137975575787380548811825305207065694588045161117809208526287291100233126266074025556830869435887526680278829391253587984034747430205704058266399274492161515083331782242097258058396508503713293546944625291282026795638722426231146442624680922377518276265693293252259686316996687469993047291533814413955284125667138558845425445422101267831194043738263870487415771523462845826491220700566253869077649744425172611734810470444003146683461374876577617275933481568698994056842480111354228355167451288734784079426112773666745390533323487504235852524230839520688170935520050780615872844273243613246144928610665690454273743661582715804567815155105944158661642821409987742274993580022995216889440878378764967604042095365937664387096334657413383385867181259322017920984393004949326307361857141695188920253392660437669384162664199046666772179696544933217541802756253273180846454305394780960891524446006599250527275501471915740981783565641642775973344610341789112350234720822242692367009926800093277888379355886609614422641304056665394371199094368167028528326244110161755189931645779606437812936464773237104615693014407053998533980782026600066932274410692184958548282072359264822287719864917625092015467892214010290001125651952427808950390575506016727646458800686874333459379532737559407437445287833478672788777155049175719114869952160827410323630727288905281337274863959272059526187484841599253745953525538010442274291850364065846861311295466622406149885923430409128715769135284578904290986043333778613886659360349016503100652009886886238760854573317661346025056229691066127802289042961003065802864060889054029467467843010116368955063070777918019696610103015020957659457332366987826466204948408991834976426227088490958216769133581593830890092022781303586953960275035228167600891462821341195345426727243782772672030637549526245864977254817992003188997762899222089242583966795553583601223857623952888963947325742870225665895851327124125601719565459582986437879205292353583440587401718495955451157423490180946704538886646631981658936412622494578583640115358646357644269251942558671751662841723075455231441258716580674108265712257106764211936604951063602659561267909642104291921555123074221282211435186646679332729481054639336436270158617953018553809558500089713453677433182453347960886721149773428107468509578944537127298323793557413361860911785676826013646633397096526844901250621536584658334111655070119082436800563030151318444536929749277177681734827698085770505071125406562184167343090412548415713609009664323783236977084993281764586932147359914235383455482968419798301451768865362981335809688375906544986606697544262063684355234505503428689525816216451175298601421481332340342912855562405249912554004898529512223721254700020887201604278346375464591047836165309183298037059682321505297460523815234944902910781478352198171672703110556356080950744483160924982530977560147021126019293909322593806321101486706532584165729510946946878443718273785576291302450197880080581136203870688225433803214157515923094371077821216639128009442395211357492093813389957180109248571452550615461097560404656848186328785725019021789884108435776908130658238962213966881605368274128871869966063323763568729808556584089003751539067103768730869985132418734815936655354888402179476357753137633569955820632655010274674886571296727068007212396318160251511408184253249938278819861747946381476463472021489579804875594822222496170540963731598034884786910074288184157124609641852897802465604389362309166835122736878093369207506692870751505138117671655570091344098388683112218181978466543136489041981801716954157267976696726591167950827760140638406837429158814503467795843317387085931613611404884282015755891233984477824805645177258801728174625315066864887044227807490517596904993989546851562345821587521815663069784886111858935587651451739749492694082931219049075605558618750980693253318996297129075704481398037093553244969727960891405361027260882057268302482981505667764853785374346243654528458190779867569948463262210070499294787529617861262539067691174165970675347566454118733718841414075996027614809005185026042486120886246035052271145611125003369291803459924479450436298575242639668980543237636109519825594141758262107166663200051080555933782103317788082360872102522615479224425812709745873416682729954968158082279958743481117248419870844067335133481687488451844119749714596366108455241526163296469232156296044876950764035563997363017838708527461975277905999526841086894170683413139014131070582957982277745327866107646872185851858536709244929470703283075138752541663482734562443720050678862357992266301571946458055551018265273044932484237100870673310448316486291652668091987249578513767326326322861277742076119124215460418718969957564797711758455775575208038264338277791717794863744676604645741994835906499899007170211206048563905784659468267443547045916357925298431659043207554975558791720855533879303602723889612739672268533382067179136497477158299640078775181552895281802482696188537998539790405399681443983136157476568851004357357918544479899899200782000528790467120427541947322420110456666341352359432540686692896488883860399367503978225636333130388687082807052954318673562154472829483255677363012972003601397695207835219934348573075440871476610696232999374898580378794819202522093359525027934263380135312314430910664448199998439033257561158832346600469199580237432744701638187740967611816606891554657684051201098798936965192171127088780384454128030167606880592805848505130086296056605580636995791911697176292420729302501934098988475627940860387231261396767889902111952995291287199655665530049579073313048086062889171489406638861143350755053701955739832864587162651266235851917116586283700124289744479043757551821917368105701143362695576761715761997368484937043546621090684690153099267954298431975995240715229591160363388519873357039886119703408544645463950584144369644197784636868498680083884341878694863964926201748482135585643425221663759509918597251645379975481348974786992511720113290876367762257975262751191287652858120057959364296451934960264164451009292999946933113129390050606642843711203398934145076367911443865618610022048686271364715146492135009008282194033689193060392651152649357331155380317362274645383833352801285852335180237607149064164518929122945696990248794580896977526233615952019040520441232337588558716494037851585411663436147714966635601626754100232206409701410798138469979691778662350497490099086231224264980590060766566078872045999694031535325597462240989953956292675302641009959876735613549208995130606217399203594995273302499147693105921406765507090350350197230288497898679825226424055571584585748440296426296809126806201007605623191704931767602378399044067141997484590163614755926475919830845947505410601124338359021819619145729047877352219131108004005288267747153414855246369019823181675257426637947767707982965271731410046076262697830243091477135851293070885435126455749872907740375073169548644274743015510368910558564620089810926721920872680732462676576427000736587661052330820950246126854268916655974080214149560417510181083382611715830145646677570032380600118962947736929941631298476177552118325077919154844839875225571664078655763796739461137176696924123134568832425866783977903077988793376760329136051594439133608791653643829603203274230342314475142109745387038958150982339081834553748543283679558321622428765171039343810600684774766482194788052673697319993992517377676715660468164774640008758978415601868111473402180811484572328215836099865964483466604369061645057996662470175067274290082081024455813268116428120911681136633334818293323664817909179618582471396194174253861561471396516766726929297883897825376671974017432489727552852634589785344241310540834508545932937571946861086440490220614731648075527485046022944866693994246080481022744466514363609676044225706581099445963677674657388391730518122012782766218779153561313724876468049710455724064042964910159196205799752140885124715858805284678338119220257719053336214421830838468833285348231933660113580135221947585032868870782488130822529267740429020747979646223947666575011580800342341862351755680484368457839738201745958154258676781913565451236654823405078652662764261132986127195033372824388114983838320587036256905895254413919910547385398004495263960715088556262727042042389120937146519543486338252011057741874348983181514211318512862472881041009277707953540744142481755056870263478778823353997883689864484968273680102291837557576613044664085670507383677936820864533132150362401233628740630126571832934187943703439677710946587882599748159534955998015571156390836086749946607970974764998526297483062703373992036078717652808838670160424618065547582182737442453397781494016750274550329018928770561906328924284793537120533406008359355321375396794924514199473425229910909781982863330991931008824166024171789320356466227814273822935216178128256665245895158346798006290264228893037129042130322102426228662120821576883721701593225622122572988036897908096153238083680740096555756918705713508390975125317965645579488869228467645365717450321195975067936493157712331149430094916138017913919996844969573204638939143147938966280357558302414024246059231672067843927408599493558117186231717845934954935882087353237075153763842928402077423824270159870962909659825609534154145494987145216154419463457139106624012464663013350657464706882125612462472102875650947271299563862989692819355408727419570341214722745537495315356169525299540757645379004653943972051159573742369439122204773419473838093915975933449555109402053854329612278981724199168773992783558415403797651303405373561642557533584626367603797831078569455849299953633173981419772764560871757181545311323170325782412464132261115103182587480026859092608312970668725563404884112148024253480472434949616090927864168948564639013669249086747915268533916355132058531152723464501791509259701263612644934096689511355278526316619487105023521413165454985450151959517056448301989724267417547971879166231109424659422620819406406455054938034806460904182710872862093098193562709570676207485173133058613272108969642707994426900782841663669346392742021757255565303816601215411020835112279315066239889841023283423451870746240703705993100502984537366532259637808591998952172388508786414779091126835413332629840107431603043533281316644235544702933045035657007621679312179412314106577964345607330774557639558380073578424063457016644274453356212675757559464190479605573346436686525671441642163371629275780091288460818223881403762516656701853125177040375615135397453838795091291196447995999756626690984478490612677114067756842784816580997574751575100592813416173998021978650050522576787399543567066731621714453829496751300802874371300532284642171677324041748161689438799604376610192653897850582391429801387416182519900982576064939429406674541156091916399110567719453940957521488996131812975196479828322224229441745771372905139242994692388201682588503524048857259326163063800084513829789818949743049503968704789046470774623454283865547300964838929010592414980434715626433925002697876792336688004805335129062118244243486160323824011581972859633608563084895387059161414556187538935892215126260215240466760077491263172362781151542513067273709272606797162349604836559110148883300245359431100586664900283017399902930885913532289017040830262115856503342484988958745577785092893948294507034357234020625053903577808841117334040084530962506357635078678288246404540198011003699781673232683703899769908745633690315264494888601841861737988111876920909585047741481938076872933377747586882057581964002727751527900468652062015362261242044717138644527099433658629929282443267334586157089411599467050680539884641390203693394717304893682511588806914531282208917142483876634936236153850251810755726303885623957677757565203600971413934361363268414038046361173489557270968996322031827564616282349066482055606066437150879922669316981205686420074318247594529007995163039905904422221319077660907686199485504048836910563883436147839578585326411225888682943505960099236332181560207995115373115889495802388010922861968742624615244539216368788907793265454082956089365747226356963840742143889583388457436556087533394074242148636901485761797032189636761637793403492268144661607165483162320817206930231396444659166459483012264463583900975001458744261871259622849530230987017128760783805011012086348790330289463677775320755311059321384360106825309766833796843619654764111672743738856543280994862781620892187936897697273630405590671186008590580239494723901699818309344910952193723918116126021704138838158412389889244567373983554548337366615871226596757471238008735045484899479572599579212028098613352201944153957860650399260939670501873456700767940643169477305927520297987037078098148433839943096082912053150004413091705867571740592159997672251054036649579852522662928306820090918203053076865189200871470943894088688085179686450514779884038730847142795403267938451155709933174831656006884226552159765092302674529042399977557792640246832008663687386611151099089555985395093791699388985854761769751145252880339305832036940252902749964459677759828742411835250179779023571790121913971139111713400023663643288557044919453357078046140999178944224539137227193083359589459809657897049431653533869758439513753769785918909359957485583674568513851878561784016417608015843995464677881154487065456952106795184907182551970050134277947742831935104581977012378105299804600687348877504785402503037917573987179098461669223347348666933724313549730537096583932673855399717206952040781838183760116705293630835309870764946148378167455458584711418022179008657659825149228631064361539512809766363786569268460950875783171578354456865822924784962126018468552310944600645721995218027155331280112821324391475097800604298226859742350271974198988903100932299194705824207509790677118908765288709277142805045876309734043903383921497342596937668547904458671878174864423002792616968659767519839227430112078447656165092271615982075875660770473443950282962960533355898261653796263030548864014440129974699546863067190126240177965226619004413566348289051473531814993258791806871956049254866550450449442024514357765450717949556043438308630262510019842721362289101366989023050693521311201090312406479208731155065383173832531514735505541685886795976188922109446182460448591864567464672485618006108814532952220741494276167716395434199990275534252525152552676257541479700266079520410246476344750390386376019435989133377067870222298452629253622703673437570087096166651282826856922993257962920986876579003573288913387820200106193557801285482714366794552148432785697348836326373382609308416578624292155907997850600511428766860087318100400725378050350325902567311960147532586781881990866689010773181253964282749917395251618625167910914023727959385017850860199824376648230783739865034221468395002714450079047509553958278541556229953936804821223583147982016337289907831807323238533698707556785971185998746337556470428032473635071520778431358968448060314986897741968911606500416682980926398072075034097882552261575208719915444907604728133257749032608794689017640000619688087196590995328705764698431879002098299195895147143634489367888742798159054498822665109440897762845444911790193488551876989391154530597273443654199602676469641128480554172828221057128655781739071059701625354722768537467867541274018430729579677876569415472292414878174761131149895317385741335471131150023194169215339854988671379841338856478097452876079599171381250307591113251845204214234819829487964166484647874662033828098476950258388253780589226653450091068249736540096722283385953938908506196884870045334262762497861086854134398323442129578719989824035286000104805714581423363713185327401141924941194751093382735946097511467266293085204157085578075801099187395049886701811816363182130492665731594922380208446923081320526111919301855234254475580158278061585390042229103010973681068298611644159529986131526339598636029703755267470161121521026239376151217798495814808113184747920012288450777187468509031664486933555163782035360513379884418669332005510553305882246218720046469421833119849545769910039416837679106713276151100724229431174889223293315997811763126921442897317840969243717008419624312391178056269404708670683379522888667134450013836515368533813146001894434321198178976380597835848883312400288682304867002652985601543555618954402300359053009067127267953468529835568263927632602369244540653534483359982774504147283307494596361359295841326359630325916922399382840159108247488831920707135969378235870417883103311315205492950375228609459342199988547705445323684118388984056660125693905241156424452836812550767873525146161072455631602714390780377405918826869589885916636010712251403162096360488948723289945247797082579757944090652902379288672552694361228951053720366923187072777851881103164676746617867887093792971103690101673227261770389840397555785275406092622762856038598845030138828162397788407683467225777466155238349820121835671967708404948032131416493010588377005716346356027911542894759868581282448357749077602043848007343938614059123009273315998046956972239322091461520744501087791058961427321388636332160176560483215688504002609436247497360761370325335467593628786087410347049805828709309909606425133909347753656776747713054563414227749672548512777086706944164521180092601567035390056705854255371881359743390448897453454964225714198403435138279703279577733700759110608461924053235360823404476317036853298198882320254430002623075072460583275111197867061756230909969570612287014513883604488730527374140371368697009197461803468936220520906926636759259657641757487547859104799064023411559269694434402040743133999864891965568618296171727849615342444333249812433849643923002954131890813358860539937658968620244970608181987545732569073931221844034701635981909146801229749298120737699989119507850314221540588181836201606112465034109196552064162487614189119116594228918421460572768332014320524369647674285542538818313925336038919729784392220273960653805410550305588842461944175957402705121161691465932393652841448041445167516398723610770183449851406350864605424860901400641693024886386433143379569168607374096438850529513998041522304480364383590094563016011279764903971088906522002124863085639319838152480655494074006702793054087414198210644384648332146918397302863262028091701339604855906045157644320484053496166835950669356296596478621384677844472667031706293061883746145312693176050255132489234340702198943104269600977131521254776314354382991084638777761966338983099737414443178286706608634234957156355249606091895064401873250587237395049059909535953286906680831404912694775581873190327294103292385255419571288981033062580257397484624735173306230091212679800846850191086036400601859923363866553378382511936008262459871514855172105201214087089263119881353024982581299194840886604988190654231134018308085116126490462140250895220376793263433301020887034361295995329611140981361044220905017535775018503687247560117234807514830897019894892851081878368342258110455461501683718706496604708947177186493254353685519830721921271214778023839503308120544484798746352342055462593901442070071006460696316648577002773307587370204670188673574658081067494268535739469847754047977448523239623883411785904474815790820800692689394874853413578423061714642033334541568717319734232292319810142180861325999016675690607682972191650916675383741855408109798169030041292813778604803264591173865311028289673284768111084696541458466541468268172222089546151744371795655324451811016983874460257784353408249673449819253129167706635030260765048276666107959234081690426248126108232809909331024670653217816577658708971271403577132293100138859534890134252934518345044113362846995278413523171172300001869790714636108123704700209142007322621198362475479610516036744076360354547577344694089022335088210024353911917004856944948646570555281170166204996259185909646410964157046370317957637807484428898389654422628818917301057050327189037359219679217982059611250866037660913262990889848487180362056985157232992009440592547691662670603588947319145009587049969583510715879268942298060474944093893325504190395474921003055451568724114000718826493923268423364738491983502862108423610105733134768155495025661919409510308424059823473367731239719923334141879079023194473165384779757314061323797026158324073582265121695415501392886630935871957709264242794580219764135048985854889447169205825841711281964833127466875328409861975996518707090980613149966738634211145732322215004417718898633341181400471830524041072412829349301799503062010885380386226770022030902429565334026777174698930195612180520269707614199626770686155601259632725034844618712133854815432344981402929421115425525696553870445068626301301146367126218526606221383764474342185963987570947468884841836379666132252210510654318122739789381856757604504043785514071506149516372232140791437156113960090724050368607853667933184464503757097563842021823469667756235834789959491589225951021172742910768131217690306069675142350445800351240044577204446928121354821299875991961523004273211024486685270839189009200692448033180586080938307186312097525935888463246672755408071840136920647545882143172509411418180268719404822161783112725323368253567375794041739557079686632791680124955370746193375968292355209546284102157536765877860489757265605802373371533907353875930300211172048399979518938752298726735620306359659005356813005552978060596501642050041697737884109158075344593634808903795966449590458837785752499932660715986590394559937432975490576136300031757203584894226519616590859843081353091725173041798483964769919148413453617689886320180100029510981251072498297615287019514368685474563438848133815626393427713572458223499715845953538906866581156095774674932182919862922737745029615191423887232662125399896359659498172297731895699205446754249887435002114735812039634199885239394335766384839701125466252198913277720152026922583544084300996303929527771612779844281578092777159289684144106977014983883498615632371012635845886433229697035018790551480703243831881952470530557735762419378015037872889668998240530078229191798164939211577427625020689704077535311129379841721938495020224446731515287287380849952684759493411478222271647069867955138354703669546532565386574993936464136348500944271823648526447297092835961856914145553770504760001833191757503428472035662605792994913290262602560249912382003831851739226040201396034564977964807003068479860413522360146686607317024310064067227130675164838056187083389584805607991099734406299418959181807987001680381044128039071194024907748398962672918116510491733662140485226120745002774645332433219528930768598065106992456298878721940537356885585992192337363087110160208483660563256468420414642146654058028483266121950287084776842784451949991283308435629086358908593804686296720435606255228865752970277748749604720393358492292482660805548918642025530205427107659467859416062372413646030765398960632271207605026173896018346419281013638617341896886999768097752473217992813854398875950273347597732972731224748553457129998107949113089840789226161005072280375897729829784391341123140001651061551613109259536418621217029937771505996995227657559336682448847152444704107826530739231132507884208460037578411857869532319153112133630852731038896574117305160369587856871750941390703894905616807246100067319654868610285457946695009024157391262778478454079061899364252031101078053308059892073680736580870144865942884664900690209003745383450063610328525135928710600197463390185371965528637178818731571520924308685512256265254733231370702474328684342357055513070728250681659780701095642451479529091060124793488067141841468234526273652757659812294254436547446012340398959989570896844196212856822328546880260567598145836909948906605828210288355859277613420505887032830974155656330626987832238270613908432040252057239303935602787933249628612455674702466229882237945911137544393955852727055451359190049265370655192630233244573993776883214571747190395781146944769873058595329575415421404633924884540508167173246895620932939562631260626106461489402359535966384506690304274636271962252593166050230167833780511227551628890449043060530320084160882105959039459196692186202708336475376142325252721071356130158756036821800137001936301166717614394768898056449990464417926279298649938529821743205570057392155875113931243185999300025352540566666629370655511685151488744464688589734634402709026839159592628371495993306493840950221572959390149780800913437666391431545890761115030167805453265251483158532479596737686391145688787395035347884884270872595350128732077386307124065480356329427683982883870601320831503367284293039947966996301434750251808172408002038906565796903551295631598818832031355663608485138547801219780910474701219778178393624138106036974363510579795486503364132892948575993175678104016974894470221843410172918103091891284091865016908721733531556776134394899990590129215440461798912917557938128390150756114613135764757579295446971459993475637554467736841416315169256076334177378921635283202307273499045492780972005979837261285005284335886236451357950335600012863656328039566644758032073870820908029782954876975528057214996172031366144728605499250405512459884589551023269401430827923117535978651916200178407328993851755469149114936409452421736936926196687241480390728917364444574611601975417220866527921506117011472767569854540133101020781549669647251908363673593186983770724493558783256452790564993647958035700535337847775302916096120984453224186151924138799800901551644249833982626442310024406177830646736124256045864525692926211208210764874241754881928271815870447976128339474619904823089758318068665110545911000525232190529772027811838801368406203960303293560884348854927230800409330111513488741583444101384448457432656255522242395356810314014990210372183516662003917564270099696753058675579224422386910160367857645271103835939274787844076297542925657762207349694884787219882349495145782511179868303804578862477615589461676817385670458585428826709561420397036475110991013439956600478768032770178855778809360551284484635387709021767885121820759475358124799596196952974893409067795288269270118696072566349726593344684512222957110267892733865575091537027479664528795955403652901931156722434890338818834404958401012700734193438623882208980110354744192060102398165588515584063850337393449570376690512625074954679432555118118993435545163093816226758186167224505904375071017304257284339683993132128777491483451541507462824781135844623387276857275422131786863064769614261760432910668736580502403052445736299676119135998520876246365237380644945543225782732901665222533449396110426118292140813945805512330336378073523868445246175196125204842257882953212164547893688258113752838373019201707794962559195385570199781000591714036595266096667121028603624028991056336917033352050440496937047946595402779653899709472607334544146340951616772900081895373826491328766486739139437154263423142665983164153688743101376420869768036329182717259145119122436620222824123180250479527818443841518049649894582124372075835433200987215139347433207989745844876216186647052981950641254067760499335953780356105349241761713711889774008933515546003985242934724163994771354781283111707839815538858804483284570640318692812730396721113166111789532080521581727181254237211805740479943520149304711993811359938200577272121064804823814940534873332477767295924086112829579814319134804386822757112725339616367872557927818337413724572248685364845801486391578189243540425541750970864515467024401686567110955109398778253785067049543964176730195070447125050280533459105668552734982261802725965023312997051944402196060955090304627189295306858811223950125598067605537793761595711584265884466861311679123632140585176315572635989383058978777045164980298566052853855233778073177557564217958856427105066639879874423715645962324736103613544100596686255746413602966714454459338955333257888567026130805337659408560692804659102392230587455415105996929169045478420012482967858450957998006243194113952303093456383421361852319317720496775609649967350020077249119015672321802466155172715706651953693584861461049612412793762797496323642612711861394606584660134417426559927878294131828190849653652314311863064257119020326338260891562828458378706513210077040332413573560375074600561467476704039852322231929056415479613054530030242711060512853690679582754933386619552785720562028700816690161160381736077143218069714852505350582056399030687498633071344691110354441567715714389910896348987815736314339707234701115149749011263956097910008069050986934304816968745164697812640797785351996464487940915895735284457672705623821422475033098024584995530854241020905053415340511251749490724426175837788009568773785521379214661140438248550002332281457778201447577011195198508863166920902477854650566403967130410970510530219694262567706825114402371922533636768540485537373534123452704005858900704836127654309245533016272562780677026771192043970770849696366533926004688616477068133296101216184738330677913742064877672588376688345342681772850584368245563177547796843349077309281784367493031342822675958598845930915652809865906047803336503232104310485659387891218875285455061210748643741149606715146120749387032149283425716470112641963053721706866562537024466253639468433325729171935758430676106923574050849161709870623493638880179492154637302349973096015485780952194876148127436218755250864063056496940270949399689266625250594623772311565556393030229748007985388764051032700924295529710390649198384925745010952427873716529104662196895661805122671864161019395287558073763846167079458061644525983943068086859396328803113660420638081557249206383435511928802197537663411972944205651607525367920980611280296114355186403844359799415497017532004731095095974498287354638744518717994217455701064747200060835213175315475980372061776129879481273902429584969803622999274207423332000331190767620225308224286194057303259164998609457659794032153093606974737925157988051786544971619250567549503455132119064050901259723357370777252247102715490323441350362861540717682917177382434564902525042598986399096506786834387173725330512441916543802890636063438154178156792066099480255581290429502241395558232819405894866967569326623330281058576783899988494603676667114310986808859287747386543095807493573878429789382841304828969491000677403470197890004973980344622727312688095191312672414310981318010532016550012793246350144322051889623936643920481484273021314214996551656501117210500941951480093276168496295817656340723273940390059674751846181747817168325171179309634805431438485301393974295562773740835025755421678711091221933295347673977577425680485625539671258630732230287241180867255082986079150401895113263041558202428342984049949068298408925356898162949952972863210867558740058811501502366297988129489823265696536909717833959611395754458703771430187580226402097282787451666563932499771531283212985732320703595332264872764657624421859089691223279259435557989758298439182929894597768202943311984325220135733219602422951241720243104771781881903401805104995350986420861025737918519248390957237734929358152702636628154342409672195989642484892881627014302805481207508676647021863186950631557286997083432258513544443079580205664671982637870150302658029456213157088186112217368229537164514755543709241543364799576976179338626904529658389749347740557356833186980985298343570212575988002147409210097280900383326185249206541571337795772220459019260442850719308016935100445525276823788132559959032865883000173612079427725398285157491716679279509057612488749820289254883362509512671228799379140217517378707083670881822608214228945436162897011527070755191665261494691124152179691065506519134761981648439258116776588162713075116496693014906236044843483894552802145623869527450999091487596563668670366411552807090288227735949617553628315760338825721531282395508212222681545928234592547973543844860139217316473249439129712580009155122744530651174443198665319699648920546150119767898513783905011708321489948200568742286464662042780629464968392338431351887896289462461958097326317022810246492073585955085782810868662488304280426427567013173894454284286160368411667827404185747130847094747466847005300147617391687414223013494942781019438216344788047796884898439388013526456687683589804496358569183241245758526403836347242695152926644471432603178838711244220034392756326316363571789904546480045850944557808034033024662661442189999240050117394431618094782109034246917677838900277837013998067371293174905570585665575349212037339040904048395861059223947580395438698657796782210992666725547260060714675225623950376853564284981160368589762748181408986347514423787671331907770658276181181015822366786177895900540607302108069685283332709069805415791691429141075010941625480757524858878455147341159140481018451514960574397288563868931631245634021747298210129270847627269467644689057664612260056463397665935062271916948476157735636654027178949661460199851525188968535712036828153291218316169136952861793970205634552157608660723127554751704319472695613505348592787576519562219648837480253666937154714965296415826717568178511437023823436136012321521275749093965084512228567947382310956783719356787914622137964691751725103641856297639162415331580480604959337240411782789842685074286878077549520948698430002725623136713081153167109714688992666295450983287274679392215311627048752011190105677724379276743883637801594173849639435353851743045702046990013959999418162675492156128477550767995506193218267155868883088932425982364153383524473608503780305893237717629815090207985732573954760291487075658783204021297322731223660593974419659708214552981142797466648369815228782865960962558739689407939341786316913969917216199252120894025614468764336481082813957007057054703950119534953753782239769941293642014431066511912185718562874398387018098880754598579275604413648087473597974498927137005407251897077147129279425726902270483147243325473959137491041005825935358394761065503407954178854238634974246578621660407968294099278874420976579124934840753343288417155718130299303954771048787524533022073859740666364840078886568501786404836392123758753619538709128045079161698017681933683838113768620680297556123556635914065195136410527220623406553787357378139326533877033335061340480964693564029211761277136339116111167632250966705816002992876910414792936294124348393342090725246677435841118403448860852649761216047297533137490585569492641108813372054251279310873744042679704259864859609869117693346826964106352936831386087718670813570556287454045816427952940042042597232070779201698753725954413165865956449498619348193373329831723107301191646565923283102226356084816486887142762549429700029720340492325580828273813028244438776878663962815298780372019216077080078491817020548323480714413979563490069476766502718221530590491893160566499552000817943818496471158761756868300543982935254843471758130279802826690127202236882838885724032927242937568041247003049545915739156277090242768658603390478881392107175139549568134754659747661502037112370995855636916814159844963608176561365654590134302621917243941835387444277913348839402165125009319408018915682816467596812819381233193010668328546722144412779152030556841984143034373931740535697583547809327161849792222047950991295644863228298931878208069124338655105520833612937920725611030353635082562491127458414312683965794000215655943932829484437166488185889765876343657399498457521105354452046460683843018664777572234687486328777179833065444582177972438649333066346886380893554669025469851663600866372531702243766635857848750204440329973930228325549154891534963711576547180745405874694264930154545216881596088094704714813825031891807922877385383197896658082753239641412001741543127941043572098619915705841893266308032506186229687689561915701537938292608330507034853693711794405714047753326507493533873897234496146334070185906940416434133560050442057491009343637177455042346835976785988670291508235069926273603469668778313583579880675796886223102864436199921587571497908601440036280790311051122386917225260036813731849837158512871003125762398567576057199060738465408957855679113310955858284296198665172887664271224089888301620508766448682406721407607821852378738889403814625846761787002203733978159860211777222491011678008155259444859297468425971584944919037546155658612851205842272477127576991161809731038105616155320846663641814901588977127730920025047033146044722428964671610940770776233410748135289182421530098915406970019379956712713123694294544075831902304649682817041307926356839114363109555766129618126228088291533848139610330790078174408066285828089145628053388584828896864410687666518704363025848893750117733723821426908998062695442465426585941972100099747708974394521048826381483315247647319811281639544743939775671569705508597979057499202438558658046592979723691997384836058768046207904111839040318479805294545632536462419416961024528610012844533774722602569553027119737195315302830564837010250803733723080082915837796862146089750982438173964264387059657142612654014335398048071524966817368061031444743563126597600008656415929488689134419583910818227504902677958624739073620539832633286541875955956137722857071737562991301678324622741366374169382212023717687876220433655920702270194111742382627053084047396053162461857585870908361439389899335708165861194141442025321844848647346482731424290794831451432774252285793660123628996660617622488634308143785896010483085350787482857794037517006856609155451398855921007403757879840534503990308868738580282852607470434187588990957442156616681132389133656739440697279873362690269973832368376518235181056816235084556565317057787345984112852376401394992102042790185813630341121669864021087240058234243561756337598386791217885377906336752614679258764827603956375110999978358656888564179591969020036458753838564023251292268149541743425414766101666540859289873595462923697395364723498976176105242760968168426255548107554105488489031178978712978114782252399837287206286252870505440751083761266136329310351533614261448420282955986160167218056068267885201280640423949768520059556516614026346474363589602294108025820461024235241418117538294227624679082128000839119609755745394281080356792633575261468996345145266940707967239121050518649168889064233995643092078882972413759773942797733633914536510152850230216221760869431762808449294847131707313470929498696188072792288493020616990669585438144355877612538802236991758276009207064635395500465288034413859351205599635768393052394236709046965198212377776624639436259638709278375844994543365170637653653749277845059583249939222723401206145577007647590505531511407915452078456820475570378951779647151384363620547205633667858579333612530413741002113639585688710475650730186790946773944553360338024432860986663428819790225438207425668720131721400545373916520541580516046101441257354391874420472796551789259847270976126177563916004943629307893788172430238930517977020110345277206575418622285651332531550180021181815619514032285095165456515037234944406320809360658050235768205700188575518233215553754988881020824715912653399123948372923969380911393050207598633397882429396554565613496172566469035079428210176461784215172909033177821653023598492943684775688285902283472747868460917521659202496977599366481968451849198890262217474328721734289565104051415543184151256066443058942351176974245056027756534330624814710329191466062549803486410793607184951843131331109635660780787626712237413751886587748210425205805199231416098655735334949821950342844136638610745369022867241651758258877599958467668015977052539746071522510676507627563251924275485476838712732081067879015227154065602493172811594895561745491777133339723904226320729661788344566239035375103349834336905234250076152972569222196481171159782519322912298161729991589193353491556262029904482573876221320489026663966159174946546668600220686535179292915707668311524635866016689066770687054492580031150436929483346082758424288952582861857342496673568180369378514487454464089344737092082036346320444828353245329930324617234424212813528948650521407178220798362306223318379063327307811273258225302789336759472113645486457045032142720881344014475904049468005513609653356567510203571340600217107977141070972276183086824286499405965590430674722312280224004542692543332068893492437621857589849461002903182189811259014908119783097933114880481474850616617159582959843365341703023810336957175131400973394680703061671549145970863714898230719179559059472079462490223855855673614377823471000894604283215784088487707336578288270301189112867267093949144986273720889167931307947846380880002155494961242584994394363890802636371074098851639889770347250658780579696456134170209213364277384359458902411834237381913346887531019560078667529890066086329168361553604368910862603224278187293225155322973846565509848683504104169510192024036953014080944236817728990271036284437911326038790404145237599187249175712779053592139631794498447109053984437816622898934045117362497608712945585977731216078761804768176110279183245609530802956635025497111773069984321094962358263699217581026729318318061739443770153558512766763401355214606394905634571430667761205220276780471095715816080275584262766180007604304904770842989790957739820118323365510827299635146972411291697807558143176442303829249957962174270096096743741839330975667935825719539712788265524815953282390334968561258024238927666523761462070826029591025265477952062091903553097141666151529327596103087918261749150514422163959054456709465919849361383321163975566190547293201793938270213839669837418084400721750636420188664344971040829764699215918100916938433029530347076372164839506914147430314391799452010121852750615926811458958525121901034911390755112637833021621849130148615009937186397040765515257797521957998711411147801835467383472842226546609918977491762901568343132969907888462255729472142826164983590080841575587572408468684640361650815567826209678787444185683872274844722675927359845737776473492854246094155117960233000072128444918101218473193298610383974302402481579273494767439332022108966919151812356845688197915844513763852654625185735852755123991945667118064601279165406804056735959874784044902160029735836085996167603361161224301045044703441462832280554799601669657340507806599049591720272632818165336588373943202776894494783049478440650900566599780451439247934769727310768363801768651094704358931297681575452750189757727272747654578099717404695281144373649312759678201635324677935286665502951226589293433880998143038275705660499908449936647334251100228938499419410779883078477830759108540752298045062327421546035075967662870831618153564527310971720685588003098871725170453524569067880680378983076846437719234114914335791303017015299591475511002740796570526218039581314882797630553099704420551876745333834890248496600208785027247142421518066322143207966071170397540502229297423553432858482462703168693052147188565319301381875190841780351234107830671483197668145233440252694531923217046832596734694272457094124620922260393777080164327345734779812114207642014630613316265478471730895484864845014030793427663895199713101383880388350569451343148468078992225907357020822769969060721310619690640201725660724291241722662472668219566921737954157470757189202728144239647639815990240104078990361222835780710139897426914179757929906844551341628437386447153115987332654447746542717806103300530998828403969423318764218672756298129974279456418003982429012386278957542572045375598768732475374663985161971469863739985511311687429793150147759728180526603512715053434204231095090440174144372657813018732365349797670694454515667264884699654991866387107658991042398049129644771578028839783309619544158215756713763146126512633002129669082720988823549028396937804226124993120036404546169858299149515046203859178495714623471946234556307320609194043317276070536709185327772037186372500768650941132334252534211199696023872976461538987235039675656019344353588494312161343476664820355751134270524607445148980978750290953558085022281935875807101155963003841175818679842364925571144049253308514340829937814269151334186278274576631264094525187931395606968379083157863303434955008138366859290279691228359098921083654615609552355822007273882969392252760178604601399747820410197893781495829108966486700088114705178283944567924504102990517180741572553186822461369726937467736369992741596130057780458539427454743381238495366182518924360309430780228925108828188563203909901751473714265212605574103163328332428767020060675602306852423367582141765978414677333312007202772515069659801007870028240909878897574389849014033967570935818650140535230681519758322591492123143434654328143312427586782382533412308939563137294744283391272639548676598059514297887750144893928005970617384162251834987564812672874430753621014839593223868612355227534307437282241141550271817455275168318304975641118157346512462542991466712524786259469722848042628570598167729219595140881451342898761678358357932717480770610735736606822491528229201507474195182886275165440150631428814370528072818712010611071016343911156320071338289741108272654333665907745036689741253517019397213156359568806925764147792079483728684188047364894682955612634008646781766912549839753273142689632879795974435392409226166817658472933520900057985410285920810763110344211963965459594008183016297474672879573496591851634641422106302654192843029534709447352437151438169520238145698539175908311110514588163441903072996662542442177538281227077082446094882669097269641603333391015462936443441253120273993581427596478787954862974163091237729928683507528943593202896207149876910790817795904716864313256622391418369192593189367528160504637844484239915077991287266907047936830085818451127283566467937360089512202806497403142984410049836232866376845760155955647660917658128767766927396670988943077861889308037133949035648081506945672622980272198464971669676560370516046206219464721243211294967481768701214604433515310378163877930390573018244684707330767272426203399038226387643411834166859912802741173798128137114980929861435892245792563549099653228386999826636060673264627420794012657565939393018310619191555564133505526721838477622366941204616201527831252893077820375292853786415433288967613296939344052243532303808862391352496760120558097393917747241226210741606180656653733805786913655925636707068861365502899999393759834582496490093272393984339420299249127793310525784562051529771063026236342892859064543360448582060731022067918411957092793715615634337390815561065906124437635043344704884513831637314076572080860205789201580300749209413450027371311078431804665702099989398055816867639780730027393873257481298062377591389185788375151027514621215937396615640291792318086673758811046149784875055896136284567028684704493984849626398669392815392636021278658816266823584230598199342357981570326630910660240085893883099475108718096764126513484945708791026489133838309491666229495566893532692098897102315351238855610757756452128185700347764352222750870005354852383013309617363588439443372384967748984926509618325328078809666840837022375586162474218483487580160521819974398645574429915833269332999240178134029549293485717901538187621400150304346805575216407023322809940481642503669816171285770019441469587598359906818964579764241478676860596557505055610774998852684020331247121302643176236366788543632556732618337308092812404578499037905789535713918890188884624505845970314645371627364792917964647047836361775404700353713184024598489518615787539793036778018594269776933129966269590515124204602539959564123234912013223813519084235968349703568118317946757447081697099446023699556265897686335384237242761598860405838019556531503259580455443295751273498195832890535222501134604536331439419798070979040680719968351436142030013342001351074396307480773474388150534308301980280458886512678407885293464020973116275576832500916844424229379459191227974133410389906550580236243272473025500637896638368680964516663761303634726685300778584848193185014541141885477216008260514007048288348780438920457324850895284911056699542867429787815883040252533811674173748208317974114663977622628729151045348238618363230113749019654967395559458984300559363964813914388764542493501230828022761144165311563581500859373288538161663952325032027655319756716995187409545262179933822062897227391858252067333602816541296629683095127338835297955720826523736222879485609805622982408867074951100231980246092873724309486241595875610427308570052420927483852461187591853404071333099478459214916259360619341217652941419974015264318897476539509626193942934734761630423061349456159868314495844010226438751618743932472204187353069324829933011941319325816581089965224135347299369413430363819857973015863352548546705322047477978175362535204598936700064717235219217481732541539788405710194682652799037159954583806827924301837799378137432513525535219965389901974942912896267998788140848554824549783064501709431498575397447822397607326868457016534600925208643051708046951709539622257390936599317753724996055807171269498601588665503441498352403404333713815248106236098138790803152521406093803928654999798221330052428122350566922876641003754391613424970298706913978649234017296063385943583869703921126387021919220598687706743025652810906925665565995522804347007470273027191476364435383445360357096848747976106734178447386956160751786044654252721349596688862377743209404491163737182202374597902168730335862781302591479134188543796455797699801708904402484024690498406684050893406812780922494230017476694163850092431258400654175370025172415242639534581282587208286920702485312258902101834171883060633297293607104283854300073424655822898973027461334206603042129351585370901492963213769526288018611569573646312867660080551825884631968134209658907303419267741205803312571084001732195667174255820317948495242985678235924349905061314109053085137529253869595882269825498275072007028183180494605977360666183492693205221591821717040915091474104735285300313342230476104725097432680790242279914259755284199359767350502528351760302291614072717298297994844406241348668454909467640851361154322004108821262176814349354128245406691071734276619445944891038140575301056457550891343171833766281930071823376281538151213867870838942187919890107761248033777154839253961075037719833391536444298213621305155211231694181256988477448600627825371924363555240142424216316961490642214841548629235698776067120449737096344377139207201057533888668181370136068429044372497116809509650192697037833833101870485836391026059652481339776425709769030886394564433703325555152188672548555332919442146880698773967077683015914224748509059569525395226949674988693992065288983137864544332632566503963111619052249521029896172063004222218386473306340001139558885565939789257752647355672968596496183688623638799198737427649143814253158651915712858055200729717997477813855817614293017889050547604970641932573075609582419378178361459387408856969073458858239155205449237726043117450621620953653755140565120036223498727460252200928135626906278332583901382455306615883615767515942537362082708176821544146446693238119063598632300228663155607111831591139915320931150161126738504890367479013440461534908544334377041926811397734048692930227318180494501988349003471596216934231596575133415316699437190532679458272210897411749399433854440085956538034368552523266520288771180711777659697729525050456437461670969359033960827028994084432963872730466801177930383640041151049828852017356344283698015125961031645114282255405479147355486279076377709330393705322202388082964981583241289986869346832951322277610508999481912371578163840619223309215620414350453228424208382417934972631560511342849351132509557827122185267309054099745785045475489207922845835691596919151113014821387444842689831643572848142823194369865502034317372312259619172435778578590715092722384793237617982021930633826154683458873239981405990166396698532195836237900253527321435344551712021469980955161508998493602555794379389530920535702765642912354089856452392064467799008787046824236757398839271088818435917478358574423987768517538910076712799517257619511305692183861918996281400151054335645451260214124244269940208509271118483809283182936056619078740933296156037477673201258265991755424128563613652228258122495144643940538406340631302648379990872685846516731091239604263441029737111457071055366428600036410715786359197806575281805000301843576120091310950732401867564905085971354029861647303053660194883325605834218846186604044658704190849473158259754188353728879944325101178078460632245236657757884928438627748238415399933018661746417531921583199593488583593964227525004377140330674032141779870044222547695024760209757051433060198825610499708035711603119691700600622390309952445460770189960697988991290937573648356299086908829429044556930482212850099446195731666896031650074586763473885045756472934065864675480599880687703978061244410294913906093398253386480579238607820312663291227649098842674914480241931767981716430919436252193650253893933742974394601567517713652063878341013872857347879999828474809186426770622727493167621510110972667374757752405015479575995594026525648129893810101472885709740334280406225885512145490967845490450689103292328627992457616587423467933656642991676836737251514745729124228201992875002973175126654351247437294233057334781736276218332607929436477436473598781817277508986569781782017112643531467587147184621777147288857150282211808958233577370674896444126983091614042626359084742322997442217333953337671328934593042032084615706144359225841899725547927751025362666188308734800010583960020643614478606421690593863324686217637766417510437088474719396237850515402984474786572059672634434722453702793954648455270289609063725668555830318483579621448350621607408999220421685843295963181014313207373631174655273683132081942487499027083581952437704391144896370262370134145191584211379184297442623601490547646976997879715533227907520957683550614713994468218458832946449690344855796514037351600414785673681135529040445287666431879075469928985345122035363193706030858047098292434239697848792326669618061612738432500642785281112446025562425091109572679521167006133130259864923487577479493055331769315029761764463629580795810941631743403735456914808694520120233471591417581097408711518346104904973725472476924177560655467962436604364899513107637329486139762343078756471564845432572479840129270689731238654262021294082981056333387712534808444098961400381230392946152254335041382528296797845716140523726777818862062601513465178063806704732160897785009921104254695253983695478750748767737364464378323398853853081372461798046957857370499065178087016204372110722593286917277194898849306492026750968701715866743654625948337023581033378384368057022888784578973853048229680757260193345716382964458299997597351063529177135648522313030371159517566065796004565290690684450982293176273616704466888901951834181909289472193767564375354119442124080731242845122504398029221834547349961781252542090468164441937740824597429189911324888035487905176423264868810456101911252385818833732017261696745638945578198504182740866624659396514745058121414520951077054427587996180085933628032815971984062226850742932241440663542554065845208988823085292184222763730825442073516552716239572786066912835048435217202984426752545662361773007774497745360349867598347878185111893564532711459889275289470480535187769344169198368333528905566186493335130849608651148335669203869766409366242365558756194720100565810067950659300986826595324076131489911747307322364116416259956302408395506581861492609603758566119464119256863112106781514410308737405135274781009150526839529909727531958302829841306479343856477660339871094177588272399452313486152704575143028097555707343403803805182487073043156796363436751508965066360071967918817278633617668052248883543761579025728177759957758432378239002358399925499184400863527863579967169182238875497928691198370900799158075587711400788603127264712343184649669080443543537706544446402521863545946211553749231982985225949577997270739833853525140375584152994837188548827558412139807098327133029466167154955351658684051597826890832242020727663792653215389315427428092089272736015338964431924778448014825525200086203704384100795918120612989054902236354680678899223020907936377052085767067207101538308290052314226912699481402684828085489942425639270054745314100208614805492949068753863385655648051941300628641578428924584038850917464731229889849126722419729530433303689744067898197279290701363278986556515061956280269504687661314324628628552766354115921907767264790814489699000986371271668104570868774617316803984940379175025977773438459311534592867978262310095709754019546911925386789626803162951012233054883660429443077095455539246868095851016381882035553876630894843282672134597739128884652162001307203576746794584502829653303860923601953474106818996370813170375707327628267592065089646817740067071784466052939972520123629239008567722809628682684714684487824858238825233140772971480302278686326986776779488361256698934123881191525583316560731075548234945870029358984565727873585015640789445283701152022002503680160346167299785162110009853909165577346675363810855008512851490188316566824401711373209104548337475593521124787424646062260609101886466975437331627532735783804493964960995209380778084407360550937678546596970014843726806114064412722835519195506054197217776388497672911547924625150938023301526406957919972631235381775740949029650855203466070311991853324043153122791007941585209011304891145062860426012977389890689334499069431872635515925512042324851521727528822247850726388132956434467260541650391885976035829824572174755964301841454038929396368094638415836113027806953422450705579426717541515130942008599363786331842447149864748949624550251918960552886456789572114809121397433710937754956579694966855720794881672656216178897499534255255862730429832153756228979602876742737404501422865452378993873243389655977950163555761953170328327853789741057971166624950085918118672789414837878113990833334076409843240711593085861315033719110975867103695973822214238780050151074901022491913400053998353315210389969441088157848353646582409915799727339818333114055399748675351449325645539836969705939559591273775323399175801391494030611271856301918147962331733298275226910283475845359483650072665417231111921427870532678005583903838144834531662013361768932702146929049104570881070847593443510471717976922610976221048140491371694436886607127668559939762734840813283775298997804135035839148880944788447150776721298018817210388692063097621612165495794526932921532092079219804309572960319543025763952033084637194215284057117968464464780003193840800796865914666546467911369160909908264500121141876761988516597453995046738256528539368454815503753213851026906787084162449701039449491501033603478488863011763129487729006182871384736245572556910482376867069874389083280559689824391102830779923576660561557670661832049394739037786551946029306587209356865752091368491479805913492104187516498030247095651499749681606512195649534905370824470005526976405472951961098429523945947199352180203678663810922530270430435733998638051637615844958008393339678840421194158333554732314670617808349867702117943772215288978438016622317809151441513138491630098336734481447462425428573856959226865927192459159515956344289243662449329304674142742089276095592954408171252823528817800988485824194081941336496825483205994622771218568376273279087323861138884887248739826424312716713852188167324860703225929455115991891059309032601198252956345364921663381231039979532339428831769361196434402027713619930306057266985373283404611840813555430427420931973097515305697590974887829040840552373956813104404727161756458677681831323514558055133783149011196154623287218804557599249301885687211349683204515558911670385269314816958596076081388082665137215944671605120570821849952108583459421699413340370109137232587274860404745808856168202878627749123623587537524929754477287408322005767755954242984691167700361249052101766534084339662313805334532760185557434410077959686658268086181073975468939123709100257384211652596340574003877267198662793693197056111895358095501333912008222683411685432883861861473982685773012315946847639950803890914652263168295875973301536325607516217257352067965132995587913068199980583345338663098345413878931733072977348555620899634489275858272132797238370024560903233417591281827434178610375849016598151452786624787681278626790878557521917210970328860060313518627103405863364907938136146015763584191203084581454462179167483657296441549517474963615552331541287982170048629290907332466463174545562091470182585660520525236022299228678322468041614788577517997123019729394777899241878418896672114552916577972170616565407818923041943612463359166252165369878276934326685676138205690242034421384279547800037321804820791376294221887839888008663238436840560149187138055492543904702161193545967054513536065116628009813595326764540674596136047945253894279180842053543216776545946781775274401101513594157095234883294593728240614969666758891433823127907408762587484602746899125282315248510492046568100667763183041450749675248334441241754763991168383745345483261080937184731776420129996036269030975109472060085461668812422570995999891062109737253576475698203107371537459637217751717753184672121646354954885562014146697895523188366571309342258948394037391879683231465164377877918948493818511624822056917521925475631479414616748068415459251255290740281974210020765909621880571322871011279329761974995193728760357988914599590552175406305304440662744606435984618308276667739558528796245065917730014458630343537428465487237791311105491471564405339263117005657017579992511097413039791563846820492384660361124762312501367889365412944709630006373147784981291020872667174075416239756138596921327758670918379085120244141121108969858759166461676433101600023396966053625403580489666771976616798282081312129910090806473583496757013246905414313176819076906734689097833644662604240516525931534549003804020133450281930254936191282032629598816670140789174610167158811674334189918111209627213874723580450428443828511657829868135360742451092676754305247265604454817738071853957262850688557242718823128589283697809257618953514446015554058222567542719641459388149385774348810951943827074740401864187662650657777674951960741423662684300727499133543105362797252764506837639877096547956979733410492073685551470040064525072635802128443226015949722958896828820511067393584101645641028914779042390697218033852557991638151998331892713598554930144426566106358336662043834234486072491084089965229478252361723973056589351708295948214395661376673264206461936619750096352213460217682115566025710398896914917156976109885237668624092767345879997582048188885180660760060817940026036962292676797388686289240716063006244687865354048974438616498744940909301193506968103624203296845084423038828859013979220773919435584784355785287055286160751657113500707331251181735353277633217758556788552598817276921121716776735271179760389296762262824383638428435790106255780001829356806739536820625605519533032795381505323602138111672057487768007445221782092546914710447807977789844684484392559903398446202428265230300372015094798111128731862874799048158723835851828490586233552265921640680477372484855138227062066011669430567301309612913264784297524657973979919726598146982141757154354892780098721290204937334987438519530035293398377759818638775060517569834940812516613563065551392073980344162412705238585857480998408187236897760020294783209266180534219734440620480595715765511366601372532896394413688299816530170305726952489029406161483176572527427617114576230998436891312651884011461247204546559267697249868377337446143104802258004299583495888317665465451093158777686655428875865511751496902814095924940032839472334829358819073511979074076922630624803711314724770575998342133653424151879000719404420483272569598810629099815713154556640623158623390040832016727248303572261219413172175541497933042242863340963445855628888394557489335826223902510187228442697167431004076229995465003723519573100245649915476416471857000194533226094340250862530892460765321143325705683638145563718769952283643492837894203440365579182141445642764412791408146222277634358870777272193788095876415657752912740259948869903188970511636912626230875881078426974677166645694648199029868961605994207249028634955255316419012893111479274615827432022345141036005613078454465915630837048478485800766482287880978330521706265477192231582035675831982744423244842014209202606826816956800024703822921679715728618858632228666959544395822855749629426363886451051876073001354722305683180895703890310051654757324505122741140740443518202092922765019355997429460754091031171534754658143484877267440618107081395554467002954068379326368310504311299387364472501376881621321832071999504981092503358118350165070128244582891950644624393944164465646496664130207360474444525361725247312924574990545089610295452164966775496802349235230367369621729488368328634337370023989901126734241519589449082070965314050175396633042885358597593404060067161066754194534276438619102968523365834542317781774928499585474319914876477798217670584615187222947406320276254280925740194470441508359257638014158945585350677089288468095622612363039197773123667939747048687769567843386670527027302131953005664319300143538139164652853679104495356564777495310971444265027403867596290521075959299747343498205929320020536168087614757661821312361927850460833732251111308004763761383589777876571022392341201720463436452520189639124903760218771082112481386240051832196013461906010493770759121886642784628065453635731978588139534458511034970704640238113142441503469613982070195581547388973826669031385996572893588883358297882825985811727078307116697312558457666141146166578921509248223158377005605380540589486985455769821457993491768376252785033062297811613264181176856788127748983958249558565504837610313677749246109421301197535233548522666338078030818708813172114399817418395430970744692762875151422085892492487907157452552794666410754291305220788204828093629581932034725205103529133482548064298565554682677372848971794559447015893657708860241013581833828238591601061336265843057401733742545676951667351940997133593778021558032104335085005706889090135154752422178419833028309217136789921132142078298867121606656956636445260134355982544758959822431494494991183809568202605500373687099335468041098604870369507879938647206897670149089254936596773160772942804905918955691195162559231294985394637144586373015906643858981188881485198718657513397146780705328441735554101854612216304738198538651382553913495302381439897376337823637102434894869723999532451414202268392550705649513538879274879394159743863913771645503341591365319927732101918460121350245308878802061250668660413136201409334349221992742939689737938916307795809348262226259785980415841423057696558966835124745184021105860170531192883640931175966259940477830721019661341951768181381599180720428598544958433554925688725477552479694257532805163266525440196574220994009876023957101518902574231332726237620294490973154249215752139393754060724472806293477700766251440020919518177266992484157713401721388209705073249771288823120284418898371918093325504786979090827890298540472055590205091847996656140602326426584188460453606967927055984052673919955636340935092523389268609446842897679528521043348992021152004993567334735199880947868208228425549322610053875134848892094544695293084584293480476257338439984107468182827582103294830054371194894485106713662072121703390148610002989050815146095313659661638212877475526122942927861509741715425454680848380134013396938398248885003079850568938322931006874908444370155588918919014964037407357511898150780994777497155464892596513376541556069491077104654733877291497946839159759722681991239947343522087057313182483632416088665697801596583574130221065618772909547259787807605667640905050941744086358662773770304437399981377184242292184459228667611619855593574501381706575929095016213485125056292082098662461574704589890988063473649353780015476422872859606969501035932496530830103592809131365902591639166093174491610231825485420696610757290345376936551810516665264051950577929289104950331795430903487032399092329060569924055678179787977147111064744536235657436371584796398735354532458070337475282036459603925336102326673615476673135069874686545080212972727522937178491567223949362447319819742604665305550102419231441481876405785619737685825454199279975912055730783114515075123859691649186745018622001937515071977111000327741779584449605132475478440831603587404707523313001626022582572438741647587182383294657890589797756592098467121883505631191280995875931664017569218733465126631896875103434730071364205803308558157004010475791133554369231382362989492843253717918452233153419934649533840837021412094682515740513073130569403904797300097513040237306201187274974134527190544914596780381390892252247777767855730129147967437451851234079246941891123325208883729881322146556685941677557484959650899061219698453129173318651273804896120875847947189006623570099429152098312315930326239094232231774231078807221214469223280850455310532756547517618339428233799283922866228948780737070901743483061265745626246098377947676175983467835065698335581380591298282232952399497617911833589131032576090903426975449057656814231068716358151473744405448039815853346195849667555279074184153014867780717737445595189001236540054464291958862861765063056262168343217541445015048392387606448980793196825682910052022581968970572686483751575658928234439319903845164502338107483383600308661994229548666463346024623120243952328218529819318319013233919997452670255726059863963080979295916249415738476717746093256042507650300462466739024507373772205300659816457616661718804088011502652779707674516878729364694825741669846562453071477863028122579830033610921884046254342432631956556927055355627769291430306354784755876371667653963457778838119569561544097992350258396428783769524641461451049551173083815119268322104271522450165026626346160612254481330580272661563743699115087957362802617193429983853814763892503204552129850900844406672558155305026515802947831887546999565009774663530959933570681470225784417677767548917900955678918678402650298520527815974911259541896470824272024251219945777011208188606574916071726946113794010517919790543996446551034781393543892855491312367234610337729126675191927613791753802873905054496395261888924496830148734717285805970375492075366949286693337073457767411557950188114704353781567662295628401031513365354761438714935222132135815149660166611629197866890919579091973642380430671846439901843870687092767613942073329158048282995679476631505119530299232711711061465840282820892019628975283753224071988903655163015434056803876922811997879337471090345902428325288071607413790880065520858590857526536928578105260525025897963500814186352181201899315295344183294779938718026157065750520300440111491675164929100343859849141165977512840334894938463297791815681402598817953678048607522436498770954753103803209257367360144713777872759604662911887126145650771512772508691044153153896504956761530571563801668103396367511572907810322575215717184698680425269778797935503570900135685375837953034577908263595251483144620507601368935356140973256274939451490133559169073450859597031375001157458680465125445613427641435694319009382588080426159663727333025161786332977570522082395573214525920128144188372933009276939434029111844966170799153537032905317389436700336598985765686020800036991888886933764712082894179071251712616738004323417691714305924758504359943546143277313302674322885134306237003151972940438798573830329332401111546139431848472670948640662779262605682190648875263793204776628980034392631398671384783547726305986237857997404442038309213191365011794894957251358070337655333440174330584624784077609110278115837285855566624329378523527501547372247588517348225081642702685157539234947438767151563794499986379472401137917215551718043202994553457069051904678276365431082503636858749530049229503827651823579734924621344626487872720624409268827962302626957249514066011426646890591404022147694186235272437870643661589672921221513799196610807547111976513184163979041013927685877617599995435424140647977578665026480398144639344328515500392302262599626830084883844655534175301645735804117502406287477696339241565610882085084902335332171523829180636090542131405625144771812193337865828744375714538984410629549949094832826350140675767205199961467702249125883096901538399629667758073292169764250159449484364195774470204130958766342833962137119217991852905588990425191634164521963867597632117420513859759521946526270233898429429913411694768890368130166154769119417094114063775842896455118087541362735020542803489966632543940261059913396133864741787405537654800570134202329041649585197408820579063272919182271802170044861553711586336922098608394533812810350998990518954513412364798059866732437442841478154893182113537109614993485566703072253159079944678138285459682177383627209516307212121500271992218846084527569232925199052889331640631433325710396145256804760195822081271556223373030159697744729364935076935079765223587004734075371306186583653787730102080529861792307177585958594720148918739559975032043016539476735418385104250302460741358158808904885163854885899883038644444596945787534371954187029754771922490272598293301327578252204999897949767165780609214420347078374580878398912807211933915222723681300387533217607632783375570701968695183573320993597718031740924261068198283797986717273984875902986950026175190856919580709647785760654260651523390046040591464391997000883135614712247682088064431802221672585493325892381013374872838899080580509043873352529338926324652100845070217893782622048953333856708575080923510176247442131055440636503983549785664197687087936422243399825855248004923053614405003930654563731693875184254298713656776247655597609762510758006062863854199702568202280937740956555356037305832552224408111850991574227959196757944733314075295026620243888647616767646390375568560491968270626915972911256489606905481738952165809883973731326957209973976297402775088973928447431353710721264927247661219568448077452957369074630963092730554411861413837086276261548276144555440232322536945917188529386715924897296594721134725283444409922662237730726970731026507715115034773307045995522128932606641879622708378699131897151720657798531762425077969764873344929493086784660819191409635474731642702858852586653886860707691350368252955625485070067728016909532546341078820689022879009096078862735066935637547606623955799394114380132122221506744836759644354511026619575211685673574347291022504895518790369198115374841879169101856293521553281961748076527306651852804544337586913006140055438811324519902366972872594038139511255734075438364341754429492150605961455487314921261517374180060187924525025963347662420726567111779494183197631298962746123965796281706173308651278192189015999731795929850737881232460336719022509199040239911633133491400490347791409284076721481852387341663627075857322117371894958337891355099803750002036551471210895243576661624691993994926706574741366540153273778774530083224982101634348624036285016693142374233255200421349055862326692948336942208463432626424601987205960024606903539517624303193372129876707776514275029650802191332686250046942597295632336114429118465810250519270679583395505832297631046584173527428024253513340795454917501963750902063660215634269843094846002260734791322715988048448609392659973737004679504453815573480587871709118482599911054695350062530906619667065152227661179405087312687949709235646288660821987360804013373587565597742776827569182477839092961503202229618619481643698147509749054747881072095661911379419734766817379614015895406985089357508083777521785626940062410908454967011611430103234271459348707745287900828859893362420176668127232482465980453068189752220041039182277244279333403860624280224060512692586451296090740667950590424687653063344865988316966240073814570399413191964253626927220131902945310477141828277734998154710385601989091543721750545855272057546452294482582680402631056739352784197422043577340320136135486199506470899325486778345547541437858195257335161880775144366993779573764385771923161225716029289831898979376555678334317768847133874651936481919842581366913021060063877448023198593632531367962279170855177205399214369134134761598634615517747164558146597021185843618461248368944846826254116175008295908010666089842136622414882940091526750419249127921989369873133805668110313986269306759812418130671112700756289518266757461549312394271509041291196703342649592690536106341692717504462824311650420052778341442820156324255652446017555170103972786208696106293676043667132819791467040910696397356344073138408671671444073181442702845452682433814151829237897095844354274379615464589522455015098776208999179469408393466479974086218304513465121040770931293784914430369919422843916328008159864468390358566199709045445994567838883710458247966261889584953287369351360644224149558282614322465601506317175571415821952242019410808400145774062396512704192639166548049438193003127033897990881285297863968217924106116853208613935062259704156012571750593288465459478600027964006240906803476247655080734736498196933140702705881100651498418940215673981273028521953878782528399011829137044896176545906446382749573868021854320889012409214966683734242812739242497686978720447770843620251654587441156001531312559297028448419055755023767480690284050477086068102874914856848763249503630119397023536571577276407774647700859094241779553077408110456889816664779338712916249118035076953770877479990113092106399990718106322324124967285339872876777033743956374484168445444145269547673785920912770326570986183614600334461192917401677863913787417310021428033605963194305601975334158145819623106980202485222851716692709615558647886215520224957413052971554772765326832630124159459956751707184178360950952917912341045095690153506571203238778005668723551730814449797653632097089813599039196436065100936627480467083092401059522753003862105081477748215715679346296157722165848169373923849568589162753645284995676184466697730043393658670493876074176101675854983623209325804976721702906829278860519363968563573304664363642113758348876079178943658988413522966621297683714989786305495619436001604020701497565587546148261140535420942155020782294180041401014349669946090779207867969068805278169455773876048330652379165476369335105865346205975613168502327368291958003411300446958364377866919512721494791771890024465021375150971052616052260476873551345800013854746030502193130491826422814836595453331722091208861578160377394879255182101477252767696653551228289794934340412677789964305320422173845555282201405913472501179903457548714323435168963011103519686748596731704894720363904077519375816963935766777803080893529304518791825760773456253880624781833909756285172089328746961544875687498598091246315587478607812272731664960432297049396678028876403232219115699806727114028631845715448483163530698287390880554989751235560962663076477640251580077643883589854586726404388279513413835115680192689111699300189019836579054071812404877050469161622285289266167173394699707693748973038390643632564275592668064819131743783413065195300936224189342620030895466298323243619865050772642777413809407058243989143252729664371620263403218371243189894650249417743903832818505655431807989486006608696009410883237843111528965055194680051016336673107806495152862519608070296680541658957263454724686465547524943177087354407819519745029182031462297766721827984361135183349370304349788654577219981511447726689882005047363323410329357514189092427788684758677460521194514111587736285027149825532656937688288663741160339372644678010699849356477958317317596929116738413393501537425150907550325443414236535310495411433022438968409490846150299483378432507210536141069109262868225912489117693114908529501992023080924529838258279174997984420330797414069277694904466050344219386362413571050810043568016787831682531475337970710577480513154669405492706200553534156226617174684502687915235647172820590296378702320049775769264704028990995412624414734261893517260981157929368743234912973986193081042774181113309523379804473552275339704098869053273146898750925704044439930100191736261332201728267704738040575924466276639030589829768660964200926221970329198060388792677961828340616479113183493326976364041427275883941728134666160606702911621780599809750424849032242642449445041645093409314143376829952703867432779207851780357106950333358492135100099719126629885286186405736921991155845786874850422715166717603790178593571611915512616115414520312658774046448182779090095876198411907938099850215898228174436717460322686907369227204386656404507218283812047703299165197926585011310394846009620755281064627557115378827508313245439156582637546273556122703436084379711354842487353761299727584401935119933780045289536931392799025948765997638724779030594524989313295619482698115253918737987231527032099846612738590861359772470129201778553064243994959041133683638201568814725238576487307681702848265139991526219089387083955935941274085969227198635878641725220252378525722573084461297758275436251151945542379546910335693451247107995806200547366367743109547668792268288897340872613705750236009424498729061849618540939930157444751654384309971064877810208598713397490899621491692066225865623428149863213404783614803217342426061296203415421356838509811411464258230778524480017668935740904155622359631737923768978821490916088878360353464660637925548560902744847791841439505395236478249481540243232730021973915943212523776627312796551456696529177219628747136634254167201334259118032532778601544717146871657480761936974426506206822246099620631962895156314737181059095452342075191517996424765735779227568973060390187552283489335028847976914588840504555264298698118182867170361949257335053642215504535550222406457839999312389305308485623726830016465323502850702060125093714574175750629358100393217483466169730453312944479225042170260922580858899260111004449474542523358042591639898548646909225544652155762270771461894760193398001313195431789497492601507426022341231603397089431986611107923061314481172234837864615304324213754101858362286698146412488901026200257850788609403951973211699941249535890060914296417925545059293154571333546829472645257866028742875540776397019691811631511500971322426263292645709312095550175703472077117156853702728948248473179372403219128694385680412937764676587292158925349556375175737588931684183887328866576574996444930044130462704807166192728823973503189563701449487905236654937548560595051846234217327737171937080332831919829864382484245121188934466089508543128631334213816712196669909584629752197536548730141742697696945715536734104089510155674282597761828819574080733979636815906985346234185260093829363868503221049388728736253896392495751351058242402305283886408968430295291733093598970393913007848053590461437621177249058998858500715777954027218833871056394550472174998690980420403719663768111230110191467206284820104276598028083371304489964268296215914713095374106108208391069017420099017079917905731651679318007003594652383616425506729377399406771592842263869094545323420986792956585480003118406495389865283685805523398050060132610702084062045839328176798747387504611458128106728547758375464153979554729656145526712767855946861136798102970468512673956129598465959328248097248528933740630845850124176249953500032453956380115286058491799562466530954181512203711176737670122133384458091880298369363953146874191241057176818462724789601488477935073501202554185060464308578718893906658532200665468762431594366451797162742993853590277942796714082179926341731390466076442920448740952971404652697808417632058386459463776266957463308919584106349777223230906992005836073634668303162624109446455498785389600483844604714113017340808354910100709741929845437976150319494897935994438437275215596359923220454162298399660199221886762889506129764941540677475013285721521016169095032715791224773122516076462598036354093298715215952716362445455709962174257319335727105140650272776011746427168883162611017528011733189750869388663002087171629977514354643836502332410284804718019725103922806420316279470540261346648069931391164013058507306248406481705207248075659915403742079779362772387732064139319144106375435031357966915718400646311888660427059438363719559049564570099282744410621707776245773038696632020131653881578878287074293746549191909900759506076209599406803289332131515730549927608109176915195156244926059938782568282249635947595575391874240776783926283865825437496484010949464722179165638943484815155661224962508296455999771151314847743970605901254963906081145259641905786632858190425689125537281861767484050275815424056654114590373026372806709627553040175706180320033107330488320242428665785360697055342938707035644894127005465185949366742171649735292345232039489845345547048662621031199521195021721767026176551636845093606318406692225585542691823604331265208641977994567878212003511144565371008146915607516544188555769649225766677070130730009794994291702660436762468057044337889575330791612706814003965170051658600386371252225449059787671553415844998698179908755728540907138869876046657590273368959349741055830263436695885992212440829693141310071652018032601334570034942954784471064073880995711499764961202140682896964193195927332227120934199368246737423403691650082409882280390489756729068457502458328301294945158501313972569782859239155085693763341311723093223151412182427154771099041349003587383402252012032442882977579073702465640950370041201178669576892974094536350850060333297876449345115217054378699548980715330380747658413855446248441674426460133386565668451196582364597360457539928148043416279014447422387811022797224719684293274441514653896012579297619757381150458846562204944573947111741641809213458881883129189193126582324111500275134294207055132686116496001896464899281436537345380144332621807530749937741563415015754024506322529008294158946252711240129127094025717261096832128600496952115920608436268534354245398289124466973217275130372559064297964948121532122488004852913798153213675970392383648652986770866237645036682060499825078476551572140401913512594977816181142823838959802784005345606154031434597619850719664631858184114868488832791668807556565511904366624915047073153179016636195162085928791267664183189620195302924874000600054076680342522259533854775224940328168475292602076387460996903666954518346045661806756376813805059120879111154243109866305558439203115673463504902857866751208956086683849375377048921376126340184686720483104869993325497176349474712014780948413595588790914289206312111527997079167561625893047026398889359079578202271683935052607657227940887615859104664130292220016984596067076299812596770496654716826018017045197293589008966522773229001433557795322904600820969109740448504273103329465975302854078038923418049261807229813917049640898728388379103826109008831907427633935302174058959119312871029724849026180451207766822679213915921474874062350914089022101341295052475091116880261574752054851963767331832191840054433561598214052979676413259357872116180674193850892198445169475158543363835831673028064121770683429577651905640056104541768276545784844930976025765423700167833120233176977618930195055020736625834289628088583265397969758216720336636741846246744755126390228161508484428614077388910599730228939751666311130605327087998983238215996018677191488626558118223108931578733355502906045378447909386648023628436520716456047370576418666694781898788275672364313469746392984505517910529438063057092584111968918518982426369714128643727666852021159865101200445271447751202330407866389125242239427412965768045526965157089664357836322595116593966315609098914725204099915115797307646185360660661632242267777867903176491745884988296822397755700112630907784571826461487396900377511762527470031037612833758413864341727118492937931698190720793556001086958840839212085844910593534709634467666039182198521341265593807396274690056932523867953075457642055578009946182083100316185091909909918252159162414718388490215539194971421549412398371207075969089669462323981720386066644396315384421946938612006552670344035455773230440239539108475877340701237707832448843707365133073953123653144536911226367476956905724276392162825493360725187266511541736847634153157540620758830454851998293380011124214453204054903511450930975729629226929528291950799303343501628948692517420037469109769789520542203056502754904737544615000266463035783926928643103671905517786946676542832381156581676722588210019130072763184282349241687187177001852375847044084843651431036425961826324107005552341403022999655388202469782974312545472467333317498641245640134632462107675912127283831439484778073764196683821735611936619594497752694322862613524660611090287372675459818504747451576228935411965872222044093809266252768085186897866807377505049532296075317976715624177391857007672291190846761157712436528145070043295065349796596151250068544618679290421900121979850076893545104603818600198991698449849390876555171648801823091643054992741729324166807096087491794421142949026940958939504226993835461060693023946475773314152260563220196423729448660811776880136726260011900351009255612003074607182424502183375532603042732686528285498787459488396962644925519026890678242636113661867551566980128562158636952894762093300696611188349144059247933614018412291302624533295296692231135919737441275357618540691872574263032831958888419135197544153446916319392838338372055927793756155373294747208262824984116861607121647666136249286636032496845610988751372282279162125330846766198612486386622145809836998074897689708174903618588849845169195641596530596174007287249541906225566431470000287877536819159745199199933537114408412187467148862287720247832685223682763682282945798753986236260197829851792290024914651599439968410579370552177569586344035859557866324771393628708994693609408019186375977539553906229260758835033300866874078345572835702977440096678320764132008493335440803436190443477402779323998990602271324588766396360679501277958829200763538946118926958521425447387487544048888673504633409261034501620549967079662566011084125137255217146567620097303015925837014453654628073933305910564582168957186044240469798308741525371568444909901796705099612653059090309512921857170534691992899947569706926232092992153005925134928413349883351489312919869865827277084120876547523997475139094480804708543824457106829689921394991533328677076335377027734752076273009680481987103163163293344373264630148774353713022419920469341654779510690273194523455430394959999262146912729036141089115514190402312925418245033982584892877215465926440376971959575812526250772881728718723885253380574747762511131125889658768311407852263311508336526792692410608890065074092357597875431438276863612100328035580215842996072797857443486383320682960329111257160201217825781157665108050370099243432214186206501043551269122768200682455993041784467287603493153729673502780211517387852121252742896728600179240965421130410402242465924609908466212760693812595845545121111843858635888398454902489413827814426968801294757948552128697380737120428522412732159339216151637668730498229327079023270825303960949111329106687990745782910393058961620454080095718749837336052078715819978692214762307423442360079164220840272707650633417966679693501426550718901014378893384391657465190778372121771390568591947857041698480199099563376501567502766479015991644391607186534161352688381688545460486611288593209592527172391455456441409639919297496515503918339373701341522825623683468372051080921238542295106928294888617220092404885454484294254682242883267300279395232491800980984981347240152421654615023284980197629906756393758863881862091255755895832635567144597622653062097052601318802132102712924570777274825704409071244994316636446775504508256642240120976577765836171647809150270045724114448507918583525969915839006599224571448530915416954063801534226835533969792156217855232378562203821574440118755125183155295297606333208749739897711154350147564875676553429013881657579380165239097571539066719372180053049088717135271988743669507583821283567538203054530382383218360196353235073549288603070485003310032622409479626374160366590487987183219996819424657779223744057639739021193462625766267597525982847875747754657353630721144635840052434179706428061194491986078239031505380458699245030905528366248941107229407050962435329153264776728001928393603111207546584726552559591401793540461954019448459690733458217388692540524491996044546642595656735995691939939447323512081901828684494308604008786435546252531850925770643888674517177191312376321906499736173371117489271306553563145261376261127586439667101121824451654310562232408486604321842631944044807400619822991918174358031756243300238170047308171341011221900694811366446907160507710381148583408799728409458191418811966868930480481127413521892366309179281383785804040246920608647350288801398234137091026146133492253851130193638533875848382739988116688978386680802600894707249277431015047950397229541315912313787067897488948817842099761789665843230589072869181106040822168540077382175542962111738722382334985611107255834867049498768390316827626244782094116291631786852069098956037077303193276986890021833634226871731904817347678055370650915915886168118499084464637071532697662299207843741527517469459796869668574072155852846515606464252582716525691196407697310612703038497728041153796177536165845685767890602560025879863874062881851293145013259880527216488407290646045827249574619939223130601422520526821215059085740293343106040957426027535032667624481582060995146799666474694820580491468992708668261398981165473984215092350055955396117188646366778620144759551080438143483631865303744946273144204040477694768869804743603616355805735787152528941744552388671765276279340798489215497490575846646248286392992026451548983703017050332972725621519087927364856152427225792083551368422794152711261326618217911035561523244941224632640296970122344447529126043371521319018792123500954377748424129947814673450616368284152807982543190062571655968659306470204398317218671048801750239328637724575369342668124038319931293358669325945621207132763316854915202441326524245269603264594136705958007262104015297322306517660647258877401993505152634351903658183397983237322493938609441166813872444296811925117696575244584231397332478239077716971117667138482745245235355414781158050480280870291912550707444156000460817972651134576196118047871490684888811357004149499645003193319917487761973244584491628961244291677031934737658552285940214297000855383874400006036231118650019065220226563985188134152102345994661462794862527865046801624314001707744541100943885557036232336621488061067116942778374430537654524045337715101358419909067296191056920099772635537853562496255601740001451188946233732117634000569655649174519169385654896763466657162297783712104176814364299492456090209040544369877008999936785303468588241595308277802151378356391264796201695947147340889672180201364871166631656165030487002536515561150082722494823184837896810324446164604397761782036396608493920789583239030640473608617130179528938651490234205480594908119178739225973810658063512445045087138080263930444868069936772369801922546589017793027018833584042930118856096100527046663247387836949279786511731752398599548947869292114513787516259447513336241291931838145513509969495254044452027194052755323967819895333746987270288326951853581906097075499446588593825251441361282423420623328490710593221226040323432338654539943024647951300511591730992387877292665325224854002769518759857342427536287813270380417147555710022937863618251884895145215215507255169497013137886185513636289219152274165430975970299622652011678351168546122710494691190675650074438272956622756003924687175587769726346561874252071975864070260764366663347794675623134746425806607629920255828060914221947294886287101879986529723583310948830900479432663950011975086600664341322791736789846855721336865254764649198556852191633707110565987664598489681687358229038800418372832095698196601034623339753949071964033057527320027720720788695228300954088549610075829329704412596840975838826270416078883032673523317896678697366157103485841033318594818276487431157718901467513589623020862060387547285535095496273642287876308265988153926956725808974182433060468775609506202891253707145678534040239432480538438779134252264054125399843650887727564526451652498688626928744493271828051279167730974359901154440443114717738296578474268242322212318344706625550424889199253856255886384769556732929672142797528142320936657541228402434681558099176683979319370225217503125037501060296240179681051599901960296947353638058966464757362489254212025634404036123396253501645450907857345357997479269705337139871544665236931852993945549610122469269837204519178841531958332552776779937802917328035473884277677939437522848493197814289034272333330029922489478958617258824325313146434307707290641021437817108538204350546897387767555364487432105377957844740747951980494033481914867804932206438110144008109807951401361106737764308772077452621597427716741610334272614402533566585651015087040462340056087616079764805592724430575284283884634472345157060780905310367831161526394442472622436888485732878723994283514524649959712577852804174067603746196372338336530693509703244974070850006802496474863426942984455481401844538123418718903595996624255261045903302252563527480888798477037716385866147743944298904308881523533296480056129138784710098521039250564046399756694671075880917252128539136920572591580708339936597502064223220086293845195103261673066714169021992762975154293934274906197556000233567788619017548688369284934690411723419404464147548517823808480078354896493371229011251813458510207886318297799995201357716001928847455022568165660859564304627902942539824061806357717828014322937528755985567084053802456910150272922610355989784626256862311143383630461546841613681665773763042807711120613134465641609361881204846649740249735890055071375591064384343166850648918903771824619156140616978167819211162371710951971070389261462227231777991850853332378633490193118773670423590577980448149727599508267049891969943187889250053931988484817114008683818067005466944857794945231519538699447545515049651755296478465347324388190385414308343518835858777769696953525075625312248145790848897838597531737022974030842413939157809045430149597928660751573573391058198175689205944934810948643623662263166992629114328201295190714139077081926772429211086165839775546824042805405320667933530923377199998177298523827584968955221371146328783582007580176813542516219247084162621933456020311088946864120398909786513150815560009274004377245641149817923342354906470802549056487387986622583377546376523605854321783066215107642057642848437021638673290884824825625455491112256543024688870373532343436222997248074697210008835434562166361234989321682757532141508787711229408829908355743188315243482922536239410830596784960846543309731976619715802499756560260747637737213925666016234010724771433210699589304641129526321702935539222473957662473241937709294402619822757480575583444995093405657239135233628811555784111912976455908523888133338624707418973718687781323919905751927953625671632791660220916498552699649157554112857585405141303354627828760121600062305720371705801507406900089763523946715859560854803238113428843197437880134516623044966914507326028833605260982884670111544963183402264857737327912435298037463666827018656069391624943960002837774724948538878357951170408582182674049290388768723682201212865423390482124497915493165135765068497759304840717482896898849419360901791934006916581437959706311652129814284781297508172827355869534967186220920408796640115050672979643038980808076203114498202946209534419563183094523813774839682056434579530350307312903296096737700650688172644206194258434288805127135649864910064924094054598902406358298059376924015358168470261179455433517952882719768442916759072644997518970969242598514259992681241850523556473708448215316603151918128251258959944876742378246341512208671943100531967271037322325073139728226734012494786206535356750921857367675516042251585514860759944648415599491981988845148992039047414701133892072072428284563571741771947948717056286752156899556281405817973447179865502313099708067762517482366005571188830701014054407083087300249133587640997477920088711552390151844261386375818401617223858935524139206199369451352909589807547815765667435869209221091854202707511431324719654835284019217921649691461532880415858204452344565063202674597444917915642323887044701188411214187535974208311777735143487919392376543498346042083542389008300025258053099583622481210304835159614555914814623262964063230844674424449738458983528975038846852280635861074952234624405584218237269373580612013331027333529712702898417517999580709149420005188182189597204503018104728212242662482856476543405815940227285239392397795263287691260111421075098502682598767591323748098581325319715931128266465879001731859219765224105290849659643346060728812439974109480432107415988559557749267422079274266719165841429142261114844212902057807502007054820165614972106364923316779297864469654313403358191591538347740631692957754032495300394666078946848770119828733420046574938112176934891142382299687765327385086690827540868741669199032778334487937730173420750374521663820813072407252010966758771570919617601687002359918768412921801146026228261341544993419607641219320769946880698631390041514832092755770003788904011629809382348039172288734944427554541826847863686490465341099526107702259559603313989872876391413012627350196847914654654581149007895335137671227091137257269485607604815408885384421898288889920577873251472409608800690120469574779370834526083239332848366589033283735294507755440109038142657707834209700114271989010720044627363917866213926192483992871180448918922025551266625380687664307061794954142460742452134144113400932122734067584406797093542128502427996673454093453902141104317361886449915842667883008182986839169326096453189502479567172082986892982330525443986551540312449844950800268262214213290276109304159603537006099501904230292842243824236220622393018687308625432827088304598491805876783881173341934215491601735228164981683430326499336819255199394594727194941933659625050113936453228354189834047534519519969997218712397858545888141301602203642289316067698884917238207001287902205520174544631427432594409677221930548271863990576867060502694347289844277295916366088095114942634760395439459938283227973847813335797435784188987682723641139127197075593342994614047653111051674973142896923026525293814918557403792653061363766622679870360747045548615697259556874113058164725938424238493573405595371029540777598875265550308813778441827585347670911034879428468218394555718324277613187019554493490280976314386022912691281869586416880305459831920747619371512561887896190536326564883868045687817840470645204078919582164554040248364364059074270041977212318582744081788369793691128251503011253660001822155038923750073790051146237640357045517454248627153891972944909924082063079617855336100229187560294319043674594395177648589238958614991205865075844987416830307860611250401468458903813731894316160006976595090995821716447683198147398067483394670634312029688212427593738647268673241876472036493018193557847972059805348666971094413839904863912940987608400936399819886825145142968335942815120128736913873481844642955001907199874305085888964523251024891699003480739364020918424513476678351742943300813455142978280982121863804754780153029196914828915792864971706987744370071876627912325740875730707172297270524794612780457260952490932658563595283515768408969843620516181636390939722510301823908016730619197928284278784351291785781037409402309414317036004443822107568989521776765962945203650873014585480879271361478138798767347637458357746422510598966636063701559380695859846455732072838470712091920526035642724049379735262129663931072007792540658230505590029486233110242544819890847892971952879119845917447976609267350283973698372554085920675233299793693623907008363307820390010099721662236663291622028648764675405991440729746565380769545226602519965744180555056854240395250985270586221674656649479027973756588139915585770548485392079841664097414135301706973673671023506520618016976337075075707330904383116551704005902976354133021089059121967269558742340165019366452324359997261571888146856756890714852448666320093673233978441790672958410254154799167005383757104980633760160311767147998220417497365429574858349158612765733894376473724311536738172279193652844033600787800714803742286950297422892657677085737376746619059858714619541796890998753721142024739111916353818242207368450996695867223637650253010663925183424265729915055761683581934368814602767900059660653328703346040456356888515669158300129602136020245676291929508184594311681149065122654418109269121995682414553801046021910540360247949503375724936999448507530575105188568241284395897656067198402552844005301458427644737367491880317234611610542345133175280098133011868042277914505294656434374083426728999935290002252787069969845776055472233134522979136464112381155824958527250034647322324472234394856816913899479476562477820254866312740267078688288283979562951335487522486866776689071454628715541572463693723055589569882884842742873236571163356705726915791154453063499645863325729612222950042457643526835270083502278191945461203576487887648049774576692539102144193964401526203865336504051938937861664601046775705305953267463233959202877409586367704543453381365530370431979343821186028509045888386604094791572812698398577114196932290727053471773152143139904920152490214626873340786651774230957344971123024929484453378421404786857852275632675068729566146303592565621027164488079296645706086871173629079631170395727530024603943513941264327943580153147279599016349122430290191575806776251234058614654245459517755383085663605373451136511498949116472377722675553933218709333862944732833222547940721587246114315856643744784259881107670397213309431553315957173628162901204314902278247764795123437222161079597936590896277731161959811445676850992616130284401610637133709463164111947247617943938094211966093594731222072990006368196570313735804686464837370496323148888839260287837893106482309445794506553311176848722282834892584195261550747087626257102830691427191445903757709038008621809235161681442950843775576046128896267003507489063954263611508146969537496573031269380417907274899945116792598726494702431805926977528417233626326015805818953075989193947066436532403386550112465279602495717377186846745897568494513554496973823035294133745226580413379005679534496083054936336971175380388015450106507032783393933294786235276983867520034090798406226243521886401012289734935023083712341471504836484542439774023053763373100359903785344564713110046439523734433108256949305050956065442602584324059038306692758103669927260376500694856103536201874966687200994269484578241451473644368214231768749803918450641226288984445860796598965366371460834204153850881457903639895684529206752283808071100752265643365106026990044609423282673923651236127023392000368088628630106367387456441547232775237577943398315995913504624458847522253827190462323892145687895085007402005299724037591256311266252327674540697623641028520800048852605410076413736980089099712570998303367051052058358154179795149095576788937971246297969686718644183597721609087693356513043302535999658969340528961315171806402541452264561107378873029651753706180949894296309824952908199621231912015696887703093146109523364760689392392746920298161642958139813194518737610145316908630483404735336683067677488516971317022343840136766329704378038329980872789873375691842291692496200048658064397896936888187711863624739177644407156037272225306607831184990075981188704248668679608300640180540350678171256344371316204329052432992156312773822297593041747323000874859010780149323223906975143063718737894477536104465489831623338272956930543804621776104083470000989002215090664866400684679261961149635097122315425929941474849390945989956318395087518324774499858478804300972123383101295534430831223820734623632937597960308303336036864451191542808886848221434646536073386966188409106408645949601086406333023670361883974296453788219822163418310338431363870494838132389038385060503994883814284078139905394214592230511551853711371612397065751185177357123544366874863664741756052362028442793921824510318734998274134814920306022027019328448199071345504634083643071604824645650667984053513581647996381626012110611630157536848911167230083366542101098571248153471792543262326250740606805268280239100658001874277006955319836453184832093796477478864003065665535507162214999038736876879238952380841776725213399432909615345334920540431721873630158054028019179020152489246995388308161063340890865248467518255710403403454948339517296613503850087144743816145915125745823985582643221195852758843149500218608135584222556125503521695698012132443161296215008586532732481897446262814236100295270892315069953694918244056939945123321197652443437751067129587122101005953588264174487506304171508139577694970350003561893421555856637261586879900027920355701621806992549802938821344827748051169599533601180387607866045563695092757321324327860495879444565034200972825853488740952010333423972906359748222870702439509327827442037789436147140928470146127984749202307865545753457895529494694824341702597540431434350639934626639739322273223118052772172965043788010036667685690069574077548229312549860118160909752205689296796557719122799601728263523973248886111809431125760961855133846042676310017264976278205673055851296333270194909775724635584263537610507887490911154830261809468065358397652366533198422922957354056971308476373772740084852654714313371908924576115763825526720415179121285473013950163951441498308701903755695314568511001600715641796183634827263936320794800040823601251198585578762094277809826669308321524427836281190737954505904838760885622981717493721246546791764738851162879672248133226887483517053764113910159521949233214677478006550998961571501512981772867459092212005208780007447989999977002333428424198191970438667805040059193770177048806099185841866748344832271235871021355999255058641934252106755155510858544291174051502846102263608912771241875022894364399280391953018532574723234278449084788507717068983182789257475469150994765708359757254333313884535396863666402345762868436873401429060403003992727192956028948663713116148469068495921185064880472876315190225827157357304450653477728935621137102285286006709857488998738830097302518514634389507142470188670398948010747758491744229271661172860250586196818904033505352528162382147015721550664195975368083598427016166224648818183581131852599611820818066432588619828386649359516532241385542322121753792720438767583404409944598434911973630298059151732832571477128613418382267231295816861916853232278001913180466128633404930183951050112888918473061491169693637762084850422148832137762906149324395305799915227814076120248504991676398584578256033181861355224030445631988210262486479260880252570855182125716572901295519378028849235248967645529822531785066456299607078530148696326785689087425957558958081803564341508576147205262477611239531351313788826801158977888122012619771915228791081563133332724401876713251428407484512418071107955822703418504325476475668062103958356442844769353545375818987309263421790471498590592762605156577951232752981784475965324735623064346388030302830867138199500078886284823167578706115866338493033085154069975901577638079320048401763937970000034575243249387814653228249190242458475271790884255465318293301993183896104512321639015719846636731416092920379886714413614220946817869594498350926153707423229630037709840357337041184483056623599682575312928068961613443451984139791279720840755512122808790241480113219859748581702049179219128781229608562744626728183578580476806173975319688093675065226371721479284023175644411912837721072963700984314222296383087925792085825988166400533235323652465045158553086343069575319896308056052467173680891887954548447805143202437894883464727757767504844295317559512217387778013280594588519133353626139741966054599711083259456126795737522266747510571859099743312439659429441685755562285813103872605440779839135975315852708456096096275011568125914286843670076109135332213373236329416656427070325430305063903263061902238590124975859015732859321095198252477534712919768095903695346803911384273263315940919983513335414584226479539515729742656867403713027640232888616586532013797099979929161442472007230150432219759537146986790338720886677573674957819086328020812252650627724456949763580820749929754258424182284880068883686499486221510580139507366365527765546297115363123540741286225342252917255180006446664411833964002449764969234182523059522263086173704675805471611019336981321386671806421876711899338127112060774718510825749587512383811214542298290717073381559532336910648666457859339264283651388952179303365738681166212207842515664669259819645436875520304468130336497385595581116665541353296661106773805591235725448988527917669312256250521996011374029584007978477003458470433103861563974120752400186852741373141620252674881072979123451466380653906342425323843782218733311817736663462779769196945536647336424460416437331817680029565467956972257969418912642207708835549733841665970501528691170439195992613589209133073532151326104995001909681447239036683283440175898949592448140775691451842494150166584302385885204861139310919223424822297992548948579450536742900271254871204562826395889735555868145241321562091175718021423727929493310957893114081693501874917090669590156965156411436333182570611832184724224110612135519724922089144274405403641264574567339011433476929186393037816310760680423836729606798275958659734093345574716814059579799718253987293399124987031023529525870621824480055853705908166860679795346066804841784452079843256332403795725808737006371629168013285698723195912578557106208391318035673153276272162830263983245831927732834484857997366763054791323123522236329624637680362587865471475909418586078745541736481179940398313205239188350039482808079219226757574042544396384853580493911270554536297840914727611577137084234430468433367073377029165858800046980058976547338532130827671378221032186783251384590337078596282166092308945169981810876649630868404731864051648636627046376003418424404343348860251331533099329792391316282454349237623484190024875159842494871300664303566204024951641748566056219863288000762553575769107810358546954567621179133641451665946321871372855040796135122332573371765491535853423079304569773549755664399730428244286408294642067286291360111054090953069921975361642783884321988663894092237587031048631616646184296409842795326579765832949671190696968068425404832229956171297646353962028615880071769871735613910845402527570469553936220658838085457452764023451489283170003481572158962851350714602302475403915851884169317529722974627824380584230058341237643471852222726083383885990194428326764653663914678494664983911744282132119906561926994236045670288793213461909615964125539622260981961619682101236754456222637460315098870543167698220792120937485765812203959464564320793677123954966529074544668154897708930235643286789417745879644899879283545901368020218985599271878431157597934357959925850007700087969645141299487938675773418140542256081402679253956605070257225049579118509930346589906236485549951361358810475063898256115454847262426821860379617838053953821093361496076619927882737651956277007060665405118892940340324117721687562170023137992320819535345486642505229349761354180313397348297005280868609918561662587675101256463957985648039433843807706119504185793280223151338049495147118302019084472550014475685288730464875119596412614045467443416071627516923615444921024397521093198074389364935487683803382904990712791582700736810310859967676617833894727996172991497904988023687975214015477256765385300955410304083131837969503312344251477893880638829005879644773305623515703362787373274818558935707491058740991336198025655533019576974812144428308116267008646616191653732399951171338987001816001671391084395608961390904894951568111355559862694766955636415527157531404357543034678687546814544261562989285885155322196109608912871593975579838145942246385771038020365400082505540256307824639739689736654593153522859114830192504633348641188931382059355822132581118003026597574937628258127420251315981760650533430167385642256035568050942083926369762679640295955883584134595927354110467441781828676455560126756666508374280205590820017722176126488284381221780170298434473115333407538056957048442180209789534699958765128721671834138867336242178183838091442861417855820743429035286075608666423492194691746030502506158179357075783753056762874746298167043972941405080714102541667015301391695940179189831489360962996689562476867421433925980516287713846834965336322372524869068827512659891737963001732274061272668427113576065335280329461588735417829241866284744394230348601334635931208859978018023802663688022556533022426509098198241596014374355210906865935577969690995617418917194593628251551991750352278195210440497638388133042891914091834566213069234280346050842890860681432244997128790118184443155971920290866765947152270745196370770177192207153644015266785420316490874767974469153638811206723421660627712965631026910664575198789623816994649996306586079912871014011118533627603155459869566919543937910141134628633117082011604320736734374663282649475725324549467140716718500800931617846498699264942244087379974552862361829232116774151879924960474348787826812021389305737784850861761393429726925624864374227514067959293966962690355153618942364917298035155737150878144485571839182769477337044455441279867448523275951584194161774406814697896212930366548512748934901025723297424593889774989112623558110670482404808100137117291200695166999494074693087707764337022287853639688940927187372369766306567501547059792546606888450515341623110689506802474001223845332516172892677267440000232453210657548748877818749447026090181518298155109136056895530947518904615525562922176195756220014672517180755878511268534431006968451077874777847623905819838100349231962677387167340847826916825908902582951948254651335632079548071560886153655494457497441712232145404860792666573987550720935178626359016912740438796108363075069302721475145305362616025311711813629133654227369215892856085283901959916875312475723696550321512545588008435371809417470779175464153122935873732724637746891587512678006268143316435643830433189086053057390722747277716732439409795234084654848000335506990613939234235039252597664068210059885081103563241434640861727207782198357907094271427779212595828710961667380905937867494266790522550585993746529225837927769197938248761698296674822836166688033690762390992469244583264589340681753246733589708410479144103873889447265027356345406752702241710853460668848784298801130276469434128502448293605363500805295146398031257242697886404543548239247720304462159266041972521267605589940765662780488794295426477126609919448124550667480086332995464470866336843689425726754055173892934802705145775766808572761317514728535335757213840209955997366968600492472217199085439726783644217141097403403275986706859663572336659140271177241320712146631390072248952058738597473046320700795771586264533204484112147470651370792500017435334688888096546431857431357234161076858992181111338287498365663795169635341469265016330040977717812228167908217543909361227860343466848557187280742440611001744286405878725503353559636650246230228714026507618724844622359035677609791970186586612806897971486231369010755486425555360015442066386135618457374719039035876188337172643255238846002077629478521144086611256721434115327753826883098407673198100744118738456102606682913895180318209686221042644273161205838867147614240226155419927766243326731005132255963088596941606896815126692554221394230539791198377696487302720222106986347949917013177034846057226101975037328647634040528461734284982984515398827965801819058609353227634124138537234769316044928459825214130282141044221872336651512389906409038040442914336350904818164429837809830141804925103890696994546076361525631540357137650458633574239335214907245678250185911436459123275533996764467648054967031550144995955433201129774156069108843241487345316871702443323655854364839002180590100379873602327174229550377365158743877191269528038501433516249861270363904011155515450752362524550110211522896728715716079637257899474594017669736944732213434999978514875082152601939052461928206399840083791970194020521374036950403901309163076231856913970231687440706862530009199719630464910941442494580809683939403620984111798964087444328134579413701125551113756334120681748845630717540880109786825220830666675536013903864926344552302809949107774381297822444904297977926292494993711187030193065187564130115053887114535017343044710959462449593014464586835267379451981998707606062843298105390092135230773481606696855090289382491734136842165097386431849498967808720316716172196404560512145871536034170759593468342162199536694250527320252911253867913660003420637709299490348761288715046408239848608611419825409682194766430372123418933355475771002775192980847698140162021484446564370510612836484657960328780079996043536974490853399771220718163139852979078508664134451498820973858750486274118914664968370657015267656467108293086774104135230815962318546481498056167603127602075419736517936685925582808705586827348585135690608408607218669228234671580483773912272155204429294378413640363513784463508418757671975927528093017692024848857021954707267633095425140799396688870978356794373837063138531444754658175632482729096049681696987410904438515526575342826554820673323976468744449348633823205174183079322228541060369105997571640141387122156662797919978601214005491267604457583042675595212962571859494315387552112478046853655653844165396277847547066032025179498423741299095247346461703702182524543736052842458936034666279975654225509635024038311479565892112680284788155370150474620232935953397798866591190865716127476551193135102113175319818015856628081122202948401676585824600089359812541907547763107587702454210704621687777680584788645399509560396002466118386529963009441529095864768024821861781518164169763397025181851800820585109435297826262520295221318994518928895041492036777590523859125359552955514026207380349106227463051541820967075661571448784344456544218819958683610307581627410661396826224025333313076575007025555746901583406376864228309162687382272577644022941898281154535398519481886975398194068431767974076670500387706611658724380808268658402354895595396126541446150961890922673965054355561001661208897736640427213135078458756148864716331031431062235498539355002397183935344862963222664718075169167684497644254110615850447059692215735335558559972347909808888216671424150037751814143034122693981879923201961598125258919380619346163091672944349651402553626562032303091679710534306854024855387357246041598025509547044307514883281111633448408378797692302398366482213253931949109655319431546459288590453710299419549661088881527404904957743542676930002846470539153168412601029083625208101093575545129228774261840560059486230387689516477275645368750996231212419617188445463997778592859438210272998185829020423448092680634145386849258697744593772282590526647683308824730638318871354978120891948382863881416561855345757395135314473725580079641746750825783823648995124730240562914265392393792633417890952081805937360599848631532871127884556584219804515543470259621194185857511542182765130334862036645635607482538909821816333008057743985590201870155733820117663222307829503902239684908960704330357228781291882877469018147262718207272787989370156803925484128934687001894744841838059073600201995079370067858937661530852019910558843659919103758188864325247284679622887702863984211980987493274833489688270565744503684928785586011180617959360596282499094600799747575646101596674820606022204601422668737368426144794527403043647951238374730359642208587601237199839418202889821074926351737393574512362180085600224370480837373668800010447201883759699006750091561491059558037883702229734016985013333986989879461420942634571163707920833584079961698763309465464079579080279936234668028491224167138303597493714968790659955435689425505989137936471476819820447229269608250229029216014777995764213112701997285821327102233173319560659984182732605513025160451106449647422344396469067173258214381257890626129260984387661908267077821207253013282272682196449717194142969957926216838767540916224758048944299112513521278265664963807368952736689953650045121675502635436720766012795949650599813046420424629128228505877434074820554193321025116836758512193000862786396178997401191132918733501223152385293535553728224418110368915137880482684002802897497208759333258575915013112982591738443584069733715842837918379269651234001114886207329109023347717587489379516199288466754668505006803874249122079568341779452618843841825130377271124335073683764907418516011260675060891891872646597216699608346160118159532233853487650975488219299193957107305420132605016899638719192346942195474570476903405144994704869744478393408283517859721015726869463337629342300134624796856490860921043089807060516273562237467177400930614060571586921857552085764211177634501388622947972101388743428018569034896403498092706495070777336047836789177425912633453853670181702678499967802779376681443711573627079806806115566509884089230084365479258638397978885436688181041973290229869582894398164252555252455144979281929795609555058222988578222818778903239295127821312699120249621488948987529437432198769588500909086223214097350716161409187932900064059364516528749160750665760683521534800029813694321769643597519338387427418215296081732374069900055867135974049474807974108306318672943711805064278486841021724117093102730587185417050984176005830864364236256274008203751738717124403004485460401866825693106154371948065817853891273762667308867598359174404404642742459909652852398323271752301605560111383527768130766667098512048311314115730996197238585753312946255859320458468486139436090108578822193975911839285474094961426128494213356134702702092924250106748253463585226899428684262466715669571738058682043327240836540058965660331271266155702921110289018283758093304907822695964703501227806285882328940522244042093966792469302348824461610160445678234071319934704882249977533409905176426020227127103979189084859065803340553235638396323579575234511482866526844845823049458522655117840627399864911259332190800227543496297148846107818484884876191874944652155140540831254204236954155736173016236825664087544857240265168714786129734640961536595736010422550022160916066271771205453853278856658738469171598433318439464209853628271646111042200534654242003087457443242432571751735885481887081661063951182717649074743398844703509540862492804615024327171789191797184005676471545505972879564839300073713998695149686424375264116748059063810020778072926031439900609932168311762622914624758419819082783926904079877868408725910541975567977132421853190977505042195096247621631058255735404355057271051492351723951344218023757258555510092580562086422629161420094787289223026084231326693797094180397978038464714424401670642072942832303855391065077316747917723608639110818874137347791180595367411180941887836725396427926776426855672610777470731049520187348105560507247031544492909129247690976684175928011266522632808438506306542798944604856614373919671508405108272845893292892218848546748828931054408790598554296246530973874078498703014068710816815474376450475537291098829117197172619304069794495506397977617269673551181887209505889483116331911608932144680234378770131672239478976124105203609976502690279875422870118848854770530439233413464446795753653221217053245185616644492638459572645467779678256370760350300728935911696296565925303059629522743404690479374148579955160047471723227444500600585792243823907235237755828242164280760497083102878465877093755660184298466027047595655885309878612975225188508791508173268075965984647521867059607979002216476002164093261403535408630634325091681394189639930911302813654271902258639306170858713015258537852041224712414462498125503869927174207169718252953971494033100784227700871568615692956877281331952964794719227041626101553363438699934595959231412816912252109784867301553951818149947960069291063624364574215065229079457928944570608242710050732079534841723734174979430118651819057243910040937520961219573651590142079615192511022384283205324589933322035620009981764033912253505261451395592240522788940391704243311338799271797901287198829092868550982470282673284682416860508460427171815578374965708171750849985215438444087450078018047358875871540851891154573899432906092753219390119033052334195353381353789189830739391545440069421265325511342329892828790116251826285494068623525815950002310976894578973438099816426691274541635471832433464423617285773251242110491964229154627159051874981463755350157477543815047921529282485622428302708219853436389604647939933819841721125691514721851375011798192410785626403621158535111883968114197967522346397216340080705562544271443897000014720818312831067448026448218995806622011166669265260307351652354022123362209138597988420604341599020580994996637925404815290326500958346573480995847095952194962122292165753616305674301267191574347912004102823261022844090993526852349584399338069857227816459876818636871124328296097169948259803771049098999330726742402946586835509265101276828010860251930354218776311033904858418773023629036823204618487067099025796781813766165695569522399810872794602410068160720162478923189191971140596075454792467482095622958998326299592981110070455793630864140145638157872520220110956983076239991108537799191256050638843984771381960891421820014319129191881344067501145924914305434848283112323035253263312395552534903261219619037473690363943698922340431362790245052961479007010609798253053340668512971959086385678859186300453217656936037131915576452326878174667546363938434465369565489808234183383613694574445225482101005985462387130860734801396669968283449877443447256826324742593549465540178823660097426547909590689149838766664004942374191487782412993774790277005683756740346809183758625152204894688341068590940401025474057580468025585633669053948280469182974909418745256500608338801150355427832925916492524578164032544148344166534383166232047907047096714419293195018094072895794839111127512816049527483204646619420250431464459650499905131138208429702242845862631928884487240921491913843034357861560947843474862746077329718935753357990532582682623756559569044920790818833882996173946993181048048407571270313792056084198458402878329692885800464577955558914074406174133641917180510184428886564782006373150702647781384068895376960300914304312423228040071120557421763381836410968580485626186989264315690941040651465959360752018694115111745790296340972112732108803676469631855712245984555320482077846878886042127703266433766330885100577630429763997361338089105642593241401037881624431618541478281086199661440748413364021188838085716334103229385298210152724970463943631420754289648370880527374450435011805694409280178082856940909792400627702449497932806603381401299802867738202828911302786895444698824887483262042026893599292404951171399032722458512722011281111213604616090880695286476367052490342267373903447119219981249830285990863074797782815807390849600135998876270049517417448038711585100203740847285690342145281036474288776793568206243392534570496865725786902493076284555941389393810991479436150037301782335291548713319269610272002565012729650459261655114164396220890615112667352393342503707812452803030778379158446495852176547769481637001161156130208409363024168922107680871740446645595923388498710919389214155152989924573046451178334628120895061960754591488671788931331602849898045399502257370182537515085137904996346562961290040597188845206484519456193511826847236930969719602107300748245577147604177876906704329358871549606814873711332884167808308603655803004708398645783875373342584739471345301067268078236466516777597112828397955298374470358869437566885681937370223264209225259936557429653615909432737046671840325936946573095326328529893235523982593811571559351594719172242705363554438573912406841748122080805063418630171308451368849314540211907725022871940150056594728603636902908601145127101733307067837405269499319357504035868851485278943725124013365206768972139404226041020603092672185955326533296714202206005067766257150723466793846909590598279902015663621704915603804137792222216732130239195385142899154460698861293427919987142865742058577708389703710291314056476529519018503809306304244972559799805295389687181877130419953605039916287349285205130316030961015306816072246577454300556780426984185648474018670468712803148460603181738084888648113750429301117146113517994143841385183458533150406042028948047987726732063339968952718398337552849711358697689094754777134505926609319694325493870302892939683821051113387964117723725165224876783145323058637171077064217812490319738671426161545332234521685323528728044717131933805305126850796501353401941945156891942313575634753803752673451316621425528141038127025958298949565385566709188754110055873317793971802960506996974474979935469763053850404933069212561500510288601376047463609545786464351175361537200407303519727444512839505801662493241516372677289008136505392544071150841485078208331290136410876669446458987814682516347760089652566474997320657086700093040933503070882255804393591045699772355158611501995728863388452043299499140362345174644336526996712403426162864511392661173521783756174333430546411533910844507712433577570047758981499097632896681814550842140777769286291990176904956274632176318102484931204679225641340200409475030242708746854781434908530448748202995584016284418310115485161604025110366134311695896813719930379140429356745499883185831718086111547190342970418320257887905908593640864476503003080925010354743879490482478366037992607619673344763987717841562527324466790659795049170083202580535789235373941969878017644603948674886718821459977504465758664782661901539243204311766824833633969135050163706387770387993019686708288822434066786520214488097446213338789434440725063463378310111034283219240012742249386202614015467901367336119289311218714087057719254535492571484084479429535417798931726610856692058298567435750246123151184098657797404617646815731709231188603671987361207007398859649890220144601778159069340551694053654478332104922847960254102255096062143454475297247917054310720145177738356417778904668589841766263826611940362230152602393760289028160432825555460199885598095363228791009602297361829248201472199220720496966927129433710846671619618233257314565684094276329305687845498110617631849005577312251791616251782462969187523919658066429677456847331911289796325196655293237186003105970009494133239082616926163973141963986411866192898980581842363577759889068356274119868183228001248606067171678834220200692812771365303431366223176837558989327245023728454305939538779786526020997034492404312021620644493943525466146779140063269510024574262838030447238964763130511403770325719995562689652627194189038124929785627348118338495613704898043611208405984155069035690375799082369410408806443796527527445882993877292160156806064066764920078441494320932935886946555401694216617552955780305976853601356765376067366842369249510665334971358461232444732993120487308294261320772024290996355026224936398798041046277182899971614101934679649628005645866252369510623401583894354352354703484866408842614238176673465220228185960217657815176987021595756240802946686766566534607009463806950841934442419933174746662044929333922409145275752158384967680242263239448657486787439147598635661001969170715647670574366947325834206858955024559257152354702751276067322175088863591450594829929551593240880042362062351761905776146635120565179784363703394825691671881961274298377310795869811566811814145638430576779512788329808410218588755267918786446047612060385809879199298865950324340504172552497981273228068446693298953170018923016275286324965913211965820514991492702683598618815878128575917775537704723268035846604523934328847044637635054061673386154844188691109520212924675335321668888738209760703866383557265925200311837588438078605920912690798033889071874429879013728805087019487288247853507782236882213757998439969057671839091486229141462255746526112388738552161145403382691138445061463639918570243019526268612196740968211514319446978359117419691806006128961069706096615843884699120737476714049811241722736298331718662703150781035425356993850128360015194328842933444701229006203023860586917617383628622889047815897982961154059688867953345605742754851055173318491059512939636129598614962205275778995427413681126571024993286302630036901950927724003257893803498017058591171094514879493075049669786649867306766729928025085202823242035563584278335775066797625419610211362648565875108853352656893056233977317797022011040556004486633838030316070679608406908162730959322419083525145498666100350497087696460098248769558613878059484317754103307985106669702398016577907318646489723562934537324431015746067399054604832505685004140642967377499770126649520010039135639501661647609366696460683965403537124602380151467574390138944512003208148197291244015911831051515996635688797394682370045186734623408649957945131068183778498520076571459794751217160032526924933802289902119007668394905042521801661539090750097244121563880004482510558930798191869259678686363730821537123836097606074882599252745160350053235102535617785950064751168688746556691057482716241296639589187831422569527481149200008245404065769181069963981959141761977593825832434506998119710104005794343800722838750634628734637927486101717723379477733877907171381636021731717325219458185588443096631296999568308336929038957843944766240968481553173997935095682092538951468322698889723331328003464187611328461137990005177315035067814186879292048106720273264616567994344656078221067372034305847470146013703822238243219018004705636803396277179536751787294869532467904110809502590151204068615996415180544558682484218135470515000673051903834797044271769550731339737046989019626585802938831686230494500769738774118129066576448220102476711361034121086308216040977348557602567024837299552801361924189390397159199777651559124619739826916721317001180133581076472709679007241809873645783979448621477468331280079891352504867456045631182776612915069958192467802597740890281597890572756644398603312435462237695325835915788130618009897010562477362870357003169895597167302580645571239502844569120003708153280847348853872186042632312637625631684701224279040707546062568190070467716845755412331622385579537374675895725908223605732685620394381389895132235789761740424474795643694935546911805528750136532184294626438340695423750906215431555771977555427905661995740599900473767492518411833442555125609161687585214899555629890141515182858672283964788769535145125892465207799668579088591822840914432716054213488741616739942461566839471950394957017732940378934064958111974516471842162601009932855548829418983436441719015315855185351202085215568114203172786781634743425859410866653937009217673322687171434430170676512681943823578771405668304751416738646849617835583202696108523572763443239951677900519746571446795948621292060273166032783252761477312507526114076488258597161193280466725623956024348666498788921578142330100949559455027287838969304965116821020768774679046901797741025963473979049399295402943301468248089257618096968071716433274445987124457276434272277597251725944331257143729594174804576309072784773294323660630566907351293375128884558254027378146315950288280057717711194396019949074311109060143693880141774212596124826672094256716735947230108314247014457953871862862439973904045198215452234314868651821722450233480671724873710438107534242856861228114314554118870131417086575057054691461442030447775354987678194963613755617790698605042281961749913034346295399880377732766588598120430573239313449853692334621741843009834024825531456683025336041979346640325333074821889584845559360915827044068770258293611124467002720490645041655563903840056295675010599686357872754097579052233586568523405352003580258332686346480281735503618130039584370688826360149385854796953276020274107894640627814157551123774749276687684877298012688980847314986169389799074491901465663850210358536640499531251034428430552167507532704856957376241474783244569401999379092481793980682017336952909496039113360819610289002894720886289816478046095544730722310949247871254516781432210640855737862262637210148346445724210992887957502956574894871137279741787038334815351086604095624058902832786329488834975674606966876156241368587567745330176753025404973302589781635143477128007761226004695593257498768192201382996248885655053769335506186786144310743976476335661659198212859705632315159601516574668722564022539109801713552802253357210959627547761977336531729293120479920723881220008644417632460866705840934569354757941980294047835430853412248994807483261054591837266008101232175933746835158530804834430403317772363750392238018596740264204608572999520847986074804105848901682630419830188115644911187389974316260983585815907564950944148859682055727631755915525119014355266032826011759941773325921008583308794257189977626932447967519240353546456547480031598352032546229322198847705035057717799160312511631469191676900570617043189922315124503203848630045988394679043940647812503058898621524215659518241846585683071191606152356432544608042113118088790783626454827700951324719977936858772593671622139374106434922286075102972313301442945953245136144314066963181273989606006343956061997313963554440446441013981651962240410255152290357795808325924085873844824790927814982091771095246678847596408857016591556623164032049570001386151717786319354127937706082366019362274033233723287392262185514151687294348604669962293770138467533981316393515648597784907328659646492356921737259450713339414631643099767776342205629171329050975086471428740165928453077116672938205704246080922273982633083634713100374390801210700625898811450323319695010109571992979634921911009503125220258452381928311326981619054200733544755622789457288693849135440287900564557995259992786410364210626609974943229693172196445969288254208208833994093611355849285482016596704096998431094895979791298617103511983776184323866716651140401914228121732620745770008115562005854849534704029255818248556255032108381520841540934667603568216507804554754580910813667978048757326147272794579404292041615841973807620392236874696590791522173897871952506828190423117295084391397942466158858564192133217531687681422631214668734902170397213175336031346478385919756405787536934036229040442637419541934041797755974215042681608566751148204532716014030163754771352260680219430708220919693373830669358648475199304306762083555207559544907144788680025024733318092059603479507519947400499759819836177281471879101744897897946317180920654465340617713521743286810653809953223762629749875463225953692871264186341553465365726765982784147547625284256348385842674505226387819711963416586803380618464699148889121711746830861900620264905109199267402902668620512446672131590166480539553227837712002210494202442573916744569484747636128335942398958693727529206632932346241202925510042138991859016546529537611667845921736918515185848619903415647685662249659328671013989310990166785581969080427325725793042453032284731736894386196436208812048879261026226349410749502716236702558035583326746995920944992505148153462600665673911605225252779076422612147123385344292587672309409412053259899035052038338547536856375047486946429243565536147677388675940053683965848530748875891724912192279363239753816030288388083798624194396314953697744229619055648535940195488603662226237436078731804854331521383142673523526613518034490799336739501412935364367369490516617635461433852693350194477145302928994982476164654924389654434883995832951004392769472493814106782369178715142696217948891564138280380638225812501153662698980073530397180104153745064368593414907054060461660646786766128597547146616602633540373990185934733238498856331164112565717856233983233844899323358562237204063920151708630235345868224179052828893467336982572983689778946100541350501425144652081182033200062034402002700444273368368182832032483510367433782144528152272321752545922146972139147634633332906905538948054889582168376838461700507894991600752874089459939230456364904976389715522718671159975652185301985263627801331196256084812924349077502774119223411523942733673978612171557399933930854569536885944360493689215846449796854025609727472612552798325011675525042025441248634993120206886160805200353627537357252047514212641986986545125156740595940433553529136386852784114386613142289418920554768450279352876082836801675001749768220110610976860020879430746919283559960610815004153661555324794697128712609335981533513033022227929595112067244726581678205319497288035377040454974600499061383239707912863747627949719734725426089412281731145009041889950337722467167800454734290120097958692150549508881991973422779483304352773973113600392789116879857960704266618305028121936765878604462191617224128398704589934950273239295329233154961678822207409294649363652666943458702611660146773585094037910490390019131487946917725033380536826859723658322159193528049501803984625512880971684123410351025425771642321625912816295877016035566592718395683343952449692195812877005185998292746621009904507351212985105456761741134904624376002909639759122964936026917250131573829621321502674072273444602981448869626876605546345797549375782348698522102408166376594946095729585280970168422766321269440807680917970140488086130230940031626480096819705840611541657457443600019368668972325002799129665766280799826821848542013321079627974199978729286847947157929211660877993203806592879693007723521979219296243398942472285773228014320002595233585183267484191936499999470148853757134229719005026200026211009306877550941414376588696609441875568351652763402773372104082550439684354521598975493079851067882953535994632047300616882912713343819981192040293677040536604286921822075307099940053407884147860707026571746321960570931351543344199218700178112126806687549728308044307697223880006323146430989078060646899487171224381319068392726798385134903340478754831724021688640837979370131553152650553103162524155290836280431546724106427494636961934217629424226379197642280821338952733417063489648536764606476039814268791062139422618316257138353325229835896965090400390720985476086016005774112020791462327875426958984053368444903021638004255306411777953203803179752039045218528331324870067619847427837591315163928801326801302895921692074263557090318714045940707553749576920353297117281943968178911553530808545131628098502502684595843349182577989721142277220241730897890758805504116244174408067931240497013298064356523890195085625794988433244090996240081500262469401906701793376757142474370509747101044657611941513166395530379981120189240082779939160110617099967516743202214254357674404086429294551100580965608534050041373532962247370170777693585324485800883128309546275104535265745735492869004150963372716854739251339142002803619819173764397114739885522190914067128223790315133877713068892769157718862545788043521266302180932924976861443508021122087761717561486615167151136642756403486844041647987293523925937332951756652527799923127181164225444988918379941944143889227963562897678002258194916126686215723925562507314131932837304685370765396969479246232339070386339642996815475359538608338074304261975229591824981467018227569661595325864495968088982319609317351414261611048827436644224812946263954773119412849769546347480995659846795852469575311101850405522395361840563581173650837134726255609327646881795297060953322031329821093479921474876935167493442127192867262265487328337052051493435982683578174129327817830036839273377624269889940886186381365709273262885005788018450872072536914635491865951253256423843918634936251524098588675926791368972271767248271188577075781131101002436273485071130757481252742485807763457296399903378148331844778553107094635198113975640340045523291095533110670307859559907387290574706099909086281438736757321569934303026926110691553097408437084243839779981335596122931763489625993620258474095143679094176918005469389405523014550099900678840568926655269322207206412248726575356877432017402901840682223080308211134715459196846094236089159294837604115456223552061605460022256525155842031308391105564713265265108588939079032313232583756308786236684351519494304503929085238306164771746288037127234365709724269484418018191968995011202634300363650202918857641045239504759279300307704325374585008626088269099785013600616026639877297535606383398431388032512802275160711156999202634705738268358788076211160925111907187593814446749772203661068623122661330940914720854775417810354105443017675106560478642523173904779061097182229628888906649126626804072762543693056503853797470878740349914563127961512513991120686216278100679521400589416718619156819710642642151515512930441263640793539124070319093413211748552191841215904203831143756787822114408867445073176589780166215567441151163635207155841849784184591909476994921965881524979216802232467552841550932433657543288932384570966307078568372261020486707385938239563511363224905522604751776821992504129290505532223829652614837886369760290351542007817449096875974643747758147521926299835364195303499975268935848340882094092124090186078236515172944201203542872080420855775167041320988355569715181025095636267960540156623030251739612129771115563283639678905209075688452212857197952262624556122839388491256429404054677859126749653820605778477007305161584674737952019386448350038074646082214877641765211217266147300260579114990673418777163495765109335176347345704554921645867673283676462275242802282668053306400733372953181512231419421446158505663299694375376528364653782603845962349481226380672531255804380590535121596604392834127762289096756271356453876979824128146522691703632113386072855089240119642047816031132060956026562676425552638933118487485804479251296375528875635781761016515395670773488125665061207801902351191861570905487296715682477589391538250839121179513288693665448243989482871534206040299425992445458176039754751550821142771454249327137105047808065294121530652771082397206187918754472484685692487390579020432960178276053341715465121232709761075891048661697490438700655312499696154203971636663424383667140250581595722548501678241978399487527959049400222764360385625129518403590760626771413474975601382435648794535953362681287822151064165707708040224194253528085307427397558256640700812184689440237859643566072620800507005491438036715568288328168658489721465880120671389789628344792314035682285576127348890954833122324698011037258416055999328290132446898437421946920493086390002673244502832883784903735769538004248442396909591089519365856708145498704727489889897958520774345060501700211004556189974220015059002314644805931022142042235723116377355245212904277959263005798621605855355255243380528909064609972701756161860213527335868792623943582523987771478180934204444216319395282649935452961057589983352885034448966772034142143519335517561505585056714467082514861913656772554705739857529436358820967902308835500394813984321407336511088514588756144764588950898563889455447044250656028849408321395130334726077881549052836783311033481424091828633379859982178018262377253436412606856596442663827072888101933137956379011917072153261874052780512683110606153405359440001538213493597776219074487109473918126907194054923696299965430975438559811636702377009741917257303718864092746140085399268870591949543925695911780790424490047528406331650485671680064997525042034596450259613171092599060846246750852957469980812039015161576711885280581206710546756909473649676701498728700331042103250459458173220527319327816767307397200246485368496540160869696070476146718624205953687409187571362253470627733723336347867259122446933746050152619249627300765685430867303690217962350928456382152842789024669769672063322643831701097148363979619246000963973574174415638312877270583965550158282323069029276849360916905046178286510771959030989055089032293066802568563455772827303141174027888090433580004594367505121087238418579579721329290048003057943919424267683868117001443852568395395685037972166133973208588567889934785716764704841164930100439952022141115501283503559447107663852387679520170231578228178997604100808906606020517278838659360728748866232153878619933410120984488978255303428967470520796469337582449096783364785978632565376265537027780688892552030793502955046082721966773403539247523933161252112652621246182505996204244933595280719867372968314921376073465157113823603460838651532682204850419264743830346922787781496239465758021096686446636871704445722804707742036897103785153877532011228454066073924215108185300947945780478932664098675930111299108134606827292931923826076453855066368917126701627740529792194545964346387104476063342720354771580549677166415307457737662732099138601475427785654837291834500528667508880318803860784464635634463758244388657978836260068097607124316686090981130635467657317758585951222735742881348945803734540707512606726849059266882108854545061377774110397115778090397491224240357591992761366704605577937954614397794867149936685676142589216517587875648690225518341370925840809956503691553711745024936198381753116301566749258145275218018215064311901773080343907444063374261683397558957282841098074806311053274740397761074694868986775971327018208355528822104101295887033890729469588539213925251183170541759820470563849740350571296810447901628916065871840795653353780255537415930339053709153640475141327338575549700711509542809602531821851934282730842661586804624710766552594718608011060481640783215271694397012549675619007561589577311370122931735053865111906572491809538870070036984497643000747992143726635264242828944687375320019030348512223317277027555579474398915369575939767992979783348543376379547740019462232843602822702265550715035127709480979085526867936585751089139422449216187136058080386895337069994247060011748159466657366954516019321032924644745793727050321223334028470746884900145905549829428404184804434284452772231568281021675234455087977980964435979313856826501434215819408135222163392157883904254584189474149846532210789897293163689542665043059729382623370910502034025264269896813299905442712813066210748410995061674438586223923925682763018393268359913076321587653261017025631614133526272161451057457399983687403092184092955456843669151901904221875367766367223607985018157125797756437292476337454769719936781182882288404837147047003175708321886703342618288928493734207629448750009303235045219878480999985264712784557520801794003771004994776409286981365652717826829100338906648099887466506930745113293092218704466737344460016606293129116524909343104004399094111052784941008913450657579376247879264876067771787473282598992081746973545018518088641999510657605251308700771724870257216857802009952330724117787183127898712613706773912632955190095613509638610021609494627118882933064143242718814563386195693924306609394493398647887490929743856828653735954493970874505225488516224495927211471274691356556474955400056358145405399135621716079329052137345335048427555852723955799730993389839071052393430182526809849645144475699517032205844246416255307947967310485919449450714369666733016645111729123328352652753317856625179720938444373628686308203864671523592748544119244124877510400539021832915660722624785854406336720113483178375085124084910278959470304033363701638945591500257240589797226576602388109713697765259753607941470242811283410172940108997832463657355669439755028453811664966447512899610044783152645703310280625161389538504776881371373634498388894884867652634425742262750686724753203561216408761081594357023253480425784977488020947664810063499078444555366159777083013746340035733629694246915989720142925960462049401082104324090491453944518216490536911122796634638566489322990497238862926560658009626001053699284794081351462296863920869479496843911927293140231241392591634908768776620789729942716699188299292524854117419421565842217665006617431692105433205559432269330655643052349561471393484627227614595498069467493481549463629751152773880921911122412198338503261729746715535414893163397711780850156747527141880213977240526717579214512050890418806025937729813747777600257678426016774793950118094355649262862367955174075958824233298569154311395597262673691110724954797377488793497842539982900614880670347433055808176256671998110197457660906366684864219506626592096222006368899128985564246776061181022458352008706673783838797603818282269332190825723835014864313877654076565472255233394954493950840021662382042138083964273809178607839370863997548877997590723383893205913654004223428619078886289475763486419278447882225372806930859780397518187055446203569026920648702641923151581006905374751184976199467367018728794350437077225318843350144533710354395521215779988746427630918765551351979234562481107567831780207084858820260650173592343390214836330637903190687227583802226464986817068143147093808568029994604863620198553605277914154885687732230414831163396635458342627591711006025644581679127833048827436196746196864671443682343594173621667435477768907181790176370344963634075195347742074035688618230316314244602174534371919583841960029054564317142123270395362789562469739418567689681561278530690103685532660206250811461711670528182721391992039294746280309107129802505568742319130699066281206397467118846932572208246266608526111448649033757039438386576467623084253074603463917553637965295415817296410322676914833265550515912446558614114690914588563427626526507923613695023736731192781563453348479953576798530588451941196599896210712677668481713889644706147434504466597825945148035375835738251485873982323453349144337959156198000342465392362042639043263175118024479980705531380800208430922236122063629344965128713391825472901443154173279965303423474847377121795356946554789067499609058887058960162101363200838971203090046299970582925338698156122723813335303020920035470956104623770644155541671654337834525207652953888875840356761366915936591661094259861952582164733237873460629829528917155360856107000668399910554302884051633662208279287907042276998399465124828660960126417230367667827972315842072068453967685425613388074367360959861466702413157841290057014090319237260058701567475229215637593738135524738161953173565781329574435096802503151087399183611899888248858185788338748269617218061586477664198246364584858628952797259260141086215754255565137472553535336842951440721122207363466245400247653486421954552651031000255062275788495195244566801151802362047825553967291329833845903808993401777635322040469477087300150762256910207524424537622076379884974042489391446677305949855426309238092953247161875599900791385029075449142209935867510843356410074286850425874459401462869796367057306141088020972025491961122503460800526525356350720735790318371188480136980000446660026453032428254988489455505850991066830993522136454656885241644427041638066838475176159545813605555279589233972336984952007796688741399646100596976444797174725204113314575142350654366811399432789994846992138553240852593150718292216869085671852749295691924425729061149142503670365030881216559799518282061045788450678450897684598263192960682302347221642329609996343199660341272006842439431723280168666574644149560729783591747120932689875267691560744959086083443428274452830984216163931808106204203627686378114597917575862907564838958611029795785358700720581040411279852765643651606787069608401286077705075534570560315674835472396086892262183432676804528378434020255584139028877064450708944180024892767623794399939989683018199224158828445168383068085267990732149211860681553255493640670461300222427668435668909517336733999856263091437169948872269051703368885889935305027506906820068416442350723229952121594062556906213723126771372005173255495047673308864022886533122934190971725685452420817559391056308874128346317503561346243590533066995578342108743787141637387585260869950199609745807905092146985786476755143159014028617372229906510069798674044307100990525252747986442358615325243854426179980715009000898504338454796775949476176241529445683532828546010783596983516525557418629376728433951782265611775128062383229980863489344628378699536491250746691735917070637635580193388733874640220931329323921376482299963069022853470633401984416934432916951341063910306318230753629454737736966005606308170391436252256427549807776291895082689565105202276409926563010138409039603050550046298811871669426148998723707470785327660455462355827017008109236656441119720202444262908871177134088405612621380397375131052595540714844419429794328498152584870505476058855267471525368538700880410207585667241572564925978326180446840300765189336849214293531769240078246850807796625829570267758926978133539223975901339543625359948719143175699241487970971534314156116291783466384463045754152253443397142510224753470017898275150164120676682289868639036315879351070831298835277739952278164956137240277597881745864074213251506206649656432922739733715234927956600045940270636884351411287835654120912876341960787511085340784277829347422134743428730012470239185749282020203968562646087359000551503301207527298164489653953571620617433174813913598191392884885078743815992281846421005102320266191936179992888632003410464546769897906567493847159327694420403585552966717958334026984963305371506094790407193592865346933836683243158140032710744489508862873667208080357477575406297979989660635417217919598068370053083890754813159094542247697138606266685809288627632532623344145459190054278382201388044802397097411016130528014935448166949893924911007241666119326599671355815847091997619259172390180046831524037828806770029021634413949712790955464143972279941198731983487942000610893646314532581881271563737399872186195363011482692602288426952863506127194535518015314222239682870821914711577526329654945055376346546646662254950801903442766942673771243501420754095126907064449502457198075981731855392082883543759158912897343485315844931738046658486161558298434242853819931716616916990181642085604503066951929193475796723448629078630147893319178982427425684829248711064689929950504777848484011459616245281002351024959806796173401939526207037541026507563606568780575017331867435072372023519918854011209218924271941071031751112448268665720512304052848098052129436072250437994248576119973470415778090699540265956281659023033837919030158620687185000471416359497299307086327159693857355915171935746219363611050381107713782902452807428320079065694505488796042759353288787573149141153264939005442850483102748575340100507643273518034671630575244594991047061995529029094227487000754600246661748036632490802733681377432150735994091797958691049006533868474244991278625108326045481016761555710014597713311642189397641449304370912433024831005065246719267493591015568272933235132285217105674657288972500523903603320115091380670581813801444934595598742177269726278653123339249700900611013395166823397512916677087473906541202787316829373435034646417353021339580372734843016955879870027599849957883742434493499642313664746353445413860128739614721028038616994314112755325766386327285498556172206239141026790108977325956208355415151111953322736131726373600899004357882493914045513111079299270565183728496225170914955491648074408035542452894773660893081689822275248432899595091489036391136970415316003703343099191758043681578743105484563204014486630109022874353702484659222737558908319953128600274853599233570469966447099564632510813927438206173405551453777927327663220231418222407915537525043104862480473569010496192258685718933593128906690448580586164801140111985157365882157063080441538132390621171522666000656033571921308555486423895102343739620259603493298890919580518678311514021713892962188006856113257220817856945263485931602560349599874546985176861491986204075950416200622120650703229148806856810268372494223222200024049411900633706995452127532509446449364621919457107784279443227412167989364217545875105415196440222683476326233415305071210905863308755578558011165651823128603869297713846965586628505587252384479298146084711134215309245965280378056165083679792905999997596382798838096557399311271944969436796959013600845469925466414481135375578155462075643790041286211570031627326928200230989993678569555426754618624800405430698179855062288483504271730400561706062558047260324747784418000938297503673682853052460298489584198311948145503679009451819874736420024008702339110152982607624674576491432348277325561578612361586582529093094197251244223798311860008942222747894890400465194784856234963813126968801893364731189896653640728149097228597211170596604329418454292884488178833361454734380750597361784187784987013155161141763136802587170955246735583432769346478826293929722214493623237776700837850958751535884965883184510325349291338290295066697779316672980229951320546235733678052189141543846474394565869266645105876477917050160101914994159815062196864561010173673209375688348244152511272268770274923451278522097217601712090934338139865102371096896574135784067644619935636508687169526596171794684575241526533412797509836096329770924194617114927123363574840453250429679028782544599153657425758739903395889145255645651588000934292974928874805628944661732854493099518526336824565584746799068493988027868928965130761576737516027458392561242197919513185127231446910074520780862603916456091262082441981378817812254926291171621697606904306368335176506089067673631465576278777680230708146523948297952748875023405742243475346163000720809228012135688725443583751167948241247496014886743171121501331702885372324834740627555347473598049432247975293518937813577154447455375303684363833507786401759399362071137327137584552260765403588528909684756050639212182817771802555725161502656367120465772517039439829860262222536950084064134055570497913343899492824934966115663723862752442650793680559154655129477895293478534811494316127583946260140574044811949767265813788214205391130565500501320566364171702345132551754935467475718090754383666770519478537925518444582390405959881103777820021396626907461222118816829104053884368726019436537394748635725462383534096470008943779377546977855892969231288590612630742651008136276478359731730281459634839528506811691410477456269334962515132787470091266034015702246579440454609260427259283927568775937740062484456974482612994207794270730825087570331011331385414948970438914818380358447923355495303825590185086958950159864515759868444915030193593838347650625093214550869395870966831405506072641878801677949398035446582502095123706726243185152961191830870547104081772451958179167755115956247744636172990029112571721154438387357840560279842791352356505442275339072926252718350434647501193450337624726444196452180620395932651963080391704148622598044727931087842836234450139303737657308092123752552746130656404392852706174240564436641454335564949212048898932324025722341804287268180401828569540605681593768717039389514511792529951585629634530813477538265438872490563495586810897505087203636803770169025558311739254833057042138690719341328807205501515048272337926000084639426597829451003976121930971064285459743156902328037335137383520683591543967210213757546907523853440831960753506725098854174670238750729378849613106063245048316150469598609620861352276308719541832397471717016833322975526305408854446886303674519173620559031778676894360001703307025811830535675178029409689039871304839339580360174586152300126897502972610803581092627037712047074093564095648096622096822806463993120977129111803298086878236947939790483951046162211514514847151057039440803454658490347842848165485067696752084992336927706274926439971203234830868588674472786762304930896033945140006592605408447595812087860517813117173501053200422081372029686497706480234054169805950964708635864466946714541520467082342242711840002244654743681786302303975116569111627257422243995311073685923655649668168525532843216091823172842923896621541180430136946254848676772479488791995930945908169848953011708125473843939332249040598430737918819055616363853332417191758294148050900814473416608421070658729410775201405083312055117603319351881309295965322795082939122508622123039224576577260550075847163469183801720935323429546412411583033873480090356277699542451231751037828500585848249820490088128824189909028605769379071197113306498860543632787823566199927183759272256017346328673444816757179920322156944192948561028601294951298439385837629789485678392237953426054952842935537193309684764277602845104419342350960952692010920292409528035225117136168101849823083374009364448834680253585692984103823595590449261456976487151614023782229861596585008827430556394490366650167661282613097214202045099072375802028101628785137016324454700037585034771525058826635891625444326205211558025522359923203738494735424079303563495732364396499133138849042705807313878913674126775555613559477663563332424503164090062635342339566745261438455707692095208668555645560530847916705532498245001848146258064725886244089142793480320074950334031737567518810617977087576019798031645704480972107788079805703611896551734598811636689820408561332210326341370628585348297776582365211649072046905146326017115011176957003155305063327572945738007868055325899494214303273032825035456583999176913242870216840183918773272465730283061867571260482387267985730358671197774555259205642016285329524307866886727624360288270562330120939583405499714907572094538362525687160303474586151711052936059109983095792160373138171406575243306713764541831408564653777200471757721848583324940963019701113904220268629092228736886672577567590256431399048586179204812556694424137214315837865562304345440757521283000717265680043245553605909351428063024258968202678496519560836520288161084579549334861264140923386497527599213370596462560017090619548317693268681025649323662939610900400800135660972176108334204212202171090254275024813309201812445503608950980100045992796592248725867381275446444875873939431835636300035334525033009235567658933546000263428108312583461280411223740475048169468903172016367783666720265239537499499393612311570243549496471650973613955868725763369717252636096467882607801338756716885308565395317568577033437269594799517824171479150812233158226935420035700266697828017382833635894429572113141305367306259293102471681353521006464315678029054754828360394385433216576818274929144391404698517814474909418226230147984960716581988510606850696133923736469926125338933056306639843889669959692558271527606809221238666834916569971322072136322484920929850623922164483268834672156404070053317496175097747866716092476592560987977404460417225965403486177960806765053841151789751094480528362176928288232385401865574617241197533447998264348266798252399782639159560902542007481053284341407512915833536872750813912432166465799212423906728599103998030247442893028168099879667827785682306357593583109088350918162977572905448431146731173805399493919737302589773278541918598031891487398489696280880828818675311103326363994601388715602335941720427620236780841579751402854814391888549556181445220128382644963397910499518205511282307815653086557420235757998872795672126731610912964728749753345891411501399385940789528602420780088612789408007539145739434744324697837392686835760129885095160212533589025221283484918480858011056674499801947008026921854578567588442024905797077325296700417304787228475724629508283312985981227699431481361103835453487952958997692951442178215033071298648338616365861141549136754390762133113674661065028297748755854498066036280527688956835622032383047678191919938579772840770952422992136686777526033700671108789585282518905548439353410568555231353006790505761758027400726104795369631723649253432822837884212630991095115665175680553169834897280848087276095194916618981907490713226063825319235709476519615440641542222655642048918240642340802970941531441179560525464465594516335287161200729690376800846694766472931043481144981802341237418308807570374842030898464658849956312800334255523801756032528422005565849532972359490466654485103632300460243702952103432405650552754692824789863138106566187796481700815770520685586065710503702108299057649857611384726949540905304032739108479309902686929856254798984384104755320878639101582325619512870867415413674220823843528912709864896098609878442930708743791970927917223200414649614046763319312095737424791199138435220654144220466977232799837750260613811770929613096531640804213520859903875354475240047341922385602464061209185054377889782101705499254492416739578922235777194827830217776830483043880864947011230025530839407576076595084366881804831268402083489857355119178369064405408402695917369156254972939515968605302886396039252196649506412782758987174098643883118182209264428759209510805926065145551033421767243737805900869021731010918416620097453562080316173475776751303142442035747017382910285087921278099488114847098923642706098225711560544215729597970838161415176978109941980095817579904390257724091891250041166864798824477840938098710586942525738051375756744328547889448808910392659415610012862190464603652073382780824851042702937305548450267444259410278318128315243259125526395908675148400523687543782087695739773650450571930480877917995569272808021468604418689458254332506061730858335265984890899036390477160664779019113317038662070756084506877190612143339768841138138024339503181580115953290501024705154444768537247838046524133149068266770773996539752593428561330653179863151311397804604892433561489402373881301235433330426924498183461455941002016100736083197275526140810543568739066893090259379353986041255805991644932323867960950121075616353388404344593279892576314417092638536618797197483810113131380966885518337603562547568184934482036270053178050654856701690695580907883929185774475620810041988426898645975176376542962954819305770462725980485855887852877504618649805142423123359253045174374874474957328560476475526446888545243399152509395233995801230372525734102768731181916654470658393462193790406767472900647210191006878983861607243988677566465870907608261391416819617616190099818478442726817840384931349950402172289574744093476091712429820857284055046803135128718723819974202430415465259784983153321228854172307735556836776992715041825833401062439477304417028470280536270124304408433922788430465410614759335098283643869034874053222700296107848031468059633166750761210202165430416418851363030180844354309092206544058907345868757166490517540267468883317663286940553489281705920239168529732059226685282960402717778440099170550153571467632137090311218214844840145699906986732526389458136863411495568004024611744240226629392394524314744957775248917195651560909415659113924910426969775615283594335116425715549520071912899008013731734527261306436336881539396104872699667448110246292794976228436434556225191349916687847502856594990678449698041928545105255081543187776694108344484289095487835287100664856976868472679135714359588325077787321778703109414602924200501710733688495938355812895390603273632640427070472033325907078228355462210198693767216248787119960469762381751128457012862585674563922438504852766573236362387532549738398694680678033189612063933278970788254509794215857645660113204940799906195807686579668432465970302603465569060805618675713281247226189817362350132440445793807354816690075844043356257611591742700619508636220592618682098584425954778981546387561896471168998859902429871451586484389115726031016843916071931265890873608860623692404743185178223829180920390986806529080724567187482057264270384581003820445270649615901266663751220732012004461289874149496277716552488398121979476114886924713381514368465732813388124271559016976510670081738364533694729839190329802697674025429499999042109354154174940831619573706349809393087024134732842452455275349868265798825874533579399415941882600236490843717840138872942804295442434422951002412281625631667006497597934473409314650766991848841525535212961645313281817832425430785365469730711934417122486290681996615417461856587797931541091571307647736779222439285391156614214342894684161752083053251407093966194963797445250871802641760026653356314845883706464509034860791308226741413802672827658102728877223161936338496683581879329472950372438334701220588176157991089927360104258242982582317997872721910750462269461663730769617632119795408230418242324233287433129054382132296121748361331247997917128364377392623997373459318203402891770517561258306899193719254938406958967156979338329129347199574624357469748496776507417326592709900176657020179312572532097365088774593807193106256688199092266018963454994979177079467338665138782071481612965383666013732615975828738611750493409568891916756296850940908965791803877736275559361081716579085832970956800318483529955033405741557875954704238662999124785558128692839438239076727042819445207281136343180387479375645973534822568689579470884063405079477120190933801335706441505397329886094320584814714960503457899287188052767940596662872049066831867294308130840708319319433907468669174606072967155546589540279318676324270417232187946377257698473509211692981790034556500564402803614235940345436673074284704820308553585760979031383788902262999300403170687853681199013099360596839121557061110287696032878603923405222255632393201941099126237859517666828027154475063782726019133837045069446607270969578913048740415359857041147958660971261566699703670393754214377951259728574840050191509469881714884679495640367823647722230115356587586601901084860448225180131456948328599307298082688636732809235040411733497225579826813269209691203674438532166280352191776110219989435273192410304702935873340620221806786496090763754154198021292718860955803504663055516431913177914819497833203707047291693917263946386882442074585883786718053755681802409213172057008521941219348177398935573102962515215446784816614263927134061882819696878468981282378165036947990520863366366881298233305835853352514751615065858730571241244854446033165618537688508644602507966018008314037589914566811295576548505540406226754634082265530247523214178762231079872550612757362264803128835903293439575188572708248861882021008358660152368969500329121373281019989196281427423353643090207651011333137788693171112275047866386756367963262833831545524137957384700147433024093227783395606505211859331392950005654571037776326299933376342991757225515112187575358930762472836985191634119515856123796217051808127160455362773574428024709364658729226500526187152239550724213752777041624683088983325624820575405668218798067425121175308532140245087450391161571367686067958528512457944348362969446001267356593883750550998005429079852938911351757818536278905508946378367464304586910651175705815560380822408408419164484113781918167906458769562021438073040931048998255457511791550614208778194728782707500732027619199074992428848777777736800931950307654660731870438718776606895316155437583922684254063119273338890583968467797347861031550192863791214020837127589369084481088654964818972468919627955074885488388317943144288727000352749888987391303116122504360407622150661122345148584397447651464129230636295401276032539358252687389817069311125413306675725141870037702121217892050167364166974747192259097894121271072763520755889066442404113663863010928957560241428594311180327240677253647981806869596071068470148723902581932499003973105223667971237567284084715688665912564491986755427546906818059570018152855454985493991939846173930078899861007336656868449891350197644456870743056223102245034196620550657383095949498309144392708458449509351141505620388707214681964306257229511641632413294726545820137524882823449540940529255797051352113914065847081619668761863830248603658843587855316051725498398896634798185602907268938206539015088042627965065945656027227671882690167992707741172317445703759853721092768641140818398534338944078893550704078465715846528269990030362247443029578034769677365346144680340351179220955429567665714839284052928992320725219117098145519351717956133581631928667620538618689372446584770398674746457785245715555168892906039332384365354139429275174778404628298526949328058880290106502820800386854104381282632241217551244887138102480584705848583814168131512330718630301773702039172593608357525725221415760292568698750858506367106446216800603182237044552210953362106078928709804501307145059337727875193756020175613215372970594094893928853943726805064061962530874501195701625456512803859117831863550507353754602188554420137929400653932888861135688122737987486589908437012617984014134531809033302161029481352672057656730849176566825058395570726471329828072285415623456795422258245396016538307507507769184681170773751037692390299415268892865172943569860343363829685666974921150054648087208098724382121248306824410410625810037617486571983717781777233575183479137949841311628052724879698672821649515168332881051134660660069579786964348773690038060332514474881855090448058694802621018242613227524100475179437691034746930939657695913833334659004737137868421101001811447571905395144367457064979850816344849000326819643698071474021880650453432203915925784347336203283973598525122047799153599044439381040909887129629299606760089847459792434401171858505992094511926512196794829710675449629349462973153540581913812542699596584675275051368785343045538876401940637435399614304605460658836503410795497337501918873850332201273327853711326555609247158658637083287560343063101741241006609082580117413006542456506659804649518104079396795448191864261458657006319742394015320151306582652406354176864494728949963750584439170242638639188235699465679765503606251099588000473085530076120539510281225610496065355410142229247007452345600818079757707815049227636608328011387892529902930941791397224129772469098028645209069104742241633769878659362819680007810278563647411471965133708447966161618971830372604250249651294031738267398158707046758009060182867486075071600306589999121060508645142521112140146619369778412756824151226773502804147354678510598273090364672972020403908524572021777837094130597083530280531499904609089918851720634015862127119452729622386913927263451785883777550944869487718760767118239952514402920140104081810874964772193242502332576321616087121827360577498855315427897721164202916426448049640705410407067613767224892400105181721947310542211617249039415973917043923610213022843953464667564027010829851931066743518802883656786352510243457745208351190603740979723493886661559514295698413426752108842444012044786381459612997585159155571359270026832342269523625327820915264574101234187676402815889473587174309913686968441615498966779516032678738642692138030700316788603182605256856670082733364703603394467604039391981376854263456653934243249135832717914154628194262062875744627623352817899607411338336634401750623521236037692679081098642039034125759177462464630188496636509058939990607617089249839205803888412651627721069003117425039435965727506014294780429747239053494503128010653305361773673297512022656893373067210771300017699100329127087719419317084668796552469728775016962643815064134387636918879341716463739340487379911727212740938592929166675171143795936276132439503965174790471495630946480479652016793947226978087107851742753923745670306616792246171173880859884857072815356174078908628017883838126672056746345906021841779663296413874637563755835346134351615499136187468034843488912554603619174650367302994787715196914578133920572313608449699118416759635216321850877928433208010950945020303012886368945917544296451345779929656163944628352411026871842244826606436863328183771470594488815865017811039279800439289097007439186482615163477313947066357453148752545127445474568171179643971647673876886159647083153796359649863954145594590154114796154121478944697344488245189726461640312526423836281344376528195384448614254125463609755262508366968002481971246778263823808902744532736152551619309656022031967660688613920282965218674858491449276908241202334804558998310161042408989916287248359190298204450598428528193889251018804011667198953360058518637028395452177470455442048628435256274765849490976069394982160251899597719241688712265571615439021518291843543865271936123403270340876661799081206146284776735050910768117933877858642533274734789133604258494771173108212863713587607339420106406889069086006703950696257099730994283164496884025187652305683573423737742761769572333876380527021657497829142397813304843307359692729610006112907263713248642369269497753228212471753650752913394381079086583452731046752427088617336403465272676543176933825892607615898277072808333212895756131740608049357809770921407318092073104617189905275907903575618396142737783720268970003257171908756150315284805525844855327094219932163201194985708555877271203162710888261827548162495440267033005224721956295562422365064223232266389796472510641126550757563143051332345474637916066014501870204637344438165613754300048051722111534332208075371088592450391641391106370675140505921394452229193438444167714293910430317780227155145914077430326709333325935457140365718377917370113288190325230814066091538640944588671368734646084003145122711483158930478225992809228217028925732866052501653927567144569384308748629347934856361861024213439028374057629390999170464699365007068339872146354060694169917020585645659311626370232367737680458303358729660516012037838077168123584626582724227392717989554961958683815998309375751813462145505467526524562484344077284608224992970269924408890046706034790873087383396432591298562031155164018413468796061471062481048054486722692365500755196653534244459496783846712230113146067178631770120616500708130495402455056269339945283748837085479458568480676011662986713093677149621325913010208706454664644382214669122543515307031082998047444074719857957537928285700064962644202951708790305492095596654268077040502612246766800252422682307776592771263342970170001616799718403078886862340056523771266375423880419911871908690993706291699668229400848582948771641389097209748682108181573743501166625903189635713339521591598634362684589416902757379552362356214628308263443876779187827848828293871367101386159577863898304280137676392135879129098294840719546633969745329045027880962660759611486849875073494281093634889484508194751370780118851846484619743352153600014405062908125615588682916217614608298017217095469435854573272642695758292968539460186513399078409219374076578340454324577939587697251595429205869799345467856819412784871995067953493325836293785605962255483437787721345804288770726804210743166457867480489604978736372435227114688116980081813069345557449062127522406097893483123829531266516559543273760281701538410621549505429146131778894920175369097126288366334788562168600880782185940289327579324294986699488515973284782021773358497365812202009550273414772517309979536103496345594990512165184012444880184505366452069758504911945933141372107328789034602478166760550108327266479919193007570830585868407264414993186049825382791354711391525348156604891610919797914662980981503369699701499440824654146322766631603529748251818940397332476370659153412588681604832597446933573130627013504738728581616945706206881734899018776670451541798471148250949334084519295859738504517822345100639686684249041201917627382398397747618792994781985139257871583213644183082916450156886511755725870304796855393600022498541076958091180675028376716917633204755577012120590033078326883823867920830345805066855760399837848453555668906540400627837841745739383289451950364813843075490034791177118008936540892466550700385043458966099947342516897943089209532224490427730340640755149114978753749039336005374068235505663754157423297294595981665228455667587856242218035058443215372263051413826026725505381019614636753425964095594023279578772024130025370871668234301092400500779830696578107375761499546772918431865669418670127592023031746778953926798374430046927342875378881847069813078614902139424295626368368017062108658919200694467297396907824030923435544718356304064796570024893375562270889341856034473778119166152118836714187035205268578856664798536764209588379075414524725826383608478420221883450931171267348987497363170812341378269668236731480987037046323049287978036876641471835310719030230643071188369793451044093458829824350614586491776692332951010927704064009812296795844236504493262673194736961560364945114100461760033138697168115551810990704667001617568321102831017531153701941562417936733912053533456046778131555112280831527115187103634800011468573490049805186191337588285274159597216339024329252455889520646453917316899638032191517813375299485157103089667002832125294921214848308426866679941490144086797472245441039136791795055923103570878620310049480854702013486120021961330212236305485806276660098697525821333413176984166306258550359695354277196746082987703845067813895956445948250741374133322328460989986336155707042660886838380994323753475703281443741154876954689404972978580832268815290746292128392574368714425743290139151408295196154127921376456694237490425546849366908266097938962009521890942235492623955307727904052404944915137249804836830565533386897543430008541001700506063899796764931234547206550163590603840618169912393066093796042085113436361348107178908380560082082994528983973283849584790933020598814250175799473486452397307543543356141426875844769743102400321767105906880951818259612921471173458111339195172224072116605413146793387527690180368761041155433952688581602006567594500635957877192824765253290935456265571783105395071317763777647068704333405098147560519707602217378050373827316704004664112423801103065310073263490577843582204235461271398099604275853187839160408758059674692736179413320981835765576377186072125482067930327640446232170557990093489032918828618090619052384480246381370856453368495167005328203681428766941068448844503313052356007797159025190980325783627319768909904629199122707670317557027938963536681818791189156468529431077026192172159853337964943154903928503452515701389176223582030700743129349192829735063932647634723271098204575505044333777556989907185565209769664016657348054660507968598390528960888422354218296590885830457749449484948930788467217479279465271276918617318953120994385093115643640304931787278618240549701793582115608728950027929508394910784195264415297665587716560636367350677956394703231426213697212256401859787999002316779665321188194140290924322928742358092702657991180127870766808072796069867426545093754618285870535321806941680518038628151784811119770912190698457754009153305367380766698270128629537554505710920191364707782012391467412936159032883513565084998564878020117213014179555469419585709415738791593866168194388717704259253230327333537284167979683731369328233024882803792292733986927465493702622219824848329582619166385015209601613062006136372740021177525606271081977794467170868946728686552340851232035778692466879929800413045911121997497655014576641698562170755040187122499458886804279527081814312766125380469827698488504677015078487596774524839630543569703927050609031772221260979608628169997513063573155590240493253684652943102973789072934869101349361447542193036007009902410647370475139022845976299018828970748450348221493246404558292517763443447846446540590112802719210836743833638774163116306752529728885583324942914176271860192136703944675270075220452481177528451083611553757781303831154243570770456422102183881753731960595317560401422494110028561411062388826338109546924011535527941848716181556581475896073927032063608177497970882022114598882179350610227788886878710582691628739445165433552270717002544207287887044093816033685277969670660783124195812855054672041181990966659035840820114070823049785235073138161904978774136700010900366591470913844378681633763202796458358078105987661596319178755469890910666085552885667830543585952614977297311845842269813889466955879443001882584196979708416725729109966865004683283518406901388958923270923986631914681296330868087881035239599096596395057386271793404190705121377385469413943038449082034509067245613325938157487349723757868925071196059724159720881132488959360820796774538461799992630926636105156668271809927893404475692189528288126348486947512141885243470613242173758686139236721717302034587595495508168873292811890256760974588126340569596189262854486461146760667774695564406217712891705468892799295519641280696341347868084961869843792702956078368583841004627092299000690095275882371855277639264242260528072946171010189328158710610065791144733318997105003009331811085365150992337626457350835983791139832125061284410540194958616022020774222870129196840780352256913080598703765830422023149260018675606495858463421471283760613097845948188207135722056158910802771462219600534091737148926530651000463326711709303067282993713241441912248753075675615861109343273151647701493819339335167454704015629958185669604185146143770119670216412630981575251257163291396660333125087529062764560968306698841018701986128430426273586889528549714240253192502428318520474469230427500286707934856078713870002390352250285537095185058140292227923674226507961548854682127266041866511289908741713394143043643934892883319568802917033293564672645668156630493091819971750933547748926430814304231741181044212496846690272781233139376877139191082592517793671690466160003455580831677232522252575241613805397662803132571688680165707237259175504480737227524449711108340034888882667358000566186398054127375309083928380236497053441150535496713802611336251174720848528619430675791308320623363998015498114285731893412343390103818196134959688072842952688712121286198254647073974416691865390535678417463960453286147497893059008488989538722995922379722789498527752882045708525379883403477589693171260189913476554885889381433102103331496023885076206830741977432106854753757113733673418254412653440247479261969250259685453692391639015396676335738238516433485506550863107921299624061317513540966703549144654863883492955884032787097400051069632386289511209819532064946510698455233534721538727196115482291132245483894039626162586052738073167639540586585377389459950826433279161543668810808709096912527237362752280305486064427830104852449463576779212476907171905225801869394356852484718449165190610539046870624545786558568085849392937946851706489100994866852081031250051915349320181318453532175787196026321651284491838579991915052610825285878355000104693633209944138439590917465942950101873562077643438843998020463898139136966128713083787450385603915851932801420490715349386854523843971298444201667520586282701761979613389705170845061005373209142548470667962185909646002181660734328590434784175669755515385885546708202963825865404353578652342822543583159975516275067169008139473440472547294060684922970317725262380607750596854533544843709932120962404951581787345532208102599148517397163604699608194255357659759690083102110571732606301881472693640591853538630075760341147796369371390374052825657916252347706717929081184710447600890581995004584667226887114283880779971329487123579836286123351328131251817223828684774352136101095741909474711162568572913682583367624412238678528975220181470247599843390611521965995820244875440365588626283550945826962188494045234862817108926926989229119323732151168581000197483869683105769342168781001966155139613139251811378450529746412523800829152916704798770911954000118091192311841720795304471629292573389424868542533913562088725762596766742582765667079029213741549147760397256524261513292228825402709308380933533440847277975802486626846879187905309699849761508363263192586079286850825841759849273590692982273464642548133634550738623550395797264856379952489472348320416948793132232124575892738615544410137246676548791461316641702194691798369094542775519002385302399318581336137025505134435703969783627199157236487881785075819176463911601579826091335227361880655813643041054664303201963050729304077366934924401162285862917054171238085628796592547490491315334706591501318517762221373786576976728259705277227419444605237846343963046405752210080762818226584968439541311422084727818989516436291563451682764085773696942281592210789540962246290897244110803026061254192632080528448604883448598871633258611543609378061053503748052122867661295828258987223684514684984329945874894105467292973215956300364958292124800020818008952318616449364133741531705724399180041751466459974759614532270989517586814403354383894411368616093088649869476891141040920397235042167880931531045721491539142987217196148182895517126767982403976772442814343356241584766662868532623857273608543839352221622527445657038420133933046647110247537235325958331777079703243236724828669060282747079411509593058850185247373572084772672094845031748758254433104341979286163028900456147914012208381777387995972290019537934845331362321642790925885774673308611153347498415048534180422383766574353946353913757665615877610691842084944420467521695826386077325214681987526547415103540447821191310408170153710018590426630429899523715415736868511344826477207160579254905729679405732331764006789600530898053991909893225896160815797053217065463642973829600484564438376600050068559329120760244384860922231612101449583670671032441714662565712272356140921668037034471661558356962171004199479875338987020414675458014828381277176907472896510554617028757902257727747038973675470767773895668217541595288341189590108785921969062466009264719446724325462124388711473024420611865558592719671420674849213759020594175838297775891255531422273894949138581579584591772768950774165109167979081913594792593566503774524579773885452422718402220573076349299959713029807946466805904459643129981101967398427064901517328121570897127328538697797076074488821369430827448306056198566592666614532710050782644501439145259848599574890201816190871901026323755882383312439236499356212945636542341577810056868508634734835928791832909552892175987008569239784047909207472778823089936266480462514257829042292167835398965299951423503470906644685768549200486375844152040329920762027098808713335154493898407019120547177732587053516872726418340660931118472640980839673835338473577413164518340564574563047827329831677309170470552079185504089429400229190241998942433163496481341251408693902506372119647267563386587651822328135184985952852673783150073210201037114071230679412256808637545974891990392999992256766648970777228745536462156924950585135145104551694112882769428663317829447272123834262823251089881519232472452446231233259009037082596807285075542854218252703036603958437408537846934516768768612341371978564621769454136336682670863818351689606191357236852148807857302538423445312989940596261079997868955184434370707590686495807376245615371381113214431547063652513631459188451242227577230788075645346075676951057950969457828051939344480439504040495340444669010560044089153997997858121878720982689590785119537611690373274264717263198231226231171427561021851120182078043451555287608633787969019482235491935506033421029495596641643942270743351315996165077663239791716309976872726595490092981432369395779455326479574326158798797277840113369243144563719558880785517473520853084972644916701978746284285006008622805182373552979833658782559362832196722518008367387129583629131591104429879881905031869280347269392498795157083314604921530370379774271362831989805171999974266780370294818533875987307257878464772338414852341506750298220528404720971032677927908546518077800820453414790832923126165671730680178151916832159141142107894682116468945197240400827810872317968873853200676113906511565683623489900804149166300641183969590607107257492536039321836039659601369699193428739100815265773996004061631903169672364141804233121138094740292090401730342018893370373442404130064737333507551206191283094252845168924891635244846341952252166450733611668795973055666886347223373381641392579810778106172712063300735874913122738751575395338733929231155831473009559778467047346482350881315466679154066563905410026771708655580746559363957213112875586913198774354222497086710685890713102303826940495074029688331602627131303627399461154230330632510113972207508603830138775489834131805445428387207440329711372227801277907279120282216697980477988166693066896856593987478294518220025395343188073307809418882133919942781728195736111778880985781129429708778050399677550249161618710435976020395465094962161776548669952192608474147288838022604576306424364785145567759090368801367139086352151411327760399732083107445902359923498776946111159423016396207312238893967343173558605803647996654136462310059405656269289286104540629867903743193940144751043185202396834413061619667999914909930062722587264064105486476722479643004057526093789273834422737376201155278147923070791484376202014702026909185351590971870906018566549514465405173427801710833069578821413540500038063134732530373397668544416562482587394180399079072469591598449480853501569166796003021711948381577975032116843740030238360374483238271780312209086067332590781425712742579573835495881454789565779721108311239843466059193960205038642755609597556433988368468263258432496182963381097484945876037835885100803977952160235316281529979999579111216159927801023088328747471207306064421907886902881198836813603100494720067942417573230289731696600269121158788984529866622053310572534819040547126194663820803208988464239401727945539324624137855121061878825092520121559311100056621403884939144001575400549977089100103492068624783463578635332732205821512365913878288698696644480102701007854787682116843353995893403794211640620562753950936720616617206492340707540137654662739435475864019845303740215786616955921555914924381450382082247241370605187568657268473219839747565129430351711050560168565964522381376539947430724418926402637104047349485910190403985459980340479206559986899389316745807667009175466255470225459392535828473780278242140737201211437790206821831056169130832423975431119007050748559811285182871087078745783484194924736761827985429231646060680100906282827885424624358155113013434756385954030960067333930884084114754154511449826899911056797363653702597444744140009405518902152141928955595249897149994781076907544536607941579932627234765726665721768043717564919564256190772674089611786260137899012372936591088410241554977778828010038187103759001153100191620614492345792559194078566985319625276965888497654905555681243622261925007171683723144852290919714704024193039592259585630137765951003725948649183399398209472125395790260274809517567280559615663565168481328621525357249572440733831725306282768450835906028503727377459664037564655280549550601942256028893508363671096919499598416192244982120299496067123112706227971960682659288837977972481958795692172427258515586445578434055746809305117807349037337867098416384003147451021476528916364228018747406781522575505135139222441064739287514480238262856860784070557425827679048566839642347400283817444098823545913898324158935083454277471029819845214939468546464426039641143837312795808266401276010826636311670996836949068724338990868454902875430543425520235574744248559527047111439339706109397927789855082714096726279246276957820019470564978451309344223923213489242229402171702767935009756231070889429594281559217516831804365283995419705630243606007725030915177975277904913302377369434663916243562057802135857979960887394166240733011368329015851590975445610920000579757266849213061740368586085201602828012695497479909529642523145501817023850972978396396123853079010912422515382357687574138996925902450045855641217228823700348023456873856458288854124285974202355042258727765548890536821983888366354160280099625878252724179217757535204736337616626826302351296903129697649852753755797690666011814056179824194840256099437932747447039256823164406742394509126400291180097466744549193175033633306583005336570888796064794418988376356545455100141617521208395991011518466692139806057836972195145416137742919666978946278953306243791338532168741775043374746199356142734656464494748818314219742543406878419859738051993496421093704258227496729776862519634966744680081323753334500738029712211937335169043693102044841262665950684158490533477178110382245183880558921303231543348692064248506966310281918766590529126335208758466470297722979251110474461412482252817727258948661214436078674465376219979136985704076358521530797504534073144081110408372079166568558339714165611318721310223418745036343063973299642779600080850143243292620594326546718269582833838832529404085964570223228063808944713854260989348474789496257100651266693983327891368058806599325183809452022215147504176464202127044033677879963601861488816421702902665904468271967200000464543180252756524567514629144841911048527488368546785289053191996372980955409315896212994734802544851985987349693601267175250057491555220297134954296510336269296831729805338374496702407002711857471911086021786882245029795432067514032541703101983634710325796916623304469326196277813029288952585521667188179934702901431286562198922254496519331296011482717579325489943457709016080637370266021588978277668555972890394302874573344156744089051523751194548880910317883367691074410004836614612312075470278418143280269164101143441082733125932598626868064378329876932940428490183142216298571472292207308627498849820242671567553233582062848954587926017136859980710026002285028713153793175968783695833270577495555739446048932662867176185844029622797184920001512813102148042707462226892823021719958557277347140664490540116512877987634527510678155515633872261761976571038722960933342965253811046605397142397931392181494918175973268475919724835451494062106288522999382752350601398905248392093214464078792767209823267303256277033770769879665285871762068192709139205244559254276944591184019555449985442282030771414451187566137660493265635478585401433785382857941662871405482916894282318337062251343466369315280113081355698951898507745407059605607347056558112830790540920097637369829181852519080267479928333712496053437386388492139517734084305175816749929418125466231078007912421836317043500255198051967795264000026443817987561779813243997609020345847303621159780449646893322567418895119637343777813297215307637062470884477771399772222023526729097461633840443280941488219520414351779246585533803754896293432231482007510333387375561725048638507905474807956498395144452249212775150147373626707295290837784206529216064450475922329544842485652124933332592904996101278283471536251949695220077557380751255155656388141100513591564753652966860680778006794894776306592950927883127527509895347733350242557614813467271094300560176103414945627045184963077332561743334549771529631238309769243276451981673610086506451893769160985349665860099364842970317175775229034755502521632128214293574583628820105229036506224416114542908647467589930672421072453233180358858427288161062946516493922692571801664839243810510760034214177237646130895598448205264766731004024882094215912507240802666753863589856695961380138371320612847621644588654474272216440185948425662633862689378136116917774426188665664214627209213950171910943416345232708286198592198453070524044519723859815395147910382629149549215855464948187611341514661432544656900204454883808130037608545588213634790986172484863934928745054197339201447281865814174152125305225677336892388854397583300468155478920719665363824137724291548731213489119022896274310697268176191592222538037049843347869850598364049243488563907634382399653756697531564541445543125880427899508244342390257214654751357784638770073705373791008480519607567801539335738097130659480506817455347533429824795717026051948484972129067035116163298643013895678490846777273607477309398493665439150388584084180450577873597878081443824723074438499487155919252428550314697131153873595882662941982274394101553522335657341928563169822659069994992803244624779246984809086783420480567468120924117582952637578065548145335404134830870957353862084785417834415886702107187350857040311196641749504900386417907850335589249797427171308877766463418456982613593967823214671875129733690300916716860666441585967612665007649774819526080178101981813344378242127456981013733283915394496164530398603514251173827177485119411194359043596448527277656595808150121980507619386481614858157744941427209393750509880828467396160946125471560456153904287326474855123485565542787288406403939150760449761597441627290060886657515418264234635997471657143812838201416032138939813664280892668469263618345747284323508207944190005428571133860971703335178921773039925782680049191460542248911919806556042737457870217588143870085117133221871968223941375799756215138281136655828598476966482469527709727970468991848530994945317602657744931280786705682040865002383259951167622074436072609903423176926928485915011857846765251344664805627107114049024800374778402746804674189500579547251768478108412047148695443577322983894716063876778603501512789288899811824244730703218547009560705922118936738569418624701049741231097613397506950165936851262053531315462752554887983520394947376163265281311979221799952691463216988881096362762976003527767691396095633750901832142277113951053885304104819171564459174010973400646583217395953861870920003138948505352545208090090837678318234980492298799838861468122631631132695818254965268191740779780641234362136487339076928974921887985837670337321318689461738722574878600354078409525302100875468137429926258006675176832139369721170147477441283736564723058915192409285117659270990024286593144618304677658082490530873237261310624746600707407030567690980244446263768450949631839115222676121637474028275243897878966560335647454432178805948124885094071725405784838989776183917128714068847715259974185237720606842295648614188026236633169927501397725245299739453202663919058829827258974374937820091527940068714405698255783988724695292863196534999338914027725496476404054487203108112503244265001886334521282550717268245837161309067288876107454575290177968667042038775996048995094236106614847695267508795024985195397826233027436654693139721075210541672648207610549367661632163502445628671357537016682076199352906483711624625362098187141345409867254752930962283914677270526725955012566905731416698621677805246617783919339990635132715219314583287128668859337614708460701682081767200356086369570708558086441147451672354990816640572909957737743196656662091188886650838806660891614881788787989003975465052653419807390503557121123819691841710130567940890097571049280604013113678442952518197554533778370403820186704151111909715632201142356332191329231938488757376841332727202284085822149284941019249153713886651609612750295520382169121515257525223644701606585246546763692085088156279946383805223656395549696504710925489409331634544299624194201768566114361805008993225488991320617858705553627963402526551209119265271787820376692323720096469088247676900567852025687236491676969403679482002776800495986011026186190108520699381772947632743903344861785727133624178497769323024631296829284548295196555177739327678459449427969420009580055430405914563330686749041256575047931325030859715550899653353017286849845959717027019244116696912656842279833496913292432401782663101670953692170120283316200472253479158723867830584744818490386617178108191417319895620532489141453866051978129747850724014007820323774841100805191279383414569707124212399987516313410095531896513746994043440402524882052778941956806620925759323259394935352979771189936896830257514796673581078989858460843123935796343946846244211702253943702867456489380590379712911266986313416619940197861988678400028259532480694640561404438024287249273793209290448356780189172124822573303413260531620750377536930425074544327076718196264452670617039486936814081694177311207548282571082465380447276533044834572155741035905580518241438587834377722622761671361924871807705569831383281278944163788782160005133891820601254080657881517344182798328244535491999040841625650940300648737776149495932909497969144183447375492271984670259157155720304178070572494226287228668149752401265869635991997322559529539567006508738090113329070174246051131219765903844042950043948422848157766208704636227926607673795164924040816292692642947355054685273093062794866299382990027043941844960254370125140018986598391840259813201907396935464449362103010293201500620779518903141346157221199074274438901331957769871736392409949639922037162238345628592541209350510607952847773810853939643650853974023481016011571830618388735768948556484835504460812864127982777653399368400252809488250721609847252200817648488919247714552941250091869604684073113719049768662882334943826057273236101624636848432574935433390330557189559480891601121443082424915750476775930397481515847750246624579382309820510183604725522325135308214611646898315893655181304734240169141723884123133388695339446431212450586208752792077053447864141587223673715695335297996167790056058656194021701110039854327163177843848644737981034391880825686753604893106807289240825264243394692965991520741409965521542556216856836790841682293462904799927684104001183732800087531707999044061943936066412189389580615005357307761931552776113552509814372121376281380956213722405004397147618880514967494215244220214704108330079021024865024119383753916749873974220111549109561940622697489983022917196591704278828613193182754271109171412546857495890423699604614985223719510662080293579832497543433911361721727970801802656344134560056973953256909876760256476128958629858195419664338176864873769086118251577249708974529264654099509205169302279636269167728304598200859925308926837471812820635105771029895850663302618951642612674598711516255675028420480518803661485118218398404309386058867841073242481436309097211980686011640601245703297288044021764353106586615959536283196514388904152597817688934774538523528490944221659482316897970451787650959332204989521567303614323396948403848842281169760238109978979591327954029970598692959694165786217456358114027446400507973146795628101281773419212215058215758863820304153377180955476755002283465203733851123221528473901069624205903767253686281217421040985923392614560157068582815530862109885976217033040533628705750486365729616862828819872216433847200528219561233924904305216238286546838382027691661036453588201113038210890728045321669851976451663891991919151929110661142357117937215962719275584996817228616633606477891370755601937960429661813518546784962184116824249320598397080776234640208025751311466172187221924932780381762269375285509957461938197037194409624294232848330929841435602704943103435994687222119439946712684666437185303138271078182657502654926882760521331599875072053473777212341242451103528034636185240649172114833925213560036820184570339128067823594828389919294128031733006241539214759132595599084792813681754702885166796084997922134334075073843583692217756347120797841726483563720233833434925674147464667128502982919625780849319749686257179710215048054527796445826934856094746889263215353274336315482623951797178781504931927536530433301179124905851187437315660923287426179131542956432057293839715052885559307742571721718889499050936721119704511310436571961407352679018521547195491354262246854687679814032949041036157507561648210498768753911203714205627391430707238416195462641266181278205172941740622376033644745829687500203848518529099015121817284867157667635532186599391144245116151619273167391952671934477707116154382579142956648589716313959107655064485412492479172114119090443070125597515718190910514401176225763176229804171681547977120110162627603326987883798559044251583628005288822972915816855617367897845094830674370629728492570257336022159868042466110583444240781380144812521869640631415301402813147964837376962350620921313960160211085340344370242982961484846020133508592523818474164432696683499044151736221749514979958950030044540699069247521237225477790317637757697055140240075585383445300186827638885656949496538770531442965578743061768403400888083352398699677609261290006500769669739428112298961999089538851133991083946768012734140871489228213204562672162294914125311106923070298886766464116521083812071284442285032047683984089060741656828771545601358415765239911289442357501857232015894009148759277290349138861346644849057003742224449499091932375026779566648144806981158723624565392023332623071383857042862539861223769323388652095548884946959466854600134470139241024198718278031631110950799752653977746999617910633874358153401493955231771549820106578219709236470100032155289165908079163235850522518135859406672987303951696799074067537299004594011955591803566247909164835787004315907600612385170502708764188365904947513642745517542344459545252790418045509523069125616070449443745986452218173572448916544633367078567936600906017022496983749962130805619912216071592429186402398452227060255375095891403398411906522497947755302589794800805361078449695950671562195676506076334291850959705819425785467480067372861093504676477970522568350856329668938914307744961817311227902994921829505027608798089884136728493192028675960600223574396145189054832806687299623637671703780073994758763564215800258695028274706317692159851588220508804586897160164742762851403304440899256256578505566462762047185624296557639259669669918963647613064077131411749740745458280216863681980571112173302721811751322788890685534373198552536643316075269620498195286899887086616451397031627990179393415914896985700262249427802015510283679483527457559646003440255787922094954086083596334073822669786914810328232202578705001839854171682280518740847493282674519886471489131882889686028341755294143122930296116496524725814974081900134884741966503610079873676866334850326815514014423927345344209993550186356285355314285420563206335162133175677574075985800148778862214629736561918480968206028422325309545059562570297505184851770982899728887317452279228720996277216910991890799702455264568410495349994988950536406588238941802800180149801325276799471632961615421020669782572284475583342254033893142545735869913886067767690603540126858099127236353013353860529761192281021484577238574078800626744296124283788229343669010645921782913795454535535438386021689771103604618756511331745054910155897870167048053401499343611437184803243583565547824391780061588780969079473830040447417288243725160855429986969085066499423955860875715000626372555426146800024047851743266719500031543105501143788192028455462082900556260046791586531683889940887278253810757819365587019648057141709163608767950637745301200662819858733589525943087660494649735069583862730364504709892453695310007409602618946723760669349649927627814344179789971663365765398026972071234050691045231862314413010823211338499984544966706410891170106064743949625610717178136943201573499598433775442945462287254433413801618611681908011460157928120157946557849741281649897962667357681119956282127430054250740233006752461405988039535180604030518057751331719361372546393599550245069836948506357878417009880580674588056701985612389550228500457243840575472619277638976468832776964832862322921374899694040474058230114723923217635660543610020739003257519545067972291746349773070348756344669622709233394328772377816051350993284746043673749523803821353436532346768893110436694860320586814129334718296393371098029079803387343393936236667679915822485469423147828970849892894070902972639563757149825439500189547022396134238003986081911410425014526100594279911064638700307100674288270530670143197147645263899015462496588293946716555385846850500098714385367843361771956700789546340292071162658334612304119711008499008234601571284543612137802030232162179886711119559347917308844509754306446425606640369912853577667927359827110655656737403694933954452067620330636724279863550008437892109346595398095109750230056120827923575634081987578091452286957481105478618919944851928347320019360914966552393093825570895310169712883887635606858938285655053763593520984831700386465857771329492292345624166174688838562784861669027485032206065363278657078239574264115785557009173883195149182598419393533761638242422822280388792249381948584705916403399255412001196227894475134177793352576681126165047306879342252760267715453265591126248168390141543356046454345179296520957743390017654037075207575184036936334637516105360384099168126435618645316877608427898449511679533117485647079796149558255738080655485267561165941638156064001461240375360124348920922710213027802990535589141120822751479266656672797971517884264681923740467519231438943639856601652924550525225503191882830088616885611843971954375001876451255587595568486399205615551430142640199289476520882387450466357270900800791678990963574684972575553398086721805359684240378995694316895295756316766614526996182154308997923974033916529355796677552262779737340870068739530153634083896931068702333840316554073532697717880320709630848731925024039344606503663589509578698384098402495392452763269240833800527227026091489973906562315330715893204273283415239497571525732287616528404272807800892340159698217539813250996289597773061860190371493045775221561862512382789018632692665669326297302481611353074401286227829856582138353541173280727037399993739040853007440916341090836977406112597577858459883748347126876131832480313593105981420635535579313340275642048380649484240992405318120454568472869749246276068624245123593411261111068464412353858084550677838320518420506353746779626424323210551647004197226617879871313462347618944259973790071976354742252324123963341334987964654516265635077796337454532573565014854952983751551487915402469311382159484745051971008397946874459685586596882917909248020035861782822507755995334864877920404483437273280925790552536108781745137495050409185458791104733038361017197764472550066609963949401587031988324049712287972745028785320803133871217411699228055545217417296826124938233033473479751668404476699642677422815821923850582035354258272064623352631570766668288657716210732970987356475355261604791406380482223707536455523845643776412804600280486921827070777986846387599731941722664211806631117997331734582147698108334598441308946738190874400137711103507657586059788815143250160729218495791819629059188537241008807925514380543200011480208920093253895207520170253482018825475825163990699070628394399359019758060198797039226045806202157073579045850339492981060474306714769854362531847619690652080098487926340220857819387653963983408849257449501149137664298856632030993213053856351102939564011895835660442019899043695340235214610494333233167549498879842857819854928052344728120122813537056335627877516991618833786740735876960553994758458561951129941255900484266145375855238240152954019342221794454807942490698310537157271472489542979388984247081834746947596795719456188305895223826740574567952131758427306539144528838307927279726497094582383206185677136920281331612841307371923650793362813868451813337326703597676790071509333246231715963526720488574114396787540476355924960505182894399061160129518283976779796240399305528885489215048289788901405614251489470661448026499430026747803732054858505791982755797836979198943026991008530882937043625988963835322169823186922529176897074211161552738563647432710826655423821048834821760041323112964466124141779375763570560328532258573068936688175212438597714495787842751390953734730915991721083427924479626255069736039051137145631365438618702108954594337518648843726690950887129391830735372187265216029259468596751577708905026591783128605482677106378841144551554623613957857072046810626561762295387325075211918970858866815378780174329066479635777702811277617999342124420671985458914704693298396497333968928340867737164645603760485738350279398015868525834234268128467893766561344689391951325926479810886852755346340287148264022739666375521714857848860316532191114181662063218708716800754029020613096936322181659064558522221000470201327913575656977778883363803224227710158137191329484446493379318426539455922231379701285173125926631058754667857068273279692552191136279543371623111842627193543230348299901147421229050837917573822069932855494884260671133463239034684484702346783390321877719090627387506973089187641778824860377831596461540857361187315706687009810387657820191326166341419648807406897253525673829021332362275251245814830310744257705452057722600539939029213062064813985746763185456866686699629697292899819797560509634564508196677481013029028958945695234371893015176899930511835782799706910030603762058490249124276048214540490268603287061954522146955335256768689516920436993192868309636858986150652500020016357633396295161744705940803693274881120178622140920955748656473255830070172967786868189465296225765181306134752895196709024598916104627988164141532578980676372219156776088999473139609296533655833448207669222953756462157683415387466757230662264874571604779061748748013701652064727579192880690735546093096691443863137843251321699755042702750289665081228701212529509192086000481114387497076768837166766748076353885064376984773046193878150835165459650154524846410077861627162685695849940137490337035952770032544840543293361031586071922312898806616946561553135213294575211404206278491376945672846692138681063955029580674734430243047743012186478720210860603301978404121588088603671400368848837623084530959032635544624120326573391443371208611484641532906677696349463438053420864666681912195808288597457695696867166320743188712410877801528773824482764624882247276265349861370356204191497654465224183468641412329252745381083356584848578388630775971753848658448432599407571722828711534717064210793175819090922757333847064420952670241836332734622158637249260068885389042078830639621313234611966235409660502422405758746318484456706411596818359377208382167855926609475205815131874076757506086689276307995843364503939202980835181943725119976710685553379470112862335124100491082621295253357482205153580981282896717783587230547522018014137118756983605823909643295131227033476300007419776965543733924913620596014933848484765547098893593032901125051867357082161432577049647352861793402250040665692840966262926687160403073573753174314990935006309775501628351119818041021139868237813904211120940909315014959981092189299067237693215599807648979632080615693488552235996538505084054767009860609687133198420504057752814008782576118763268059462776036707867581934950577262007250283075006937579327278161464067912617203498187802888803949702109158187635785928560286944007177471374151984139744275368518896177251429314230063743644607010920913476521539666429107882214961953739285900678178078113611185732202743117416199893375423989983967560196585588341222421789709505998816984287532798396012383509407925214005596448731001421946852549796399793193255106615023285374498744994644898793801537363019865615037694920132328172340856773219169991352035049114644281751117416714807580876434193839310578588018598264484658063091613640812221854021493731431435837738704774521466153205816640774464362837164769205723419113129489271775595791855580857149909015575484388386637405748445270639317841428841026564227297751523063959454063420702033383176659300335469388908602231622291629790877363805670012604602595416658102462966394809904788334146352106485902858742546415647483583234881893001193893280531647430345169217844150705152836006497537755289789410054703440725580990325823916536828389667559808793796024186775354411453684894895793917519582976023806998443079736631557656103256300513069289069429048430647494804251653064966736926508821707225734640154791823542471022770530261955848877718338909889715599586464464971354944504590322573656430654593026014835164106391439471172392788790923474102620162450859240604568523611335019438517532431212178450286391025099413241494904707944195513342257396234632592959539857969002956681610752759788105128138427018265355469167424194490888536869123111141943476106908197411552592619211722342924270057981070011963924894231961582688579196633668974082341896391374402618483598137033825369009754880123711944153054619273864085224553236141960494689638047508654754400662599335937650364726897897543745829720788813877935317383528992559350915047342320891257961929035022966472183915568033147706607140695304905943259757157994003174322799173503911635762892024206216045447811561279809593969042101739739638328238530001007256691833705036799370481069308004962754885497679696815676956351052916776165508597998538059723372828626970450104735829357123610804956168658070811734281069949788548411016986613979560597281174436754596088315122452067484455847996933769105377670784738073449862135930224708850718079780313329449094947978239874587869453747970567143363101408121765905831601798718890320845942149729849445682364044777920153814528790152949390340193848308781181704708584052785885291567966709764821545007429217630937463845754034327067717701838263576419226053686233576941637419547136109128069943865320936097573829202091456674575732808742494146094349648300858042719361702738616295145928310662285247713616613672761828207365136658989125074668266926450066633446210052158415773503069425983098520951365229940469712666858957407768823052498516262625849596256792449230056859922373850217646707830848970704572713114512119539124068377894680940091917461559697960544268803513697408042511292442884884725113290561750791974866140363752177174303752518023368197599478148441233148401995571750193784247959055641353676550990639975649701676571984757737541329362887043605829191348089618925116653562907399746909549948074625128451830642948091444246068961742664127907340137876113818313736365393333884317874958174945354293060981371694170384914899848253203870457075452868662476371562576676985047643182648008610548652748459753570003544578606786904160702124968683803116060752408452446231742192852241504916103603397419572562945610732582689488067889690841926911008052881132618221091579385435497376037991474056432887198643793143104162267648347516774549681556535386982068775182523045632710333195007213594370072254163838343144647357490532015559346981014952901129934047271928148990607530726380036494040004698667120790278799542742823346125569567811854845711218494694822071460474916601836310820827555733698336362509173133280670110595737183331022959019281707685245601267266713069892787425109120135307193987046754439299034178434888316267974838955698178849105144220442356194340625052598136982036075976358902357890749283866010489547966753844992050858222416937392639062554055868798759042993383002080040301315407331075906698954441070193357599653213812103097759295578793224416123873362171983831640077272100316992282836537771883764339837365420650476394025313718579556794738490307784049794876094650341362634465120561373521211622746290700396136796320265540305643052296986500356387405591733509249803529249361586623496250025507311954217933438970841976227017434424950168875272778666252623242857944079697188407623277249822350327814479476901241092986569746965303663568692286858911683299675611489495250660851312288322660274811792555145446414623659250222420397643197767492645955591615827812541590845717553031205126558161997923977852461272889153766894129556088583754230526865167783450845521489087738207753570160546340050525387280816580116564856649415166489920492459948755224586395718547198582100815870746005944164586172788404460919859654956889914390536292547194110168685753519825941748426232034642567730269126798244933811977141094852463050782413988824122022566085054441732412123908829135093355420736033266459887952994240538240445747673308457897626878855854241577013168862355018654634004683841305533189517911803107935426779163296479853754434760450374127355634112286493064435043816568317094013213690089591549638437420592557709863647473490017688925104773493699323905166276934849636965031101905371017224195739945586388929276652017699431401687143158175032120330411363891271062594051722049924056398184814056884221902937126028383774442133243312681348025902416374982137805226342837195907826004847742542649367715035440795954790086607716062955522197337598281521050477146433369977392012265548859126365708492926694815347531576190676880474181900142456638860136255129186009255779931773839963260361714077861739183741700484703799532366521110187734188995961013416260145958620993871683455457000065252464615637334271979279926172896196931133578829647108693848555267358504515830365033477548122375504217960608151386011933744606412577557096389078915547815390300082040729145201318405574460082265898456930558430974514904807500640069047565737751732580976427208384579278537503865473438277689837430952739833036729817703167768165391805633147739356807740506261384397295045780538954703391608375571860086554149089402179155889897725665737050280470887191610202897454171121223101490253670229263432939765265721077352103742832448022920557303465599962011574264425622576848934223133709223973277000387999719673272054533680618316501207451791577391116474972857480185393147882612268236289659365522429632981941353903732951414775191115906924751940889389780224177900742812849870691093581971208899261690875259074623736455542532869512136544449277067859600487782376319356818202073504908749873937711790881749273655736854733596317120134501367495975955683706163194677197348313709833166527454965030074989523266584357246928575795416035064018698899060700880157174944865592667030914162623265216031469460136962407142679639778175889813693946693241039047613772147745708333788508050318946382596421612723307299612617928503024848819567797166893230349461675128816750476735311562144020883284775860160985857691413674789240834115019380667291033179281865436162636328772310807453267507605676949928060764828216585852492145251354218994141765416301532002729491954646584881877975272390542626902238800861869279586832133386911177741271478145065773884125942714774613032429875815952841258571897032614481381346551969545009083347234187248539473874360299354281998940409820023944794407017485911645686943862776067785075474425809782716957852106148427169155787700522985909119931328065099771546531043809299938418217480461847509870946247124793515016116007418462838024604963360475176009854120062965720620450665463632828928938274088295659789004235119260339291241540859751060574802188727624489398956532782373478769742799024286108459192092796629223921461195792977641538405231900826530449720238971011664925530796502071705363718535870037574018474387756996959033365858252434702213442002014379886660911177143325173924116683950913222919830972304499635922539283305478149980246277406047811881976086663138007585309962660814682666240862681432533155363454883099310312895384360210961286323057854213186737420217659790276085444175634037183821339112783683201996348936139526117214003807741350164615133447122146336995999958908147858810535197200398178345865935340971302750266002313668958559687172246744888762100511612699793166001618320017027299223765691156421052971377294454400931117227384876790597528621918478302027531927775236932300687497611813557067974615677658074745143353994487047415213906933694020645020184505710095682333896816617242869574185731173589720164595106932621330553304289366270503751715417230722911656926533726625301953211851823919293179516252931703254501095827717836010877331537278511430784320932557973455552926820448437216783873752886667152124245300471147251453569613282403421880343527808979802826600832952904791123756671096038473007356883652425121372979685407893193855149135379280914202883464579392469200281131528735084944816206747009466173012468249995554110796673352984589059931223748622340387467607004377128378000191760124584931963789574270648700680798239869584461157385604706500053801987065076316562720767774524748399548343235449264337688919583427426664656505211363290751734754255961929536054235315668084916827798258091623686504286700914332149482422507290850863552240734213046737942006153051230570138683289545013400545531261945462679232068900952079560449557884313510525412573628246126614697917628957617610680393305895182312305443903634125577619749719221825503522360275452881254032814812607141958280115148237048966175212256481937286526503497237395348066516521270091227373510222447491180225503260498508264682958143306320506619516226156843876842967254398253005384192867934141252937034036025431849324907100457334048780687414035108423774272016966654597266639952162498999390168747432224849607925625472680724254022608282703017905087232673778611677955993594243245799523902644123682856403075162252196436094954170149573555506576660677766733341369505478409655490047783137203421490731639748926821735450520019768767697413989971230264846490663409998241355112761374713565062776849946767958204523361101063678250421584047798950948527848299056824164734013866814979487427921258521714892733432505594117787398252173034139552215588333850388917207831163641149082892968382989690507268452310675179422886877370955462866911367639313616542675376659445065412445025687767180162831638632606544122285359856485463454595069742129672182944091005444023981294788489409268108815356226604498350640697040475308497256192102759665533271335391742646474427354721851570776458659940655650687127618830952246376633129113687869103849771213582087637116800815587295406759224513474751820182956359446543682600748395022240630865716355266545398377646646549454712978996714151586688653020388954148629336891653955460868779457632006508800014363563301487984601266623003944641291664653537857820915200489328853727167480861713235016858576046470373383143248151054083170621724196015992881087312775438860139146752227804390778667015285337707078258432978448928696038689616657212610819635469597960067948930347957022459436021568295865152297855893671572175635241036788999825482555887263035467127633001467218742500379686177767298741455081901434309306481250440824629873980315844099675942774065858955248066054376213153100344702592937323976891423583223870490242670029220382026603410794642012854324985270343407171336759369203906666279775970390918580967672660863623146603691502236866262168532519115660589361676801875641674274909081676685369996142880132635382994461716603964351856619680421827577803854964635302520314836553810896526247245389560134362196581430821189747737026219110536375449880263159574673305684499826301621291600167122736267348452236239537151418778459341972553067168890822649083549687969229599809841761873139398263452774011978064554047217663615018495343290114146816720687031154187231162092492586754172049502346037285431397231052274552651919465168795704194334437528993194661329979328669280156409424941020677176580597526868031828755094020353853353840883769137892698012877961471053503930863917698817720321642545148926421318064269586300203052650319340085507979063986384078654897082081420124777761809071159662209022298965299684373369441969906631018108290198471102705095468558950120594823177728288358294004241973339400845177445124614011555284296459482935514039682464616468296785416566236684085185520062267373730700755624110988143733562657156958554367060639303736514567369573749879696241031087861677838942099442042298887031234500926360172418460851799725496720702044344291874918988956696618176172983074358514156388757972098213044111863434347541704175432471858421370538256315511833059429344252686681781885457948822269818676036228655686666802693684199507577883119334581737367696910697934344877315674493219664585418248870965745226345832880367001059949055166212165215280255414702481668931582866831679956787107968959500425160548216907646576332589864758496421651871533678015785265391033504060752805224298577757081451514152220028228923471538749136299971560307285260176712319182415433407717091787306004703549627126381780350041735417152765521111965681229639523879401838941937986208706424147359388397274646802814952126255595495432884252328079429984759085653034475827677187497408872249423728057261083468226841526985478608515375144664544214527213267687231058548602803013679388532075312642652828159625042735472648770376612281025038076556719604194658661687720418849816600385059045722660487445868643729048030651354741453343049160792128665055036315790630728698528225628945544472680747501296221353192840759361243703385012896517015037478631050732684865380776356663965332457635710810120761354185548854841459187877031885088243138673533751843999183212490981951698985102618067968695606990721491042050403938914576998561371555856775550412763621589366459873485783065203735020996019050039120021329408447804067575726982610080714278239967215667489073610023278083484844080580303955169874713078899917001076771932654525714875819256981254783704957113834744586222017614916083164289871576634177824200544830307046847571284974813116061261082948251289460958686951458264770002462002584397944583377979862333263206444927082034005261087446323744714473830835083061885071825562305814094807681799115773011710476245240607326116608233979101353449485101744497413601375869302274159096475616839371934585428452318669760684495492395493529407578486559858369498818142020021687491959956266851985883623256663739519245759106588824491936189414933054436539839132456988734290386141389116782455316656103170950136236590880083998402002655872951936090359335664472028413885292485485845928066120570347347340534738757311655140098854935938742863166380015758967055879867633009173981609401600300663378618041961982302101111820628120210091591103007891828109252915554098704999646884914691357123027150027099221835232769242258222747724179197666054341865029874324149223844740818783472607732055820602307195070065212894859310205718418336304577838233722085219645868810206478875359431556774710238225233068387528564649731184636204118719336405484382783074706792434624044483805159369230745765386762521304415073371455988261670131520248684012924249844167251737323592628357115300352071837661760994963390391777716086866019108467100049867844184061367475463029115127681480400797704598431266211635963850986387221662983273232500243315649957993558386139082729544597252816878336248870923990349111979145769535539973692889010450354477671732306224803891872094757288243635579660423417900282312649862920141786294213418557187680869800008185163765282898389748426773588911049629287247923801641517529051485747455801597820546494140739886783831869072034587633319916761550085731448079862832591985672814144155326616322928778876487633409414056170732501685320711532576547104815445534272475628396494664949496438302006944917854920859762764013128575689577646850391882047628176873620287845550381154277400350442137265733743706668828737833905308533053430903243506147402197635439116584198579498095990819159874267017308564483933650727594586483011707057739291956762650579026702721529194985169400724031959352893664739034912596028452077521309633283590395184318120797056009066286508076387296957118812840649110893223788905169547883979600668678161083498825166112301324324353632896987656886552656167979032078376786214611959232247938834287860581631578449077580886525708182607536560064050615099004441462675988110496944164146459742494601259923021417706187905402854360809445509111849845660425282700218121510835106752512711921874462600803277017424937075597904726069272418961449987611320444766720947879525062306938800027421440134762958851119334914823259872279688994456355591443548020003935290922639131277028921372419515745470338177475484382553572273287617366879427372507515271526549555344785307410838251250841571289928883750479253686008152868132419043156161629755681432181839952029732198921480593420505967139651354612513437270759129701845487522553257678588594666572972453296381412631703119598450118106860818697895403303189053109485826218520947530716377481684016568823656237005369510879210203903401570177064045866194171865415613885355505516017002961977285373726219503002856647001195499262540733408999292023513146655059643605345824477337959002399167446224363901497185386124854829262311090307055446444024752016740248206201186006203732597404588104784157620782236560682120625777424676430918840757535537618581418053683663802258299224094241548035838294857693346183950020646822697560381676392955388697873178942679665937750005898495108934667541054622107896691550401118479754437635250201213182172781497274367813303317039357992513397095970028926441155728719205813801997579349816005525467967540192830651643591854728728517864232252853533893494420535360235116521303293504189474754557571035840701395019284039883426019295144433664051910868129672441550595464896018841718523192877297823523230382713371127993861590074544208280044935209654157034934620703914023337276447637671135456639706132272168059675098520466682375634858829678904631669308874946835917358756850572345333559808850479049293467923726454795480268138217695632408083822248391450660310220356214789075676425828185868484002429103927787000964356774672706781021209881981855911019096848560394267668561913569349124277182716162661710966664901683118163301961038762971657656107217674320610990376310908959449627944948640541557448598579367263159239132409464341441153040854873389250945716660206826497320580452278771581119333045856985972253728350006219342137208533361998276206210523518088846947114093939948767978473662699043322868593903902023858657071955404703396342934815666091138702887085533629797828164731003237348668904204202168575752733252883197048928072207168246706103290906766738866396989597974374709190030713113824799636375701825213495775466407338967260744239909620444910312713386121386106263787355536763234888355370639296945568344654238735644272036178317061639927208378827202434389384557161290916695317234482954551066220099999370852002457637464227259928867949947985046145766797647758452442928536585910705626049911610809996611848162133981067142233538225185845592842834075598780787977663965377163694566326380011107088836050182879223962275572013493287598344912535929043425878771317809545933613060905030754770700732942333082172929636591943948386916405872567947032092172682490156410103574597486571211701684699928826533618240704502306564295895657102321198338969101472372990313510347709827800904886078979777185324317137388949660477674419995844982427499440855148416505703638701827960310064468188796386552895181867969757131095519110484824848735172555977040097872355805306352069420264037748564693419006252372812264743816533052519389846278007515435964667400294690107785989072937790792662922665725909603893494953973973548898340073694924951197869587184415035921474914808907323253909468365865815667168695566545903041853657670746817034514791223702037734902413085265604697137377033477767066313998094870396493567178887792188045040714884774511428082785845525684337940041246737721906320020937234266862729842971064764771521293352297726840873269355146850331118988497062800151318907227441097483744653579931193092592684870854471337453655914724185001276713104972704176974983538762101378634904599537720467044447273817507919449449263339044352264138427624533575134222712240108927038334991807164056346062521032232655904520927262134404406971498169190638062559148288452759545527173238591950542398699171365527634609942450962709572940695091671675470370839535837548289915800581298294776145179322401935558809095428918313745474451075209058644457986195283512496507863645150188723301624240816110075158689053993395561347843434811353827984942171586240013179110316685168185424140363500584254562552815465220677976759648547892221198175514466116452149544800556015117868008761052876227199697066693981829665215920574014505895621463443885876232365653945792065452753536771048057855039460100634202083537112536459738225220287755390240107021891777647602754518458546935427979682102601516381648390226461449780433346804104142997273919960826523590428503045004200696511972337355869385277753521809835946103070605613473848748777150595251184230161868619568749943805602620797872379146570378894799754971999205906694029021111573039926012072571413501142486537021654817283905452264088572489527742971128796636582865724949686118263733221129256263751266503433805240328542401680849734586396789404578171161325588722765485701434321011093282500743986408241664485177383841604697142499959966044750294466354787899498866173972180491993803468254237229103742123509029117304945736839327877107733382824886734132202007807606838367145823590254577966006370282346075333914632608250882514538304614514727726160913313189969499181713472184004342496251642005843397650265213162679268848356977604556721029210449835803641255962320849733477566857230989451013296717349257584775001977858901581329432263149423607955717823319517130612222264438979778667421065800019277291069651477407158432651685695989354611814486866369423424840905893037189490121732576132289804765553867304129415176616948182878234471397281205616756576933651712880025807657262797680614409909995380628410155106310986161415805607866202605378818932642286217755662656575131496833879430344299992861378567361515930509661825541475199333736262987773717603478509647151913394604507893395110317701805870828918881170381784360306998565046664318696106419756126169977536815551546688479125872909424763884882728062760076324564328436828545377753310608418034727673620671449550676268188664914072218011852770546880768933047626363395970204434755718492029508984681948436641773989180442300169310603972302610863091772458516954871630269299361741384923841343006613322145147956657005151495276055463755020300200451111548561456667000423184323026013972724334469532429451007823470084395310863585464796470761326046884486813242697966736626894660462184204411497052577443552183364580531906611133423121826523911585692951836845403025822231043666578595449226031136130505344314692079444861415081763682892440148892980926668281740876587231766134233765426861141774472482598552595835350304519224761726872907002644416935674965143125322469099010476900640349896527085576118436414536628345504910209738894957587815214257276386122460469764775051612924985203493676920405632022784049650559952176921299957680641681886935179899899387741766371405489688865554011592296726934319855572948749899795978732485856601537675059640957698205149143904189625954622193129967450156336267420848283230588623103354973606085101389240313125042777598385899984793532419533693279612530184119390536878484011242922540181024031147394857556517255352881359436300253732638654722622552581862725646341298052701344301447110879610525583453174014041223366241529543092245161568251088297295354401560573631932568478888307958064310003696417648703074661144468157838218079143168729071502482451861239897686509510391218508219802269108877899691078522713325895909250138235295943473336662746085559116717344501613817982180736789252531194713611237630021983584075021924664488195838477295494882215006002913662747242051288011864578011437959752726491133252504476638178240352968992844448823666738556710868421781452307094043728532129256975476028152330189165383683870426021450887844740963430282258144757253121359968028063739555261988400090123986522592744206465118236362720976567407172954775499178463388842360149229690929823889376084960662141831991872732965723352282115854947911231634042960778313902526420496577405352790583412689905508140097801745974099461663388408552198768962380230296438932592101503521911598707134568614304956223428818337130328424544413202060537669206160796416930926594504355995779238694497912357300272786850217643100714751787224319738790519355342491976605226341869438295370410747833632907320546834507764326148900407157345061961605820380790571192651527249376615246681848879552787467447479928642273182329990122293490273773780043056493409337962196208849793092954776354314601535387278206198007737610803861999734149010331365279455383454499924998884401817931224339317348148282403497009052859128457473354056319652709390726666185752129027989022361454634856217798944097580684329585177367056685141630380768574453053081375630239306177734388109251848194273789669186107043966405960563453007598906768234731006077018503437641275049444616580391854134306214661013809708496505419671627161828573052716965882192503045739226968961508036505180952769041238798399050550606295641999823019610698048931393118814312078984279478835663657704373865977775785622540430818626733699064087959723366713547760143218409922746342427937182988777479883689749219673524912826823356110823949044764857757275843630118468988277739317592327010266670469174254722232197768817441312148923894327315593299135333557723819898548082265173713504254827069780122709082502748240221500200783957714574394408187546730134398960231210516289722590223857787854013427417463270830545082654176853254102753090509415057074046630358606376525888136102113439738599103109208650495625665212470544436059801783871441256975374447019143075251649659679371737178392589706479711834477998929822321633923401504923860272748605514524733471525546151582910649084308845228890254649711476458976921616100033358998521262276266480399867812416513147280282584392606204305765907252177973569931775854681905514686158051951760579751978972810261063358382239004656784794101350248490091529851802534870557304741083077383192437564015866192016437316757165919616324731133321213252829348962662841195431594792806485888278673582500674963916044801158571529074935054743932284770306693643593363317281252900713007014738421552582721780836764251313341361576812845536647107091594435370557217747066006128502369773195369578383316984461118021925452132081010066084974924105759974661357417869415638460416640072747665620294963719284302830455667412838504879076974075902589878773781976864194607642908808114422877695232351342674838343224096745311118993746112965854447495047244112660134519018194831174622049977899678085699211239575255990395543352452584765180616307822790023745412854002594809666611401954874047729042851373804733355410792254359209309184462614091747092521480850419635598247632205941387547748493265792443649000749808154495728269411550222682575586327267791288961009038114064471647196205375821469820579489221491363439564003229037223200069666020022553730561457750604831191283886764534804471579689773381373879706519559318859766781709776241499548866574719054524854511095252240318070906676088422611418817670554170909063088312274187682497183839714503860339653823939986638865082170204453750100721791797543329021386642447818436089246584848335782822538881138874079213503010585323618078450346765161037236558507423266936844687500651295449177154810720620320036707170584319916046472008774360616583051914869095663079887509019977583844351668107172716956866619878876147820520073328482533955831624020850481444024894243965339195237402546792912280859965973939419302305474818570348071585066721607969444857199658773693986900470411249403928398978496496096719743403931996447582193840285406712926649549850579784654412199831726518332465792948291223503434782259057138933973832530960638798043641611378150864725265093954971598115679398040450303579232377069995798774908511286241431093497587809763023480132973447120546651803165881028860409431969870971664779517288139495714600382902804735138108902396064059087913286822375436543357615219561098151915281388878970077442477850832115034193937210408372096245466287486610404029907198059462379390764870146025164431214265448621908365872860784040894837024579211974725337851022201880992120562602290304330039142479754197398678690747553765833327748347899345109882284961452724540334763349963750387698136231626842382307297334779120340788047918700193704277444657031024153781759291221531806527410118904704962778330409203140550554248815854808463387675991391007697330442902311729767448940750379830516125291607812236027882202635924183946156107616223922130950004421170301651059847989442313223604025488215084043892241631123436600261659741197989594883977249228046022281082540704913078054522306663883667840588809178258049103460241037647038447937686916681285535953529765310139915062339761053089950015280271524513185790544314081022673170364672999265225900561994352055734927505647035266151732079409210493628552124467663897142644971519904950170093996082662695629615634369632751050347603115674136488844122269753313558957784363063209735823629828010443614197188014579252734262818635029454758021870093233087385216199054680857145054529489475261954733259763566232641919780314401906343333644345245389731008033802102920331621731405114625442073701811928192505510990825449743668498293202967620400416767437117088296786833734258640671773259440738631569315772704306028164542929039772933484687511588657148337476541959438790561043792737031685712430927434572285049848282814770750840599749153710984956753970218949951495243614959924487676555314497208985385330120940283278175811010435825000661124586317757839436655571600266294190283719843147065139018665553261465781636189880681524237835892484915006730985642812678704395535098997500000706089128218042948470825510805596057581609166176562703708450671579990218274771320553128390587438178950980904530221984299233769632211834873415453282394303454963237513073772919074648381282678007794562815076322135600680464432584888619621361156274839230387215917629821958258736810624897488404763040390193628106153383653926915666754395827973405277895292530035904846276987100100715334078779180742594128697569534452518815913197599296148969964807236831876184048704212422918472763513544008309188074743718652407688101870509336423516084019343806498268802070403198560988924215141800260586403612746517279923862280267286042839537414425387509516790176718177777904430212719243075971237708299158735522506721183560177120610359326807051734359394991900859104487532954409805926170226142121754756977331215107390893105918555108860659237964559795142503674674743005593328652547563329232345786914964658310062513163858559597619927144427624447839906169431066993319593608084722012942501291485729425547018947431026460270658130926315034240628273860996857353359585555552588224523819873376179956772327233723366717283348428144964648053462877968398799198805742220991401140367613276110186616586510966454811884079505146441041151077664771512721790840657635988776885822255893963745851825965970862142363918358295275074831757225644212631827004714157702413827338819495244709070758069706387738102154855866916304649339820990782847064164582740186869204083870495801640485929365398501607977278456053328255943201439052884995790875131293029691858020893081045523981728702638012738627583263034546019188732068537167125113312956171512717253144689636998949603893253726311534045347937514297320874518653825290097966770036580699567117326468251718357439218619164948785971879209773543881842021142425771802320547928723903230263735135197473339869965103831931538678435235312412483923160149102775179663668226309915271693814260838170647747725172539209488386997848473586024826560446162177501264709629987853170247469462419758234091284197931447196818518476687884666356050519735786586301106920458179965046315792718546742067435473604497052986049538733248279919859240015027519962878699639736359141005578298842406993681821173836624088856177240625525588833470917266446394015889747245731181200762160405508890089491600579593574035846794464641066538862014727423342666533177792106142629892964884718212322421013987662461284135697648231040951089964029216763923143403009746345538692779824017613708760757617408272131526577615034796571624577544983244309017272499531584900204745660436632575401180625026064561101875498473554289222626163710783890277962080939384404445666173632381078358397906522783742730574307702845185724456263521937150582037578067849847788856905991541413562501768604888929235116731982958539140809021902512035859234564811053932863645575098923157259100774188672109899842176397872808725147063028363590137493227889571467177940167895288580970824015803251405359708561482172083596225473856100438087428854158365893815554045296226748363209699488491192138072424914518123912418614405635930968224811023329228015877188669330939276667621423833781497025075203301231266874908612355493795470791163012639446145258734725200532055428947589378878492490715522021651857232327228767105130725005662793777960777206573248722106913523598252830039289669447933050048361474685013985278615319330324967884650527848923965358907079045481097046037616394699560254122000562416070205261763860639006167539552887803834445623566395337313629476458314467888045765869542622312109565154099514725203164869372998138665078641955866422563482251077152818167489450227132407001288271833306467855107616202530054403704249803664852860581679530109334673828110349615327323320418913334867069475434314265768956181457323679813498862749064415943186211154448863767106834421047729566925185315578042388132347346211106160857277381130749017497999246479566409584323825597628912518602859001760933319131665538714305209493806747802180618110190640472723104595818989495465879795221558422586642696978077610110661373300901079909452305210628903882620336089235660009331369980603491059968098400587432828532511664018827049928386469574546792044438498136443902548089599284059012680180914250916234991909204781605988595101458904514042428331206368543562466744718304131688604788126846777162292313106940744179910312228642013036386384417208166790550746745539066731875643269680614153026081524001758312540033975209895162925815888115433154918766299607088840582916229673327422229514306543065966878772671123163132256133673661619918698383158172022654292350459205109819867733297633071467133386504273930145949232888898661029318010071043442687719351948188764596148043024282953145952099184010280575104388864291766853826802323593493453628967816061198329339087645391378132523806169825702672878183396493026859302561899424028230205581699747049666765716966857011637477168936945325366282887261598760523763391085475221572167166078636217770462151153176750240518575093209484834848152748391355264635925998453414806688483358079223381551630740380750026442728272513319505896947621525266082593519388132344240003684327688466358469055575895012884515893629240794769257930519844399985998330758513755932982806087738412369656153790695565403986536539265258408442131453363848272268391806254093681911355838975293759206980991273898093256884065410624333261550706471875238068552626355865198979713664918805911753891374530784536369091525159807496487032730680831457958569816668252421800384710697542775228621274473875226467240316828912242930367137963864729599168299343567917138714127769302797700150819704001463637677531274425369285631104034389208729880542764849131984257148442323179963596698943289221338524449240812530665964093723845529364138265023454811381407443803798084619992833122732422770977877049654308008441641399169280589388049323595216306846011022027872049147872430312130561503026896748686855155102755681219394163044405771413859923102211966010037159680855516541804829190998184369775859212437079528806620176610943024210863243654452088760172260585412993636374871867590803141483197889598974930083072063565895398145011617473703563110431829453848535395982234200630635152568809964763288523948248885341610425157701143255599467237026211232659090195419616124139575426666071795962222364019753263415690993803902532628929454256065182879093157635083416210814200263546516262846767372466287917329580483684204764243569779890166559282554084649670786143816365509916499549852998396055161984002860912752929425529247744293967119090699445774870320339868388776118684861537891611286907058910697304894563753345943487653586870341255238101523654648789629497529325029632509143490447462957178496983230153210323097339679462086355655811989224166966683967093658924823049453135075265316311889830171859747035001623536875633114238773445337855581346592669928307259508770397587240438935590751836898739212977360149776901123684522788830185381707944178237460404458822734768920894094778833629174091932734148979317428663546462826103914990630288920495776742053126579355140959517721589560829834301712260926151426500359231112118588957122082439850998690123313520982718310081631291729123264796762541331445639006525663854241052760391849212375348487516788634056393117122537832021825013518219851710639218059301393342289387009137422153863150985956086511636246300174702933942571892712348979089810761503737062841574812753802028346321881251142158969890475059098171444211500577418972838854001861022024380316076806448567283408463630164827439602980775859736599830091216215572461671600816958237052090488762076622123682459641450753585111942383398263262124462771566383517889820147096945368813164490200913475559676477748203893962172828101259331528943113186539755476335337354118991834092175842684604337626132539977280872038895304396310462539162469295698691383950876857569743409256422976185429277358565316451963203302571653863772062263367088550399077436426454364768220797493413608820954287206639255931660845198016284054797840479832459900206368109561035458468986664048396685139748788605936942249583714980514701096220030447164887959697895224671989334816881488528855964931816130341064184874240231780470132366269075269948628419756583808728217130920073040092374136982133156162417796828862557995892677067877678670513338261541123103351744786978101355583887697343303922815059791173651387466333372854893564087270874803154961370973588022265379007295338310333450592799145416985746952037955504797147351153955622681894402688570196379467953447075502964470361580839205364854820951419734386439919608394508024548590555060271181095010949032610406497890703103948265345153333623416908967461337345422314139476107296239615939971343226811598434337666331592685329977216141491280934107517448342274575107973917302556426050352956090773523977388333494521097068282537499656680791798622598013386452190251615744851723675601152306188124891612444250293352049026973311885467165255865847749010629393419753338466511496108221709182610822471954917688894159514355068670663849600378815875953457198922518838287708641760152863065421250590446622574762501812726329562076446796960887454704364116342318698504037280315555050677460209263445065140703479667125978537768236844593724546470559555760414611870530427951483742353905276619439884284236789315136989303854350376230162784642561132827485623433832489096783441036488927759768183651925983109901674920482029412773889813698523925901216669841119151084170147244899223742680031815589722259691630914040344236800912557613667977736041642020191623711080515464407382976003874001769778012623505249740954865761077597052611352261635785191104223651390834307514114747071952743787586545487750767207915122616635938306355784016773488475009385867050335183626984792441353047812891798620568365714601772364686762239228274577202347077702244280095794823295744217796770420587482809943409448217047367543079472176290966481852577720659288009297124278218198371373279527231862041329402474179410822792293175879838541438671614462126208143292233210387524852538844517875262774871834060431325852776316465542179936117494288853110473915372699693625531474765065168761752060836235810021068116318917344416462614309193441641041301065962015290768968495395705263196358788979488527902577386901844385977616608113484118377492950270674507114961709584022022357250141335952574506931913060424236562653843152585758862104608588457078809928211662626087978800165804038202925664529891236265664099762735234743809615052173214926461450473549314306997349649644477295455970277710660348031995634929813308527862517568356061828762268218013740198132041262964406661176713536641028448975646974586911435590730673354860074604865141868832243541127898620974768829727101814689778063176664083067703378654863961631066323006392840472752621168324869169270957093863753387310095738962774959879376557219117447177582535852861535560546649117857766228473469835096590033243721606749241802064157807645048070476705794754959231299842522083066513223704441320499651690545858647816688960612444751224232318916309384652270469222239130598392114299859407742142977062407707639184320360392860259293358194442835570101969627454590230226264756505100159221994812041050056040189950559320297156395417255070851722625038838851575903876493488544490292228474139651942631209208860183605076175792476099257391873448442819313898313775637302359039019989719763270216130967933425023908996876046352898863734621555301220654518728057823914519337201047851856608790185484888826366897394234251792143124073275858080052930291938187950646622943272285142631348392929733389457548464332642431350812237210538259827765846298780043856814608775968084295028490943253109713591472011242741511744692759558485575386515591121894588672917447587134495126559096051251753286748729603803073561926431446796873289277499271673979787419075184230465855438951405761362292109116683268148016301024201612357701465668606509190074243871668118673491536283916604417228919952623843165450615973881544009973795859178114760352131260993823117962640621797536418762353339178690259565933805059713526102745223027272403155516596081434372757359502050666368515607147675548907199854968711211264600041155824543196400813663774701303965846761218084258337915005533534418993493392079858654304308137772562128527704749254179576922739162946336859773986700297770855068065438772383144492396327228744555129904711008626445759610420897382590859614793401872883345940166693210861054671048323654230419307288873875755241337357192404590582917448144224511838928875095504607632497093066883013911470897621753861465521043482659288107135816086056038439909599267038928170687101076758621310807490997563603427674646736435121274385874000290387792370644154296015355103495335850874200601641644287811094201203833407748737088353497553911478920874970799416110224817128351659306668325174804048292720332654392104227414517233132154624514568222618943855132056425314500744346551557863606283945984828365498946750996683888371559156468730704951688583591434802554238652188179590080707484284910258951656443517165675467635690476071489857628273117059307036957869299323030475466730753167496316665556811242337978784990146507967025254557486017205764349599658671646792782315892966371377965362220894469605947019032907512998965566935531211958114731262713426728971841712338634117521461221018120615729919171931554928832308029147176684458970124021957397667702433962811188017207943923451478272218497113432014399930807664374579594825063641998903685477766049092782762679071551722642966242807643702874322717193529167585141226775030867408203788430443640784591849894874989526781410726091917092955883608299591870913547091813354736659476505019671533835946158513622014855570972699821667508138324720378379201417960571777702262537988259644039373730227600625125355492883559793171584790989953842583101649809300736951271341835008087134570727904438014047294295279355093174531841883907686784505350801806537216393787114974505589953150584699780831554793534427590316179742379768167552662413961942496972215843522189264003767323706694273874179746208252511173983706333645140319569678881841854282352822209028680189926922617586870925789048561192963716817641532897834515623982344072767394746204867275622934006486863153095307573449527773839288478626136693853715936278236762351528426332323418571640342355537497816847837061697340645094896798565894273625338704356895995087114034125246723019659785244964505933485862410900981633460324882078253320108315553726196211708020732895383678539124524607578173956244076434807912216953503788388474362410642415693709917650687288673179496921741725356220054833793914326254804727551444422537925206467132414986013650885086318093268116409898473456879476814559957430785721031090129249684681430703496443621178981423376591728684544630190939645904233337866342168336823853388350221391077126561293672886203364655408777981333477185628511024540768675337914410785957530696103588411494429164954593366461364856086622191395884459381943784223505722312589841687133656672404460836532538657638215913996834925977856827315766186727540494130723775502020607925132716401979455365632802371525115793439145105160075716109192711708567692682421850107676270459497811792925279360882134385380867665156037609869075904206073509156248001729777910752157208762041576780661509909463367321179622959457141077927689151878077069154300379530537862356435431144072608702898359950597175954777882547747018833559463802060225800700321649925048385281928276091289325400683726002295295549326257269739378410409806261128433019980550887702905070535032060627632272869556751640423340720296883203577970856233544140856937513272799698316056308854448609329722191107135248203225011286587786369790885636987907248473088823592426991392832009641624989756066252365670414954706680025514726438553152249741792638388741509280045979729475629673120176286067580260676054025322476773724688321659948306503936396853396487829828133589146182392721660668362421801057230561319630468979397191698796166461737804410894446426618732295717175487338729396839228194401223350559289801258542458481922852057439404582025651238882185079883126059062291504962050327594967398270799914240546520795000932562848477009396596571686163180992586318129998938220673942462701390790746141339395334286300291688942463508269069807572906718582051010087128538695795768111431387983700394734923656449013470609870495272834407518149723256667068944284146540639333954415248658030750321319241525023716001078428906173098047528666916609768933322377419699379489329549180556571561182960178709419471770696407785650370580878097375696381777656634347404931852049533923285912045297747279123417881746272336926060752284443584693509517277997687014068745640527419466019813422093992258143933863811639613099682611342540385354255691321629035209007658652352816836956320549235102938791802366281765638220439236659665536565233044654310631985198615897050973757177171516825796314201290170510879297227518220374885348126574643217307714310252668401808247792285600247507835810089626155008958359363948731322260010752737514004761956147369315968684574049966896205693551790354909576814651578328286253836079042746282253806810782247145190636313784194327390305666809842315188547545063246272743626548767250113932003611855803174511255073794512660101328022602865065123362892241184020608893383168155082800331758358611481781174111666346270040159400944990515963231687092041374748342316922900910382320376412134523629630122659582159197452086794841484732282408480375753156164327289856447148480407841828890605044663083910916799022637931521509564218978257276490305517392992184420308006479379442187582571595796651643852460605510992011242875137980836619447206397648057149564167779361675502453205425304107541212253393418697574223140956769380990205739434206800540045009590673820349970023806993917423295399821433217538972949981505279579105202997945952078473305831275408958688652080448982508272199442213800641363069401004616046140263264586683277458072612551728916554857122157088325560084179712434760838297775139947026353201616405853139627405509730607371221033613464842450142688703286694228159543605851728334844940866845276004995278448220516163363051966361979920895818937027870967512158655865304850110819701656999666313422889237481319100640005733576734748177385441593339034307030874785503923851840874503939768213601112176633327437930860813977232988679056131176053371386079553363274463307267222227667826968113717808932569801062672935626199609485657024054478769946687817049068673567058703775127352447727989919225924716514181588406689000517647269755392818069316628533519110714165788871009780520706823764165206274260726198939135692634749637383697068978760789752057836472594761923618525198357658300390561962939648032684246828597314806002851992272538188252356267650481560973037946426633487406243223709022506521658848524373698249492102202854763822776598299382614181978689488677521924966667539327589982481293626286730577308992668399302890876462154165413355529335779665440340354508055438043847102556565577366828306626023484827705534427785242367524867441841105554481121659323099745111883185045640733379382278744802623693648226892166374470840854512910039706979173184503229300834830059924421502902490865821394442913803489313536626909995670867747879114242183664351159009448506423374444601586471160913399387860384214284388413995764742821475399084105569873626466096890195786996532587193300010800933154911597213599688487666408069871903364694113524305406691913865801897036636831042047657093307792244062500714790861682652182624550746872429488222790443365236858751050297257288645881263973688677792732563270005254091412066727625529269156260546245915269014729590496208473837688393949562475337853197493345335111421217320904099033192716789251964842039894672118321150745073099577424153095498631150068888547448652350017743029062621127315075770005476383024137782148307938198796027361344500586225188777037050641316446705823276214520373407921443720107252302531135317440135359878460400296760845546433822536567584123808336502344423981684960354877128748257504483149726811142257932090365769070292390106303091617363188715220399050103000490379644638833155693590185327900084955574440942984961052352543220173962755084610997382696277017724238888351659203828922182282161123839484276228014565591424561642228504138823908760465577453707440868286577983783605884956628030748712053123019014583945183212550691734095258227064224760179447631310668280167629342939304283166909746356373233709084800603531353372181320562807676460044284614709318039595403864071168717207525057487295791132599889103888881211011513889540651419124395418935859587220335446109585653792252341377120142432399638469101545395312277950380891452827683999895279185923649150720653673621258829926840857870880383955791570457099376579737914575807333728776512862132282113929071099221152436579549003947541379351288074506936806696678730550003515686792525313727642909398364859707043597639295068312531255099904495306637199279234517014423840868364763482154612388828512943363810305747206984323700123914463888720179926384661612676227373711096995492655633091205993952533997249554435205486763090244836928038368153947639108505262034826067035359948466032714112812234730249930722552353959442610159143119419504473599508361124001656802982748362489429676174936402768429009270928020095041151781978117869644526390108990284438643726583169912041174511851388855878093341528865993020975015093251558745988739091890451145130898459315136381713871022057624005444485703336680129252820175763355085274768554600135548082633367332457672347678365982571224081598821751042753178113981937542231068497401041010161638756306191372714591252914817432159848489167243538625001213993554536072215042028980171618743226127536358429584822196551216979528672842045281008858596947163721450149210264924533712821491582912441112449694633949425981435914988479814288210620665233365364007025445562766155757457806636384346763836384865828581609450899524588673595041310290262981340387359053416647023802325100707675427840479601327625066347387565589506531644263606914458525853692920604020053637787436890680310585835838416287710275395681941773895340725460370219644555149369884891545228446151440947527556999892962691779492971155273647233001864029339932654943227913012893894950705201224777805049725999683393238228618969083231944819664736146427542887818223948614640857416213494103670034230197993412386701078804171981313654257151100758841597161598498477533197311146739462379423961280093681615775871667792484324448413742765027549268002552459895457989159731234503291430262205157151867327984597314411896481748800252965931181211278366699299932752446944357126214767897610702675782927792269455643635740424290060632977835548123890468248756378445296545642697726760719215771178322341996332078276503996805092209909388331389088859328164291204269575606853923667631730970188247434803253464754775544765103276003133660360379375228747169743404454922708091051179855765324127113331773776208757466415890022397649611303581277136681044371678510849451925411222898092694420043819366386124201764782639513736329305324567924585742916643658469045070323137732868749875696920285153485837510973783239890640301452282023393776655343040971853883426650960104608440219512885017417574395309652517378299369091518198247978137846403724466771344586287978698628628179780651978789212199260477887357311057785249003642050859436385672598175862906677328623335736333944631379454600621116857802214334904543810445887015266305900700440347801965378784443545649125589278842500363536194935572155037865237903598916049295186195304970679560106028965349156287812463535732147920181500076384432681822382431907355080033371731108761859406167438838507953535956486476728242535968440360889974282873372076918495428202287811142482702669657699797379696641623361397612639848952931743023724756615154829512790954006259355737271717012509173626777032889357515958692675050902382515611220337840270740846576209687886714370511507406513672724620192004974123586886163483471756240321942599735733171287128699200740037257467377779257857077846929622316103219720598631668964898821551621504177343873609888494738509736430167577131003218057271341542196356596930884248525530388719575219964600417668598888707438180710121668289138439744456629119086495510637981662620664765562307738024359189562087431422018928031693180646613807728919537482790895374266582876024840682601184469012889424075067054768534783413336367703254749327522382206331463966658539474252281872937878563155372004128826429955695166484750475170957793482923072400228119607081959194964159392446520414490598426562887018222878769358513430001098027896224721487600116429037439814890503793159086462701226495567209617926259108832168565287420350022021538866474535035629984887586703009562623538142008819517518419175908699717483005276698138826411443304681181816080160978327865093734339005784486443572483090054628170896588861071546661486975763905771928423515538313156910356049857860987799030738803350054046022965969257935457413486323680654131614334085262043271873796519184189493484143431725215649133178145391041736529832454323654515334625316210262389928672352981480547788211964860933070907170472410514084151615320649745355290989467224062309054433145419539521337565645291215405067258593948065692042408703876157515036435531275901743140001335381859991124673725558734994854649067592534069340766058988994844986718695181125212934614895497520844520334376738078770973350036552009339016015522914473590602894445900103995164251570924441024107399969920447333064330775973923166750687489609348448180695657329811527265502788553099632570878098450290038661403767016467032764201799904521154274791800398163048928258101057953557324639057599422744180853704958614411085339197512473450140679153094185757492817513230639146127102614633482423013877052126298209688821380330960359810133660742853867363563995663836330588555154506630898319408279475748234062963441306861107392973462066940664214599830916071208922221059647400233725343067922895235934373739556053133266565745127917413645691502046411720462891459972806594034284254650457014265306175129336466891060089024756795390488776749677134542178094134246611935527180425974886227955091841544304661777023647684162996248276998018164286559746343632535186408111366322267351041397121593110546812087045813152707419414070215901905346557378888045057607635512077680744899862670109753525987878344959425902362761606306422064494763192545551750461074639964670560797578913301824793415791312369570442954783689949019082865137620238604768377605414047254483387261094313879610338470854647139883945977245594051936064556411740448011765005167031763057202712002952497383912671651298618827157719141992501253830585156369925534872358650920652077110220824092809349788378383302930136356318969087153482308558798859254337115401195353356672084202182353698532768749406383593668516126890918372011551644593048508298055583101613944552762734858353694652059505218502320269897670452374364722431505025478742723529932255797130900193672391474088306684240480238586726492610867486772786316238455713377287014124474297882234979041410866045368488844490278244149164300988129610883823049105328312440463284216551947957418834887236546789232413510050169078425366696682627504015538237260158111982146222552364505830797913021291938413830082017431142255063850658850236593897225464878201538218225103571101388470037421672169021520529753165322572263269584191357380536559273178563175297347459644454108995438809828886312119587213242502293706777356197172622185793847256150305444268998356174080633679871746193775272734324445511608370940616572818877506059212649455440721191487227634916454613349641240009775984174606163019618981297251939426258172026572936846908966387456584919325936084163663200702788569658843402105676071162741813773990230744355574010824932808966666925108984549981296604887601029675217232291267959478109507650462447943473850584778019069700223472176046403965640476884025765209965532531825342144324825025930244435110607741684939163112746465826533848446576201416642616897279125464506294193480832218971486145287544500041356287123309899471811020189657736299036749880663164712126904590194754972369694965753561374814273522598931249999917352854288677280775533685276929560779511082049354408527212356139816822378401758419604436654164564661006097534218327622948971787726246116343081985380178694344389620036303338565151674051107889775415306787864480969306109376577039225099344632453750869031514076627198840769979309945623703371511436345166095269195862639299329565632493240311127245985636423755899039348648109165211571192884174579081301954486847192225171237476725987553203880607123730771297938665944832207319900687958399314004241972802110391160665069081660790657481465203560365043160698586782298283204249631257994696872932086047646943531176353713395599011770721575654928031996932009425138792141008022559779426385627943147655229918893407151727752870146223481951150612660552874255056510743779145421313702229801715757309718400771294071399478389724554268765324826517413435874609368161133194871818793512416691821303462903264388981860741938844077816154095237329955383460943474394809437833757027370041195313341335571457498277359282476780556954026780231065778820260272273565741772091102826768139602860611387042847524738533073236726571683177991280312691862628127669325428966786406217013927985326209370381919126272103641396793391145665675630592708045007499697842071559897146114900841873093006498674704267179575777101206190687258283816054111292204406330960488146121255036790323344988225969282110508761882644332576922027763607648936441194646630836025599322025567552606574682431094937218829325862907287302712706722273526668659739580537892068192712317938765194006939448968756643029910009078449156672531464921272400080398506161701750413892047457678560099689639360988481639501647259223917516353702019196361604598868502673087732473464006391539695812237164885543510722580552431012747913214544491745301210735208927628613604277118436493698586365833007011887312716402719936706024034903316857375772666824472276898892590876710337278822651077638173659520077958467298989388298765340708778577080001819055970434555890095334004539630127204201440021589044696833816588271908817638931373007476463579026376316735790388452165167506882275234667053281662375658202989461223313329336023828437995739668329903639592278217742441203002981819125315569873705572624368248318096301139544336200115487097757019170971506250002882225478447527939346861069743219175228058957047527468563884117458183008995743236002598625827972667123832597430031603731660181944206432520728734752414194523708534208842089457069347982217175546790788043843823196118001117295812761226893067243306134780976327853490600617628207039478045701505077851085471331972219106369864471818815959637912585297496421667025067282473753038926683661699442674133592328377238023814016400272390662246212119277129434883835673614974676715483231890351821969110703292524675631075120417315299820828307902549779448175406849343898450765512354177874733461921558480494082894109646938585440089242344914941928412961666882077344247131060352798734943071303197501178740028035899809956698678126068059427379540664168425725487471822462052938585942195736688247971544907238589275315737370836627296386798698646415928724979833073299155955122098987499854840289225426523297725089697255720563756764361359020980663082252567914703173291501008268348916368221602428712036191432077903064992622953392253742130470126601465121813907384148510832317359061377659570485104657515966452713724182711297117496458667176582977350881967699481786649923165588508870512760873770070312664123181684102515388153150619956593701205413038513538159999973351839459768124066999366490343362072411546018008366623705875797326450993661127729721644820975041429642048153835282594258976253329864168915015580635103332431294762152824767084112034001974434485283064373590143846236759246491764041460589893922480565410678154721865055571562619510623646150644370060206391018877545172368705813010458373030712697456811215888997606800987146830193893971491385394179211929800230153024935220379240297494726285906561148708702884908026339886057031729972409029607704142324590060555340720888462534408218490091896345494476645709813239049940723975708012671057660784893812112660437535329382157470260234573843295833203594151579347651942379035990843409465825678285043895052866624730205881153592302511449202265992707698389043976213823826836023500434565845655099384118327875456913403557095980752030906479810186040282568515895047433324231916657307394164934641996440764877871807619261342806717979941499217724139942864343303877325266380912507867571552597658881309466580720614532609374990553642522671954828618318057666935359234508827785604181878295936212719417550155816198683036829752805981009166812707512526558391879614015754420958826598037435408697699562912803330566053259695893520970401480062194352708744280288713840920786222496094088396835287956491284918691128797920947534889262250006492976972470127345680422677264397315782157789675688520235953514107225926846511399632653081832295032910676635184444498292994671676833206755811989240300688652975462250404387893974533170485981533609358463511172610959442243507430259422522550972423600922070890281636436803941592525269622117440451492605945920440020645492018017973380778264584691248888334276806539804008864619012237332173894118587283244174954056008101421164689588666265256396816890047188743223710211730644368272814804596909706036814218195279022302742273748460794538881719431992018329976465868406919965387799059936983540423335057677048680271385099565691744715768367178894994766980248723136666688283354006218094665142328844160689110521385692792883910824332636251784589178131084613003519135569290907248257798169249205492354921198874823147116308479466537116821087650743834111997310147718066543276327659184913631014315407157344154663899841845747431151985770026576487419382876843072495761276520656836631647997972247959596105038740378516739900359641875642606865617766927309596286452501708384585738701940815407104082761650262375881925908929992707005713212563877820767156930115670182011631480966731062984723326604590490949898910828781057373197795007803559557448136426955173169600898615001072611735933588880531931413349327582826226383177021146715563588309665839447348324121005077313112540593551499543851761415946661139278745832671719034660981883771156381808344277553451970944161217546434530670818286920869227744073204269420445205096550909894487059684577324996584579572339435869465246109645698318202907691237407290265125508314918963433421733911241306709948939723313406791913583545906386596768814266897771429502434169350605397581037580182865270726361582424610536991140967659184048617334432717789523665416296713260951374374347812669537027802198885694944657000592976834847220156694592095536256797932878210192729184724041934170068308421458764258818409502169054344319485062017022680563610467370713540771744768730488293431682609434529514787993912518907032352359215804473062582174874452421754124093292267888738169702908152293029542108912448295433349191308678487051459204106191315839376579831238049572735341746965758305057609273077814607868416572478584168968738382943706005612492392598012065618089978059244498031882531960640677729974468627920661642566503729486333780774661275606216695542774739497772804939963111504798664599640475864038180736081572389323519019022686055296107817484566346123501328968126313261184968254322955993321861728009320014713329916575485753302361547455376074308475156782135895201620516373652141550369190771797889989236846828858718934632844372384528797601322054910784723095461318398885973397534856143496453749503015791605628060846952203582223418719092233457251173422846364773790295354953044365906830619713115530855325405211581276422715876105204850860884301123864953598188046890381710717980315483731957078232003410639867347795699425819020564877094917861275758154020153620947597357848273821295053328953654123119936448593808453927436837421111810615010516569601851269614931730636210541629249470386173368000563130891446477035943370946288134165415991520364317945178105070735905939568552777325500957737684607686300332586071032338034060612124072727451221762346552513094130947563989203479643592946206721666008251638511863347356678128918622965300203122807736492505471943503824199839831625131179508041609718569734918427582297329676944458191638881407825546694834786780568710056588150782269501501357713851366165446923861640427490045286838923963122425732386654293482792779528410081549628633607813692045273507725689051936441282742906148940328947869138051164419760109832257603070044480924050071895896001402180484433412058059163631538649562172222796159003572220513617413234800073802390750719132048664854940686017347540193778216707631007006386160990396675924063056462140138747826458960541510880413210178147204175953852621481032988124535508156274675095545635165574908856217904381867683394019253501410942279112526283046083337746018152677137881459500265876651335979104247062027424505618407478027206087198618405053876217558291209301888729164937593311921820169111333944169769418166407785757626995779469102547034432719088174926702220001217209346107135329634523092164152540078663728425259966100918587402561174571830075619191836930623177705686468704092450074524324419414122922095808755656923967871133497634650960773308115051688202196385136206669565195181077398439024282792105176643617976657343612475580840339508179423537064864493949838643872804080170084349931694278663942205331633308933746061649507118256051435208588248146586139839930720175901355970311525403169855446598920737721676534204309511636582353428172260111418554811046637919033851968731715506620057551277098921320525096268292829788113468245541954468098699848379399141065275951269901956738597732757603138227755794914269750580491212962397455372123472730037054072953710437067624934136769566279498514678770120393733687395266966085033405572134574910403247681199428970150255617967886807308202158680099209438537220106548712467990571510741670154326226882120160427164901099129154940664733751367989202967148730134299755714368653724804768509513948950430147185773840693029868343007049054153648832675535261779944983842558652081869061748262574718914068812362132973350834974623905786631864309481225003474956858184610375972763314295657534807902431464027329774075309305140743815029643178227184493327973689084697371739039968381225402933319262477704757732672625089537628636680323988520539962900947526414605306713766015049183636443538345626099039707562690011871322095012343694444825405838557882902598425086159254568597259807941711662878452626479311867085854696898032394100476390485323596255103594005682972532237624570827155097297117937730649440682686855863293779940209650314088931390024503770512010828081735968610341240006145662642970533183467365036819402552370106809306102887860205679992535769747791532017585328644627419734177479443912688389146323296485992526932955729760654569756703781813568330509328123369588714299989956784522030071394352994271544651352770298356916996429293364654708082225307099113819691909812347723202212769791503257704137715330169850891210805423203829837128135437841475221257922978542136046470033092073839365973595590614547370228400365733588202993522188478470181603438432079685867149127405370638369272374155781637522193265858443899332265445960653935979553091302594756281655012369215090375036970257385802927470041739060294010763547794908667483716434440879978439907116171199708075029165937214040335895400400649592985750400814291266974539993078693099826502095901838349543891532353066129875574510759835441762567581360674415320845064257657894555181948111336916447705870607518704957040193145309418373023838557480675217449387114553939682777789974886097319597276548737900920523298187126852226429211875767290381514627153286123621892365630884589732801224680949327233171790693098982551091757002963979579238650243556298361281101704563936225499239836326244808127458865826059511221171480614082096328629917899353596580179850211263486142370210434831435308288482569172959123875648349908349068361501299518541122067672822945120957101307967220232799012736632577221020618912652099559160897652153763529060508653201263988903395451845938451397716925574748650766611951674501626336248320737985417917735771140183907441792638129491320846054023610371892886612149652992600332808753073283601511722630350500974319539344672990328337483466420672022041711638473386405703463791762604674210891977069213819073899757600297753686899306946040104461286898329296183879808667325395107123498683008226396100082826643856834056159854235576829351454946071119054790632337583840016813626494188967080986732663414513241587168584645000209417225715454201817593278013142180806424755103590756653497518571701620018081307164864059239594660002038983566140588870232992903807552333156553751044231233970487079987575607643573202532481974346899550535662859796555168318210698686956495325143131881165814319922705685728678045834197862624634656545285321772287344703978140803584383477970535150892809922538322308050418956762288366420780576487368086521925612900613856638066748173254063357162096392222169875344282335008505208585411782416280180715500201673254380032287137566363461370752485703986124280083361421605030759300926061015578182913899922322588773852879216649359003336599986752006708947427576554826288967587738507991835757079052046934656164292149105167774249899198343818650589798032797308937848376063287797221759375588795004436624931990853200759110527831620949250405925406783053093852936515836858247514424529483705358256190798398445421941172769036965328306611828305733237522417205019733906751814256408904060034898464841549480288341372871932646393889913735835824613906514097625716652824461962136539697584551774848415356934733666230134506128261851935865771645477180896976802221280308348265840727424001996933531303224888459038908321096676557965956004390467782959980194474028418668894427245849134770052486804449500290175227893384422313553014261760771075835035634052306493511743484748783705988366519542609544556082080523047155122396093649453273502822221605305956914991805678361960103581425540397399993393194106155473051438425063873113809912243732661257009041929293942305054890639417118886340582927555978144979341170677290858984250824607752440500598752008028195855618316733697243123001472188313690189448081777426021094042736656891502198768900127430993829185422257532515327675260771167315359647867064009227861267688702001640130909767513854339443137356807282941069696520194958664852676763279100189553612472619560851353455995533249283500034712214414517722668226129812308555144323260381448134135636126276429605020760388456144291062080049675835719956571193865348914505243248489525506688281877198253783480051944746957110186095450118519365638334317438470020194371247907459290059112562565059922260278652242016526206377642190954123289722286918552090477355311851556401140847102976728087709633685138628565302088989835411811533634431620679995267416231253120284290618584521376540441355602462125493875315403938421695865910653053681495804494751235887433503941704125114227147321515800555289166983536632017029642156455507513438470135659053098485533840834956829266254479692787441508647049067883721078701873813690071109088288250985542581110059087304959882367690905984116426600615907587385702189813794974133891600663389533905152382927124990886577251140453759180961264619171131513963782699473401946632521740070891665516633423433963134724089637942974656980208476201499364642552784547280759722257934996572361066978407979723724156381801326077986069813312227357573483381347372459488165261470240956493242465147476111493032643928090573665344215899093136219823632266259324032703832568919268665843869732392575351972112568577767396160568619693862562013012258987108314492902009382304624342455881405002315288864285506591101738147234758599451187570082331926026171787487312561379104149413293067755661447813986186661020126938991204605163720089546210125704186219675942858278466516396052606833468080835289788355198689472882925417245582697594486758567470007597040467655703898592527869025634852143843290311758667789386849578041385031559679347763261751509855280422839005075722794496841659362340134812750373154713247239826784956239886639631181035892008985632358440844204970470767935341490821086238288697192703338803155557612708812506291725150353514250085014193213371905336831685773793378350659817533113442970467683886873183849156487711648196260404897558063089109283196631259739450935287242280960393018526912509132810298552811149496475855529463020616036138255257471964042712412412691501508242859392297890979601719362684630802788205998650982575929982570024804963197563442433283277090359981956042864172576122191939289193417275554554831938065626939846564188466070977951896893546632014195178139916023465247124186468246541060666110655060446259684742153346275587342974408953341903741192845209578984666023592420133581076311719665135137871774527229863179692259924233587716419365219330529837397335068761939900903093808976021594603190540257740520575092089254913437648194661627795518388307327800054215531011766661210804307175004632127702131148601751505612581797161507071540709070107375636095387085377863213494865320096675689119727274350285305340014921178256400258793532708422896094667719690662734023935983076963324966406804465378043183012397998794408834436972021335349283537234818261027051461602269352920793633577128661521606955067906968099156110007658372587068642212514007662976601606851203737931207880609802713588948774863015511089135405448830418134775926727877611921018752672403576215215252371542813854405606049604541353155102428487251989836622443105605491904241819422690351575660417238371117626371338167692962664005602952634881527421607535333036562818078840510242509166763507870222438230367318814097531866573159995333309558317450635849936603198013186271649209087153743501235918738349661516832387317545067586233636361781668154045498031778349090909880675512374970890809911486998929331823505192922586682706036368074932933950803657839514087030138055131339908649373505170670156331968395329464377752327870612059796432333103377986925787561793584711207960061580627504831669988320159176882503125986056538540605776864197583282564440207817485189596200273114648475230024851581667738686658604099286714605354027215494033160211615812906911767266842523656138202088722031556352353086488759107191621981457765756871067725430886526578194945476560289083903006969229111827117635899364323295549228411596247011848738180900877825672734041150835254747708297706077468568828498028505764210006486397808365949753149121493463401838344175325503856487489770990290945310630221727819677375939682057556150790421497889884619742412112557558832940245298228260220039073488045012409102062759997817801563846927476130367034977095924702189430668839545873538018416820769235694838299752798819761152285000405329055112922538302369192170283560380300878932610055118356525019003958546489073520796361938335965670662238279955261313692149894946881781311857934689456548351315430218920952450028563783236642743794367564447979785032005333754799523092992207837590631309603625777959475322519183274662990984464373731136809528155557298973467004569894969561633974264486280049062137048220830377202701466724042612160648925203974147497341036822532231130086535552881473651852847560685095801631574864191113563704827998592129763560409455542692321741704594580458914831549385604392904895232837821723416769615857517512290068122378691762839631568736987399094528384922932950142023224435496777505703273714690402715627855019727661854387187008629121021143976011630491974550713365697716014751115673882836111528810813124804323264316234535696972851703099743049456733960939578766479971370732620802704231724179635592389460780588743349039491891550196359273764630045652285569857850728158015549351098442103218909332610045054879377583484312251616259722029524276478097843525528522814344074601478214058797490045451069771075560266091633292549865024092784206171788115326441409233166133388215856200001512072114178731000329121640076488904421835636861303890769100928089011825439291755774349665467884322131132810984137809996255110375308838973655524833289275947090330700721581687517383121858835420992633076637355544143566607144385701580469269668170916654549049102750853426248382400986949566510748323402865102325627447965901956352772880788762094664773490955711028325609801026214513654845486207376097208356497863056655506394889979210493803818230354709773299465611575068792857907692048531809920168068470530264565977709872156812290772896952150902274857182295448230327528212937931556995607142513221856255880729656017653655357949991846287792744505761494156277266683386950797895456180253591458208281668239392425659481114122902183013791126817787600447185991028679056687367461731385248557132369675838778101663086892075524157618125206634594522787996670563005262037805175682719868883525706010771979584442429426855022939896866201688063206541713866384542736130060106864110774452563119070038068974360338536458663781489907630495163448532411074734033774077122018831815833499501373795883422028756804235574851413008031601603909331720770840968431953422016422590047727341993623569895564001426550720261738427405647323200930899599331111540037374680211289960224579532496460241608478167221617333390919961202672631445240643296656298730947730341870726045029631913237198725295783006935606647908695197099529782945611248797345276189427799233061037762330341450630282979376528395993581221629807849861793183005071202047906566577289064970084708061870991138650596212621880007920133855843060895956843863628197424826533616010782542747928397626808220644886047115342690253054091794134668999428218510182179332462387795146162201704537859595556880508473317175654676019880238641688873216532718099753860423131565694489104504905545020139243170747934510348902614422323342400865935003756422258862637915683955727706922998944975118092399014210803409352871151175797269992351978534168444244403336876314352112154672267322178995322618615602115400907830432885706286517349169036023568765469262060406431319375744986119454270167134929964628276933429455562509118028416573444359278495672010094039951739227565880897084950951987509231267194133793209798238142869110600485998113125854125624669584637106727510218838013463351855404741340353372154915773256484458303522489997157929546641770330021793117802140042217455931572589703662207714002557709392601874136632301396261571176659382416600728947473919077673255478094447927491141172937701618289937668419228251930477396302834321965516046662869670049811576237350157452223228104337559663949217704743759676501990151650368109079926964363686074915165151090148472853732317813809443810090190888153458152540034812791212108741981418575227097672280962135412978257187484891980220491257550677740007825847676279717227920904101725489102216100896108669866333612966789451298752770277596552866555688078784315790318679858677208491112089655315256466252607159301338708590216221532640488974507600438824574532747287234478551287852309953238932179837093511177113998757044091350605840388482968310283376368662304903513833302268541591478230709121949516764701896998035471917214201918528012941392819788342438200701318571562494472583919266759048638665738694429763067095100799144395731669076977854436618268098491724577685218222693612904176379411336381376625753931407765967976907325051253639232925317464849542262403185622468995919681592506094129809848008039476861769537940294777099561150695894307790658934032511991749755636001029520918558565857459375866062675485794307860134235386009901347484118691836751026537751219103085175495473124911857398825856070608667040211368233326232512093098038739126886841616085169599969295891383102656660980623707404299357839038645395006344036891000898491621088054928801942550114015752431841280478367579409155371496231993925915946079985244880076061329074810144468558214946988757431003651598350542766093447669851612576997110100890251728386148508058531671567785786677551452125905626485811774563630681997206300934751569700498647555012828226157914673436506378570366621510608348371013495282356816149667308930509387490850532717211100184473760808260331348569313262884633602146126472135885922414030060761079238938362517229449362706873868558299288329939336441582589786416289891207706288389403394798160584063104884223912182759894455884895225725509741645508628889304527213834780162941326553099335215672553427003931907557782533015252452863913225899774189988795909954074194419519395784895611196479040001222292012530726941748228634213750838360309248224850117439469216620687672879687112803825645692777440614265188495726803447904582942663026265520008827375268148767341123851165293735669591003968127481372299200993854813361694436855568830302726960750804874634368922475842074773637944919222254290894574588476986027425655052725119596066473211134222379990659534069293114682822737233542146668196207225228286592823858752193646364816890460485082166578938465964986581655600761102806324565716610141715129716362497146022188124122425613591660210805391390486911090756044683770493668128346402573473057809965008152378420522896945479888053265751026872033892230030769758008024520225991741817559317536662985832537274948070121074251715847565299838141947610528849287666785328003641277251442351390332019366824197282821609788647709829594614849653002256338659032684921552667972080045790613751186285442429906388239392801862639835945856528838382284139125790912218262248055140017901706482691360696196473793826010567334958696857051208804164282268434759321870532488706840671034504398382728434488579720161741149116173357191915815146436536120601093616466659383704495207965705646812139916957853975917064298166318940237428237322774065707071271139518342429470163951281119735705193648671817165093490044486152293048643079674417226970229814251043016806724171147883871854807579358367250418298020831423673973422809841201495315136779407568607279780277924309420667454618391518529177802580840593084977467301131763571963726612915626183944089572802023440362896829453768646057027311762731731311986420972893146652491942474843652098127199287399856281011515086534053559324172406104984284126933637128995526524543868642036295834706202684819086584197577567552659515676502484679972104811002863987183061117502296274777805632353363666808648336011179827972058448723570280152014849811286995949176830484735885838488776199037933917416634394306550394862386374377880475992873199768088113199394979220355066970931127550601480456741198424835752272004839331614549289692596913013455383394845189526988568345601899027565664890747801296869048419463731473859276066264775878944101053735176795096174425246158007708811365683872555259242722792601608035044106142970962777121780753452747544032547932535668360589041699013618607481481049706666512403526436287630362947461202089614970658389205276035842300460203821189865543236048587685007649059667740615744236593053266532839215186719515155621703675768153954045812236924927566260273163087386814727041012364453804927077538503771243219984926508251394537789051580988096596934228261157344984559329260666315752267854090673977834676678335963566669035544708297646340061719128125653646939576326590686707863387186363369450556065541706666563567503126633546083230870661878434853125332601509335918287410128502010998245919196315644395935016313033611027777377225904602441582892004185879096740060431232137569509796531119839944189215223577006800899725590973559957920819767748738577015416364437062965677917324315083613359797915863571146375924727041624479930411202340350390911577434441173625403866743763131852034825841352840603611322686542658925188903523442139036937902284811677713134998979182945579880356928736766941853342398914306470700969380591150280741976209550801097561369359369066463104404792946248077527053692269460533155350371371144216937990952858917419630783585037620816087080877081494574333992746398392666918233002858854182876962331200086001332128411251400782570097897099279226100163447927979822131217050257970549551341764461607596911730517540142899995337876910778852838822268186560694801388223619073129292573978171538216647358040312584844023422450199752220038627942110290374362499975302177021049902282204821264428210715902135937353569691728809904620699470442734259893410822049742334331708092901363796557182128865801830994536560394549085919486076946505705175076684059151674783488518662562174720360385800616690265796453599736194972389988144078745804558661811528003419672626704884676760512539455382876980815857270231699218828689822330576018337965552479960383922983280444016897970477524925386842772924663435826252042305994076194024738516491754904022443940124827711629915428598187424294112270370274302372260049934285156580422871737684766141677968552899118945691657382752149946161659950045342499880601006633285944581446313159847681979247945871250623434932751610508376779523212765628286041028747416409102337723438082890861288240214531396601077138473944698209560587893237874376116619942131740021667724104486729018361646168561507487986211955367292780325849799537313277443310817828096202878038202700457144702480570704231199381896756289659109119809789888491570693025453153239177300308019804063142845788499555569356733346999115549338585249088359319818745071071179041419374747778753006012782192333264530896638039575216351155715342018297368774042884415671698351314737288055269501661263864874960878675232973544996727498918981341582271316891248479769027526285126630474270980163650412151338612752578727708973247396937908468962633554314760472170723386884054082041913550340064301471503936374940942004102690157994579050712551990463774700044642078381903785143731966467519251373975633462533017465049394338290325671560587786086479632038238157107178252140127471451185963482789964583010169826184097323874868849852634301471661185337729971711857452107161227306293236342844958584164238053654798109880294795333307470131349709628711077174145310257673603728619907498781555926449707630878908463295475034583710647192495133200930512341365977825841076654554937227236013126279005584026177211401061719454902715318499761164963332931874379740639726575302052287852414248118303131681116556549543167321865368778442366918468012471989925370070856942637146824128178402411684212756588930869097854879183506202377097281596719353700179358213074158982994478942269250206516853681975852507287014433129920702450328452739988257370285059812293164646655159607637163744786730655665476104885242044804765803246458208827607223066600792343512737436768610913109082967723618557250270016135945425705714967574524607461391471409990097296134976336493409107598595560141865923030925331147706643714008990155161100776973173905509162039513641845436641010587059626423985549371128569710440604530945825363627051314210195860735706632912173645007271388554925488938444204535249356934073461283394204212818068407717482391464800191427428626662439045238419945020887084712058012233424706385420880605760735248322835162913057869693288563485138892389147634753056286656115503500224831513506098734227949798185368529490551344844111612856003640490709049636510224394437880723940692396667741028636661739204092004063031528133998168686800289518971677630497253724903003172400671247003465172096625148471324317998463552802448626041868604014442954471216426432526235796928937595134424061034779011899887784880575412913149657096426462938592389271516069172049486915180983166745190671788619790486972099980189509768400531312000643086218411724008454293720878371575863866775817291447185076531315990492556903426810582017666610871692817676743287163233272329197030418714079878409937361191835542359950870211637794270175157435831758423505100678486753615106259994229668657458504107550702808612186998866195618052665243267035442552945918901195751127970557632001907743015134286570103831237536183931188925286035183371648339261672640098237085742142511592531265661371837809727048010758090345490122157841231998727133150100128368301086899301206935293894560654578648403287616072678474229105951266944171000408167250516148607466275534367851473338923079562234533393426863891851617519360799955114154828968095749452134766218747518670962157596133977343549623057297482999903924539827731863066293595834100276779472515585158458057098947618807892722200473037908331924924876743075884668967149650450434784250489484170818728088584113224420391777375730620534487117759147498273541256569127997719773356142827803222753827574109064273898915123134367359794689365331209403699422957826498516575676348693107781143524028889552055559293259066363475650974212822272347070138417745261307717540947533613540069089250574665870895758672808341495900497636295104726089400541453438897996194662261067075343686772595773484367895865624923889309721067988774479615654725640836520951548488109004013507261432666104035479156422675399086911543719447107178061646130913299723222872873538024454256123915301209824661397484777461573105833616717079490103675754214466904465415244077150225555902359949087061847509933397270171812268429767908969471858174694438477044938518476935173815242761922211350201645263722761229288466173814667783723836368051991076690502976599104710586739809294711435842797296524722711594440104177004600840921278321036437940726345655650678993307537372185326739339439407938628627867370399018978368189138105335432158019873178316402381048552696542548714795123096689794624142633333036168864677040460864421279943068625522410397618758273922778258714049313091061468415265869672382261955463570088814516780483553688405017829258904690850475892533805223694144537716708100731284500843776787554835275107289462601941935990692840177761173933248994593559542086087992489918119302500138650560643420860181169997359312051029859079025051896094479737014297653530304981623284782155376257362434132343802320632095493416938014204117491084080372312476950635446503209028555769915498741129031722642788079476172416225193543117503695074018179636674133796889119537626660978493759853549201721509383383109931193226192997840309337381737400728097825792159952236070280107390555490566910223838244241136358898262117672555562179893970462699033506210992504562160661578273586877202864699331105713403746611126978614829595380968600580771155806467236773909938899803026532683189647761496737439945551181673043134083211624931664964873683392216135694022391231768391390927861438148940579610951193833339445116347636305185473419668151674122351803843588178265814553870082710596103083554933937016085937341980472223974705121050624390820559301158595316570928548174223216317225243993574842457440093502321368464991813813147815405147586153883886332385671801182263083081415117592220188234408465360581942892345728582611601808486270599939199051711026121662531146996736039230585235024966634457079915392853754517833548080425628254892587192459116093088944776554903282356888014879991122843876439967306190631180410803858331339768073536321348844449107885840463524142904190570072871062661915279840842667409234064023701308315640538173981471143474886221827724866013837513035826964047869532892680255396748678606470410518190860708938608850918001612308527309077449917079789125680484747308263344312002806593927129579405553422111701660050492956403010673548651957663471474384030165828864713643291071497914479886482725324952567259404054035294119063279020787657223812223793460551880668185397405852016252346078761947560490092249722087110197814252180220368131672770623571987855568619896230813430619387420722563873482327387464725290432025745532871795272056498749950490865242000696382579937507515325394888699598551912065942500008305146532325016327295227670529308940372072496075960334038869473070117936240009063941410187932649464125330475184297865328811543441393320776886283142751807727853550520716535626737549407519340459582432527987537115684463204763248481050036724155109883563659906328290958535902284682362091375600874879006917003883301116253716933780010545986633823096243497818320297985743890340946276964459867697554706127188894012887268069978015439293875103830185563440477448911803255431630775450779691706756518890449512816140292317875012250780513906671548623953373411864035345296441292170274243440385136721810372636867477888844368908009820633854334661879941144018102952541459129111004597898485723294019558118596997322589069447887371938843688760013860566950738734601860980794983397777416398908516294407185939451536393773537724796791182293543871856869094028891572614994661406503970191806530328804917722486612073439488094953055134099301464049276744498717634795811346784286624603597686316243190324956486452207473791620519476860103561791884780975344173401889019265930358338718063212109286070741800712788996618049972710067741398262884264519277036831920142476149782053931581684515863836049406545000216431338097009779252925937733451575209990095126277101525699516845382847176835336470648212535768330571071954390564190729062732346005634301347772443144925497867359834753624960794720535959765052125135657588488270300230780262089218690132398772739525737194180737891189358551238276609798779304576772811533109654492520286348030434684901076317716847180111609816744461794801446699273240547331876531143158809230549270993952678017127142868377649253798338370169079478895041992009549389351634191975298071219262990198185874501202235341181511306685665086973439220665449545524166422924200026981158838135503745952759289444447118924587150336504096971415395713301786612898394087072370495581618355423029367050287550410236342930428451762700872445623361889736861551664519116564731029050921912432207733918300028753453776882633739432355934600473370191018922691036314654415606084645926371216850421459861517546547373779043406126114496939466164962730072198343884340243811138533978992235546331683192436548634593894299364576461732645756760695040706121512015994562398044441214330926253490552265801767118167525232900063519058541064870742658229884680876609223594534289837469236375203172150480612934064000402728117601868763676369096037291537304901503081779965216297689720400251961199000627435707041519788169535527596119800963246784922641079758936853200431328311508157571370084280706476241859480687612423340328899852141266076088001928611558882930909232735680588366447127104430499105389425480777525174973570205816658553091907717116274733711194494786937996011203474130356089683290923407431705939140165805616411962786248487660734053020575376688415800406707370110472860609332453752437996234088277599901910271980839819468500761075471308870189791029536446713183075639943494357373043590669262668280724041981790412252330052186873939443135761552188917488153979407924446395318365368457226402810884955940170767440339601452283037787318140378198747296127675021272414325081624007478389758649313116729380118576149513256706328169392626158833100701051073765113492609689592147152327805299214111825075041934903566951284118756526500146073980189049667902426401111452853958535907373931533007908292329597558325308002069402132520187650285972786683723097125589243022112696818886588342300363379377150417928805155351522076061837230149222754112021861716465718921121317374831566676520776173452664082182451971502457350073883042935400916470966423499583060313885524710334529329592667822183301620499921933777493010667400068135790419986480193898343369221210298466900935073951371920680590333834915186615482062558231296893943379941729289950505242175592768872726042173205759503778323546734363965905105381259907023633910321859599547225182960522003988408996825105266772458052288182868264863291740454204316945590644089090684048854657080436539399569857966966181033725894873329470277682218003784166597550797133969495047723062238990007841559900182620533084003057077247793287570485617226120816537687852327775985533304007420215486980747573088582535832393938477286188952347268964638259214025119993969588664439804775173698381530073680425022352303597789542807247375746638935923877410332598480277361673567570321896477954225858849934455373685046126603204691901329658256047825760700269061874374680736519960572701585850810356476592511807609397315325458623487705232580209982940721493637678804108400168825885866597404986528740750512790354285809906821000434164656512485407429609276593767215871267746266756032620621629636243383623852549754497822859826107937182225010203450477495173432806781310941641774315369143034726155751487829390643333330889132369317434075319614003471237926007258932247057044791360646863825554995411523326567558147824382252626529143884550126851334874108089319683311345079236740886573186515288593300328410938194364595914176939768928423724604746588907589766334859884276043914938244541343096476058047874267829723907491986577589747628904031417742378940102775946674803028564481394730488650108822097945388773447916994459222752715979168803852433258220628594811407580940074562769228683548478551797901145484866638372504513531729288147482353026058270133276000041275220395576594870699385822014071840738753248116111730499522994597831585123833263118095698167568659179788426553452828413179389324218707253728818365730141984881832403753027640261382646433952744502855334142612528759492106414147660440807733440811886679874174277380486639580894467885702500880363557960472331753812555177137253417670676083823470544813591110233080679018554278158716649396027669858771233951475075018479679624580789198132205025018762755216471827095376494319872195357389584661522562528004609113959978046374414193972505606762268418511026511624472050264080865873431526891653401878088618086047655724625290670728277638718827799372514515088422538003426943629684640701725909641136480424689803609810268740949846736464558719227780272890495932696669475691418576734090052539699866750848197561072959186935563691526625062422369650122616488655623636920443420562598961664810608582790963487722920452446105564702670430291858671520352118297336776951574687613188238002181234775309232241627386810586537807019809776713806990395884851191658018504226319025436432376133039106595639263541966126227240916362595258210608039299031042515781113372703023857098936270270198638772995245035118949517685265240661286920099774560933650278101264917616077202019806519146133113613660399833632277628930141335521173924281363309828173732717402535341160355641243641374899467682365335575123865806381267373031037038358520145081746140480940735454972906986399200563365636676465575901890341799412640994885375210782891356849298501027048237810344754035413150688481846549934395738393073378652504047861678549754433944805763041463932520668455940655893715472310495756155215055510252552035604960934594287781248508825356417301155994849108587952282118331991361731541851687042544965419892899287722201354703155752969734978991112251799307035634872562860424353887204732463615456448796442071849385543161494793302703405410863679249312867773981134086822470623877317703485372538597259565027388347318676116545713755230982942341805828855562858140705881480639441674649953350785871310215712505835380125088056736306084981880797339447154489420302465292688886174532616492209295453715785889141325457419046851345259731883258517901717998887277450385100275638191480980800515066690434235085619885558518937869456891920042632977846221998223564777201222978677536109170846958493783489533390528263690128197972364744363926363461719082436992657260804954164667936375638820493432468985640382297371295828506568161947072968683744487532277408954716289594917502022986090940906475490246922408418703283174463798316525123265556329002535270460500617767475318133288747393896157031084123671167460859768018338945204029625213669212697212216080323020168693950762575301470796872646014840165755199189104438866538301344542214304015088421406435480765609150838943975694005153383732991160118995985961386790549722775459830503676722832084470414358013065728196237185274629085877304303617829593037831644880463104582224636345224460385341843538639714571213061431719338351486911335144409136741899775915256202286370302797681205795230811918584205673239786196656675454439994129609288473822129508531399031026509343660585304287482811194743824065456396299340428672833339590425153086735233118933277366035320855552703838577736726043342611124646343534002387571098012545345933431458955836060384656321606543807192950555792994312824652480573938465755041382717153771018821109762935264061612050473205585374694066998341887870699365139819718201309077977559197386929932426912570331663293670286091828100141582208215456814247787128039613202883461550233806997852156827157133234047275594219144779913404593934235419923719629254334632695069074787156507439312319408943650825760017259400715412296412565027345379758656203428395311046059773335565322586353592984188437600440300077205412140865921170970008624929926534081587523652780751883981174873363745839395617390909178814571870505105933731202006702301823492352840095516842506549777847547448059734841130188672001222959176270523557615747696276058132384423505883004166093511954813671507433651848089374911433576985239351378044359340215916398879791201049928168650553439430007790283067676651671207497204580552490952372364331344868296473426995722693231947176388240211215503722805174906937415582479425559187617010561384740199888260441411551264767510253646384373883683253085968687830620684023513450822902917182537388303846504258077424328153991821600828643248712342083039713980952667861399858451237325963287405346954689774532431079418687325870682491775066724824582261567478786525378390288778696483275453670406576420895234466795053173404479347950524324467649715659034947450085792960139465052161727073894295226913629499330060893688818812217011439398254504606470053408796895728644822167161233773549222388191960189684761950565919931626100715614099344463909241160470261311001516644528420399643483093181952340193886778142615586515835095626326594395350122478941545342277740863945334448733970944180104092000073916550311057726449205438392091792844837224699491031504722311490460255395382387098926205641108125362939707748909506436777803335305295760393275716362773029726559101458123497565683215097439462825413811413733134784270966940478767445564820046273456480002338243256966442656545266639322002032602432474533452233053435356594639427809875505671755744733415353443007979269317039925209249244168731616332090562654612237422531428720257469631303702713774053940554351961926996926470951084197415644141695252354013806563333195338852999714899226339051017042495379124830990367755615619931498625897280894254028935244469231865532550762381749239974972808986885600215555543797956652456707604153450294048056643684832255612713520385663699512356523081607882828053283422291192376166206761813097251706671988662373758815008226903672885539935933614168364323331115525473771403160198961669856703734878917323042513281318142728239213142145314611456982950471607856827788467898603446438053273643154881343779516400386815775446002660429051310075305692163711155116979242711993556609767964511366246677172564203244292675465670990665593337849491627123123825550738310016318254599563905978319496372499297735050909410313864335707017135127134260732438443924358221795344965086595862524630941042788571002259928482910005664942441576897638376346941640337537059249374480047668727055497785564416404408972190709670563061122707954711745401081752809753070631904062903701616070967567545325158665020897179284743964739857180683788303484979098805105322300913782319755732247243706057877056946672032514068502752572854720445954533265194686179411330311221419970654831021762198933554533765459707475485970620670785684619938750431117190265422604848894522670904046408674442240174607482414662334240758983857423425010222115872779911855245741611723953179848267105489045852388816032860789002523059845097297527952176460386832091161495695818521951435468307915894704689696102104210619719050471366058197272290273434667896943926606386230128234143466668210166233140234448480736157773621520928214466175213181106254244917454242623774600123183439368266539000201792718986016806497132253424387288828508072811406124261685751857514646660089778192206633603552360426929792076468613276025672715306109312594562607201541112605338987457362870321176559573239370865379505535568108266251381258831588477640541790848082725946776993385302103276028028582714285020028911175177407533057879679919909534308027000255903625909420899459354827310982019222428991776430999119516993307124606199445365634273523239124739152696216226137574288753900624709712404405999995662391942752471924703184188046507740520435956821597402535772267965911721934130032575511635020250634573216246492946312251442016557372224126620564072300742781792805605325001307790051776321451906071029379227484063886202647516719737537067111980476867263100748818455076732857980946776586118068766577460150818966078114785205217637265727468022180302126085053727888426595020794897771791735081345037113178485768231892726069047115885508487250696327929551551251283774627622637535257132660901927537411259383741764721635825223023480578043558059488267676728670322968850211268211802181853537008121115931787712641805960185398149964943392838257105244208915578497376593131693038612149087815905624192085941053570563404865342214789096475348572919536870845699916792881830380586080171557094991803542096156446578271125430982792852845401216189658176505166980166063190185529510159500652986140763172165019631380296559526269705251750622858517900469145254262689707270325586316024867327885032284620546919482856585383338752692093942946192023883074716259898512144026133729697371021097035198686849400489301537510344033901378482844539810572660329522696832890936175616589841034226703179585940521143526888777458921156048632821555834303830335686327002287682696797802835414167490252433239033496166796857745598302766172769508940722002269022519771459895764911878070708395550785891202802095157992710907250340834311530081233454751320553561288399607683129752053033888626106777871426750573417825210668627400238703889381660925337826367794455054401949109100671128913864253388615401509284975994978926492171006286603675626526016666177696327473813671276719527431421256745280414308027958759466487352324041299927236976022067708559230999718593028076313056061128094851258740445533822574063752394527370789599399799281397370321387891988380671632051709111699721715568290017403572940191080825591543227728891729566147276850370412466742045091794614302980002234914286457605160505355257679288471920234163302885658419388587097591496026897630780170662756459345233482065817442520484149107649220695719186809239163674012946558952444038557303178490150380992104404683160484301065832902614581594011924789720032298673899922697335092377309084001502461069776807127863856465046785101116891166339371322825487882918915929605970606754151179992351942681882878420305403225530390961484683595714986674062832939218774636074554379710324715351366488116886381527078646998039333773493861139714107882924653372565932754040355524163987931707529038995822599675304947716902024558222653375579718225745499260736753168035259239686199822843226730924680601549991112514553366114630443774669356513451201469816775770048173078508527985638777758326960685205065668536695392342375040199253733478893207593047754753047964872603453150131401133033711556514276158553494515312256372762822330529043640971090191566102182774177644379154112271765189392055714828745852741319282443293341223933017477195637585804422349140060504591278742519382061078987328361010389589053605375761075709214044636789445802008279784190256008634151011629957733543575380841252756139552909004977411770649782344568179095950017722770168216969667709963650070486829717965575170590858400161488429321857254494298041132231862804157416386393212658024891983244354478371222977338190347374381276599028389156553336890575686895130769649966150137212655572054755647835271829780381472929249635595488519533505632691647061742209177600908214767401972827981218151695493826392353030537270249470335652401961242587106955491795982458375412408121810755653743446662064130506450081889857833218977249671062235521782064484006881670172639845703209533612387731317398203352545698431159614225454984638625027698932654490444588165733346917171557169892862581576198025580373236068358962092302922886763090532657359221309204185523923726130924243283043707748268470651345412275191909237153067675718594847485111061244301489080974974826110878573010843849747291810784732275554047511779665084560027011811907070688818812043737919339940013986319756026025271269109774813187493881824273712982498957632046382181740620227062710109161916544021013624466991968590628088503570625810383215346380738006433057405550293909814866021649996926652528956489788394002119219599543005936641650179522297646108110313079368187503419516296573265654371878351249265764107619022539330121460046920724231416645480433731530586631578145385786527435455312301986010802153254605961431122071445042490095679040581640435091571480411693699133855755759346314261239131100431981467316515894940023789908543208400911038056696274966867458339781657823280638551716700544199285221036737930842773337278986023009489009412215763726061057512956769160305908462148234976030577720378394751945070647805161744045254933356356828079273305473715788940392620854787343077041200933108868046980911866881961163273637865965485880260374130929394429599927984703777293320767767965140991077065392677875102266528251574362934693254275895199648049445532105895737823355804822664908737094808304797915392489752944701696659942086180605834296432886590652240879009380914738474110096280575372755482447950335002912663630810054102597162891442050313990816054011059776967762851631283425883484218226798978439844705408400710706965735921296475604907267637674454765882048125175651226373789363282649326418318545995792178603005575685543744677644130673047386719501867681066797851397284828275198115069658585359521918919147002946570074460675913055263745535482921508347070689008535236995069601882767760059993174377876640060812460018602758267558974104243419273099140167370586648122268470140320317775285096551416889759853628869252690516757762735895431278167191176083362708739078750413483491293217937848798700817985261394689867223714101528664709416435391177957439146905667159651162577713596317764990364592398474201550482911317381750991044724311702324578877165572046349396969390785950852613626444954408448619988666423981706850810928485018105566057041503627081858300431999243761446825825302961686568996718484707706096846571069220350107033063696850974498429266156194426286785943732687596501158139591611975041416975451191384744273587997706643970265895001933185366347988933371441152215330187758311235596656373705326995360488534453638590748245777069604521293265325924794136560012752639540758937694845640283414844225412268160070569648678435252307249646189853679859418960772922072222081135365190366693640794457562285269277272014899860334741580889807453063776049822045778845784435798163158972136870519047181373667425870631204620233725482059282154239078365888330612365921177922966818313553341474946955310783648140632674362478787777305098539333012618159552797000510508106827855778660895790808644748113499093497237158147946115919738775107543232143134224792258854036754830233858792822959304438076122335985683345597369195036967191233192216430169847018109033520480974454125865752945863342056765008484826530844363516030841269666256615571673337178821947869926440616948102694354198736418128648128997939888321402088281690987337889005797947825764377696206642059676166040168605969534114218903341556173354355864747976413750233947660299345421642978134847035729540999868535447866494937453928757910340595952175729634317615754298611947318046672845650560268628788252321871093742581941806902729367724771470407465066562633797060193351089257968712433236257764669783747733632308750306305603612520227480593598983359213675533530780150224415338736012874846591509414473789868200748457953336282595990813164879077890406191834599112757162504820850750975610060092598240594969903880115010743001716952542161891885263414717902280936565365537191193737381376917296408067785045655441262658802459525696678384203982343399097857199926849579716364492097462630602641034049568133180521422812446673241214476041524572191609914851153658915871772503718603756244604993182763682069785263441459501617256713222215661146529695741759024467918095992114529102509869531560811559940731222840098743605204821513076882227026106637997995812020970148257795779748233946097145047218537801461496335756564898747249510860507841405333899930408240905551053643912398906220590320754292206685122013481622589523950360965711970739415401995023179207127034603954193401124995413817959658525275572864894558636841308941734236201396787317976898807085279437609350433575487933266154197614630707525291277870600932651365433773848710077116949974881527641728542102973555939803973717042674806972503861664819925536210937138897161288375281930905154389326771741722128556350832908383405306550087907029212892696040561599974232517464497713160582847765509546150672502595173164973164472076754490498338379243487673651655712584765160599518819540504593868371831083390486001153951947811833100399901599461668071131767232987815570645079802776585122345992011151127717703738024397597291971739548860005962024025204696879475840896848645671448728945323928267522422313486814081946311906523707043178705840345562875269545618344791043469542388055258271051568909332663729879920915298386908507447572609601667749392377149167194133504314776244389878081958689626192423546983723010317930554655472909901675553235543387772569191796630616258432014358700836458224954474260125267174910401233229611557789233854071157699393398733089468325081047316415860793909109833894159641234127943691848281870933080172724697065115896569121091701462936608536642085164834887784498637615351142474074681648486371876728121265500731503079282543316133323949172429615944186544009014298305055884617792454407852792700341183368177425464756692968518681779193675384180157818232499020048986091144540452712426779392424321017801469476948394323117392298392329480720381100110343963108462969974401366099473115751118917184640636478080586577809281059733414390659799491493885872539439010119651576930736498064343864392113875642379113873000835324693025412651436947781642314551328128755956480196779870237461266850073957371780850334841166977897391505169304889073138195507842891736192359142866204058910879432965138148279019439931446297871327689936279269956567766825950092242371620106640314244028619328031025491556946013602212205705126415309851595712509175782943981997128855425864721987513216679262506707951781545703467486793960520033607804570972332003818770088681950881401379365707416489944440511427073377908575133596965579845926511143884596221310613013444990700014471428785923787586103951311025691332244003325871493025708109400110640373506443909036430345834390716354970256364550300734485625270888182900931351039800996126740715671020134924573627187390870283808462625055162880970673678577608792673650548131727794624403283615949511493671111997718765928992171433313886544995927620179904795750334251539344673976929432202885985511557799109475461174829616594467772191180004994109874633978019184552051907561287222341239685412628680709759144788379972534789724617912337532427711310965149380719863236498233672372147804563037853695594472112187456894465728496138900584381001458885355510216959765446960004924486500218211278572881700797039299153949834608200686669678335498575795834278543371275005807955065565087108547957848287101029976329843475424116591223716558385652252240836705883016918308017287610414122926800233530695243731110784797535132894744570791599775473098461454307771040695609225354326442550366936337286841547516923834167183441368780316362201373042326612239508309882522092387363208957471321569622742422312135661424737956612383678672934325624986369770740296189566524661420105164576774099030971754215418264761525828845876820313885869960223401146458942892632191830052923367511920156674423328022142716424703599444013601600524337514548729778920735814043195817939821089359753380541737562050420987334806612160730914674233882422205707364138229134268706818642600305704480561347427187108900916577407691836426055425682819719101972164500971737667630826656627007489620981466634753954410561361959976465384461861645236766460511799647702778175559369088733237819735538233291980035769068454794546978184359787075500058905228612982757016264602032190732086872861556113837266580547991389586875953665054020301975472997342086738885949284113830497076330778084338565324020723053000825695984203440652741702494224439051983852480853284690636917534138572794481842870981756934070793094286808753795002188608602586779234772830903587970167321822216232894680891539840711070600817705213715854220167774776228756172345304521030620995774215639706150413580881284085097654807826982556815068028667674641968705088332061955834485953935421283108167283959475218542175379984494618209544022573360188966081534961273538111695302641350886985429002213939114299895497853296180853996926032939051866135054376683466369911334873375248364404699360479826672138815960487802813229133275012400196930183033720271665116377361850640996709696162184314992794530382547209513289819355930736682276783161975472065381076672460557408132726742504388054440984297068373089530965226530611366564890216836213992769827958294951306609209102134810238934974768001359631897985738428988108454811054426332023472689624022226719911851449034148760517034501840885542127864663832939776175518726640274428626531128522494356222849311256073721154003249790347323787284244702733849483882818983577427805963652924226928095387844021361922141662244241675876787625679380203357549263175328724339861491737947703350535839676839628312698102309170749740512522009255654071366686231786544124700432203213600242297509232821852993287738795583288495629206716553498192327013863116576222391890658237633504303962836659044085885413863432096555700021313666873263873182283997509955286748318727758018862421076150065528543830555570599911913550898140678279682696246360296661108018972014171331900947882671411497660738385667638476424042402239989134690038203041771986172586960027027640215529928487117822595004437376462515280010599363166281618035699901622243107097653602228024790894084904605536104678975303019869234323979394020694936922038275874573501936765925395289333693090432454858862132499163108007295561311208723272993754194641735442662898228079915871754634790033510109272198373948745498134029176352976550523797266209914058308396320612372343965700276342409853480822894788637577443522109108186745216057400390454249788419080299006571257859078348819732871786641381062716263118151606378220738299278490188717295500058389808264780177366822995009225561365491410318138046261795313396537581583343180263722258011624021035623241190278531525707042398516537211281904064488271884776983159503114043092832637384576660712908335946071042420252020458785835219965362353769316859926947545668728417845734521366959843245178616264605912451954103071468068602641698374165217279597094156286207505534004086224103849255365398437408754020605945081316647547474576330305536416954569065815687626032740664537270070573082791910548746638809745589921300094418888176142161764742257425695360539062234389079424552203158794137208857326231352342741080378778189708739950834254305320149211446710653315156392038925231440486943419339769151565395612701627273515364995772451574878525005029428980959068902352753120414798740928477766958193063347938200760911372712840841632904020078043271327747158159908122014536800030037094428242512449847466512747547853934009801248045270671627579269622959977303358860498216678140321916153029914265810493119268136542970229425667296865230113862234528981705723952896524797991700487902658447530406298018998236841917381271091816476084659597184427819435851086055587820136041877961102168253159978274572483689109523563643733518271008643771010145892933021237758805767531952848004660296506105575406201705290970689224639002851842819622175858258711670620018731864643507789489072914200710148629745288306810705049563755311193075811345340802762160886988819876041954535911621966333139210745649099446946162254567999011057320203882380584636472505383704881123428341117993329080553151689173844851181188710945223039000379341778407065262021213051811443912352149590778886387225096751945988511014410773324877162348053652735344853254370061263607793357521879123863899774434430181736535959238525274538760541949813499012734252271854901928930616211657787469085208457816010133309485899575598199673333813845927662534203232366133369576724034925267929192790700996676809908092738127380890214447797560628771456698453438914611836833080294335529701870322896259140439231135968836931695110756672746924406451265288331475974509109090722685929242977588884725338686000394711111780914423398944702967303194305654840712450915844199753946806241204285540946236115785667828704806503134622028964157114119156082835207453460695182924449660029197111721817367926673378090934835314797844815823214459959716724441708627190936219203954765796270956746485828577363819662132462530286067657860187537974906578117576746494869009556017836146661019751068307913039335571675544376624854683598294641471339276105084995372435942406343631969374645136523109692612021650834023750382112976836844423073888341798480639520134250659035309629625701190778175829322277521945331027794849985535953588330612337024135027896311317877422374287510530607914908039045531388914630401835478229043936338695985310098854367725623414391309062441866524481463678322690281849026665773872949891779060547612831887397548058441573578965919965702923673469231949994285979862682443971837280808881770986562429635376383935979967709027530637728933569621469158984362299600358114881638616174740374639251754792597701975226602907091177787601828352830140669953795924260830590369574432783235012338880324061327275042218652011630813124302331982895875114118231236153318623195581884967527769747297891021517727100659405017568440383445053803407053696296249659740355839869828613004706766641339998159960476603207516464509034732531566666823992093332331597074521140363656734423913599000158843239276390372825153540474267834359828763282629120122700722380593834276168085295532067149306579786714570820499973426933295863116958432022721775956873682843507602317042585549585330484699920069057422038702513728223873760167088435545911996543752043193114462584970532268839045274387478549287647798868971572137529630206025190792451170045855346185180437571705020691986124133417260739367879029410212000862177460474376656160268285864805328590838937547202063985856723191786055191930509556107006437951900362581273051038531847979270324307430383288487182670526121099104187857227483029164967879400740819781113343847770098861526768095908468670310112458493238901556544774592266073878864607188831853624040005154108879230082783727973104370716239576353685150206141364494537472773838636322258278773277864470164248036010855272425435533702252761316823066144037365276657820179153485232699357596536987893365812875186091387065799281242017973457844251657520449044863098422940584241413759059736241006043539057879135530193285514977746326446039971597535901964942000745594324299306769351875641454909294117983459386489959145396451134526394659355578686032320050109683017634635153204100234246259093919815322935232972280819162357437379973570914054454897585768258504036755762632585356336002742533979767779830667188415809706966169273711242761935516040483290694571112679574495337804831126011271805552880797346784848856034298183355227252217371957713394346884978746182629299619627842022104906341397878542241047436256417841736282781389867411503002401826165079245315472854615680681448631753042203306691286704226889511234584187952203067469526029189041121680171564747381554212083318234880575702143614282664920364087308073531148435223127297377292275482612173332963765351078917820002837560083399141647185211133494539962532398887573785440879816569886898379457984789131319205877277524143546593219600518402187083396134695739573216234770137282728668888027382141831230033953790410376098502742209248634545973700516827170854326424240550550889131105826614463988612070220304570014742977473371291158152785557662070800557522719857340191131700918530930412034918509016719761130285583777948194640759172098612805098204852580713205821493489024133768251650552070812376927855413702031285124600624761167374695644542874113041658067701529899970222889737271144027433058241760070122561076351381300991624293385371578594898257425797164990842192267668951111048259196927390871210281259803835210910144385869146735694395453770532413597546133562524039043333462169070233857423926082765330411447988161302871797429190701151272489975949076676411970176468782516683328644452620201691661138359753729387514741284389422749897906560083382716512422408783105880136214665983202093508154765357849089634979250346728457840022749888673080849603010874826569780565506910338378398603823701760335550230188818767390590154172101611165264083112496391520839312727452808334188494087745801818408230224698587056167701991106788726435170038659803788187432922123599152055602317733220276405974378223982698205637801903438074410230254748674611751059019419662804817597666733664249642515488401245450951200145396298805457034074216494833852049523831307447694347439451805575701900621442943180012247284018067692270117992412299346890921522754948947733098858906543256811073036251795448051710601934082136008949407412333804752614651736501858665817261824364630435878027482285650854636791220347946034408145223674655060513579435291347894112719926190161000563227737865626678518450071253367097452501445527117226371481911041732456876542633305350430165506134825942846240975629020657733991182179870718372530170651024439600337202531618964590920119494091297851510562182044666108956017068882619291752740685208227415895432027142843424155803276715082394106389269728110037099912911490017088769931075209241969342507004401106172422048055091573148172000366589799341081814388271826358201187648847686038676883280228865587330126056333106788520591705909376948946654791556990065380207198955554474262729055629131250153021981135661233956192512348957616502296994248916002639637778545750838722638773250896219307304598972624871053760158313760722239189962020274682517746373158316444361620944004528735765833764873817165206724584642820855909177125550776322443543171781849271935409987128871828396641652781815809724131324626855012188686360260430011215132991559726063063692799612252778970972561226141067865773872510557877435361609661813729576462950852435264158596298160461617148611086109886202070063341591323031400460604925325784751391121413357007703216221994235415500940789996755136926776819391519146745414299496270682484912791807518918184465871477507319862198040200383382481606096658768477126595492216343964950830564066110914271552924764351886780044578985870155027630313107628813145786381800560493267053644102362952011315988840509544198748876994744919043183270210565598730636003010481239736862826368272020509455581986886174923418821600390712968093538875575158957053752333588293312678941646567529433683182887462075756740243239412980068594723247215346646046230855502196360184616657136566502866170309243059936343693744190589983740416951112191207514863889436979836064338374194776705770695750984682750472782131045555148697854771274881018512092418416502251045375450573741866602376864232718112786844908768309522625559859297387321274046720955865937715455500326860596999762521004717524638576691790886865050803888579270777574106154009999010181257181215310600777704282093110393313657893515238019148507800654566804610614236236276621530858512164458866665865867526479646379626727760171487627882347968891388190924842760880673320224897104244010569886130155097523876523750813335808748651791546210430207078593009512385955496527744959815730758775018066230447174430981858798271424903151333435558144519960303775451030578957177116552862781557057525063431648151283600090963567304076409175097880211264962472268451879804575491759232324095837832934382176643207280091826888040807619930019190178884055676316100147337589216360299800568950566754161247892399715751185140543986489378730605335201061256175088953548207659684584098917040785852858924713311809229083009840299805501909252200288459954850886947545212646896638255388655759859304307601681501897932573353463564706847287466000690393841262517060875779363051139768885343947181999438916142883996540539986570762126498317425100116774703705867410860049721935673010673817090210443725365009344049616695153576776472876586421104660219102035548563165201033670053200364008752831559854448293964196409297052926830621540020878871401386856018569132842760811772213619686741576258482341078981981386371697114069280847068945980066215654884906238913014401457467503614970655478903111816363881513144281450443752723114729538011086779140195238638746368197939315318372407087191802650607375104032280338719890591386244626805967217674270096489645463211427700985505176727565853584216942791119983310247444645731999633153268569314243677267335878674707235668564821847533638544010151222262295466238711700211672116809513243992728567896953674196241638786647632318122712416404053888775322167035242776592762278987652190389082576478807869511449235128925351628549017208716349993562377266750023514818400983764812866497910146340862117300343993287994520262954156675161605989755748866126953254655293183635634998230610624446191026756342057634089733239705628733475187602266485641609289400875584484379073607208316823068011160269899243580289793327540256268926279329005891708432596434181407263740434419593144864834774593572951583109335208357224064114267904524696751622817256038982221372219671532897291992574429093758067128503200811205443669798933120580348287243837722437156658702907940616831206621344693449422684479046381641177630615134959608438206032945312652505291171202839984150847111636696272786891893607252344606956477082331257493747255320875908186079448585718618042409913509561936095983442751136084632661555070860216445662421454586706358407168079973709782868890406067080326175660170854325634790516128626552759362387943162927916713812954258328240988863005182396885065108434710054080889443380228162089204425988973568289678340488680517195671227900129197487363290639774552714397241685416683819709660451218658009775268752882415604403872714853331016877138427999131826038816286482929734355873965091222688296949241544964125685337491947800850236705577722421389373925859372429128509038859285074110560720022587813234192102207006545478901300944985075732474153887617579032101656641147498663015566347167789792159160902765973690977122766663148528659993156406462745367150937557875560859200502953426106335747941172811693018841593328700063666768334735585206349525676760795882445582882071329929403355611024313944078034751715687904327891099489897224800062973987761468740783919540917017360440311663777121923332258695127572809846272918895450285333086434252433276524679146818515715789302981833017637352016535438595949723041781689860838757268127282916625896189532178789045004787467071277956047074004286247496283317938140619041501481858947921552468394043356302051234666188733513499969694575656456771443094741957682676791850428768231611956161472147264977054797506599702678173890324042616116433519463383728236328682250794142231046960531521449660255968598220970682365990309457699591497779475368138803918078851598104784085816179122942781657221955334276848243440465984255665371350744919355214131431565908785612993375740773941293116673412961337066979665246256162244101012755411734640527235406518626551445214683352532653662804150760717800612839739875174085925600145748551750321080522738209576255644532587882077992202807369535417727625521399910828551794646422744351781472014746446877218782556189268156091976898381878136379123770306650896766284040163507999560325243331723007238281831774261195918928291314463549801425598248445539682117564656724870069458298122864964213246152074527875605623337856248331976824654654340691870569025351756078187170788798748123750098480128279726009234885868850152439503118295069922720480299865000802664081985440265035620388222875859815508296338995996482235702557338470591480341494896815680551131061171922463268342086351090751934158788667471452643810603090854261281704209412241709273607344556233805500677749659569270409942618500145564200707118952837902803826615111704220107585969319147981027290739702048045412818470318932258808245434207327812838221971804930396933536504064166444573774750998099156321854478829897726449914195178536960595254708257802700331057437420873219434741852241390187080223702169582472533271047309251038233863069139440391300576106401366232786466963526419630551420139599428559281334061341680544570671431617904010565294342360382488544967114580105425321118495895842155657480587537290736994437398948091658394069845572862514290836129682554973077652275245324845127444957424528451725411114900908047528593122288917210048586211052034872955076408609137308089948628127973516442644605837063326355183421506740569173660389348221601640541242941910794821667196034739305604935692249198508494962483368899552738016320532218650974575297808621260590173798497314151897651750653896504848645753439864080258217209369964496598028535043785816957195787954366306288604466940292633825191719072087407375328028368923362123975456054708235918485513377107128245951979871324035219904293776419453068054513253843234692984675800412466384432747748586249836968000002821902458366911415710792424486986881718128598805415469754157170232414664345385803657299460134460344463601351520307133949382170631279091099391423336847683346295602664432997210731482477070917354079272501996757521866839656984863970254809813953232362318118500461888338996303763899296313451840523809975605442514303499733688010879792047564830654384797895738288741805100063987818993491652369319658071180055100825585842293196326717517143832305598576004370542328755200346250724101875567942725180442073103052355940387934857471129061146615020063797209586122571299884362989799262113613435168684752302051695736766024608574765898898638391017095380292029404514887816399716690900341084887136158097894777857204991856262081790155629583859527172047566690699103956805218294907980510399729646490877520556417538197546741412552666815420105559671412302040371944343892639867036862113497019989932537413344974062647036923340242747732074178579332731140340526578556364846633759106593044027476236407624335178368850302583098540457115552300863387366747897414535983461297455570252423092320220133688025411677371522202164061728047032592012473691563696956569989254628061724553764277597129838919008369089121169964175361847906308758969782153836680887189622838272416842341135680083496986292165753127092943180246708549397212927679793659517365019793738737314132040764025439074011314194712874965760754077604052629227556291079764573267125439186152654052084792040027826541164752013753841182154373490595913805227198690954106941829057621459558152209186265046462053273245248949197357853853459252385700675084206484447663275762805809869579123592260069902434467148774397843321370723429065349663160025345084428393192146935804371290009556094139347425704271649382614876988919681025118803130025180660894380291729037167189215011753869896020500996141198808687305254387751928764953708476752174281559219164643444299519172070526844415114223502160153933979325212358114082646405096680685499950078300254982997345324248276456736812884358794836198605371612612718016975565728066137632854259089115998220856256952420745689833641508737972332593530691281422859391650519849733099850160157050477465099146316593449795497583309020041563310286498560434875629829900288274580129434774662789924797635991002385249740353220596498651596753036897450693471459324202966263510423907387727596821735571215464363198296102183798047156254393504046183793714304809917062263126166146644842416602267383058976160191776942482786929966459101142677259349977517896032244721547219327538954650376252961822002038380890074148346111845626744919735935315831321179099810200581918559577989930353772740098841845998604978653381521517144830745368696296082273909053228823408473393033846489685129991150658951276720163030419046374042115790515377756856684103672318068218900034379084147046236317596272623594710116797598351627490612506693982482145296152193556315608472968656555382655022481043484373779239152411424232061315685314387758397318241558084471501226834862550557758391753414328596299349214713642031283606304261330266122039674161517787824511422775004274543386834018640645362415590351746798029450165258987741223663157464284089848484429199710072326678890987886024602121821229491813600981549073119378944268923381175763708870443067892368606958316206100299448902080710086268411994067238473573744873357211953188012789064429173580517459047701409744258714441001884807858159931483213899913360879262207645712980957760718102313851006684908146934570717209613602220992917860219372369827353838198626465585016039914341104152652685681318658291033604533428625998322732023745511146856170937009111149450487309640976522919935992640127342587387974047097776310020543600643295374804510100390284097137367373005220395789592625082012288741128180637791175688393472685860162537795151660839549176942063568360551904270913539293790819193910663528602431425426220019186165774716807469894474047252644749403151568808958384461902040556278746535490482675071133123595355042356015368226566482020189609680141245658349729605694872016865276747333598444442611603760574476875543397297521740674701492278858517088036158208329735138385396147480888624328095381961959285861662963218626531093244266048019588616135732579612948535235954103876260158653165791398403984324680203965564893395669233987261433400098635136141744396926236194337017248379434115252422814982767922937561773904691437228410020629253599599565589088667155979698510816565184133568672443341774344055645279214826926164913160398854979309243407543533249977280032415389166551004945845549347684956608933579241290113159806761709659218494464931462228654055812600512532099412622824947392089465627951822659909563741890278357951672875735561024695026712147132432385211762521739771172523232913389637605502794777680384777539952789771315863941781182311831822290001934374683314721146993739999747506948405454551165253891808591741734833122887160202239240067361333518031741094422167053777034136987828810885484970666808552576541665690671044277228516870271518160457786761769993654698409583434786438791439017803056641175292844148998677256626854351995794061119499050887836779186163123082610848036323640595659776627709674242552361733594534033515819078980806588158373219568099819853915616334097773196530845016786625470411561164777617237757594184917223629219400141649325410272848461068411540832389971082356343839018766391508421673825796894283453871566274720871982472835229061983825894981204313887156988801996360621344569797885838788549727224279678599489951049624330470248513466191309464512566820098810141531669537156400258373888672567328919223697800616178393277975858106306705320653367871317635226995519507993265762748816674087873790932599064624624762422201368115856257488238690934274956424912265504732199450299837003334891201207990922214198194743166440607029184024691182535386291217368446155437468232170338837585920729248439347237841655708603701091075759577517052658389483826711725837273811770857212495317854128424027703705527171337836659816085286120311551543705780036999962642329235132888535477575751263999768086790086522847730403573326392472802265390475299154567075305420175262766358845979931703442224473075447326980718120465046106932739750267401349958859500426509662287002682943767463554576249180327708149765608378995905969556631020812412348423350540637753388636164283954869959349827907916086992060410475694981644281610062543043518855032817762727784437351914378649425634921821456615998732185786807874990706473922062800743757083936799409604724383682753828937741440226006964467825696918278864501784409581247410180396389359141497739807616150485821592233098898530623435523664486561946898818260876563012124330636168781010137482774433786932661422624115793452549034532650069217461563320469262932714021170645090631893060375207132572042191850924481653270320225071196772279740802723659558176442339990173613304377156859890810384370957349303321273521601008143495781183521391846488824449645874570092252379989252924645700050535476423360298898390237532505823843702203770228975881951015774430772509068660571020466555593231988978262712173037329040062640377431180303369232029842213827788415195657672971736078154125017912048249095186800441337614341896919214832288582805809573668092067046640924202561739594655298281547139270525716695116349646849307757888455046757512381335256441318032428225079057197180302237287747786099404860790092171459150098901383866302637534155785175169855276342842795441375825849240028066848300480594111672020064459641486780044749492371385693269022315285105019394343031886547676851885685586717700034938530840279570656739375199964784054293785159301568332487197856602806740998786377405135918689363916853551610905066881098324626965244678976658014237362650014004898742730301283558976671532633076548934403568067062826472984595165859811655963641005905523251284762601870064849191016886164778520329049084728687523096825261400462166820517375759285557414060236927014951178097505826343845988520448870086962400849626949643642871416263424971434842929085150802019450447633096526909086692176072134032569564280497046808467523631960156034940834071696503756493569189151930453357757938775769760883486333943859383019785708403414341593717658815699118791096409409863636327409561727399985760891030838786720474831072298329777033506721252889986458258734440320777663000408450371379086840005099670142688641234822242282597236601048898461837657991119313943343224055381520600666016224034997858558923511270262083272728790589979969341016525986665933733263830532387456714594590545877835199798556072395417629521292691567920962238738596357979748589818606324945623844727075072120878685153899538368746664461811613286307390547169112112141308893079940050094852347304044577978163975465462179859605164808479599818553494492582030899558094062651374404906812514721838156294784599960926427260460437958248609739341350010265313128362339439958945117121406463843264904024947945272900231662637506093282722399570160687047034596914218096200970759957229020279623552485558714751567606237884200989246776925847562413041033089013564704369235820235124404849339685253960656313944265527974689146610467951240568325991495763299547578866779319451868036630942029708545116682155544034021878368666585287417669647157657100746457532385104753413680720870708306789371658579394128571394899806557677685360762256142301026153255152863224049024259405302068653451532708432547534683049881214396806282806356344665762251678833495034911972701835484343787870234083257308148134264453452662986200967862358184202632147637576669721817903735659526268938142238382977834269733245908322417754490178518222133954113987523964798017876694546240189190517303960829084365668530064032246199489656451615861841789808918144232555806359342540324014697926468691292447387655341305188492119414522616275406983515915836465851032984111954318987837682367101395528351688056021834152762877687032531948651921570589633441581245418913266505765426388082134140805686223753099754374067795229529717349601098698357138097125705201164067705295526884546586329470127065221015705755444313245629118285877342028324042133815046887064754262084097061542750658237841603451733757558017444647514727904805643715350840394019930385034597649096679834937120805673716576756795383768440149816255409831624722660908063122067369137372006720393901630655874484850411226344983518284803798561176416270939140613096967979838013594079472893350414964948438369272487145516150643208018327475201590215946163606057621178965094642342449439038992931672427227093505961245614400163508048306583142904494447282807412551469395446438326981751362963232154219487973958795249952692380919394969722292339247035911409883004101810256065443817280999613750913940113956421138913844949635871441191224440494026210450542734030211951762605370287950680796065963326243519004895718326967490535096126216937316916024046557208271411062178888362137452056884425312151546849774828664466477379114697361270256311252932054711786599208608733779125508453474549159047154606009094119713466220659628867072630275586212742889273657496753992046957564801782586547150736686508050901023857600026802872633068256150684845248947089995877361916447563620398278454922733186040240586287192441314203222446845233086582527627712078559825549735789507045650404498163632699793168916479305078190011317220199289851872528554149942556860844375437732536202789724579327569583653334421481804486645154915884490060229820464519463432828180194662859884318211851595140542424062306620891151651589059212232205407037136137161385870837699992866194585561805434004113362027696584497819574509307996495863510899022466957433682217462127842962121195667910147944082706648741364894263906808476136958301074323124830574478116775275382999767246999318830128257552709827037039965289283006826137052894924182897167788766323844888303629862943838185195662633664759924622264195338146983723997264011190743939083717270875859952854165477441903906086082349952014159811593017361954808675901618471152813981634717202858070839959865452450552550147769031468129869360519007462952393102257242569181159459976342526977804544363282467343642453730779588177535505981153539306968535359817994436554364049606923662478011368918709692553662478748651475891565750445624092306540885128648618219208421840278140829919743766475003106174691214465085928968559272386742342667555955929889930955420017261836808217654297281524537112721868940116260057323542159759647455464822699407352388684326129100638597317120804437889533748753859353416043144588572167991555889033189627742108041172996678078693527833927966569639454726084163146636038255662546112069411742037096691934139946476564101643807950055079368687029442344418047274669164107491887809221404280013102632616257186403494132470137078721387389275893155578516352240587518189762312739118467573779931509203180081882594267817508052559118893122239075215293150403317203185402158051596716014449601910365572721382510730326988812549255886480115484335569921030684832899170697724349951243856890192169427916421028906260490310190066361380951642381389909331139693904647388846841660164715832481085117301735924199300313197552289104000524744319152161248643746899080450273891453271312057240820176630132119078568919828944111279180931342823880052423905622391802892082091246880570325453894453690890280649321197147470927207006207720120176099127265304142982076821700974711787072610554801986972134011368737408553135274482185656098087238898043660990699212215632631734603972329048116337892182663764698471183789820672352183783601122133953073588505687052802248395903273019838695451782151156489507846969984423949920892662459947622207964752842157476860474259157076228687888318896272274646070397402719414350593199750213401405604429217052775596933785546667172930248800437508464023122415430177723323542553611051040300018393972075541021125488761238490640400497982716317300965961697439008707057028397800477694278803427868690863523968900843972025281035179942721761735072992282772511033349340425944153059576026315875980158432832985752191855773487499639394193094355411192016324655405995221513353313345453231922178415685994433831088466138297924713713802505779708326874019712793410396824277462286807187501539837796902782264651410702571757302438987390623760143426625396564971374220506462455592087335506888386126368864616668224672391108967024728278227423710716213959323455775246513518812256682991451857279814258142523297191331394610372413537738875775314088363600676852506547628620541650504208567936813114806999427688440387252900415870607556717385154799715375432979889944878799658405117734766092323867041369383330767364002534340065288585661192545725641517006125252966092728101332507782248603932344650176455921249247283863516945046783515784442820539032064350668456600157193825044265255543697027457863815370047139088051475009456908365436639736298457516184426802265860961642945961619348564190453404388146252294970948235194666592415261593486416505004861823387638021543283167966611899692669890209919046039472095433284861393786779640921932326923785338956546033111783599372096143293979433404882732669780716044605062945896450987332425738533394397375446258309839996404603924595239418900432929508457189097899676545215788066314673343584400565375268093835347652449763561755455196659717077713490407567405263572301298044547517536268685283821323305297567799184310683660500960027880952873498818488877460856268108379631814930366185210338745941503407642158631487041337816114574872274091358199773057642058130166594885309384494546971444235269277391540018607417030830514821792784247186500153616196650901651601150954658571054708243485257544905688214753196503123083323684742147889592106426687533398921592110876116223322577462781433781568359191412917632374022487135085254882626064700805394064451441979994049126823348250957206862984817941139333176770213468257429499112320749587200727607778398076557257932739396347942190068135415140868871247909377966997869210166413331218662178664811299356855228662474085673208700265396517723147528472649323390191138824598174591974669724586265007055002298643264588878902391039807864339752065842082463441203515373937547992413058123799426554435474203719339622842469532130480558955111614872082219503283061996840378683624134614494339968054100157162019846398398614098613153954024371845214882052394368744448311455287895684736834928847001843153950406473944592053249546717548159350790603193269007187238780050408139119102087682417521586565347521932564213769313913270172431626903995144265898730315057047449279843858884501498919661720244546874971045655871431381622603575413120356608995388021280019995200527847099055503798453380374535925690705640245638245944500475605892595135315788441084057935539003654450558858091255676952513536234803592575889456585583369014373987926563223006485539045582406431791498890894971283166708790029020020213046580803050042965888622215446870526190318392859988937240238440961710249436275296353821134468424869659565913222892538237666398447030930090814462530378894034386084493250467092734451819207398198370465805781166569744785821107612290557631831870533834069904879089948015887625089268971334663615698615317110296279344077662461751928078195469321507084273342705882236969509887622327012129169327442079468396487548860886405997770228578293195101147125927306084812998866405944466677279520798945477861492089976601675284611281727635632356644590285556774381335628218956719613899001041497560794665841153429949690792163704699294507417979793196037246055620517298716516814817673006661615229787759454574828362589443225011923109812800563874840641526954560307608703909332870774166618552596548222887447853767646855135501906759094165888042928098088492009314709180097905419132992734631703165889412155789094542749542016722511146581448014295263878053815739558554361326755259032858417263297649327090121926185757783705417653952322905625239280555387294043889824911979770205240299022761002067566212283499971435301952621612395217014373203094871804327301187698535644022164770146743914083269774068026202699051826824049644303729149140427339268632411651786774390743747167856810076589287869072818554575505844340163811577780463955184235484674386563116160537970583276509925537922485245878698278495398810809269668332918886566027387994259576750587513544546289104613134646190996586030143497078190759821413737296535025806913928449866756660158112119243393278184449611533141081284668945026605743723680989462593780256308977135873488173040053896687177953739808249945448581039481771363901352339904077647134094253093781498197037977909469688644042822004723202449133141524297972382411371527953081229536244669115062609756288141736916849265711711531760683229505253496670883075939156639534822597099556513311531628311018005121593522237376809875009078904095336928773406707125075358751694312529253790386599209054623093900467787012050361129343983992513068646216285348463699387288328422290159176834656501138907843659705077039384681098035343107689909081886789032625881222293448728900742267000475366419830350158812178829807232335007874372822427009164166346373557085914172329534964077758031991101073811187175483861224287933028313253538898938945018552206220537546973330340243542237144363850964742956790617098606586635866789998167713453617505205298310237080857167830071831360995870346323451849318836710321650610727382671367686355119394625118548186842700424382537882041734436134480465071353364710270804813496338185575456079450090476973536127617176842605916806852721560497099960569540556330718131592836319986138061020475070175894890142313181504542861760621832368036508158065620463018385557501099133362726495971091929611975649764371089656198717696854589598054797577743203440070197575597978148482464342322307176609610460497955862791566833146875036446881393509116805547531479438353095040679021628070500572533765103793871422240032261160163677763914403366098268212059351174748563085090016778923534803943863858277736396634122811191830224481500012906923677938476711585852160530685070718761414543501933782280057680708367247597093214432100720592006737994837450455545305861104196618774043015109802441936840842423668353341610272855464725450960196596697314108593456864426926985048434635737740717841085284731827723052879606786982888796865742300835101789451428152793891542519217703358896425952136702883162534446485177088444774482839343870222307411616840805350980884463899536086722201564096135824998476188594553859321170773778763891303513444144133044790347213483291698052576634254394170025292658551757636759684737919599163362030803416415800424245476193848906510494916519848310786242308825199657368245776180105965381163119481737210552269997677473928876551525036226430709207158274422861867985897098703601417930421202167375626891796935808480175158506816346126150791228442852193902844573550228286891339465865291376460804656635049641667871120931267191404114193797292893782220810711081845208191201579864487897852476556240303134542306128987588254982120270635624944686075164366455509493215849103199447714983511428365307235738368164387033459333751577890556731721631119009009344284401213265109466396099104150926782427898946570405260004966510328533874186420256421551340838988342636843690079336758039956404561506427610195506574164554151703162739450389649814153916933636990456565951271390741812639953774606586334305888869285069870366452392139283617069242587094729908325792618297882849603046833208548093986472800222944600090206933235980788170820243447860313558139612970963307213938826473864884677736739371630640158593717236204648960989327586034539884552804586631598412248637103985624233772645599098768890808698870576189289043472816083420833235976269611912855725518085249800631337972108188739304493555291968416256701429660453211067301591808400389491069569079346804335223984832191686266779256424134226322603630293352693430548838148250339347702897240538661566528972947816263702763425565697592565262008470425261921529302731683633774247566669225088851577140196163354329323331714769943173943096949313698428594305282450728777683607782732716533562482133035636718406490125227567592211559357736833359269601329639499994496587669658705382190908933594355917189657845934279152882435008124064718034966580378217627596430754075823896374708141080413711408909009618587834450336265197345058604864890990947436272891957726075926591677427973251303156078079775462975694399489438381022067365690342195797380936451961414644949190701767906442498235303407154686548120760273970772584084365281376251924969099053946052294733763260313585438019871932481021296526289078964796939482693000840584236082484337226800569034898605530546459203090226604503911304381295231673425802084793423289497971878378116799591683891160599300524099931831531787368551921929769370911554713503948606387454455198506963878400694756521374621198227954860281884214112669755755699731200075126711379785746686233469420628253156670551828806636350833746002211098543340679288481449380730587278944381507181126584633075282821039853612335107034224591366217688760933737974855317704841732454899218132852317519087411816289440686738419085180195077717667926130604451301688896700235366393066109689197968909206042765224325029199451288301043396442140764320772621074647486848403491023871855021849768994304513131054797945910441102626338719969372195494430690327567395335169396788850002608859403656015278702776732308495068904704025238859278204977848393995421799177703159193701197766596357221163126524631078255883352647396774971203361684983208526847867407065898381222899134036622436585433075348309593162896299841805799863336010589503632188703747515336739977736667917826389996119919623463605970450911146076557788433954486632441534550618267950395736297931045041187364368517372155322525866970612266991221500032244026929941443981516205821499383856860678319201339733228565010193423532942965482678050979396377678156735710731424423976172038939420103887407172042803045113358491273034083832678794870015731711370185700538129383601981697082474893326091979908415485250495401481323213333030573620906640152551345709759557821350449725162089847246114285888788571166404517801564699441643883723265193614314041924329835041387836732700189249760682757780709132752460539578889393569900581190644009199483755515484009912124620044675595346230265035146702278970480238077138390941513451064873579011246004637612179241395759768917979837987776335451822615921239759073453744906965527666775318178008381846628598746288573908046103303465343303238939000048965875631770352066215271900062176955153423588271284008678653640903755180660030282187084446573701217913505101024869678079208029202903316832413833117969637448250135274475472723938010295788934135019945940294044667943600200191523442892048109285902151348754862551556364025392211630320751592680432931921770213291531334054352941055154216917923620894212475736942560221904423460939199996101494911670617240600284963779159104031232714774361241776941419277773064461178403769508956020231577828988614669495905699807611210190550708852472364365220337750177688120588583900891579913015384865420982269742213673319785097338018304051242814923311296074000407970326047690277201057287614806418405317979104870331597654093703008740305855348462780332213116714496175488209531845311148195470762368927906532903127915096740048288563219003866399953889099181287049002816269140506434505629525171987914214957010154697652313458814183998393975605138549278606541903195354852346767777561312872119859390462850682457600437340697091093711383241084876766676976807941231252558632384134340904773815343134277422049228716849717576938987125624347147848204500343931045591256174304601948313370607473977984823519656546761304870761631704485575588898084297774102874394048881374363949672858752964021252187421093621640437926229004205071200338199355745464058010195651480845673104653078158078079484734174464989047662375509571523436996516116782178785191929692087893108112529047781904852691728239725853232398197535065716413062566187165267149567231920871485412747550739716910113120930430496168165356569758747773472069047163155218142727024045337874948404610201562304401123773844547711557748398120665381855178145493190384661955175323893952754394625051066901036347500567876710221884164475509570621403985498862216554868477509964792719539211171089272968421390420568881779211437271356054453443065312803357940391211706972267272712006530425602956039082397533395732755798852283004634753934272377858209496113428479257506323882757936162717019228213792679900591781898991461606148615812697517276081572891146488605264663772840178477168612417906476651377579872885032338767007155175959569282148495549626365158086373029305700645994947245376164253943123026044616972661425949971687441321286766718910740560552093609037489699905924491933740260167428338467427916305573781738692683305314073175684706559095740510258100813140358380236686070542440071227461082474405801977984227678518169710972316409365108711872963948853344644736467865697097268131650904630945380035055910897563191754909575031425701206760369575474267326868960120903012874075340115976833750400237720844308719763515812704225727016173397530883674910926410655986254938417881940688417550798400332220608390554358410834223994477812663286058919427421468173867120436483299640340423993173161313690284569065671697692793141832865370517793440804180138754317224848595847213275908559768895274889444346614354010499255304393699586764642895366972253787609909562524452488705415487027910893781375348759706294677811609660118404493862993456840623932608530470102349874279555067303944161982398001680124211616741929411295916910119151997171110844651647717487298288373022450462559948295678156941916845902665095655267654263628777926289095498596359447925588044807314768676130105413254409215463249757515202165253803366363705260580483359276060565211232696012250145973278260759196440285099637840941663751391040424110690260403272157934894520060827177663383911126535705552037162449423694527545309123185203325364806126430397293956759577402998391318404379140614404957547012653621252571955820836660504040837836942731391675334442564750271553740328902060349142037587870200508089450493937169496891685750215881848920697398048585142368759338757316843858733031205543359297505553456904740270042460131868048863611086431746822993239283033155028690837484710197285054210366170828438854314947534931464673271060092109902725558124575208619238674705268739677589551024364398149705839908066213657527618087534072270850992857320322108351762781952793559457886067626106776625937646067024121130547983767413912955136747876026930820630174473344036271731086769897697087582539543971861058381537688466152906211464438060947554839991022247477028198349111742330550941358422388807168475834478561576824274453501687428540138302417432472451871927318730259208952664340646924790498724691864512834625958685115473729459989892686338571382490259144655878817562585228474894718311804912932925368756685728712020105048081992742005329955971156793586689169644749428394033469287600276594762753490887027934561718410039828097551442516622899381639395769607328696817187846295807178811415982483230831475552751683001574459092998942872759763352545391794392490959179014985782301550539849495916780472832691037135430328013271203107757654592656364592461436386848627226190804664054203124142188658839523201333244699658917408268289101211707054972202384949479327264471493609345337820354270606794506802565218766290463241667315276043568172680810738877196877803630592786360203268430172431911962238962558182354951659177768426286207828847917728052525802574856385764107939002132002731470538269360381626242993420371283374113751219555066973846626287821716779091907810054352711843584727231432625865969449704308128420178839809191866164453690813609827543942391093809954647929355144961387237040253874419195576597910140392599026792282433687196169658736966304892863043729112244165047402848030142183252358994004267524519446184766266400047418479008407283519224559307471478233807770978364721088986969205234563238905925483510007780787647856440741680933217530780415487045520473926157690595192823318255169886312368034133926572233873727951294350071345705417598293876265526040850335192445205117255523913858190384770796168486406741338758631521540047060253596967903719291009053140461167378563477145168632844547793463457392384716941884554386291628207665400023123637800036951190608529664467194042913090349303706788628591553070234393610856648540910786501830380825705446720477282208547238229011376562915865406866237253986144781958307374455785667434855576918203621796336735939731661188658370066632899395203170451912272341823681592845682421580108787139814628787088988339895349913110810726946528584454475138303857962108337298870543841220948907768911003256687440457002529910323116151497505495858690746362475579522646263355127426094953592139911050366640576231937531263285131734152280546179185592119982525922037996165698074098965173843166991314815281503581038915477753635730562679342586073465846976151678434131987198080647393328690428958230919797390834127602902118085569335772969955685145228707776969193976431837486470893150526024096032293204537951569353165973776076179039480526282350622353621179542624811885320662970899210714924490096143834318967198208102232398765913097844316395883636103983149324369643127393170057389997814431720411372469124553166418148977210597982385413283674617903997308485581313922233350339671168776743515330314555911233083203765597729023138114732136655873666819150322694613494258611136503370557695330003543099960838886531877682903622575974168419864117789359735009069958032676689722052959076984378224324195478047705974049155539569952692037135819487295497592372307237707952106230218462209290124717116519199007328873636577287930285935690262910079084767708813761958188241995622808196524314881196329180571201555116232510886237260076795075069609433362840194104907931070089060514081286109245050803165783983795213876660835411838581351366005456805154459927163139813596080529915546176903184238771947265244461959881286004698753449874580555700214401445770711120362333960039046583511495392102796594810790097764758414490883672655684085356480189623710050537256134366256109250287713136663897008196333850383054945203737817928068829707203650276293034376294623763816852276521382843088788385265100473431802687600917224901630618346832734241414820757542683622461945457852785533070608962038762454409690079614366352887224490951072172727647173045541615891401783420690802730546547491466035509732244800171204283686391547369685567939036842949491270829220641552220009987358119491358016758427599028173203461925725471631300946582177475369042632923658916079936952191141601729729424469058188688061216782185856202589629574126595749333357867919285426244371590868537113452081455223595897215711017880316148514279673714479971847685428002028534420865809703426081093516201179626048039112205509979105478889110580768050072446164424909410470498345578085559490621352419828867751292630385440979381179571316357270745064805929735290299627948775795694958114857653349792530776920075239733900344095197571103120350688785016610104771711153939900339398881710306419610700669395680656735973644384117819875366329373089579164066730107745420835040978411394901717030666750877100955324203402358890677687496283299126310964233677344432942927127378620977935422850672542907466789524473849041715857998064317468645258687923432819063388093141383550893230816272597897109386236431911921387787535107394411363962984943728869241690935715386875762879662092406506430078669820973331163881863064043214276747923188282109057453692833842785571444374106557260786995871631680848768421659294620952036844278909203192738599560372502942901548237786638003584437660964744865662780217615653051950876257225065095517462946557007973306790978250416011404208608466237277139832483180497729451428647962361706536290922398665614975472323003400427255505819763640244366659983389167913490974008538919101014104719370100440833057534315745566259900230266885288604037027781880490944699523092580698224197256739535855367171833191599050049666059379785796900988185594717671845405187242198117620115161777515692261371462152162958195600078161492446903642183820952975314183135072089027781895383177611469932639703019110842988392584253781742402144750137844452562243121013121715159182173645347070693251196958199381748211270341787829843611504722369491936716433895214638132546998014672062855677365028687044127569712180990480198286827189659396027332259272223778894227665044812878453033846011195914603786364236687511208645262696626640936850782546586278724321133925036534231440109267239666546927849023562298272482584963188378900910629886499743647048217388874009349328909587220427547187988835173339202173598951440530462886848888322624886886302472698141776358423624972129368800163603224555167998477549887075169024179546173847916642357857990985111604916955899714545293440790724492411618342052618906711589571284194397395178348947630360748558927365111680489861198535234482015538311185397599023962526168239861587098732464542516553758290760534215392623112306300446461258608127747490396003003591849351307257752636604178919533876104075794500887271583729784040030986777064042919319523649941394471444246083329916860337272463267677930300343502619355870132832902132834904366759361854059708552386362379244088001347420007261587563571186276475255359948065630201235755720826152839911926578929570088512309456571192118378754858531386032028637457767201541287592794348733779832363523348108630661448984114750293507765001518354397018428478739189858925072943465828202132131960318856271283235004503304755722096010330915172312866916037408093140336194543815742013081494397595884458984742944713877231870782681169750161955619942567561139149695691138571132404302640686167422349744835978977532725657146994785237805303281893658185704938376215802706776532073436341980110011693186921987714896237040264410998365794264964305096996240334703373115352576134800715525803989440824775523949960873591051248979133008846451890113464009843152874893390851685195116349877055310368561177863011382269401783627005023214095984636905395644553193479648907178137931538272801514246278495383837589772828012088545720573019632157158618742585046282226675507280783135655129751031661437234828247379298711414963731332857809060505887704804343564646118343857452123473049424284366432451705976766016627634332301876149310834830359945121225352681863861470712215572009091290496794182693770044886950803287402127434659389598529265558516726560054643546416879031543141428375322026207420498634273251616081803444795503438198618168194402227149853256694087880053536670413677293766594556492608257469965490291479039287142941243538277381860221666774937338161543520911610510924078100658558314377791258599355845837504988715553051159891482181160549293120781450363373277584873730887095998321532791177789189515520454947643109025704181421864662756033316895054821734180236274042272548297197905183017915117845477265790985792101076929553539385430011130306395332230745652010514526826557420365508838550356005127846545079781351956684374920633471161532921684972163132139154412798454228033003298684806395767705415111123109402692658280458366027536685793044294015493710523396491612260288394802318211687130315652764774051446285761108614009085810445866284626878602918759272520811419366255115715446790617892842935553990269223036221841922307125813826958919623345009038832978047037498669378287611656560433359068890806453184266539939759342037647718871313175490691842629447148200790117598226949432859915381889144180860990198025756272011459659885860785987968998996990112686799126393722550247146782417302897895162087775787250924623215202773486841497414862266659234229439175490150491525903948664801519868011864082377379450494508217920889142021829076737397405195458810121537674927040156981495394311536028249496467806043381156982690727685766663432081621572043144932234785476207912184058598165734740417285520988491258641006604983689835448065699900518370278008745861415043426393511123548356993719742922083787521916612228083196077253904725694257577481893057728447549079303356848962427599472557335548063492713510604554120920419194032892751989085819013001175935019404551295948518008237552953767870765117587655561493927121238590846765031168787809646083559404460505956597010253876842865312789659585130693810290306880397056666682077466659483093809501451809928655080050072321337653014087453785233592858598521547136184543048839390700295993018533796653082940606920912283732098311773534774896953422493706991106818978166562737405185816593227783507253235897240945625391318555490194274577010018617979485544984371244061444164512512149632804383808141701768140518032421658443824049277054964874584879167355789673078696928381191161396050813970298607443475198793937675596650439914116349868386401639366871467100968230135293240704310416717231930243680672750376618169252737270439511362785160611188983519962795595360761251399179359489682080875933077398262698992508225303386300508568316883264797370069541974078302735739155446512760707210066786521736452984124271065591350218560148573560926438637979167009517863318671959993046351542767525649076593921595576701754858198487308266251193795588741757682060554644476251596217508749794569799487010950578187803006216319660271527710592838388963066503558166443997345620010184877349927622673151955547282115342606360771201817425386194963546878427007075142531811829001484132605052527055511160952220814368705262971675360110544108206306701211635957186429984010312604187504007730832378470066763329051762068843179185082723070637149409989966388706326754415254760705751849719625586155510090008430290215765895594168339369830948024397246703751496228592692680083867104490796621696385784732505724266823823506024048234325521684782100628527170633753828932462526528950843136111678046298504625944160401628587308956750353385232150164992624935498228151695432827384849187685763521455509074484609567694142361584903386995203006955349448562380606188773734389904396542933284521395512131902047382635249550355452713979380883508184443928521410631493645531021214692079919637865148762890100885136976129642887803793279812310497314723908229921047459180333879955620780168462635554438468074147094086123907764097051909830009480491283295052290593963387406881066621704018958954172596784538325781260910599212114253471392782632558105760415278084657990781779690126120795029905384013346056297641661548842611991348189020879580883602541266974443466013794557230455777192609333459612466560819597636129710282245290763085522400902010973607404414110335553657880150309172478280064121504860449541707847120280546526175781491181535768118196095627102945363749293282428149769004752907275306698582928067516686932583471204033121635288287594283690637298434773038655856924473806726581430435704810908396991644480665295624029942782768957525715714551607983474078619440563383837641777431449668588327624407140163138214491200338524549971193433165065298032607215693664038057569415798867051732701725107205387922674630362034695512644269639447361173800282068256104166535813711002845635647014432594237201708550380315293670700154708516685000694380301022690066008617461162444905677416708028129004713384514859333867943459100666881909611857375214067307193916740795250554227642220859190023361388738967363558352163216984245265529625624816371555260613414423771320631062631155267778653766964237404247830865687383607343197263201688777745202529732910960353823781675252887819315763151933294931508138888628851674626596267906295984332896114234610579910822535055419514730078650802140438109676003928456591286126733581132309654225513893549055953879212732078044970520404528835415827420418544255212081371669203126070826942151935948525037584056036465294083384210266257473495096783949461253765284369474442987998258250629402810665541616345246192619136243577706052707224664546872435927379075057070990968564661607537994665832964891265843421485989918303719777774126263105450402288712207851625100050911363879710778365529305201003263847737949719726745608707225060406698420898882362813252058800846301333679567727165640936052548422458586368278269494536033875460132963202364529602772907557279149245010733352741624930154392886282957892313770179822885346246666889009753931664423834257367922277562596810919618001994042723473636662610562641869964842312132659555799345203083078391740520007108187546675243819859661572571257971914881908417060385680532946641381980342396857521497328834545457600307511739453074974022091590784945001252238747808103331706599589677871906438384880803405545725951298479385125859961615352266845756397130405662510525672658057801782824952980439537689654065817365642874513177599013900816383060955611910135267799879128162690889723502251062468908861335909323955340631966236854698723560270720000363356827816271159446909321346980417727448728917504638571249193442682238336774313497886660635268603577337210985070252382162186591606182847005345137727795691333650010676118713718907987348411745218651595836517304754150932631740575224520438199576842247408065689939137729005736315880913450397831006153774908915020996686622017195898168492292962397017705600205706266209846520596070517679313138328918190408736831384174732295179608581051129872483950515657152508241738044755770682946496076502144298236447466035203455108911514869133139823957822053584717282487990485889740130738447784801453283279014679963392033276881586084288096859035438452072559402214209305033612008861812377290275036101003218717711319622865917405786323034684311063652667296274522457562433815732158192967411170003998436202188569200814010912994071563734007404159685572721909880804873567241779727345408418701481772098619010347287186439318762493576012112051183130839371650382366508002924812210133379336431825976858785837639235940490111423467798659785039933735425276837999334807313206630272055175013888698509418423679528740293707383211547883154788894507035109513046646148763420796087292390318639523904290534645363429130703085051608336860614486004757950635092422307122121964735174660245832333078782211178734854443170977297427257871903852871503847520942039994605523028930840889756666043686482344151250634901626466721473633453335441616897244584667433967264865199744728494751610009120150577381689195782892943442064091689396720814000402531184558723577026712688393291393875334163860909555252303615670555142802656239614749019961886259737319447727613673675272300188032500603808435195157371838096839839395763081134453230683731485425029321489563805719540277892995754959804355677945240232252051310036564638977049954559757368862596741125095645516643637259307735048073162023775723309506552638969837302264442996240046253319613346546462798521684977930425488817848841607858207361461921412167337538436152986587036582956106250882956116119045314505058496601333850778813748902757508198538350639783639477599902969333655268275372984048952102490835764253838187885652088269891240824942094751233525546374252307530005187042685955578287051460332211031829069032831970004957937171774437625869128822699115193857981072437035413926111559553602464411286479212166150807141214653861150028183636599091373172784805014699366015540524510282154169415470583119199340397630624454492225465949034048006680759956081137779933065336255327701953143681783758265945144895656175181449589168550787551785778765208487259439488929151323352257801978923426216957317110525661056915827823508133024175788175272678600067887950231177080922299227525800850252930632049612853482462915976182034868563775278431588615016543045051965892446701513234808370828718855792188086682366722228529127165303690803151826885878551313834925809928569003519743337640763969310838579845572530689072746801221176524719728766736647639158954126438315857768657068279203172352451174893835047014015064843581919463997699556707104587452903099091521336698182718767072176653901099003165258512964160939884597259608624964105993759360364867522661989171310983945121494461779612690117126713818822456814487540216028815330965486353784523221680512464585777866873278280883119942549987114639912088540597003650010388776264947536379078500290578322043680126204427906279762829215523573266471438764607056116793318597457825510328240658782028299377545857459298826150304570128354227163145099330724824671540532643779467438738358455077126238278068255063331680520665129505603541805291931619762285415356304505692872781355529005762550391432836226781973967734575747027086792025074286523510551006366870835640244015871993693916157230806550294382623697137079805257281139556669590599713039635168521044939875779689767724402462409111297888635589382219760421970519925734566845005676205484294534687947452020459693448169534979910027634791887642062288352625245636768655108997721234901672088803121595983056710464707320498692537027277655115487528416487252706201720431610692367255675392374243615395318949537975836674449839841237789074021410597530377478302469364086816794050267988274417679995182429643366250316792986857699028258713549344893230617611965624418611200826073796601530518122785773082424499129110432637966956292996563008589225191356941623965323984325634602426907189571974072281320820126890131847930349824875437493454508725427144798493468158989579327799599577992521550120959711158947452770240556235352012229561143395110538575277716411519808004711561545767421053446889616114703607544727013927014253266277869683288183282903287934879669529383755232678864999013215747060998220100986233195882286703417764370452246060486250712246617904425329599735553542635831037064704208132182872936420401229279174246717753464940913513809689137280716086248377998303441241989402496362151782844653208860389884012902293850813767876851941929084461688400341520426649921256007755455277754876880902199079519767553692088723779268125817534319296564791021012666315421067789368780678032194652203234911136718338235183120048900273490270298178382930410082018635579438348048939461316315602939354872241221163769719257307163406823335210835227349258766484815908510352609015683116695963510890330149619906562916626023161762132706238750794021695405372107149333992805200214824735800033066722449108992069982049080979114781903285182106195013281001792580753437107551925186750308160870601095937869336444730294327226339281672692341178972114002376671954411541532482687311797345992813158500511045972609568017039991980114471594471541116204428211278733381540747109535345382612213949904587044856626562765599709277607829166803496839021078017828760730850486386226474819737214781643804016094601473292111516113044407330451426413334685340132797675993873111689908458840249804819562834094485188941665407206209516811878822350408984180824880278510690270177006450395041674191799290718584033752688274235905093284936916355939219635177819417255237489542260673238256486745785921975760436938162963094450597146956089982291747362682601298891978866572609431768205454560743776801197868309532631361524085603305988993647152328534027164324915514994868162112830942531730674369925565665401350412410019406605526204196857805775836377311451697587529638017694307885069493071722638946079981903448559343829678522271473259412372986180185756007659439168273589742442944205605661207181207781560339348657583510976378743055600837053592664970816479231991390320081740891606923545992789559916499630437308891436363538226902354271567523999197090669904222224387539367149254519503548417057488978502405189220312523402272655687884319603365396893957222684266946382773626241940319010800292060060331921578639463935901475600334464771118779876398459406699374921955599113425385918563976775095023460933602872649479243005719912840172890458218509643885632204000170134164290266926340788835559383237842349168315018883632399072780274141810926990863078786886812233356418750825927921475255435172383423171218345340164656654527724038910409205442687239011739057552937956507829490973701156759393494600672489237034835865754541323396920929968131936078992141497348080802453542405487498379456425413280296941729116723160942175661564120487813419361620143163829258003670108263849633798990111462341677059124252669929078656418640219676432521410602135374925390952686266454006632154395197461283763033900772847536542380114595649015929402898901606653737198680726673247561788883698883862433454441200756615119146660423816902436287632154019070566228018637507182573017381530073049733591444774209805740582351477073218417868451092068965916980274431665602619889801013769543456873890044919491119317505926523669131352056802350386180286451035391598218397892543488703756102684222784856984002877465629467013134061770608569909111090893683981710265966852018416563874186772771828669742851846560831561978009729824514225729372693954088218917528485055335422222990513273771074345890921657097207198946870055996099839611611957564860189963911945788294109974559576306978277082478006324766479299822634817412962113223928617187582637374146054488731824727878925057346352167252045831878911849035106288206388172725190378523767337397611814973482224825241377339594881852331575079216366077367575456511635708461412567477446165828878335243786142758712369793688421768807485325887786416570241069092663478007515556028630945635477404776351862013275153539649006991370595132837132539855791711779077930050849235506627109707783257409179616987583823197737491531921054145158016865701059487374671196575513494562394644148048382987723135687338563912370220301604302542459442238603922763540336867668843332383630150294844963530992544039875242068613908562995488201279661656298712694440223204385396788120728265850482466699661166912737647047687294374384798465285352601061393812949526033629424447461648122593811036028199973886383710066213255219604396331282735819356978281282461716441302821961415878707269149020710426837106723185757242642839059910162892374736906573589539305873682660914440871428736437648664877486104203760536985029107412823808480538020085303774180549977984482996821300659151900768091291978133085417270061286461874776014306522505694597615264904597483921182451220817385043727453877551676686576487230682180363698767698277211407121906543023137204202540141031475333984506549475948924120140433049547702169011667182472613848468597897260069179206636236781885739805169624667988034460368882588590312901328656481536428932387245035356787941593239120310443321935400491925278400887958426963373941946780107712038017915682383968163820381549513202364494730274843362967422680416259012482377369150216170060696689932039522600116416323451924817571610828254058049815235832747936204946118177216701234398417168335082479464027763609136254395502063258847362800528223018699190296305166187873258615207060868608002988416291788281850015104497398978867177267863633989655604141962543909388445787462465900033764700111901241414484124019790314265857202972400182818171430730442680849457961193916573167284452898088828574926591891840121342374141985959276294660431157127482941056024225999071729365846270829075365480416287840857790341699482608914914845489387189001054270996329719799374196055115497650316384586454992125772710761881010126660779109832796697306193674295656302970984640743644938242590233533550937560570491249298992181308054176192096986400410465389223372520125852147977272284079650774242318786934343574647459853014660100473306763779002097497109570395640417713631585633523866018089470703186614094769359474110939835196055298321382014824297667128033551721812193339890192761419079175400858087195535444770043109338671082556808554670447205861890808477463834421137986712447627923882634802753034312973260884373094473839430040168672552049631566612289110553231096804536154238008250178672860119832386412986448038118012859957726618866727050672332084916532577271190643034977959289500867448266193897224520006194852117264308913450306839307988930088232656311619872227344875008453341376897596237193755969870875276720192092962085225591111096246801457937434202416283683188552124439588388192602246098491483483434809906330036497643104486948090088943523632202064992816861005474736754545697009909212682025417835547782318681357958351862800534668862359411687598876689706641555738240684078443150926239654512068850360934817596349427567167727767709084200047680195167911332921314839793047412269892051916081202339342534231604654443116239715841897535655871355878052997981615290788021109100623264761313143763931238941166480444224679327562952328218859195999935548971307280381502436617333251329877094367196167413929975557976925689431735734691871391182104247589223673944605477325828005190288318958028999322237549617716822785344060864978489525000630818575366782388361432254912932397147639906740706667118382228297115947186590995671280221201747513476021540062372041650809772153379857132090544265212250244754676900553987756577179358169105294890180775092078373073903864164498948017437545976383474256709313942747159078249509970414615043076986833718246079149176091429707777096043375328463089693356112120272848523813521880294242857963226229448017502338210937702261829350068024170449712448589773682330742693503482506319128491323082536002481513352539680369189153160154904900176617804741388185532956548452539639734362311185072686584145177357102350309313762775795693767449419151376788702199628513518834060081297870574925866088559552659761331170334407181870549942566841745915514452435850173547031398725165407277359262546235954701529529651676664662786158501171909612128733878044174891478910999966248555968226555684285091055614326852528212218913335942180835634741967423250141494433807009693661440018106861252526792469181234280607039889311947748136782979715491188576219039388819284125312028083372403657162642758748396104698103553156314533346746988562237665577441880853180187645827954348012686158597007041410947773899395613925493091200240363707397957503713755934601697107977370337214048014540961702271568609757186983580351381924447322846328891092399694854592441150363099675883026781149083834635927505877982017834873591486190743584723857760927510152923458426860193162671169591902128155951017644062788812741325994395062603154460158168169947798187927070572286885275724845913195087389236765602479505290383106879859576420412192141051956227218962056505223541493007733680589062259432448014633417928766403729680544215499166322605941176314848503982551320760777994030008475262100565483957256256918744147960446350786833515203215338295568623020037946133535777089612872186106405564990799444167312061600716783073307826798340089716132616073376408145437860805021577835169797554849136135104276528419307045948179372199143025502469405428036233749454398879443894593443289404975184517916270486786783956677153104424094534025526608967287712652139099344410164038071147323832816119545509905943268021896165983816338421871519872978252803168031838979155897884494383375089395527831986965018469550982559775160922586563054886674057611606136861445828623037954743603376945643711655058319391697066474041242437001764595799147512184167137360610553764613912224546039788288382459600568333144257100414249762207838634295740218409078067406498833449176327489909891374453069716512950897516837995043370297620816482297897924777259059277123331085299076012922006884466020657908035964083526739477870454217478602370393340356129977807740856520036207527207768275988652662192519795485531636416304637744305515298139112406174033372841871187570810753317963928196247759843843220900935784794481721815761569142787465252990644467895167663154990821346104141317444470984350506523250993557462682747603829971517498668323916073578143901068818295073980912272818324017160441687478711194352991610337902592159896696908530855869762582592920008630026991340302330178443084869504360316941801669200306647292958026679699861322711915759566572334154704321813949727737362048977273718783732336741801479587230899089804127282297764635620788087517081181676926042289187135696479644425382062450885360046928876409401088140216133283030591965462420971876450254448693451852172831101969360871333874363516504366343210372671038341724267268064473688711031167727501400295945669009098137192939398498760470015566021728415875036738054134748075773205782822860740082847037621695124917153906336061495485332697088044021965517964079222571054365634105045102305192296538686420123651327192045289817574846321823932489270785884958560038105619926362176361064148184086617157783480372541197328140262047282509034677859988756120361987457966763029833698954104844955411801397345473998143176109983990625479647782142406797797703855914924490677895021931003911973364288786430188551199758165242351807609008078840921753026347530081611968157992233384665663656135607804346933299001701763468264734622039947701861550961304529207044750594617964381199902225416812908333218547653145812669574662078208848798200902551296766341035956368947974137716077345360974518255659562605642754970451433206785454056631169024571756958431107398325025129078760273471083839470851352348665777522655123693033962362260255681248548649384997853154926624551196678624292400998995580548476720383221018025052309765020584865614328789862452872468876153179822848669418690484767336266980425996257556347790626496201792383130888892267642777718327531142382388243423802564070885061919230833464671405236757145038009393318382526052791435604510269600600811319121097146847190370624808902438531909267463446571087019113284375876276873760961867217163715359955736825161515502988524649900693086145047005261813566770242099761560284364231096480566289243783806779363368894782513504004936679044377838518694991909809493535611342630893292881754515298051491142734577220897025809979573885144609834439969307867535953227275034530266511614148392552492433084824793978965510799254521706048127290980161862355643399347970606190031775196610155080723843703673003354259994827702620659172934215399809633239236254829236633805766696268993696789109684783147578336928319733983130441228077825839099155383881628811486954183824785893544805753006651136766446148012507729913134734139755194343579560265169756234885995961398007585968124778319468739844738883076449392555632312357867267083857889929427487128864195388590246338638152929127580560445228469095374426092975676796648196880500842877138616131313591035400818917804381201762666827772771949794733036723180297727642310551904659919942304972753276221620700266261325328409460712057642886145193951674797802593503028351796908345552699365631645521517080582922922520238273207233816039632565811343938168867370915634133300502145222245015370187922643627765283436219147415283465649303579819169416587624460915520024547070164663142636937166658204188902995634083840989523294563036788126644645846010040358730217357636895334682803813945405256660289502484882319419515371370398220573786414888557119695542983015985995299911089380428780282855684280989374074444753455061538552687017441649943992890310240444483466469561887251176096603333714531539721555416826899020837301049413432574450155224364955709467626971257284625616955247501906467447476139765618831741399262325360824943317177011097029051926983880345006216862147487301186077642764766851111205578126901927638951784315925349550590925838518421195869483967698329931250221719524080941887434860403433733772912529943630686622995469301593132719801500778600705799115237642584812776180752962699832391822285739176633201007242942685717903837453848225161834204010241813147311425589795343806539789477156157305326043683478126324402463603686038648847366862863942194412703551795800271169266762593461174472524727241573051389943702668928155352772406751400627628693854124660690824516868180397278059812316263065690367535498012738464640572037036255584581141613170821478741882960362649909329492098634360736836454355829387410016866261703267074148141175386782809547674535770431240151034644049731316213579115332670354719036472046317164601717302980487990851459677441614622576853336551836119946982018700304267362126585174041879833385926193184974385879228616596807246010755954605010303459196373528042015283511114660044845821031575736352442237682060582570266091018225177544302120862542833649397931899614816534390515998708629124077337302591248085382962814458121194856829725882527965555858367462264086792073411026315910646079178306063500855250068671015644009950270963871711023565408672899615492750121648402627911637728859055305676534815353612829507603562015051148467111068394957418227132473600960709259847840728880711201415199375819422928240122763522970529752508112794343534023036857451368971144506310452166127293585131336786584905913941369045259561804505944284384955074838283720208558963909452206905153944575932028825036028416563874970582303616938419646966866408810195276378450965891729277747016312729753906928265445064969143356699066825247071951702467264891282172431113217745917938787983340172071907016911919248271155111976940968857241603401007662937450148457182078464638499760506289910134305614345866390952793529526518383365206917789922725857017036387435682114041686465317953774738019389876615504828687608349174080604492378952851814843276198193531233482511409390911335145823910805668487854032187060302305278467621747287601701911791903057554459935343350411435768324619849519383311287331950405275028283219988428561720446211729540281104412805730058579094492794934603887704029138259660300856976519343177740992996427292172459097183609445936163216366381248499218371998240476143813761268627938595977463506430961632325661068509196191846772032199146359967394912948311913763904136053275852993458978562888492233389487312145897993467489108817832854728450641859740683649395662107494747134109769001813195698301479760991915119731563812023442367347210746418694119769733615607858276954635069063467938175733120948567155273318210151420109781416532143217921637103074790117726148111876977086815021924983193477559422834003468235830337900918054252018709630469976657841170816969268403541573018038824228820416374369480814556148994048111372191876096913744755646494759121092598306202532883925195388795351325017079818209985952960026156644681818719351856881036978884395576065064840433312559327130982718355810727262457414521335837640599491434515276848070871174102392024010231021211041006311143018358757619212204292134683257276040027290350230809374499561008713700497317573364290463618078468052326330957413133040326726822222559843593344001727150380369219479942587747941690138984174779903905620194239861606139282516025628968019772358971704348133602031926855091525297443858177615948363308276877805768913178009945772479691928944111672728250723095661644323065497812408683831516094126995869231171814846689327114849469605974762430852619051287840973843130283045100272240767740345670271936004852391980295719621284882888020692009699359532747379403273985969710848148384425798311631554582152705423251856131421132046446414818975607170025611202246463776710727747572901423559558864596190630514496265749429296825021046173955179330408966795361567447049882257989692358898338488251285704015082708891054081100217988909504538050319637093180378963998375096380361709427578094800433297724590600464385986793557709366592578241923537277645193742596864455758261756480335551707148562101756615150200089875922999006284147307430551226712752232190458918383716526081811917900037997826706854452911528138951943569914829139044551177909085130376889272757777034550631946105167365785184492327161801364506451855925347749839512711386120080833163868658264896573189558368095214810050328312522880737155414358548538392034715667860168442412987021028736936906030121698395453154710130070301056893120693455412707891769697972773046151775327396808680638996529507844413290423617843093483911295584192504950748096390090053211152064985246881157216468000072373528080304512371911057261358511949605136123325582648587161695666965371104708291935204394983744996712305127233005601327757678730123458137405047015926591812200917736514854243508758984208691058921891813506648871685563275331788707829764526079609656847326556180808028481937293695221715945704032066933030715893355321251008588094179676729997479966347718345495145163743486494417114291493300985124395955629377319010067675098850122622829657355835446405989495771443477537912068191540712217965757189021468948386889784898133984983065948272866570126273608419699863478240638550213181551740768029804108411085475425868300096156329521653979250197495407650549253449768997487066671725945766158977500991748582859083038882622710977984611933282415809484899346185745726578870793719261075408070440336085286583139412790255027896744437881417607152559393291121291307442085966941968725922061943492931045209454584236246436541235137108797393383311396645531018644432038884954016306858249468140760189159500682490674238584733443639855261766634419403682093282009976722056958901050792678858055270454726362021409344332086687574693563357506018793400404167564063271207592024029486444508145306654560038864046566455742713142105048505026637903279209672395384520570110027230707945743817502231951510719100189630292148688733753152475936132256016143802329103421972427322725467872640117799032595157087038834978965653700198420077550702083401496725232770986212707449411761079496842587061735163703043544737104869800829307852470994170738119799451623767882819242091324848181103563972439728383412313816293853846807850209069681862808538965669522711970915943832216008033564017613488362138188808211295698256319013554332900744082163522118946532211405162566319110472556478861731781176703572982516241966554228849329492609157476776583934467159921792474669230628475995483713308927231309349106113591933631055433148092347226159170422027838675031477205061492555511864500633274526080212080692718524272293691250433857337287362423164105230751830797542288416366024369612441002374621543198982156717318965208238638392382769840411044263002487924712687151387101126057710738046588111764869911242457342945246524734001189802053056331553700128242457979229853182889598532206637158073585977014105707339779680391249632302491587511200650940769153169994412447095028668921116596087793626093532759122661487190047532045206857380646153449975968852317764479814745648060060130327757451847775210197319573028914356306149867432159511446322022722611249823509731831203530565600903875863391007395595771799964366434805111088081416029672855170461584495658333465028551865232718805331517085668756579711369580959759970314461171234139956661376419113794199078753413982072882984871959425276142584674962943237985303733426569523589254494430033915699748719710163542198156644023022014090166284720211049651693062373028519238293035321930446592339555930121310620138895791509782180999270985038740527134151047415418612082898921530549759931208470357881224495910699175902636836235713395272839641555471924861422821768448150343424707779818734563208877236340596919615744056147607125225749652292714387538886988990496604205711933027205627192534440259527967625806317829370724964407279855629112718277944296951023057625391098611233758284069417897424378628238573454669316807269544396974978654554296579237308446860525650998339127516472863192276728530101987485696796918671423414627230809279011811179868620362018351048325186247914562273131268057173078423057505532760441270678868121010587084334241016904106743093815660591922121415728416492473744280099739916246134518217155146167474301608934527336256244028531383060259749813408815655682293171675557662272438856853035438421430716414373757695885178897427276628190067423217233807211032726758647031030198567541649767296652733608569194169083623264141330960464004556844810227495437491270147752921872971932393238521384328616768064737513245720916565282043447888653974663662799778133900532760296670341270047167870929025890088592049047378246993344100447777431129099473777355268918450699308585229154900120539695498344455628853054592176938015921054262742704247211343403970426659359635403012708309986329637966630758375183655251305573461190968764941476408548377704083866757551002501934473954594905574775788251522894782329777402868092119071672924117604111625286316963673380743512976307578341501128755961449382213620392397378723214943576497086688738599503640696866408801395419096163169715187703440164008465622599960613106640372000088059235879925290562403093175201792954782936278732356992427582126436046167376760987845309027809065415757355284110310391949474203654520460754544595520335698462024000145348150730878908821247256530171780495749041131929949176391150256299426087628681908942579549321468331995236411291019096284234107646096793438237482147081652045293672819153515344558260240619721392012055315195048045839359776288914943278437886438212338530245969268815905160966735656802414226578076377516029184214572114341375190160734072977736233432843621881169513348716608976154300190942168454793454559899542659118357301555268470089228318635867152441666041062385154907457281135420279736783761871520761675398717688275887298939010028834049219440196209756256163444573369305397091119169961387432896797221443781753626654726440305608110573610001266691228862356766743134297820587334764422721840150996659706978918865852425646280649196852974676366135280207490585531208882054272891699002870666027394514414288216687004218879929838906866898904674454838983055160197886036388012452766741932328192077404814425799873086816304793106433380626005390275398411044481974553800631280067539096359765353002779554693005724634338966798501058541536253700105817042732166247149264572806293203116819630337107590185985635209646914743387782170858696864981186784147137687147017102169975504020276736724009003476782666594625427983343319266565224294505329731443181368697295024767586864422699222688387248472916417150997329636835637103437968441019456801805156700412470233716338976292206937783002596137331613228468994986172056020599763792539668334088141445818567305274819848398403704071254957376585954607831872690493539732613268204568736335096287319342488008771381616193294734931033137388603492595151707315718010845549613100809644315854837033853634940262375396298015752904549520573706587328172390302515827655922247399367713938131997551762459654541282411889577731366442525954350243987083835230480817176366371599915391899023265211028460491792681125870879583938752019846468181087792989675710520050721384781507577222280780124925917048613068653588557184192455413906435532524117258003257611601784234266228210028817143012558817144512616040873844306950575749162755084580130995361318256113524054954763399890954428854006751553309627940967693117299882358467206604559553104403404222323730456033259401755968600457417075787142040959497312201793933163449502565762381599669731376269126794547245615767220225174433089763015548391902354539787089318224015789166630816815301776932864621442890248977127605447013257145959635452747612607881085052684702975598159208192609670650786858563019646964828520010238351454587900559696675721421244203286222282071486540778633204923639791993378311368533740283805515845293456870595558098966846225316800348056223116335246594378095424687644970673136617801496718926225281063891497445766356557297401340492705544331186876410147423426494535808748489992679026924318507698350145488260850313170102147785632558205163967686699911442943655380233079988567431588324486764191508566260737041646465009287711495773618976431064631633971663585982629238951068652882727342642943063186559163402307346353497745029275951722916913403228461972432206854580715247804582946319156866835456765874450602484838542870268083133287295620475213989643175140448722786810209117121945086441034325176604312660766972458781720542441844502897891924592856022350500641749038868495293765345666339639921641135738530123465141807202592404103610462582805636077332786087282733552863018108668148027678508220755418067185988919850554293407709192999472986664738775390104674475219475141187824219943340357043159075925969354422754345520673588369998437777355290350498141262860299799320186710123198243896499532063066121107972587381741714081109922568879049066985436996257107443324198413908315643246768147193736385605932149643133074518635462959492690774904936457005720353674495066230076133490469758171318597695334089628037905716960905903606566411803747984773617167907584863771910051725664634324485632337182721655468202782048573919862533849740993069628596420744635061051304470018007316278592910695120321835329839541662794828744515345682006610040143741751138178522340432724696699878104580672738566431255473701933579038744082575197421923054429905409447540620094504203839026139919213759511486496472411605786971566751304226926670216010201433142373881131430348950191219941328667142121935464930105222293391970412934261738391411539381679965040598851147845761739022011221241871964293555341036241691146820275736617224012465668020910228143426301548014611407171716332942635355473161246396911060416399658887368632147990346166109519580611548532927363322528029843399741210759856311790775731235491778908623096873176121361782977516791625211658751445996314490451364704182283648676855083326979309875801365964341195595128450496691066973536906448573482699421329248928946639425439251482571928517181296515122098676658156285393459781759293366929615176576825412837736442688807873478681619854172569733092666223815135542793380698767833181790199735842693472749144035443267880358245192910536550282995040996832156937910860193825644133204437379539826925537795814031788131043387217860265244890706638897134265422627620248284764583040680776982841180210384750405754204834592230574297597877229043355580423143705213656052642665074023671026000286499255501306007129908191628121948963210432141780603459355109898861876777859882717818401290108214019530818375604882259037639052443193601300824236154262016679390514921087521144117327386110718842753239011456556764618450026255673436167516396463839606656622917020715183776925679144636661188553550338155604473128559840939776147736334327556220134743857341340562191959894348837376156424034932972524243459173995089284732108860607781767372735392639309915540472103130575301472992390109926725889398595161919502721112738718735260814581171699946276005427029625820507082897146607516313779550156806218163066863506210420588971045336262469611592126778588495918281240535371748916890745280319161178066240645316150494257428864668400997521415770014629808153647336490911830791109794073573200532418411411457590248616184686717674659588740196613900504095557709308393933627611328156339411116529658390527068670201432573366335487131504665934667197468377034887662610847205550061199979090165281556819880332334910236891251709712678781240500529084010045995066029990829436688593115844934215404598880488022577491583341758993964246552677039810234529017266745998025055603040078766976266359514258942809496259637243052913379877611146391912562656209662975192885590596036184951850340622760360014130824660761249781510318434497517002098727244757232666992922730504217629100324315495865903084579679102808949063148054211782532375438811257830619792847363664731643444077266747238262619292392590801962776247389046837484486768777905325383330797988444742293902814802537540236987441802910443970951679786098660588385294969556501617105788730990132664211559348543787495848572847741989776649016923536079982715104397433461536836232206287077973651413344975266465820948155915502852868326225048447919949236171165084535782617659140918987684959082344619058294616423414895363904964155662619514810755819014813140628253240505424741341965567214919002840875721087034173084293243598451372088360751426200430358937054449402068729285564960570131312161647683567887787450839622405637128884431217461065064026118727494350358401276739299749311582514314434667058656747657749023585873573392607175516177477232682501075593665226606893388372612970846045445668603479582314174094064793490439640633721915411130413767094256961947367536462054187020803600238638893410181051668602760934402249638994425823093834675627739499171928419512097573180327574765042773478010438943653627653512457222276021638385792867156086251458273602471822459161542245093818560312982481540411738534330795846144192484044181663412511444408440272450036520633418932295053085027273310686442276828063352753034591112447245765786424536586659923812556958345861381208688169604072192266758339530465172548971864698451524259470295135082765973684539264613120293619165952027278401961306387173178592658049135653599264988661598366651988347189122329383213552051021873386560760755068581460035187488462825066548560887479860078399994937143907917529866419780999566711272555948291584504051662410919511401450103161934291732506223810383087369941817865220360220770117516977555550103148208651326936329678754002758684486310944365879582137681394117971440853977795941383235040111223209592239437117442663031911098063621654131663211697743641984782385925487492243147261088953690394279163885332507168142862985980837943358005227502220669842536322145436783298303204191769988302366795110592752121450640278331654259049718697284060673324300985320575573354905875277978876052223937247100335804517410187730096911501855751483976177309723716062507074628769368168233506389279234200269834243652778573564991166177100952515330201894842557591576725112983908378404120112495547665423043521311680833714481976281459502022410340927362880943038710743638355446748284641175008165005405154971452836451357708204362198060525707583603727633796219202044087660223711094979691739138919076203309165955133404171999498853313835406777605030752273325363489701525116652390489226066922305169977137155456001307391246413299651832423710086165744481696589197399206142747134264186137102457117442738647172099216948898035689333376131838225649527895580958845887546139651751907355494439590375840037573607582949145010533797355020283773202222621974603728995600768337994142373973500137801572793491740013474218183923029695454384101453437549161640251127990673125800905357547843909962817700482462364985616215716604651060853270130298954336886993780410955072366551558121461240807477743016602940385407708626986272954806067105076328224771948216904657752174346538692570208779181384860367192252840512269508429682037039330119139511960963980495866822053019318751407878326038588859619426545756627752154236221603323612310439141672910505776317002962766546031048038586177247130323909184008759149783858439590427574427583174352602048871405954930590843417401397386963276804253843863137450581579504458114718673370930801324648546827725185450153689130389003960006180051106274931231866197702184509275393964161261724192004090845830423471310796355482378652679866966753044179690781878324143669544168637569704740169364232142704678280185470060981919335677497753977942666799207189961788974313842421791505778670241059192382502867707293755715003295803586781874408664733991646443499590564882338520444706817540413432612922584102658437228453764281697117594694954650166315699283375370972729325096140115558769291376073984367734674601831766976241186782937787767205386213849318844328700720811566055021469459906329496053275142289144482677975146881038972944943315152260212593755491394086023522212865363059029249771412495529951731490874143768255134859754796917688444600593391931729413236706043021958856845572304431445016005706596692594377075249345188534514749828029821152498945475831458126130908423581252530090998341653965495130269423066962121284555858544713670109537410809694990492617866240773706048884386984668940094329447174971279789521801987503815187971419660459426793783410397358792754355546929329235405070566191868562558076291743795340192824122769378128423360030064073703843422962161425693708179827162566685398573155559062704460366956351213247572809629125882798957515489220914965011416414557046781129305325768570694655580008101645854748105457186423266759027726973577995252704531777102227571439719952104188066903628047941748779023073474611489102809157174291632811796701562997209459298883593000000997586754064740043860743296401023719261700767712360815189539126610587773704490596924507453301551328999509183185955301555300667948485530169671599382218986263267385062166202209334309930199561982164533560537075588830672946379256057467400701587125476351506050490159602697142466603017636269134219851030512195427754316352570976737341737564599569492342803347369685264152582141978654469745147706382427884770488622406460816900480529341881041721593348823557492423597506582324373191129980050461014081297661473667150477745212849209063447325294292582486720236464306217751446640331012413747926430434455118155224396365167203605299038918874375162000982927085473245390215752761336897307434876037262780315232897487376091742736449075853646383863746882796282883380612484572673362024627108057447881308370259274152968623780935906565994573674714144117056453053211468351651805272726648416934615494811130781502839412221686968273971190029057913127592241018788701343298026341486853676397859420367604199321245041506445569708662355616855238111776132702266498475220902148674591445679946780787249200878187552481830820839770554668698288190327456889467910743958138848037408792753602244976708472289291812299031314116152383020742433789451514988426521178064384872050152351886022743583702751499468271574686685019730358086454207822914984612322936455636705138324921438124482142268063051939126994748368909735090574179891376513589759638321668712921225471297657578653872960189065619168821994642316381560767717846186572632771546602738210982164430911640267383587796989222556509214461963592767605323760604451879057268622708468373773492652220504928540450936859525941367820792506157805228178636817423913314540050069438750623334949127118846090730772628981919054362264327789122862035101425873661987382015701813410166049794940116772129031859511415219522134532335636198410075997066933816964822375918607211878239086218899779320188830285420862529666258316890183404232234736766798056749911570239170681088345546522142383281713036588460884691602694474758679228055188571185440382712658831072682931207810825872754471920880344282481576002446658987050511366681897578419483540103428000489124520473340075501849039878003073324159457324720446645121586945279542732273056025576033647797420016022770765654069939893820161138884167837562281740732992341206833889375178956565844566514965482656132392570235470765822979817571668054833732188289030814873555343792462957196707093855369634197341206924994577523789295777667157502516304915047456764378442331541059858753057164531953343974189678482069447973915186888236560954329656073397977792002822700723843496805887129026438099489040219474134155475478528725116161584171305908996464348074529954352036345685012854802353521062031705159055597525173671251483142899310989310292294132388882000350587339645225429458854817292400429885283172482085072567315417464049500902747748031191226101018380151307565836031053895973876364369702641504599421693341623850960731567821203825506489622707369988454158637909357356410335785143289100955640377661232212182858127906912792236786543417820215089577168685445117354124400635516932795381851139935556047141653350353828574882537445684143375081662303505734510318770447975440614050599727694316212955381220534689489928700124642884255085596019874265012092840296089156157193103358896956132187868448358164330918500028937367975725033483031517720357478253295533328821019880272869434369640369204879974879421496972277484915680924694999444606128534988742898089370434337640721014527541214926336734158876479113313567217809219961812422635745888963813395203234100259670081388440517189920063733655405929103851244553804073718154972077063642129259705195084126609195460882588857248897081604399138948642657390689148314196269924538786713992725893378739860652861875186663675544639362587081107830395261737973322334584961687212553130410516795964561626162547156366571086320615491553911899242585169082194938653613515413430124724874043797707037273657137676391871772046786377737133056665278858096742565626260563377008266886571521882081644911041789060787029491704689269465934183242157464868059100972974092743570252838800836892849404970134403960384660098970035603086657488221034821145218784747754365601428159885839505790154585593130088508305510327135114975579658640113710171789917547213911856339967660665625386749059380066033698840548890870347151110547248754871272971979314747225584611913963186169027804471448394564525809727793467484811018583481210457632607420705252180252120584255218735216282397652466263572161111716421780502766504378180681097633724449669513449452863275954824953264075337691970795015753666715181367585541866489623138407883653398376344726776507542462401354479818388234298069147277500900983952695642508301097599352408549483517769121802781484062818936851424909138101433525034777567746499166683131146367802073665934539902412983031478336806737023018296114080243342351371425799197647591500563091331360056149918074263117530368788007076081198031513484424668486180121097826022329301532287428783097545583282911850900263809040292524311823524691374025912029065059699404780828256955890359244857950551973531203599004242155480872913249712274192955024457785846734824307974396006794792978729089599477563736005548979205414278703941258601964183901235875539604070772301029483006223201927760924012686308251020229203023833243473695303873471330251665515330805535410103081389463329783191230772860481499914546605245523861851383293510350095013058928205213341757875164784309109513979523806472564372428324053401321088084032304436466253217747640712060934886058558624360140711995575856983810891893655419672885608655965169189184945465538241598696621092191178869762762447877093808056325573646676187110369542211847230979381006684543056053179822438838417150333650057497507671520464220335791033832547295375795172167680963884683782660554338587545215424321416618339397024054548176362523254189391919965351155287021521041332779807369815244360709706598812386146710905594809665858984193582426872918501458872611605462908393933909957911547402933370356192770673873493113999798660699018452924973258854471659870184126831424676739101889669591345233526739841332491997095657256312200679892917464310245770418212769372268528552018474065236846041108671406702335777369591221464490208578821323521444727625054949148008541264532048244574933350160120473933158626465830708658768218329354928902336139135278266580072003293708569733072392362207165748032645350254816561165425355597122995717251674965430872415744660478836295109166955268478828038829617576973915210487288191486594396324004767062975132599247635296408138551010113906198957200773381221171995842061840390120283765617945964409372354239669761127549931961293325915130653649530332657376888003284485151237866890060089094400608765524892350189984084762519955216557084269918667848334940248456873154947594309291321241904821130068573963621453931491815826803405192856961061221394341179201523322741170207076540920539434307284574224551429702746261649765549630932677791368301293757717382677898283438032627660134920525474137861125390147525343101937229907103680882199552883166286938945770609407104573756874886151247722878604971969246463589711809922290626882387998084332342112502708764201299685668414628744608258111135683664442373937400190786587337042620692160752342916787153148771362848208047478857270661853202757374319040193213488953406360024042777705943036828245103747210272683504379064538415562901721181030722217957686444678464658140838168096999355177932432974216733038874870054582475999764243163241882726317500134375438780188072012888671052387639832167698849635544712825199847866403055307399798215267840885109686964539298317082363127673111670092343042058067801051941167637274375108612048666039606973977934260534321907913846895387992948473253187876690367805501901508183501682652871297178058302744700705704159037424694288904427180456679678415641901438540471711305830781170412019305703191193654535962307993132846109085207049447249689817447684665147921513340216242848860226366894316938958163105389299028548744623147967349785567015110278775137422175301815528933273357113658994952782199492838294507059774836255628688956141876974496181123972899699768796691958229927045895034708029723801102385419503716669103597088585279782174417887916825886517207088180015892322297534246761351482586406843563209830887460342615557760371778800878442946429030372247835229515934398042330799283518682450548077380142626377565071437916208688512717774633795432961590169038359858598123846490081851892763684449959618845624543829106366219779375677151196594172473163533532988955711232060960386203106846572499962246608573401955290969836600949661656399123843242848151146270887309978219127996941420404388320555732841292374345553446674161640642262873856222312393884892673859974202120412412053937643279904153078670555650201599079976564565895575905961724257940378917856794333584937072631327944099728303389766448479965090889010182585239154102199796470690996066814523059382689821589594615777584905486605230372701660471433150663231619691436109913164052885168983493274127744918926803878463878447245046396083509790299050084190911645631301303655171384559201709581596484291544298450459690280377532490573200294962600781392419528673474018296433160341966274323362416766781695654652081167831315954136465608304001388966305689765516742947027131894766655481504333014471562495051076476008792862947900132961035671344684473428110491303777064640171979809423208046137988571398124284714548394784414573165000679629222066724318438701656965374208614681278166599123874439316835380821615238925911464990433169871197307741017750796250479217950563608608230791735267041356917062861924520443660321325476672347447968493212803361562364190967030154794468325032719706734134625939129136864382703136253492282723622015338155173551351328808209172708058725191054275848466562758857780638889609824406171974417031151488905815867691491812452201410287287292016035983650640281257323487456090565728628571025197272678704318103417411857616233956934900445886415235096558532204690688597905229127839616085194530314067506483759815766974287842744564345886099462740760536919435307178055707167480129018217203733514889021674853751920666652237920642149790340941161793511718470001681132076791207297324713578543788831132884738499229350763882300520324540440866653458314218383229156387850739100402531631061280760304119182925531957227544867652274617916045208913625397806279747262456255960310479891676352970674594259787365128673699892470977562211340886199995362757107079807755045234064875130510163739678180758885018772864732984951304488051197715986106793341409162000748318010367977775030913314448600573417779382344175199430004906679242367734203272328531198715590037854940504647287697871552254910921894684119031855414623793704675495415450726552069647248175072934820221597585648133886326006324952197757816571678042980747213364462681327503494056159034661564337310464554664638556897411845507723963239651415101518564666123547498053858496789487567882455654948349641606668006715474088150915768341600988741429362661446775257579938123031551818171597401166916354397878430009663257056216878003363542881681222143332828383779226241577134349853041307954233053620879807649141542723807738571863467406729371778972118241183701138033065770649358951691539315069934491194015626756898492438625204031906673570547123774571786812656104664649315605553461913802530351197334330926999968070830351188670781012126283205123729022258301433349280026373364283964564722976148188872948346414832806510902805693078438795432486098116826340705471136619101257201863194807384118397151417328183156917777503461699644072702956343806188064447117056454741004641227664992712170709197134001211090563003135041589200590476547376030296337021030445571524163630002770168215597361710768553456696496752484964336291826507285499563177403309209254009254075662301828366852715883375054245746637798456055060247032577636473801249837417567174428079665248812161161147638931994179787653591318969482170715549791585689317459043314170025435785385952931108622998525251098478075007123481056842865446422574224973146956414452109443132764878302270053728423637482420954807120603477054339099214187110794860809795971067701567129272657208599410955638492586040788132300356129306484850615422916006039197027853176198195549555811182230476606627681785449338258726479629512573548422867852024694451713854550357241730208953684756486225164016155164316701767756262269297939233830325984087282758068721717220759118080232254233058559007825305881260821870543097473960296127945747724320511057269477077769443644110786614997590767456337332100989360509167231717106745281291115785048971066807519894218969462372304333441100994812622090699719096729671341059016233271581135801698113860358043588453521209761734859953752155292808468939222100208309378621776214649601737991461911685031746488734590256961017754694512223125840782917288498944169329796241400535764202790627409780740131797818968908547552378077282346472288579576066690167966183145959700131504987713187161796822861165488981413437680470030035229716230903085544352974963122125238842427000965559692300443120267231803182074963791368285494024203724672660155819670120565355332564787419208650095681850954765098009408187276758236042729736909549454427693909414041315246208641877346356045956752797536352337629225351919648526439872734381789481503915429137044933022570330948681993546151113914627658593862290374205393282226337924734045835845326966163483949567397201935758584347975325868076222509499564965383140231747330222262509402583797844837076331690883013800248404783362145226416915313026609148617761314770899359895160242940571937053945580864791424119767424040706711765406041858048827802986128218281999187335549036119783493821791279306378644941842914886711023287968621572756759655003591355703052062114208192120600246825397672521974424397014876386712361737749000392875291698222301573446739737191366398741329274773523455042363466419086143666215908927251164748570530577773867514714094540049199443807269893461954849545199126433449553649920665468521430170118517511882261819470591388464823904300118105038551742565542833986995133885271281920536444744874216600039692018731916420723186631080970954245153460994547493039153239039691280965985817917753517053647315607092456162441152204051902681029737481957150369710213550560146069208818088180240028649300514739829646883340793998144747482872328605917656374979758460111099408979585404308650373607785380472230388459940988798489633838787879638084947130167822256776325282663220387066809634614492449690422944865237077832070046019863095896420933531761927831969815107537994785815020903533884638325216316136051949705308041819192915920092913203481675635561071670343278248085075131924277691744615519122795047480617444104147792816785186235154261935158545249745018150775830794770000931307638402594237871748189267039794679180604239358946125849788306122358609100427404371055904476060050536620803261277484720222510650272608785198550924423408353682282583721708977733764051649864738762088618768439861999212308770276185847198055112840692446092967682033811465031894079495828913746731279992318231189002425132713927852863909640117568179639379256162062473324633692062533412405243484243638127421057765164605367888846969523843251017727544828129703485262371546939469397487029515827866531157569254492466996930958704541856941513069674228110852948960814842397096518398263945342815381513803032128602535240945633080131491445870865003398144393550450376474477866060060592640414788417285689370266303048124131545801122868885844777488777681635505287914344540598520447599444680131793396151135704442352903917531454315676956867361529732605137640502626788923512569571987770072662020005138180039615550879554203248218774858272647947227101967315479986502542307420293220538699113022659145631186408387502866298454794033177239316949264258097428681010304204265606819561963578625612696509525473666813418625582838284073465091289389440991882297273420702786007157914272900962090780363279318592811078629856700796735789986719003228772219567665510278806301087729124211317536409928480374094328593880709542990851379682622987950556508273799971228598740955725228285325533190433577109102212935951632868475704722566337946090798801757302902434081955106883123420282163374847945535458223132611633619754594299874337032363511192834242201035157303684002287501781344847935807316085028045405444982763088489770677279123883462399898501268764377812934363270636203092304357155115512489300944518308701142433561997528381082358803644393821717742450644511513289416502849222531489526397662441473964640755911072171931440988427144569081974704692798661289754510668310360587133814684194884047142161705990372509273966871376557847420619045838983609829438778419009736871420034016672246226785818110386795392974213606323291349127318356501122295191950313308627935419955108986720209936553045994561708694708094284869949233879350112017719810058978247739730177163602145209642328641509694112743202169614756216217071216196131928739701353800368971970071193911539170373689628707199326908266003442890191181165283338801816754265702886724947503839420586909314490278288587105262533722808000385054616919702283963371938222324730823558227297703664173785792153036703985444606712774900317436926019377915221139003542191530755425184378227787555231588142221733763154012448438966311222635670146766949518644898022079458838529174495973403214734971622612515062006757554042635425569466840260583678700457523235861069169113285445723886479725746187905541880392129167885551374851795799257357150465725302785714849943626013865825446006382222339547644595296318170014689936426027332486090509489074095534704867885419770511733707850064453124789173640404656553406056016112730646681970365652203307735562323242422081773149121633335492094959780933536514741276153773069747902475933753589892313990355566896096715923879751826544979362834512029438978664910389024435155070504623236457763033656514126551327988051583250121873190909236802055634254864310113324888709828572418116642605877431915483021368117826325917869327286764425787086644163558562930644611176207704648225529404742272555680143623695196482639759894850271864889005114753005471905967916718701829585289655014807065652145936863120918794188999956833029055512657394253373110302869779506712673149028193632779317156563289159908293668257829567820288071977967570925029180583744662907796582866521443169000461334108661656923866143535511977113038591702985883232255330066074213439662616339238611506807292345822618856772948720103812738465463773464317801678790535627907380499261591926675106613253227759870505322415278943278078001469640862946601196589917069963326054967167257360469111953659879204559563430238366144132819840136545624283455339071087356394755035967772449854926564102530751086197025538211534385880448235367710286525872355158472176605995393144609373049638879033745618413610243268185410545712918109312366186679790810595482188459557416812715212015072772605257778503717109182780210652511667615079578363105689631244071262460792425078553188740670119352551094720373769358525232559983468672060268794208881224078542458418693272362201296464084831992301661545983716447373829045106065830168101735477213011168253607321212455365399827333170986769789175937059477097016992672237452811999494067958838394317347152657928223964092389980708973315894678294394713398089622166940842885523698036822351863731090712657693026830991621915837818867118151657506324577172475150766660715786429238752817360868447097689386569447089610487533915719229812115715605123953826891032729793896152179670865969480282507853947135462965344811859105595120845185557115398314768425508740815441587633738511484306917065114695952554307874902840933430747900284813034762677333248057193133495190547037688149644893675841151771426679835200369286419717701720054522787871895870897683453647190615717145753269047525723817558334706242809524711224208468783684785350778951967768140930864232900745861842693864941824567633545796328833652885279822888313055799887978969447418787831973516742520943105065292957771552953737378997083164279886797484441784837771429918506145064138814428920187454359627757281530154689948258885961800352929553308573473682827069668022889861199940546330994029445043501509224957159071776405338857340974533778497602042326865953975107655337569328786505602932082818117764353085121485680064693143166814053220641809877756680313630421335456750268527583736588983309882778364237861314598847805345279057499252604792132630662848868089911381054627330336458320198423284600898063093065213222266573232596084976565061376219263817626842782657546166461116552186860183100926221795389181803682673079677663930697338135836918781458722349210195072914050344812511004667706086581828726982809630329962671974673668619757926103871254141641063736116252814225084230986003458548461205102487345972596629153622044245793524966298415887904400362508174329373667508821726264315147619413221249704264539510173701674378443473322639612047838490992549158326128376974309848496164010343524846353532365338241912028774903753068001818436291065770753558012144845378675828160616446531760726183167820683654332311274051049338629661969810376803758960167716628429645496081466025992561744153235607313589056236905323705093591988659343597652797143927950690326609330267505152920452741818597027057703107613934022914334279919448920431614230585082368082755062153594998260087628429773229606257939128655177349369612556524570278002810811837398096047476629204036073885063640175894408431384637616334934177701351090710017925669849080913284083067379979868740529357063830176438331628163867614461139829077395523876621417750018559455284792115696089974123605762232842756861877595522480173997330084370126755679364792144272939939634427087947326781332748275517208891490214775761040400242003370190415824984603216951040529093177031935716219688391183343001324544657777849241874143236713972942586768061193412695011815853755304617158662783035667879101694383096641761423555395147268967454092874231753086464340971217954005797389758053911092349416983814735091010379115060559782951339588337480601040947684757677966304340913904138636714354863276889155084708789999786365277712780150388695681291748352572908998390314722224177415626735790783608966698957401591985447101525163191817614293080009839988535663119333261881614537317378067901576569635772078727368406953169293522466380011904440149267760361371591703806205976836927632520928047660203730168531520758092217177291658777407981676377102589174010265312415859597929616560720928553522486307761571841846271914612565630922323463963871488248966906104096401168618296786842474198570235229675465670718265883420790249140841090502880358520380772229727326657328743779425409231050378120454238424343901330560434583685922804660192269172462863437465496403172904070883329956128867021526661026393163543617864835858232781728106181219398843537178353640199945125939470419929254363198863940812944626892234827087729186909011770705813192743349670706480899222626654616537176333953768051757386425894086206095592619636878491804677455863916499439980359223724913478515468965615532973368253414297812103500231571409226676036561487614801872448647268060908417396894662155373817414804513838241188053653271520636283292839115954534748187850308133275941664450755355661947334364457004543787034115870123968487619294797345310304218867327354876676720072422629038048328302747407404882428809737481970161263039114180796781499257445329719917018609509372832438981141715428640058084336665225134447706094842549236695358357357167835161700498438809806361731689933672750622337206940200721562901154757629358285273103935257558212265385046420635820008387385461788327724667709894757445527366247399428096763526665395481305173136069858720531520318303217468349662426276926349223487898408308542498646085100447284536527214737068710153102980312608014535435824428251026523472810323093765274736846721767311041733478970643333725691240252020223220835136793446213337468402801919763497621212596790832694392579265329974199384029800337339239441953283021712763519134597999286283466903491394767398629428015985919663907703562784391289301802943420163675198002004607029901091412499306680487734937353468935032662224163333878090388163250690878100390305858773069064798935748543410894594966089064485362614223918491534247165278071086410284576849532934770244567228484566462650152179678647868128047099019758682416038276694946133235082441161814256693091638837192581209915282795183123495684237343615183637461026235738793668885315392769191200093430579924605246413242893607124101819719107393669622531564363147082322341882282203035214367182999667266717343095044352367635748328072417845413993988235794492960703550433104853121268885058893946199580539205237039768525442033197486289692890678966159112112860607232946099328070202969287691179480389635348751233139639781193969164626650178776909895128691786165610141478250861436510440528857430766437430873428998978855278258065312377028528016304405964938654372307849119197262870574670753882217216768761008967350018839612659344994543026022871958560505028730917783220153665321762556187416786236218071618217756150840729261271231964144837401180012741609853849074877367128959110596121926812493509962045271625720990222322017635129256247853846184050504719869519591904130357283476871530643197840399586329724691582438654003699163102287644812366597082195279723396842353706125070404383433893915733743912845463318026469345666265541295024623629409252676544659412792005365856192218342466131582182426608085181180061654511755596873567179425685116731391511690851439155915494373301922204178694459460160763579264941036415078898660050884462551861202069163463669054225107552835993287548537325158514310790713182305076004553302409590270662907311812886343065392439581832829265964640417492643758073148649439067463332647176090402621018937943000888895015647770510974671634689094593315896763671351582561841402096208284369654873930531442201841396224448967600310043040115258486277305257665669173414987796923514953846076771902254909096864636641135404448607800633304746468399160153727621332325351715639471244966177281774940846140059845927120086219382496208969953401492432493987490424379867962237312256639096825497523140508466181990307556102420646997998656252330946610986950273731770026392620802105480370287671671781287132952015155420659884311285120440822357719160613128631374654985895695175602623746415095206577031548819650811071609889102230067974510443254129587625953413322377463344376018965138506195065720651584363821300031666601186587035618695957089358532754043173551420002324742248637920414889292855628910279792351604195264986830770200289420398199262038908176024173359680107462109377250775559073042431329552304336893893436804577828435856074906064732715652978157750383696187214888724558309157340673519659266191279566749281111655034939269372314723970261042279218497550126962043090483462943477826873107923724767687458335260744241837619641599777369833138360578502205634112750111159610323612382846961000678823087600797140484483052298748543607988390050311397544091731726488337146668664615689006263446606893532790564047437728862857405841294927062222176569129922257999686987545535600823033002222314910259898558253709357566067976235978105466148542398844127932010892489280670111821293834579090581106298553155530838442590663286807025453129967814145289572379596832366612159577766451949811741350760570348783697933702424455978465804898553697164188098010719813455346504493472190873208165059124057421749313631645707247864209581460647396536019627488963627350305865720475981230598250459686051933541194658710473100462254614830804671971498873178208328341904064043618930338267442966571546394861930236101137643869117028753438471553614105614464743254796413327367556390408592658558971289478207185010387196624626717963115299055052818366162450583623270282965367064588380002983653980811277524871872214799943523760393814953149584529378934641859633673731000197808338621907205726014576553174810662439065316498169668149042785383091931866198224306708839189004752985830404735803367544532912042078748698610568868752050796385665707373940115169331056058151871090731714839074157281227355305517379034079143512843645706766082010973772927674179719311780002206580258414509764601046554833687528981139170609130022142171151789577972660909882888864830984024079673180824442715958464779409248579000874742309420970240544721379526554449957474191905462157409324381889203875197331614782253976721995847017412290234175911787932144743208316023110525485530229046352188529699336935780894584177131576896588471787280562956422109338392073056914054786633925756642781883107729513306098540390503020293851995387092011012112941928863891059739640377589370198780805466409238535506375558284713416465955093290183147063281807144941449176231663709294455039898631613095211402249069731985202183044477593189784546859817710144580404860336745411176375710191988678168964877092218737132254885631388840145903673696427020379708339024446282617325827481630715044680395722108353422430469141467510969015510181420716946014188617180506180684354563760888923233428564286456066263203639994845466029409861954062959916699831543157290265195762365881547564954901526226659429082222297901700611449266033633362495661053700774635696007639870374503141086092480143565198752659047826716893418190260580546687055694207061350091583216826330336223696581485596809137955908954383543493909954335486435637763036248048442152812826904490447260569575640598606041874200003008701117929989318083311755604588018741836293308471842288738950796249103251963535625293691244536137054514996816016818907733317167401573389264947432430407410364236361303952003299347665158661014265579862217771528145066257220650119838856935630410805789681776322886700136258927199272882583229106674413168430480377466544628376612279429926755901299733380433787709873176931801557534088036897580574758790168964670725767932859077292682674249075942403243123835849625778168085516169810739701593136400466005930717970522076889487359608871695616121662250294358400189002622687797146068459833950064501845006318041129263402472833658000984948268790474708825366339995946752740301894558345692032007381407503935210837660081806850926348376909811993024684473442255528754726215042830451111611602105824014821459119221662507913234202014015591859957008314722878130464341766603154386074859880601791121524572530726063764382491784946547482509204058904710068584173895280769435173501831738167860428634536057525684988576993410743584213938091284133003912374217955230517700238597745486558025871676497875024344488932175816654332250167904011732951781705357452012891119007568760941048527072341732305545048210947583953820567666238570436308919903336163945205631241557077989700405644886452464383483389377196302547570297533790055127719099793909935222324061749562821926504637438553707579300094557497191820301289421433987668815031206035744500105932324123958588668942579166827802905315368808416605777079488523077633582794756678532673191358068268896678805693950188851342507671118631551803119010022447767144845661912801704887533957630668013569474213328466772981854927143729222281698300675644734832304702592210030423239221835654778572450170471068930934376000533756393940364241449079959527220269523542205139679861889933775447036729105184674222775298596814807900810872239435460825904982771192074931883661044437959801724912302000374236110921720138365965883617113252542835131503257642871582593786014299940970077186715704146287158257092129184939959720083109926266857247021506252624017185801761195852561677312912437179944122588035869850059000627397289798957070205586961135535636832930614841629437775643540734682273567571738565543956555467619843197639167543936367608120851173213239315392535511894532355150399158241402678472741200953814972774388559280371770248375161978448583130550089282029772081471714260236463446294270453863235946211844118279021992862685738863822009987826549341374214053576544871438908893447650856150310574938138804584462575768017705650963773175115947789361138153284996148118680515444593149302077548504971872706666747612950155046260670967114323896904324259546061455469526104853922828278989385472017746408082001441770194015030010024143306291564091734042291841175441170112962041939595396504709358548446171446723133088805510249424154254525684484947900290631521576016802260533014311393609848964258079769483934640555183312111594640042299638015764046171888440952517646988931442342856088861085777259484210448818091739633208637218864212863502627895735270469290230784446869817216812825086789829664095883971477820770795876642004628726791714249346502136225181278499866003151593284546294870048394138714479605462192592682580373069713792359784384245799627702411842085474189730218878954305853141186150639600934420561304044633726208976778637354188106039237373641321319299935846086897934020648475480304370310901771353619349962428258762630516156500221749573295419801998976459347172148503088562372339535729401817932297064670566281983726794292641991833057458278733332558416223715678059123892695457331477223006803025089187125459994390804233399119197257899233018421018719712155621526294103973696391453524475522814416563201529868975978908508801141531781249043176228670404600678101507470778041183368693058491468254116901969957047620702806338642290273178774110471457654889198007897929896095107912088591793473823496902729563804293263859941536430363806860516035776539283959885761780205204880057270210494091416992992296502858744510915845077659485214554966360953105726815064228499311639281288483977316785149308797082174185226785318554432241901497568962441102273856495564294998725419364694194955847837165090428584062319443737010586882523761584893200337801097902936248717120706639010104374444818621819316821145155870749626404004402429840750375638431912912963071492136125600760531580482518050116364172039669412816632104780808696223380752627184326080921644460151950071907211561388581551762433224459007739861339155367511452184068473043478004845722360205769578317056730619314532163875019964243720877681896094774612735872261121738256957654406692277002589580353491029639650879990123479073335096577547204426842193857488712679284572261894229717661791256920293808183383223173959061326313763687747911960688286643782184805180977316155805124408012123588927747866841840104560588121494251650464780852070950611914001863094310452072519597374760906150094503306192242662128084138513611291139193067221343954216331720263493262109876736918273355498206899016887051153803923690764917248560853395163064701478795149762835953146271493607495400248778058478545884383121025272914856344435892983058478973731484989730639911949234613514495164086718734007436596745117508386085042061404498751025120426637614272969655587663597698848103616126174966549372031353435760818248403714171762480303929523344641267094484352719114578389833634184032327873153187563877809694269139414091626639221051838846916930304983027654507972071827463820554804812068689239717942986210185304291780407496077673935613557093845521366494687563681548617783312922259682051036418260648935145656726943394237794189628237989035357160554805820728746476609954815901864661253774834762009942143375524436335617306683215406433832982849318216525399861386178369815918419494751352341280529066548305014355593550299624588359146152154324379503168343614410388540492016273536584934837314143182584730879744633061827120580194626591669861026780906398207238121774874920822655879593255420432774672962773233878792242444911476267067653724875399844221117594875507766082865052833523093493578191573680824747386317533775650087283421133766146226822886589985477570439184962904448147270707406770365621426950062979397718755938902125909267404148094578851850747576027643742128076061190456202881291172449907668237753949835427635373132018219867144212116023394547029736682277516575943695480351412918920407634343718477477278027116394429924346735427108749933152464483505097416605549423290043604755811517341391576985272329956868436957369553393901615198678683425844375321394864815111714120821287826727734209846144640138390520159761945655841487275237663227537191928080560929436342525570081036005326723400282939469281016468331020093633868670327499824365468754366666992121838761906598282856850265241624349192065005285348640737518787258351545743823568171968549433913272719403148867509424623451272725335510466230286321758831535800108790672025739995653838517071322631497744232323275262885705295747643367506505145604468551165543714356323404517670117067761677557995422796441402650818247090918853534392239571324279191868835475984346087106329121254300891977029033613311773044367841890536927773527203103500816659251247882443536621863188364979241527524108287425450543493825540071438966050413920929516568018175196263487507404154632696832110952763114407598759566363839037422033577605249051640979268365474574413290043332609052659491450081495981343072100030342414930120830789131246395289946961300757681845664298348306768477238340007418400279588548816867800981125223757720100874719253723496736252737989844132856446120892711087792728096708638484187158050532604670216809440033761841670881478445676811481138441642667392033016361242028770638587684765732694165614273911670955461865280912019920260792302421911746170934682040295806410196904839594782437817421372887917551921347473728964065055237738229060527707016285932825128010257226003432317739442646625203600078452382624647800331634705046026933313892164228305520398682664961351013374294003139541213104856637275046471475941293567514712219375934345697256899666496477378867049142257611364006145099379206295927989131113630780128315039844153871529269379423515250576690923311126936403210832418654859511898799992601289861469601764637549531934017355530246133593302426282174665958249104553278829624236337771043019860225090088491912972261608238169667828288787770925362238134211363026586236191143998387144504630497226312856233110266126918438699769740080913454869490819801531822686148910413582961343418830265594299639782910744589604362162445151052213253886319290758693729356621049049420761641954322063377853915676972741408505578978639744179969314715344304697276855212737719906643247443283558986583699893669085248495044260391548010072996847756212176328875233628876291478834172020093297639298195367826561472842058647503959563096667547358800241367709691873367076237217169593797898723291216536553419605305938955974648911425302075624051620450790908114338899429784790998220969209744246134885719531228668007055517666194660204516846685631979272645130760212037435916171470489549475074379569085955463822003801494011380671762587876351929089774876025188892936609477055762193189935642531407925526323695152376839151384500489753925357279832829865015227169681063982259430640395375730845610721284567200515917702654147379255708102501606668725322336099736853731856014002231492993228510076145943945869409189577182553743249534352413575340437498733226353290452897568253702108845393340072851173058635990592324203504973987328251772810731004458822095768487014434581829956027749550195333339245834369404104740167261884651796714492874233203451202659239149536193159135065257001921548100159819693832021239668790725487439249907503969219706722858760781915857208051490807777423587978687433090035761377253436236005956249996084346091428687067722016265064642248797455789923456060801497355257998536518392694843607862418281122799115844672180352439291045549536742977652840698651626587157252101425274846524841596930331540538975322480516665807885009065726395204422961165269807751389083353865410224313317928868648243373235967400100685291916024170655682768505674421020435630081577228750969824311865377807334565074622908498024957112759752678598708164186042947249111476646035976942769516986829250789254808122454248517600582832782752178307832906894204104239755348859851268110033680710197077220182561051788878475934168685029272124521572034699336882093168232929901262566470380719299404121996030385004626771650907371267129776001447431948318837186979212279860351052197029262731222565324293772046313891512814984245423297795267042264756896632128766846237896001537492320369918596333807522611508296367112225314514814187285479971874890172361845965729314771786675169765096978959222092724190448215068754834007468686591737116370050451528825739900315585841155467247192351879601979666627286982727691046003055450382644024554629285868810056656287083452024299509200475144804954858086764994305586550245840331608568643757558494858078299013188572575972043309173916254011178712364168287337498166568054625890666059958897761177350934824598446500425753119132377769964382971724414104924545008729648762782252525125758939734694105661782866564809649925350633383539847546384681179391526831257977546691262470543496106617817215358865565544763049393067212037647741127221277816756792605248901167177906275043161568130197936736629687978634977445645883105650092508460550916872342463775333741567781232177238874187784087913749257189825261028685097777081768947593995985096559318487942077668969692944320291155752810587223646326351843774852985959558143317755180515832307333342329463384457371719595521722051688727593538791415660413403744537705509565346878561240985767112703833758310756330653479674535641384548922413165328490284351848841163675398642450653307237956911316039698447956239528313615621897587402198359950837085626247415314728029140639226726707428502047028108034394515377172320283210825179435974191766451872286459811898298235513583907101697994727120880342064480749484264257857661842946280340954264127000964208112353189674614597291473506452882326896833251767126636741912002752192479098899672835774041025130278531939820650367147403406568136731688056849515356236119158835936305705797709550998371261997615536310927106037102787646579593912409766163826503215890391611725804958807190209472157431635074675908195731831407924728477289310057955961158396856621630296286484184001471400934640217616355805289695530842264506067640569874344109077025755095047373472712860732406703981161547680050206206018300352135584175111142913339395967076187838321241091247646264139558780131471113565226883055415559186369297719032800594460022772299720075569075020265849720769947157404666111005718652858647825875069544375639458397024350148396927180414305367565643234904628340797199125572341412467847388919797767651623047479331239073487907092297929739640080458905396777527092934404353348005529994575531775650792385543960663719288780739926394754865722934479530031212376817533196176274650859927426664291660563343656955906842736637911971910567469024616342459110519728970935469474342820725616200776239671458167714379666504668051935817049276228096114434262084244336107030822114017104621341109886201380397140459453859877078649959167710406513672660412439412979677174649219833184909749790681598309009390300234882849743978163980954254052743292137398149548774480911854042228459191300098604526358597841081090680882460242127191830643863764421540936489859105758547911143551527729146051528057800816343889302590489309040400599457963581047291805585234839570742692962059799637350818545694164286104819092684426289809588508933510176032922624811440975425754257253933358602070839176269449390676391493682159491561658433210068198609038906334274591873670493521980728157600174223165244006354659810862576325152111845187738407992626092428121762867942129700845141616619729312427621746543558708405407527373540970756853959072666242285446129582540514309275141166793937261169385832615092389484191679631580164242239272815029675953125744591632052139606377941120649607830927015484131068428206321994325160393766459393066959423718996188174906334502977830058681374124064626090042999966413292630083030886094156106875758520272715695481930336811908005324182930337580269120126638619499219150980464111452128491245822201035184150442382636411121879387561416977341526267433957172386607370813182926177302394501705111763312316751346114239779207799725405944339987018956605826620646959750287967087605302030312912307379885459174679526464704197475882843002341442967521810869370408568209910308196344641833001147980676590608680238008200196587507555371482696418741307288400029949786572244152199567303191745637297516905914732446726239632518975552984875367796365435425982521650350387276380104248988941188799396335354244448003765053119808872314009687569981085722264312191782948711087311186784535183203405715122625763057676942166552112440554025208621561913850176866742423030456202293127222206763718026260683021625992848394024111190776925136860269412310078777042117960643391030592550631855831711030755376311162109287196355750249753017242597657151486640087994250350235995204969257100893979544134471109295465356860514350592815769066547177683719711483844200695174487063151296468068391875283634240197773305346304690297668584144782186591515376379043440171634044342277496670956085084952362180262501516378003285681484458895311828975010538078884832854503218166001962567274027192006362657228950053091068163091159565480812090088125389220580585281534687565120746683221033635248289726224839704628170521808169690324083355584020556700798491662590973666995492486497250068982459278343189410631926744414118440332229263036303588573353138433435334853994799332559742793440233448243346180929235748606713170129615440509174163497897656790353682195215733036943747228757897737408347003293030005894080530698069965930627865877647655471450754934535274648590104202013156963175190512931319831589109007397807959527617096394664021519813804106212479570324746618177410091131619513025304217531379180921505301695363829588322544787083578280678939296790332325295579592026063774288091790288733444579615618288314820075854022578353565172465951169940146656579595355576976894734417544757118936573272604858240852678694910714395320797984307371447622151256963214507574660843625397184491495446940415343862010718133559586778929735156599369442092915752935157882992473938519341889584585318939811733027660311408017549787787131567590995076997453527791824495997226456882523910820126106926946175212090586947066579284273758267488225719821691884780010850283409354634954452536063013963000912855355289587129739176300302411550490783073499615648107929074615493387051978012426838501913114091189902871921479494733379944766890512996606531064622576780334461606784112213610806057212944762707326633722013280818775358021316071520117333096321420789642861346514009241663957127827384471542580850035778425870556224685856549501235202945961783644367402620147273101413208383207682235245743392811176196486795961559974852982077993020110479271411707787785875584892836434352201614898197706533504914955272446564137211353427069683369754427576573083768205692308103686718432801878872953613929968795071079445113778888421719187177820199284314140260659911175730146257484029877805341312790867033982189911930284459571928385197659982099936288648842382164206489642001536154109276443742636074443357828169915936929705975459614579953015550384296561693967500399577480965214257231365229631561989022806808978861076993894691210133290419348925895667329508015131773766009525098652212277850275149526943452312510114724283336256618999626305127198867064187492391077122795414439788560302633883386044093267718247277473899688643276219927787774925142720170577343274032149491825199414174570907479443135875274964137080885288900471238349264845189259872697997791612766157874752803606040318399440043132092851455235805887839136779762075520437107774409650485382877967616757576297653529934319331004618651212994958438335350696159119691253129988405035900738931565725874019099891227374490096678239986224727376295020116490379655749302160269958596525481431914830799757001062495116321866671604916657327513435084345115547388125111084014375993844012525598884381558443330627978122543454571325791226584559604367663122888073340475881903426746424469830745101729693191679493853710481455790202815697471013270859751777822837056175603788285702625960278786181558540982951555966222571263183071127802003481643045946520969600790060812082409977684866391153926218452883093999244008553277318544148072961267431665829171718200297886687359463742198753930018564509588484563869175293971080794295590157549851222777195073603239492550140707104618679478285023430811962980470122416250889847912024512239688641762129707746257538879568694963505689886481458866512868484475442035716980620830738473907919280999542619325130353110681201733622180494243637292848291889461416858778872950230030088432754693819875279060550927998691732702451382721569781030620697664280439749051629974057048561931782657237886911983450684942148816633180518205424964779117300400140693633336574581966874574681888623939221250159234001516036232629984833768871713354177652574806109437524911594385180328323360097672839913097176654144434706757009951547350456551329831004959445416578343507811577274093318947920046911498611381489964319106409531731315993363712460777106591508945205910001901341133082041551180396432348350929335305995165755103740874805744368770538822289982796257658124180333582527819001763817981363030626853441767376646891791433004329021923335608307454734639972665921545245601517297865920524197984535600986033084850160654490762436504434605559486797130064743991224487823800361235818868893533951583389639825941288232532541948644988991731022445834121461934521222852912277179877238690360462490279644293007093704630130513467231516220020958258487795250252238241958084631472366576527224994096310355341262164233193656792724059517097473325000798715381224245654871369328998149795620340005153742843017960089785673234700337871588429355760381364101453837738145012733901544597306966328373022589021838634097969731590198438779916537231996914449328870307489398093765514455446696269347679649300609607528254579968108922287547046380376760434180727919109775193167677147934561222082356538595587348760038319410098813583856767204076240194019110910703958116938140177537466566018992307951938401729011511445104456835071943733033357707547017856952245913567492198900317344175188192947665991684129428128680665725090438068261245096645452929529260688999691118819900160536280247298368680883383359547034837969392809081275934691385431466172041893201360935182603705124411699075318277400125486759708485092735047216673482086665251846311137240031881248861229177737644476170673231283469683003158020055652345448704381795970109270780506611635375550301402284435831079682961830485795943564795960212457301830616896990439314245895822015161756681673390724715012314114918128727446803995230374542614531826721174182883279284661173213058540274469955977819377791028780166927981154353508016960836039161409632991729486600253455681316787450470960591161563784786974047459185816766873123565532503948236105923811256437952662817750806897996656025017241314087790722217155737673136274513033120646670117173416695522492578723665036953408421300756139331930522145585895795522711300922681589954429718631089493358059245964859261563049286424389297839556349361045422080834543611258460572393121336240356386288384197489769354760327026433795788476563647371743007422672705973342106886685415268439644649270577082039133816441024460267495229931868928342301744186889247894975760148742411663428809761647613367519570844260995561831828055608487403218733624960060945818761190737089610872331303714185539472922242049722865291568816237779595406854031551128906958117110236413635188149058459563540226308882475954577703184317513854080551732322570331540851872081958557907753994399624413625890288126315590564149773530957781266417596978036738350392344498838087781625341808233487611561687517430164395466683359431520813469658569777191468342199468448998719562101482776960618343019225498380983762531273058920851742508340423478858731337316964899945696952654212408419653324292900668025807687609631608050260657357602112574349706772244768958426265481699333302175894454770897373553672972525890857259623687296559518702879592192222993794338907560589683668303973596247395097388469529698438367265950902058029067797970797559461537975324735799947125057707797937264306010894360323315954178511051817892766937872612327563555779017603421032925536354638607842774439173462402855936178816525396244051723535314318264880958654249054691093599270330674515183888005368939566828431392591059604689221574996459416459931487600242904088902867622802012133853864105449480095222836273703450611377545483020761008126847537644647937900208242791428194357916482349218758948146427905626537802101067650608908350089298671999045860253652655299314732019656032035028587378697695846375303726198913195303454608558362275219093092905947366434947098013084631596298169445771012185350914454771046085507718967778069369122581189305262804211491046101956775055799648763806607293692377295519597531483952162293047418121765535960903377804071660529011447038883707767576336496609667445590109419297187251988027256935800911287466341599311856183809738939320771424684246769426499707396872011681281571095915764113511367502814913342802015390360134896675757465234780971106198268083851915999469120740257606709426833267948737249987410948706369383194908458841956167559148680461346026984453781814579295130900915586031936248480328294438419636425509864562870387487025856319825128848462842048832839711057587649233289340386256154878786893627168936450161300438812644047276333843104238538576101964549206200821181261207207393981249944018078958183364668466946513996940629083821481718212984015033216508379645208581692042615166185485728677762084093137880008473064357840401956240753006839643674306691533633371577278509441588156516291427694568922378181852944869087229042185093548671845405359276449597778857101671408386667221117140839665188299802411156217530650504189857699413863159100851551169248100692844896699061396596070310303913403317296399351468824059435026640121338204099390141754033402053049577616112159556834637080468524022087326485956559460281912734009325308397158742995456205989926747321010933574470667960350794089437933100631765556939544219221157403440659415060079951655103440460344599674502987355763572548395397235816469762077049477646191804677645709816602319003565615995924950894992348179250284585625346595277052041692892102401994104740366420514309811416561921294199199102855032781128759505404628296307102679403105089156227818198054634876486594496981689006898408912204819811222362931133192872348499134795473920983177536696238083553053179903752113790512504028778541687216891341912763843831689670527491611726392565170253407526010814608123989586278857855361283149444341218463779123840638740135390895404903550716886161178493287856435225693797944001557562803176575987688444299034488329180023550844492033675333881106950234433769352259821781998829122257937858366369482401857472523244228343363905481237236667914549194655039979283134471065802860204112361470041544216699424945799624637775776758361984790720880099778170822628086639990253018786508494463422803577449622501311959522099936890738241919983374904329287268785559883112630599035383766180123581292101818393552870154565649487925944343724309747609889860613765045225201981491955872245821344637168192976360551154973344077197932722100562455930545264140105947623385236095715368037241102304704411853414755223538201364062748981959463043490924933428438825411134158523637961702368618279075004453747579832582496643477061881755338808946897727811704373619742365709640213696038323196723695621628542676073826647091220029679323518241202178162461992767333855725113504455668563997204950326617728271499983215137871463013436715684930955354119064545928845465272446416935628379973853105926929473589742505577173216122269577112674612976159131266950955262185796813756284912719884443099041611396924488697307312208963760322861675811831568022149995990695081322676350731510480697473402624086236309016677992462502593571217124474853432979907611915505683247014563455988712686328482669876705685738332239865559663283438271355523887415766230206856065041894396586717795753332190119578734461865013567715603176919294494244505153320127811408248006408984795720794940887507274294238477230905000554223774540228407803518095471689644207322554422393149858258737933528019963658281165588495906083418830049086248566485500016720091426109306949875093157461234225208922709425444338245495875386778862609967340881848127074955013582726631972511899223717596268430993699044091695894018052443037057565523883496906906573221244539789382495592008467193325927242176004289102675236256805094231653183346086453830271340130214218474662069374338862229696667595125258019568472606134494899829456941259938329253513333814242755463409512598832290437568293694960927159078576139671760780970483501973866473976553231100635936365092938045207725055792981429737075275228361034821434599345787183209445336086635064750804529299623929585889389485362389832951152388908762994877134895273754050377206538082328558070007772104169682885496459063675018392208828362016177643083600756589000738751229076271684277430400653134227554547659206624901512078145206051003265518879399324348620866443832519436640162397635674730977489798142540268274506931228674947874458623790109163248179482538331743216451410411181039361069964246652132930306281979212100762847170690377540390279572184353126265110425562149998383999721816974925991624297763426347345762088699719233046178858461495690534567610282552432613880806625388910960785587021448526469288382121288418680074836220349866484902317398896466098123600401844728332424517759801949014856751195272530538789348920135634599760610673204826249072247022588739189626163879720048808319376168286804892613667406318982776701574234275868660686196895677045428887576692401452353349032766566642547792212490349029247716953002936075766959251502951794538916694403435835971202969905232633980780809875040133483602412363999122835627371117322455901426868510287092174711074423921020456798848295830161321000877754133387672848303078779582023480747221178757992119277496457343875974250036796476628641084490501123625858636859789591513440187920525459606110064899155494071255439326497088305127085064241579300774180443087464934041243090076765517939659137520948853505705309204165925623778744099686633107467441321530038830287570528538392685374910125317929507669217900314712110656446978375298655280973890885488482302802230613442612007953483600490223329080981585563280612392530192463069471289360113120103605394311781663035929224429472043536641275263772922303665876157221228226209352792545507999100827665163415544986303296934316911581225394829398069565779151271289294920276340735343114287650475677881078674346372560914736210047488293887219189197841747201513102473061722060532760117227643588758442406344873395364160714815423454763458132883976622823145196017659184995316909892134481843919275180231579080679722342081464304206048971604306662529142927488016340156565618900443620153946430689737018452667271860866719118202430229694682287082919306887369250707991099497271998367462932563266457064327382660754944639627299353567850239717674769082548526682613388266694678763408056330812104928133578688078926565809743719240254116204706770932329280776671380255698068691508313597208191817347056186665704673650678964464211236051375711458381547820463195450810714203686905705245615729899252281271618084623069283309154124430721092870050953640480828658733148841603504427333960267187019858423214355424112744599987970133867429269841650950414470119060538569562204629389379072139921811991155182972939651895660437081046007899267907629950276281344078929396756749580235019278969807454825988258862815895059775021263851571671295001277237855103128850389539268778561144913009064656444531686158176270782058546572712969902291526565403756235969310207692958551368036984562654553891389389832242236028024879991118145471598385005688949413222905827404699789720627051673062305787202654883567830589864267631791198192017844880090434792247641384847377046687239550455169901798541549804913970075280996169448475495117378475752341127197034964643188009870673054108845435269774329335631781966828135433590100843225324024134215138642127979497973479984266584556931459585292792432110382144079689524730920060389959939111476650495679769267518392513611182632120007046760048657342438330431754702888295966579346335773237328879206149168523649173237734984793245835677577230546657834781384634261873365849465923198416396455973402919209202815691046812931166090542119255221417899228887234267050367266907353772028914737132712510957391259728525831171155128822437976813055233292528634601187736941474169927743911233352108960970661815988119009419580570671833870780210317300615652195509032059178645218734667683670259049291089340822290412938090188923729978158447422380078420267251867565045224674793898649461826969767476605550672418675493417619721894578417324793974257378047465368438408408440963912995803350839452680989502851281431194429627760591612288945164252954303418228158548902175708077046387872480721244511167928605754879371225109917784960148878637884145957130890483375663703276753759514348101239678786550459347302168547730367014779334848141463978765984083565697820481393900763710256356120248581733776100253436412284635177278566080313201581421867159568426318923833741878001630412957867470171837880159113174604174481651592018444329242293135412195520583663230116503822646621089460705240832281070142189822992999192223762291750662882327303226103696773391194197160959861870319338401642785228587379881428994281800984628601635940155592396691210900612730224152691559480997047949217327470559713539657411344368979891558856874496548734505222169228659533695546663559800322003706459303135018025905393479812412242937898968607408730462308435925756566703361588813032772062414484621014573320253868384222355056578220443340883413181834158374661130191062390461242933311958458270596801529042719119544781990872022542517663828932990368993777977670128264907283754905060611869548628615133622320542595141586133571562383623597604817761194495592259197524792902291221592303580497313041847424879393763571315506957272053868554511523605259680179937057193333695788354440748684610646151106331097625513951480882405372550677156052265916993052497208866971538257810622452975327946504888655037262014803911391784860528130553889323652276465826143367007289633197467937241732455188814615389898800763852909265447446353253937183737184848421156049970274805965683645384918306355523798284094103897006294689895499970489838180656788133971960216705322469579795415005417600634228585239501219661180815490886695698678140392723856713873466869819288589250997750062913459130181516529231389089917309082445723007362144498161504592754779606329543765789083231569224501592386609304109433297875268063533094662830634911684085085604386271982149351006833969063780193795603390050853792313607755043372086688555933910531639443529903795519762411557081812381789149272132238371243037751530909705647924339504018470868917210519827010040755362958932761192115747261767655343955500263657233143436119005680640536013398551729421034569572441997120660047591533152350418991325390043960285691300830761088106399153197789530582727744057621588634331111063063215334680828246981472818977825669947201128540594739843509661028149631738705936843059087370114447473909509725415248356315738206901293198770018143557503940893948516129801043461288545658368703089967179631372159812981271846783499669068521476756540605534010322577422554798276653701390939909065344623964882844873350882406983931854725838318801879055250520313491928834301452270404869835981401855647483265543203113247427321359726257305472180175626594655040932091804909273925330209662204442720269057180616323139395844387135552194110240572809029246552177022361510984256494961451642549156538844381896173440319494598433777780899140434013514294780595148705326215082592366445090081206528222086198553241642596457089408319932214654465917796258820286326521086789376678724158942198173356219330421894941597894367899317771579210906563706070780924125826868799463133823253496154086664506319195250321317978259845194314058829518144587178397195121810218932291725228631055957034181497539530120941455620027453742711271795543844223742797784168250634552606507927564078025479943695355071592133289199565304165082131905639168219355121475377210258658536477217594715918047114117046962271397945136307040659031382583397719032888193994279388930095393559073027928238641340189772763954097497357769675069243894265642882463360475411393556032472793970386419464477025793246448362475552543471885092803284848365493693469359814741952140716938071909989706575229964352654996214100819575591843510991926872929139128686094573808234982470889447669501331334727791212692198735921626870443834267656473543508776326548601265720645496467842447897855095192291667323115723947196348267429064408052048374287565607529949497926851157451240000273927416623339413700814300810273709929730802673936164032560618830378393110312490449534838819578348151660178041043945271936678220822224125851798076357551758019525454299921178568831252350225882444528836517039431960205371970258467957376152676472101593952298364177942448226128231333333320684374457553396777208243826527140934861542325371236885622603295636397553122294804083825527721444120531436637780822805571950143152764031517817720989120741840421096041135718308992954798790517679293387668674177168433700847375714088635009544590289406413054549911885367120928343274984989546918615012688756604360155438970860512541084212082145527648146782839611265633125101581975286932191529947538609288950386183536274537247141774733876719820195856825805098548483468362127867849082821589785900067135653573530595760121839467809984621401212972149832870506729522422385155856094070210060604156085973063123095475281821979225329828862515953605549188184704944681827717506767083688285996093450316410362238805091635734114968574113524079121519059086747978409286006984836712164575383619821925020407205630517584309853533735536656582618072494993192657761686309677717640122977186192593786298051514194029129137848000937820499612801000335610754415397934983757667809837917793865793196816437640023648903052739332134829546266479542758963063263769571862517169354702919923607080248486961596519579906101949107775147863200626868851790033131829938782630973199121806316718774845007415082171379054443759817816866706996317762290425227976410379291413179622264210874370862268791803300459524331242033231042977422178610515983650618976570004178563913942866042692664158665875231991842167987489781973482335978489241511698456705878944020050815210636737688259068262608845323667945085732145427550017520638022547110143011989223848977997832425575398731028794688441789803682648163402998890004466735591408046446461012664798652477394080827935250284229153825060856655726857705336742171080472091492632050092756297856632278620044631424969619958369406663650109463582237718887086539597101212591651968239239031873467244921349101820246445549432993034411144121273597117783849921193140052926262300528632053255360830383806197757690272330389501245413425699171180218212963151924864887338326913533788191709952258597008560240195321715745446779982548422826369390992291195026471488725399327768376322851344807733739590237787542723402722786084248471067888333472630792976925626460702668667312590180584441818426528037134107296922816108255440381349802841575101209032389959290686732430036176875616556397255497084188294454109531959127749183803778481499254772282626793556458359502395884697489418736971665831085473982968184944938825603470561593823561597019292362723214927673031398019908233834694174766638361189013059852046537543476660992461579278628028201403986348058921043276570474101495417347418158872358102327217431452139129235682818600620678073438160935131214765152670443623774793217095670679517569893198318468021938630401117937053294058692951147338673681770248680898374608318421941882755789231509505147229798169300538985642638993253076568448572957461207278044798885810934952984768815521468082173481776942693303329942231616154075409060372609883878464765989508065269019140014855601736837248808691000033675649217641538033511507406425948742460937530766748716617851272923951858684824577941391248545899657301260053591117492650369422316249314874111119540414142358281811940497494503185291283475937185825642582567867217812655670939834538903027198885362011592169062762067660198837916681234626026306832993840903396348272277206196215999805086526832695801456038047263949483618004037723885239440020427989376170447437052508104062008582815140687934403126088843202856522701859992479244878243599922985649820243762884079891656395676633663561395418564322419920972585906713341853306506127160273237807701422974904486548685663357093195037070776318215372717075798598564083860744426070427380373972774206510963483114396935497709502439638082600683226945080427702545723526886796241554814860616877762271718685654436188161841983918910150106689537973207484085685780412196386283645585373802633254803715569704580567320865245050043218960509990913378339009473603224728589142176777079080442158018507017675182697889449998840201966340674196237274191513934137715976509258881744945413194704991965320834584718440640985749874116167670203402537589343646498032655642606760706027373184457446533154390899738273591433860774351950071945316082216168512388889253200323892831913610604997376265857247802897752999866853508588466181101570983777328401479884364804772953179986666181398034689194956889159381746011967135132127718379346808530364549017506605257072978341794485955753930378307898103385043078719944050068572977174888793828787889910113707799436050938785028774405239820165003182109314424281920884274860564371295246641403460700050955482816390017125133125360453432621019124446093928885110970008145238002609478303218482608559288204936445623385271954458267656767488543468130432367772377428701102477700127480342785668041209709085356226861267920664202685093853521839364382581647560352885983696813763990527068034043902218836123127570871081595117356433196842408593623324858509735678534103504425184507777380992564388929801767467540512040015631758848900626400873097455118328878067012423669304798422933203587497616749244031581630343768577023239827018121686286495635196558387234021602034630040382195902229499238319468358935958019121831554276224790594499619065654143762684196604983143601004437985205825711136585268700819959131284961357959759989748069320041970005758644729960375161165110885851595277369691355173439035775549450299108087486767583626720902065833376155891009174975918511892163193304989564601740781953779552595119711185980129012124068971876566565350645225600052871003539201166453207961926089268286412073114209733734251168967820891596100939804506930924508638523555387050053456792108608397852146834674450829984665019841430428879981512600317790179976127014258851221104545496105044638313657467699197178244935454311375211786225322062636519105252352259373231189881215443355942416412373321745960120500324419200730797867645244842405318931628270594832430366098638248773151353712619430319882157803620600829952238009970763117162194644521443894924205292849894348362714681793796294417412968180674078277769484284604224772233053261626534008029155157305480197681818718563488594329222270732706307899964274389910305565699838701387669462228509759519634411515769102413552713675068866686403315659791098081449234337435857924827108853806102326014339919304614868200855052789295173343944736139539438350115080009868526044450299778849513386960442603954186488907205527284886692895712397927049686509479066924096125161389146541131724736821540639246968004773102797436978683968693231378073564822120591776457488135925825777970766471589339313268798290046910620207338207805459212739333076228489832386220803192969586250367031667227142564473677153610155396353793588033479012972869870413771963943318780623824755482975313667358809462320573897465494453070496961756570699099492333997414660581273915975365589191210793068599267014239031342480342949751722771257785389261186905465283853319407262398074637120630846162380168533532516227635172573511627617142745388579672285185341711886393346071921096374167370116362354154539298920089779676139340938457054688234795095512181049125630981485283059699637689819920926515676938272480069625442948508456254734305048919313768553733213333508633033698033559875337561482494158788531142165601133730614525971461106892212840300993440989938253796566296650780251215711612692756326182448373531751362640202514091015301740420481163468938847002098314022896238567605964686055319528424693291980960731523781314781203783867184722828266242412213494896485466955678760421075113572561409571240085111831831982858419788706701736373125139902106930501062599347052347942338980719722014643064399809789333466597566080672959705573951301891674137647630640836621356206713187090490792834810967415975603417309114635960421041334579754757949297147523010547671590120852170115955081390421779440197926732742998321063943159097883132683737427061906030640172333924050320265049870397802782141619772872863615390845295538663834656764866248245130218820494477945678516400787008708404513990853591581399627258338479100280048149211776019008420387288886467784720499043074952635937369706374911635828109504431577628983150642942664890126640007046681288601256719844100329129045390896286755714871106121659506068535846825930347689134107866072192411634733753868623935350213619176402807917250903168733248364163376127695148987053404647641465584302984452072610631559282310561455930549802668811444451949389134021591664817019333353635112497991050320003416814002617751188755937901968445573349497742821552719190251227646472295502479081186719873422500477773047473524651279136170343195854801532436296918454087985268169560437773961571313084609036274373940626237841153423848438168108101993324626946806472552580808824525985618219816763889830360898826126432080618165141051986764348625928439224603212145506370053440858597183049772607675168763306784306590940817429411130033551509378292300177771044806500624740468599362917948106458444925852439454986916406047306510221064649189312059016598591791792477554736547200756244471873381690816198613957102505984585527473960239502681274042423201956431173533401128827385747504157091342390099291661529577685040183971570157439250428420020028273232700183078619299605200491636946162087310399432614686542184506155190025998110478323733667891666041103716226352650074973005551986114128988805942576046148588531717400353516705314282242967827455965076170069148446498865811675760670333515393581737907273330339987082279219296441131491815409423416389007986403295788108588178741254653197448912078972161199542585888940060866706032478846516864927486508532266558311660641032043662831085935591097327346094099572893879266394668725216881131711885590521555256314099341023894308785911621095591342070957268958967347445695784180480605331211010167013726265319965666710129220177100242592590209481626807416657765930144164498482554064840716966852093799534663374234172457076568494880293942327029856641312054229419433390191938168287661742830390919881072483473209695227886049959549208047921672416683744596582545743108500537017102530345153852935195496909374259004168579103133489602892338392730480241364274562658281736442402613504484208892105659572287709490518549441115610729960973171634819512379795934947566971689248766318447120916805301445754055654866404306530919919267478486299317443537371319272639921625335682338534058671525783582614477517584055296046849434760668523883321987257860867094563712248938831819088863979785579025366265362532836354941596397794351773952526519879079674279293644419989614494610537585859805562725511014122762746425154463079148583264581372134085773638590555505127162995889542972779535568118931128154399205217325091388926170088721766968501986688622442590384404430613278005461764522486991161937561888517746943310032249935640232334892214480472703998337878345261433235529667932320189250707702648807062038965471156392176065405936277084530538779236235784382697893330501703808924915461495662001940831465621292305505032965162731911321016762780928944248722105849447005166295988524283893656489191255175435312107280709603133978731168961606405168805852798487951022425784928512583472517223294886365259437492367091547174787497547538398618009197379875653884913394252797217749272275223176893829800961785713010859051522462571213447585131977979746620627509731841392301671603649222648143355189464035029510703205302185763026713318776882452832377140918164768915890632278879409673207059883107837296225913910511343652558205503966772687641794020955642571875400499975729196187891844280806752132972623473424811675864833509574451175258675883900639308364837874268772227949813226103455907926270814196366177254165506419918336621861105386724953683607924370640865859143443631930598664069455017046077883987883379720402044491788595915555575430276097521840482225463149392791596253986390582260326864492049261283104360732207835810976598291936754538022246249757066844246662161922169496243725167314998116022708639994227906026687809129908339127850814310320052552922930328837775454850474068309496573920763502210254332806259524057694174226796110455626218619478597021000305463474588966199089391384253911014994618535701768582171602869865835283919832881347496711504960977458701645192218441976892243068486324149135830978080076470079187915273715628333251489115340975127920901280198917051112872264726281892155127556171267017977475821106870485340922584780321918954781508422575467499299232975467119354614521084652304563444219613199323869474206816694581100278243917993187218057026640086243248988213054081243390318370627788854834898764556696338922421865347790049313876145120390327627310610660583049973820891325100796499006131022058726289747787802216557655514766216161650460446918217322076674297408818415684106332385798934059030104194376909525331176944701569733232882283161301687603333579208494754069101317071865721518637383485192251306806705107492593939822924806191519461182850296614813621443992805714372570074348293709460594059234997330485745675270096172697373093677025380316428207273381851317531785294716918329588437826548209444916380072569475921026078656054996682313584319002144841344028815334094479841375718611071602305304218168078542772884326904752375449508848126874362317840862327616781225353920288106125675612747385686994077664241156178469293306714594039184116653774423974926728323406930806321007756000287483750537516110889960606780417097873561758103902597187904387762472126665401475223475954339900787945818079257375539196139037974581849491487992112076275757017069426066018981465783188189868764233630557469838903448934269773973891959454746160514683343581585807635577690702939649504697747039779202885088236485906575344810679089819533371860498977846458208631000293404385372077509640778368408781824857356434815407794464652540381532797916594796719284755596119625616672889178731367175949663709317468389435823233172283027070217546997654246255229620011149448502620916256405619059869274703294513469007294103828904524582014794096725081418523135152228408183637602876068362202230807738208351842246976456551638477948025684625907275542242381537050506788435016463529068814203479143540425625310131174842966758602215662524876026725257107859970720318624138566396584777736451770947346610903434830199658243339842328590691432857973429390257505692958675257795046898570426947555645533422916641362651042507086775749051351499924077741451564733095990811077095783160521500832350868531451191623076176443174244455206058485636358599888591401211570008977599927503130741508896161044705232980913111199247751009334526941545433343311085778562265146287034672561750925840904736395814821642953473962487684244515678529458747658961446356693756828170585074005776099658645725903323902963437912018252185330973928100471119256855674879928885612177535180639645142412005290040922677065908284572904041517490714753311871673977084938884553921997950650676651149163218073970515998133263886037492859835469556253597471051222085139798585153523553214028539100278777447804061680306545050366014656897106832666940644219008187280507257641254504435572927431198154914907106192500385178179819429635252517789543699937231673843884445519741871607364501602120054831618965512985854885088768356205890116276015406289418689829647511061161355292635706801438648735272087798696737738126154061993953655222936187023435050993520513238022635554868551146527291567879019402419374027570156034096839373512686460953732505462231877094415216045800334560505755718083491439401487880912850738321013414043269658201084214237952318902197297016274042974650080110492072399712384867214120252227139318596019589934945277278226418483838018653749457639518989655997300001228376651681344746965794774722711876926766792369075116033142164503658627300924833491378306433088716722139921579216270229622415862817733542436490597108359626333770311011007192870181867318564808754297134012533402711980004708516237585778642939486132836966979232062910206801762309505216394693234179373450601580298104883672672205499421245250148186566221040883554161976733401212768613119296549124039427633386623479384547417242250896297479405410866542881031546152566582650373306260319900145491872229498211504487130129452573001192259971215438836151925973575089406478196588890114560920480259930565916726417863571297186937871749454273831956052921027183844296103966094994885964582999442787636033977050488348719983988517376024196933226574723778266867589507726794399522409836164433199374540268322552976038110989179296982540094068927970540300566527923838632499237671588915820163060645628338474026631094691143609073909677874149866073286264489915066984611194721420015637047406854521394343752874180512338868761980878398970066041151244141375171044456791256607220360108896586228828643736181074685423057911304973751544321601243415588576631240456911147924530029244746404838809842788722764577105511055538935149576053259769214868795999253216710165331543797353165057785120711873065560259952168697347527927366633992267960576522592043382813395382517408816044568704052921202996857127513729537442390422085892723279407061334549284940544132974153781136249445486113338688004737310831033746460893680935162879450347050928427712843291138782824504626990441725435106056121175610796190499154133498477923841890717559451621707718037375929120900047334259168284122427332018500218379097835910618292441898405985551020525717228660165661369122244998812560547224602623339948457824835187153320927534240152559019078232557399306603668485186907112806608388209844124082053036523043128327363069134223053896062460939633073280308964549021329367465401555444621813101150473930217656858152428907415377421728242788356582748029195883583454318529602239479598289542443281175785467654369238039692012403667122719815536307415723509043553659869481751184679691422729959673603972224204280946162287010181059769189199961961433487619773846983995916197653939451295529034975132098475043833107096208683936133102568391235498025332634150577976207294041079936811040815125098595051308236828112406430895371886679795045817415822275976774147071211382263682911162582947296121614165101668689523825564527504588588393358106998686375950558890406353847184917405683788641101880017184965415840443009590278685016300390378978746874918019105002460984862024949018957862720511578012516178517784057729886226394944116901129241510669855766637209885848015124580371363258711323634619827411760078046238662657574930031990013122922178541964403904995049328554426653699231497562251373823261138047885487204485118304743606787548580721694587456537816844055990804818311022519337056851822193390495885819493450102914238745866893498803678269258164344021365147333461304944925137616275955307387965987025859871322513630775155960546627452472005704056283061956213406394326099579766357292735386839894706332626624123675891231122904621626881308435775697770844810566141277931270581262276403880823384796432769802028194816108169087112770315585506546791677395850735489324029696258251418141014507827619207716493698736654322355153226060361145678167559992600559704676341822387574623917375778423430407575086263839016914283787350641109183743624408285503565999974483248950764321078447925215438665641729410999301405271859246149086246734107188597865668859692036776628951479689612669898425961857106253825810489319340088532423790977700227984552381595227244638298013976452356050872389569066697944547384284407669086956146735471170688448989329445592625880890662663690233745153942192620586951843790001920702228330067683933457176286658019338551607538104661093778096665140830546419844817452227891516877061283042150178289291355450643081281033692195546912155682932080453206456040601094353981411878416623785669070131587293871476358819023303039678609491726605268441872915984688743890405083724893983694360999377265187203517258796889595068770371330225331942744663238766021175231792717102228816676934199738727900857648146626708765231361880199345858794219310570146878945220003340156303528503066983579491947387342558724172942596525094480173371513304485608659448998299668070503842981830188688684953169486648439994857229525528536855951225497504649597162905122175999865113861046731290090148777828945764501299858955422177280220514595362207190917279193178918199413204881662434948896455286377627913243390525168278127074558961290507770319496676768584978215718901015651773157853570885150597067469723274069206374854617259198239714978131441052343907459496373761126212506446960840647122577420788939123819007860253421990589199579749801758560961212426716593824350492989903528123574562704695161370797844231496300749524882796816944687555037826923702049436162128814137370226787771142199298621870757152861013214145603350482353497822681534779948929391531455944972552692208690074241053509522982779613140770247492657848602485706865416278616748695088079269401019758598437898054471262899885693177149532281622542359454271407256596461324233556823819730629454120439940583180058971820833356306640627750848538553468201951269761098212589706185582135863580651699794807321264916362719620374963395507542008420590694415187275937511702106835944222336358490207019739655172037254320705934971551667764934553779673896309363181362376083686267872544405313780597827795598955142740695849560854640864092288996459604664033271655250248396826987887692626118575899178869517016307884622548665300180384552912983108884118263066131691362465547210608058423335969910886171127132204881419771061415473954207695080883145571587672305846257451006455721117300215359892853490178010639855427757902549682824117374066220015207909398015100633724116820742980236083605073698619420776091754934075650320360322132772569553068703170617127665880773160591512274857944833809939796008874237679000487047400369625898169534199663876054404529950256731696550101128598856050336166747164293415569122883649936141715545712171045732157761870557816385256936210742811018831622313680906976161474665551958849615882067163265002970427902975912796653974797469592084445638663058659653066468536670211938370429741571288226094646715083608949685244127527659573400662221469854151095951286539784223685342993405882367195723471829366489446360008454072962545496461391324746699880416754564376526866817964531714096690259958699737671242857880764341551359961978119369312050303266955294126949203701500082974496549265381985765941859283714745998261381659677587256917663058374771660351965456804405401434225952348313886103416205431496587184456213031841525814603273352887019709397074246210971442119390837211641222416330299043802833021909173236916527777955952440181999577265270849633616279067673857873981314824736444736053119635341663578327077530224383239486133031900941237869496475861983984119919567035782026191008738560057778921529286054630981984694943420376482473253448004734536299283624569564322750660620607539397197362461067105815455067210685580869263275306361459112043105711553919788531828215872833369503676534773454379015143357966219749090547963982251845220111315170419253161972574781340169957878602340037886298151626489478053480231808805890513462350974008308679000668388268817828089284462130987975538157298129916555226574834264192656171668549195745161442872460820333426063700582656608607530892104066078339414360389528646314222458349427049256969121199258066047200159382043272234889832813349708281776889864915181438138738151700205123383997522940870268699240197326925320123119989075342477627675885981806138684206245275841528436116497856565774165630750941806852870686354479169382888970138409762552258810738017031218813154103748235990071775424198390954509678564731170913316959371387486951224135741751106270205516680308457442279048907013484648000756048392337048169485407525740870859033551338405489186703079711072954453743138166265892487472354116429535581942994058599030797474865344744023806163971394671498392149027328296683074437485172154283290811697931895425627461755662403203832885940763384966229170204064438701660221944484922409724864022876482277454843453200077222919537815632060143429060995366402716817722649666766358971231255249724321416140975507898947951784447034653359180534310058397203830330238210139049591137467248663062404869095460390511055616965451556438199326727316966095481952134907815758400251043889398385775536438561668506287771695249931248194810323195190310155564514872978376022382213642192034881233337708759739048986144801367905123761883499112462311870614810283481121474547495815622730201040771720875396136970443018002481076857201556901805669338784742846303446494014648801445485164450343246381057528089373669922819106165992799557308466855198863614978573494005015949905003852774986169437842615689881552953909356969217185283837408292075209724911120575104948051695759861156929696071313806530241068779089358605321054506358798693747524409669332861483235259931188612068482568219806099784021709617308985375168044806938304583801659009518352841436200722039962791692455142712588271543968921566675370463420287909458368331194952550052441798086045543361292213235681768246774332677062278742137460531022516258405772625454734869700228406715418855287301716899093819688349234760002922431659264727606074565226796434413866503506782948155156444361484700509153566813308787975821025407398914085797929224999609544244617249998296136071464239968030231995250757408224627200825280369805287010732833252260996336867623338755203097667889068672695870616708011064092221240301482089701321205243943085859745035009709246582698723404739968425345825633928544170516566034888884509846876582694262800309464941726280862619360095536424777400108184801621426709761972511539221307336860215282847873695938318785645082888572961039224039981839937049613102118434441406362436033596853376409782499219997502391983444747910194104883965044686384909125881583534651956914538699717756340220698458234859237741921325427230853202728091523862386811262118906780121831696895179036404920423123879449857774548395275592226137216439088315855333499637649019758640017392882196420542626872822891131052864798329580233238580249800695694876283470061764038334773265601027434977140856954138951404221751630257476988457000079823550552887014568094103385735967481465664171654682498158444947541860590275459735630796186521316102276255641647521099945335881855568971132315602539667567236078884957898705594816819612977391816473456953511326845013982325188421550245671796386556008414308488839892918791585405066500808841663808018212822046775165774154658874319572776026053684360247060114761440825258199537213225712045236056298186675553396469337517807442151520831759962120407802287898007258122055619002695927856405116599658484212060239454177172680416157454141776222672456882882732666335506438964994571264346292551249638108058996620330099791824853773558892208313428755007880828299389609018596210630446872001235196699428155777930771000665537744587287801936646354911374776451051596771065758086198512250261440912802913743111268664906223507742370887618303979439837240995037748375230791966317184825202352684957851930920417351031785395167865415637693664700906271234814661138157871417187492834035815823821374505452315570973037205739346642991188106993386519680487679466920380036087675531237275769400830432090400654146432515912949321478624111091614632628408272357528176985941642613724116494282075309566114856890793166302569852488417740972125957035185007477962150609263736828680578274736176484795345427136925765075141889540613557056956872898780267003421885873990530998499024460592831719478198985493958484483240116820708636557582751494070979996632408848998655865189458229037713779089754408876666779197940578732427850310662285870535130892057423364436060752182209849261060082944197552025049881810194476728575573999154286700937980446871092125203777815762127871149579206035602453402207065769445809734078505153769067258983815345339911573610072740777756437725331039733820260226249055594512665291877473222950853107562838703406260892542601626848394229543375386476993746314523286855262182836197586904258567580115134777537027224467183125572494955096070497722174262136019534435139720150431055367119357813149513515261577359839098965026655343987875996236225663700659026697153818058388504484345701009365221468998004284124598182851838853982219714867470683673730711665814304683627727382826726129346035687737359512441465942228288095912121741598832854510242387476483321678880962312040999998922696316054315939999045287736333761386718604748148987993918328361464990080594518233185131448607532436182054561358439264132147824551357327443919864398291635378084823083251030172121812813584051266343757437628803396787303687848862506878141360964103534690030292113050587921624426046264183716941420562959794612921368753649717016855690898187480159340256702811835359014365307146162508137085456418670709002802770548783694192394946703045625266943285459739294439928576263156312775521500851173090224226825072931564551656621732771012583099140172171342322092669307145525257358664742112664585579032911057117284948216538623149459409117477848196412407962877046849569956431023233646892501206751248091494959764885808523725412086684975556579945247354872292664870280286626862785212639308113454623784841119362318977053357077312342580566161351603219337314901756363394032890337671983968558127586581738021042356576398061777285747744556756716794061024958958257920991979147461175805669216112217171138290978471711309133868267745652711881239419504818060911590438594100253843122122894543553841975480349393122622454776617653546002224125539817434817803655284051957834648622141032782993007113166102497365364232783573455952724636539283227004560573715916172409026901406655780737690828473625885086769335995955772351992313412643225680242874058364610550638442795833616152856514085117369322819816354318140739173933961034678931795681728982129156249177159972365095086704822054390284442766901834282576916226072264923971947909148584791027993171643476236457474677125436735261698337643314644841278684816077986295745461684968768094710629224190220229991746971003680540455092554514005511220127395100289163161963935360823374660912234705249313048149959586490382475945481661662970380625059921083243634911431319437430688823783146657297516793510236576688973259431349002125440142745286749280003991920296451775493032598599725994842145709030002521357980896101889813309888776247488758281872839155020971587733807755348565452424020037298729678709454746464522277437457123191982196763303862951697882384883677480229736478609344419013555774157448296808797643819724704212445208136187643444515528681370531939352913369886474339663595827044588022017439677602136444373856261838892992024716436213611911907206117294957019991500707341703423346786424304107518686527928855292750673785834336384829857951087385443035535372554831855073385448281279570853620329422172244678320633923612949478724845760317222718617015054331115186285847437363369397323650549320384869129449666757514146615545975142278777260350523675293491938997154197906773902152455485373466852390749680546940365213708127091294387700227042468807543067110238017999928898358654355998294738712004557778780666587075534846953540281521587866505743199139733918539569225695492741033841729621750828524562117815655705460014476949321958017414818562818299143744740420423970990965503760074633422031380420172720502430107123781637294571681670124933463660955606969130316499569971407219236708846871998362688381827746289833287110917635577356538417909006018940188531498951107112849635955685841946246325453068851384231171795815908842183777654605991659971253069280803634702048488550726982664442808230400983676190985850283226286389514447661532241639278605054840732537396329680449351794444427556527073829559206992552177057501087740454987028649372001072596123634204625111804879572048770947156264176613239114140892311964959289250706573766939403269429030319985096910982593018583766262669135009230065481256836976154574988797209721651814254177350442867634450254936948406958898436601515116770506764637311631111503959371740214646017221079380249918794553210743958454526389890140429071248456553782876006779099398503937849359964130730697376771957774109299214801201814983041691386768672331247786543500454429069755945551070178334988050938264941731278252246205490700298949020151780648797989831113367252372926984011378458366945232775290359812532219812376247778838213314034429530428002400997486030735113376336078275250783826929857127558089668973579672413543758894863149859545297365321777090193902336393156247311641346287437117018135194495507393055675733968646722518176778997240926270262425155210219179061444629063177062060360915147122652703181128898409135226627113793171420189126112520500159374183512372102764487515206222136378039908328395332554349826785288506162025201045863503606474719238135927270631246846142991758561401411172300812331464339178518237497170762565941482323960810415184789499301874576315359996573913834414646282067394947491558621194802819999200052280669066574891900981980377468804734817545316721494619836269487932010609727709677272353560232776585040743324819295660358404789390605327089247655102039594754563283116674221482603064417355241919186586524309251655384926674209082513198077227514318958546788589142714072764548271486156197269082264468914395513627126083689442584836399972629162416239825408705845166074765318792296362850320689575430604403582209894592261590493954091019339473760091248566860455454031179222141692204091506432299306982420188769543217268205444480061275191084444940356436284242333605944149911129375666995213537218582768178940020434545879658625165396534067330290574168827542968065207150435070965136244812199049340488202484194458741651231580851352157603139190863489732585037600251431599629446671488667594969549300871879088100051248756054698183793831390911036214224580010130858007268983889639427381935942700848012442876472222151765835307449736581550250675754744677950655485976692956035610402980745379759875186152507012755577165007448389514741365475764538811162710651573504485610265552952497643153384721518690320558513442027297641527419966544753761871111533706171926233512944121018485803336024356531513632313427993812668552234965525784084136528655902600040336413125813855057328026552952694820236288330424442965165471507120365851084796880451883466739528802780584932963417967979959899379296964439915587283316906657304626151701401070162224967257489346198365249122037867582195141085147996156185205061661371306508797480573842076567711945558042078822546483089463803337447342574399860295175633726611880014199254967638592529590622614425702659938338770223284403277746053202892848738752963694461028858481331011564393486414307511781178515376835032584771229211552961736455020793341257210189289560401662835551429589922197624714934917964298446685937351490610599448573597580588461441880295305150643277789423102986437140896399647879728296367323413153545602628190744569767957844556485982484899307406133583116094325768814268736086522049160536805893922976913411968622399085731406836939968744364398926073771548086571303650340269497996475309263535034159635559720638434949045057472990214831696102123035732686989595480515391438664748228674866612232617299216126637089158036498052608606096638476185476535466721302674596751313637475350373490832832363542032390224155568349064579535883719770401504853706743386694835186407056168468690235355781303746458884007402179909866284295680045794907594430325838359171835376262726023954355464390602683750253328096551635916884188184194947771584869023627968952283155578996922410582564942961220875529987289910304225610986027999331105681350885030610923920661294680954115010027030052821204355056614263979272732892258517450287647321585731627494107915100909507332269384746883154415295401734423759562719803108736041110779760773743548082363416401006930237982272187682803652912203552593754383046806330036992351755280923849748609332357657329851839565352687820993172774801403952807869695919241674964016907876456202010443901775985231699344945139854059904523599236465334240159857745129800138980032954907665549096645256205714704461572824849305704244417221913529462354538446481112647057997942775172384337035432649489732209014788624951995125021801223069909414107189898343780365331692935433406519353909997081664669486738895053802482274918051679520180138612965754417546925270348608721014703302056395300636241779936198328779360340712409842496894708649805693474615553769545631761068771368918139262578222425401210267092831203117415473073446838885070527511450935203562501637414253887101353850653249838708926508997214281971882061730464931378442420979127091290433079566569724298632630112417682173403160434617209212198658515722557680939211247714840870095704718646069886305504971670422974965510747392814142040074636684891863979924708443111439416940033773157602828296888112917771130341458782550601317519329572883432159288185246809420692973360025062138055814855034901425634681321555560004366571772195829884755110702371907588292567980363309892063202478731834445785795757217504306272310164940221760342150243677422205043631866432473649349865712709089827756613233319814472866766520093618569411905414667481854664105618820714779710634603623381893487514906977312320984798713467917202954915834169434556910111301154648393436365358568173178484049209765010348939016833938510774814902796849509500572593359615680192717140845582448283165540136137993810927627805482030192728126115709083114936767392031409987846841245090303567837360231358415390313437942578212775563420664576286700419105537046871021698668597475363862719787174083226190109651906195131356564180390817924590071168338229044454414493544838351802666115134126666541784836908910630437981538226635727354772118321956927499144914933338311193328690155725584074215074888923701724717293673862351991097596235596673447431733816715790025372685083195796480401113961751503225051920957193997735168140520208841978811263026216754891612608142623101970622246156971675461420046531393151149440540524809133095305421521301585709000279977261806106110065532569149420313085971256796258118823179905705742899224658595041581874418533399659345088171480072561174212519937855907498957405768020791721016309600685071127312091615151151956348736825375967299620226716164982744656529870156177051369059222228433650344927072212048157566534661524342969143501505670911406431452210065043433695061159230231192749452879590483374000349403962027021561281860161425612884841677394591885249250451026585679930937622521839189922807439241674717386331651899024854801567882101218826619763632297990220003275533719487282063185136306974390670054027094324230898741531055473930931825541684917272692300978507972197005617925021990810962465714418984139248089849723365809085113658812662194258379697115584430966314270794340648174604666893627090568206339385198260949134516577535144663007588094141196097730462294322342531826913090188940398651318663729595361481384961092342491072063689690944276398247166325232669964150817508609151590813688363956134148072404978212256797140136251646452179109506717306189544678129162927179885722486297410972938099262021221172669275691298463521779262562653475189449334656864770807430449514279670583299486319914945446345979356250567770974003468085158888970708632743219654997433424104156656955205393761098132778005725980814623067030176174249749282032325562441187039126617526788196189890894181459535670554593678260347507295493730816072293246088375237177283011390911939384567110129535140890171033410510142628695843120259226270938093281560037266055135591626582672272291615935191166358059994287479527663493439125944618295696630937651329542309246747187503145604122216096254091723232068087920444692297212658034553613774901085044268713664134662985326104229196178743141350331974595869387500467171447899281509211557979462868597353339837738647727322351400520180114015233066817876267011893845801759074469311805544826844404240464695740848093978568855992184608637621658036090255277976944177975764230622594116726575495663680651408132163170591371420931022526485700288031932034311553013941278212341037464734999802444877364905789989827318516622547821222606527570883183901709064704629585389913401967585045360098517923635256326402299580133527355150447492421717510714027620524993992258743037882268441555406616686168472084534270814320880115486669236136484096101979910234606240351412001861870837710615023817170172821809689884297693311269538455155665733782806703941729942355545119221493922390500283423111439845211934158244568075266181069623445167209469526178151611407777124093783759597822067942438161902666820922313947881776495840661444538967850929541472600285929420215850280601037783181621818523924127178981870354672194819208289216773199069828866077921319505749545354272719582231408807614141357114110995836987298036156991619870849168907400020043024134968713065411198678225153003946898466042569250532178668283673515127548390891964990155210964046007822383286297938270265858404044891795608080490641364788304116771533934126387302240713780161263071792014050174613253616018477927627064901644837377118988906816263031368617651606398596342626097955406274964169712836803471587964662350045799597725920881252153121206732854463404208382814611252602813917475480546497852793154432500288594012038039463843855368541275568237307656759982634194645183881895292864709663952033244525696130429148403410454304548396518612285467130957354429784012740000110155529176339569103098256323616488016794004162345636700143106945088228628513617427913179154184593095616679321237720506529944094451733910084020712847955200275560548973043799389464134148639838833593072610997619143348620080782996952435624693255463775512376034155380428558383950743535470750021770291259929001878488411250297917257287976238521006508572980042663075667503198677565441217706082721674825079591787482557907845384047335545485992369371506800755690032040003039694785104452909324235896955735798978821528198906004756794929287734912249408903063984817338312919519841375388397239903764051384485705372644077389166705581889619314408765929216689801817773166581190239256579894270833746980840248702884740772893585724335945569645738021060805682752875698284213901770742805107645027233647907683416160854904334900477591435048218011473887722561319108504891231999466871189352947923347954549764054019501300210923274443114385164696661921892008165473126066790302155091457772418514153367125893878649724015741786425345170971435209455336309774041273619444406835736824812791100276818279637482072110347475227025341490952333171157236810849650956933959926599031000472627342546725695745957159882089894995377502581907705012642503749761156663616545684694844402165718802988499299404962282086833915319129337787072964889302165575865934222463571702223337617654918691741256198921226659994404935979687345983165950090884142700758688664899872291539696542965952406517974914819869465855142257377710967236057946721300596251353805063279736669464756036409779290792152721702805854511701906019391334885436769801893933824948659732317942753484632264509093690361193615187022894269625696574728743431950934428009757732286955204830983841452458539627559688275914476768268622140716713038181856175374809648513866939852440945002871439020714146713185384508599211286592446727798431800531308656302210187521021427669301001031372661004529023802431952971516734699416086035253308011269863466003806154686914557489038431287785768661525846084516743841004631278345178490855146417618034946345819750393402615319375054343319582399114642698711644181737231977636922614415753068529469374182967631810850070429882840548987204667210584096661775193640878956156016378264029606353806946963995476926853828814575205658807958263727888112476452123953388319923678038588518692865194213816408352956057921131524333895733023705386617550557828546284933473662939524282439722536955087206433265136161702838483619907850616859346761387868637247476560966616441816690582495277835208036964348119966109218732763366455841023426039507277191443489035945767173486776045425185659883973072952294454426270333748659375147764213684512576282721288185856739494492277035506363381227693610711205995998642551179565621686488657456036968983069156086178442269147285427126089218157972302422649092003548319761630423587052796882842796246162270619722892866507532282416889761499068478371154444006368247170178456395790482488362929380789199049008725540407710883132901789673858961233348703942620975618129691626486219868603539803408485331053659829759086563602901994741211639966550764860054396569201709327459676707968847329158973869636440529950024456592381915108007145395518393564632909473262755753362911210526133753368559186024722303322867153990997950655173288629491577624063406985881010626149575660720256648232583262581225093935018243847057705623890325199687618323826529722603800603603435124058491537517444930562612881001044228715406370011152432825016460160505947957384009782702383073923936976250136096550937335383765134225383503180387279197277766332042755079458157047804859050042470210222962747803676426854039662936936289165630293323365421287188182029613633964900938514960284578466944370878106354205253462772775135400360385141131952433727613656366184980514920092908190201937457732658799011058774634315276975904198707664157483173518208910269043091048119833655209049125460266999502149842023007594446624561259350860716075291132127724363287820939056259545247332578748004202356470836533266301951259413972645125888792471402844730402608616556453355677339050633919959152398478291519267585530340496511869416580876935015271403431244285142288641369232257023172507739403137452551850176949307141014617958358021983249566135745684918307555466079957058635170971965829307248356057817067387134469469333169957243369567156500576760218689832706962922164429776369782557844177484844659312354838197070402628335664954213725226204492202406526678983867845596049522064320239786144696018202308017142559075123274126219423863604496382595152885041369254200972661669734951188407775374435583247522632541796186569821617139371329287386165510797087680532818242687368040580406501987202876265063051164355524078619065056892841177136075666220769723241110531516032544006909185049493951681115897146991499730671163626670104317781818032155668696437061000198916017978085354589801442155382211701033841037887666177177766569060787349323665975876343568427385859856913729072199774527213690527987463189772432473884299182544919719515073535205207500229679850234865475569203208801410632893257260687721466715574378858241099479011429782814145895263751396473596931858139507424649004247148855207203822425725880470883734542928420922984134519347752999485796511556399052762333288589072082280030986977403926458131950428613883629560919471715303850534322151807733168938416005144667763675960172701073743082356592861881977417082777961503127058058855362898823562492553409828310316856938633105140516782754112535255638033875130430175413525856475109400323464127399799365994318318705771364365729826957863247205968538566408650914399480568563400675913536960453804261350889649216356157854000280029973561829076611451994945975635329713988911612888373715617423015148889059663091752436170990300211188385730050992103460144000314362638990305525108320446195080247519010711515560851985339107970074885317983961662148700609979459717015238735702382985366730955438451445668571053668180815974546022067685602597069503016158235021116832425536529406588333768519426390323360662557054867953331396857738992536566468373135144066865208297014698595349782829650537941832672036066042981123168846104522527986881754322299556375354628592418034823571689862394390988109553355975629051036270660204246470939831593425054879928178467190813481532899691642811738132370969501028754039114013538703015974284097788204944386203680492795517214949773334267004700276242754626596053313065165742677811626579474403631295974541988237915937432966783381086619507291071117011076162583453967682178789802805104151026606998138269897819206851607555486840343334570216469708635066502823134683924156838692370494658985993096396073790373330692197031483263766971769335456180184299589643898894161346419672206557979945006458842574974825228095745607310860826955552396577491868968291934510937710368140916696639463140528432225578379667324589082223959966822865050094796983398154311838138342696776965447559658841803763204423277028068543364045179838619713777579710122600868834303632176120939662451323465848951750729918854131644522486975697119635494396840013403242769125871297543380373278788168058629905051202074681942368752364624800491999177220348863238840462213759077850230144570349988488702174511974851220469332368941905653017259560774015303343398006561112823069106192151320708468478231693971169018062159706405222009191611853428981931138511891947212337576419955448836248247058852978824376130243241303817202404328809462337962820184005870772220855655095000938078003237288654820909038827788951877082715479866570514917281015135764079852769267338257201461353874271612993195076615205464653810673646851743003887220732164367088452024530179786018530134385170083744984161194584899396978033307368857670321317232440529780591285860010809633793964885987688583805939706120131598401401165495735001971580082532980641144286067640985262711966821887549943708490040670902819009432324049137185328189131072296760285906747100504623416366823009615868978980796567389565642548990345974393304399139903252056317090838001536780986537883046651187867236222612723552388948415738486673443726298732528158711328476676289093020081688122218537212437088233374366634774578526784721025010739728057502625609299876996999433659869472268339041189079224732344111295182300395336669008367496621759023608905190553441136468793114231942133582591164535379040657542309264815621078173932786811143833137896941572082579233137241108919335402449995752481583416265179237259516886195275815660003317547456137237314579146907152892930752989776326878544283290518113062758096163420263920480619071272145629738409309293703602530644363886057375279294457980004209551721980964019731595183416369977587657658420932712244996821606975145588320147630295896141647285340612838080457436498490333573992977996290864749930441554969234346766411568648486298177486127036356537810882721112054979021209453921749225996601615613596976915425407278907880185163355550880250672113836141539024028556144128823827007883844695384792037804783207940369808489207406573216098573777155815412743212616321055325947946684110473198099281890286023229287406232272749933011911655002339210129830118357063898725515506679899575447114601833318264086301012559836493490904904849607066772071460826701733691166588961948689804957558218776518184143941353090468956925935108993244589947003773338542471497409551328587540764580475232122482940256229237198566114198392359080944656058780746084180561514910938146041515688232278942279286346979689536135996916592582443985247139608056389166134844263747500166506708954846273677748621958934120949225276180078540295523725177491218828680053195612070864571890467697729627394598245730254930958140101713687612109097218627523496051905138552603207141989051447511469350723254675784336653877979851924423471450944601346882855838074476012267096859031403383186052965233455841481676490309131822737154227059144648091488064331228317365642397599779410048861782763489052735177080947200092654650373725801458331923110968877730429213824490303125692750041415429345954936353155813178055191166526767288605346826399546419805633145940902421058521528288142458533614280363701986944111299242188058810492696674843701661318861393066526857589703883959275832229885888114213169749607154178614464112410109455532064792504163835053846275794943782245581825592350126892828485101805266011817929553780331488710617823883465698279698799647856761441898459512845845043866383836533197072912999308209922288816169470972108366065870593584417446500013932005803136928886269053719738822582264633678824031186345677307127338061317538551817489451879106376116256304126956021564024562773877725320225257723204961349796103917039398672505378524143419572098985214469257058314216387783913425609890003303420802585253497882351260735294640234555477370875093962144381381803339122963417693854490639273765365154814773133135209901465835517218308725451490092507001139056235007114527250588877237993867734615670679266987631193121665244978500484149626087187368329581639596380876506512225103114116196345685802678538820853111040576171967400337031683258243951800863950047093799268276173104881048213464506696919921264916401846450322019353719874252588780291043673948635221568463489626191549191847889398893472930925526884674754901692595287044455265353969272955146929039931073123615360529583966606689654044691191887741560567813905197418514975406290919997208497848343336096302227860019525455756772527916089035024741743320078201121471615565177727095121625692719992489498547304450644492063279273795391721733249002428131424122821112406104823176575702567835065703938107644006425231490722812244669492463840049602785588359131492186303347530353814123726849517831186921163652088059681700590231552916397729427089612743215401793529905402923162813982067782059290647874229007308869649210561089615566911603339548978692171288344873869890693319642623506185836391220762357488551277539442328618211561529818754061706080968253895803373938242520194222204463559877935410617970605292233620765375859080283420714467314571402804106814972916042100164175785891676401690682472119056320262018218595481248988835950157412003043739095750381993035694536951335513248523556457718072970228332140088642621162366614517489656100768639311435982261799126785741217777460871541409652810327565487035397249361009494436169059714539156440566211120009659633041506602331665056818570957583321554601348685566625637987098524390261507733556709177265489742082524163089172137341573818016214993806500073196384547299723908447156811717619596869712753533963475808430717495337961197350939022671793560578015383728882140830822393712731925079286072553890759976270087922786146209524696737816780325140085304944927331864849107941525612716418611440812047336036723301705919048434755550841992891408487420454345590256668849680413733179044110023535443343858439285484728044565517978877848461467715860063073192875939658446435012565252177302605005963054348234817249009985909806021544509851035876490120692741191980152998060531691643618955051590782177898311203099901233792131695975053583966265558442232554386119251094681945784343082293829068391092041349979864765705771988219543561298509089002907202035879372456605959256960547959170808011797089227953096934218224991250996471701604775357937245288746335023337314576436527042802420981672509117849262455074111697005738840295194049646259346777948334040092167849948981298107905510871430998419307928038473501376071918754248156044449834541481116267059354406291571415338891306898446754007597046130139290948271831200102685566221741322078303276074347675130460551097032190252911756018351107279257694291635469276627724657625947058724498671725121568793195844999851397157824744834694509093593844392931592926985614762641286574963008976646558632706490296284371795763613377499646855237338346528869982036409491624651418092095330345715385004508328367032119359781387452065167383876780795292100995998228311698051209814309316299078002057934232843030180058534879539464058053745041348084011793960963985691476689026948941289298143596389071394120571371160245228895023901922747863231394055966002501162592637014791891877879516059703923219099265534554227223709991207258302925121292637470920599239439129738387919888471127683385256142202745696848766966753568718722944268892265338771860237894180847694455419531237276822306533073750124662303794707351214753026606022038405348701662428084022108052526108133727918294029516461054375521603111993809943796660860029028436478563715445009257632926679792648214981732560190738074888559130018998021130824133007477241534553806097955108793198670594491908636503428023347420656819231808156105942343179807174887596588483791769317430558206022046745327479216016436074238667215313673419899706700548345603738475165986405496584923242306116936992838854350673919592691052369993159981027139201443625306667267933824874971887426977633168895252358400324747443238571259215158550656263827574834851911980706505394211859278740990877395825029817304695029048606436960476272454143242845961463552177039116940767878630834420600314411465738928708424155436340659551930208560398239266642810782298411242772796974765836543520362645780322280549436640152981343827056933747528696940410164744228285569487762052917934861546481636046554472794649770323580743216470016461729872451230661108908232111662389585693120499368641426209024362130126638159510603013882883278114598678544137563803320008957577726767931176071773195893397800062505369768353283266386810330164081382102496106495070196186593787900649101071261255982160069475502274696321140027853108769362636645317661423539546741867315358421328936035465023104280470888698908786350953595179282663256116828778910133952752476030456542640368091253494769715618737399988552684453755545594237453747475639118849435466161952541472643172801382983854511499394896805239094952200842764014755297195438068344157010014183153495428522506856775060587444057226802203850669097050391221579341541076699038391216249271768113605117005832023737003578879342103291916712279752566538137597407333806007467269282128009222464178736300357896201038868112727147306237904882181648458845419700344748426641169324310858431483925291364261438825634650514460114116008163527318516904291351394858641277954064503008024008240852293736620707243747895132333891146695514388799524080819301557411438494840393721374138303831261596016178114662609722702168439879132878488600350938852546808563229589312185143259462652738696647504098601570987196678371329093206484655438061638660414575210336121603187864851585587938768030079424194687526363099080450002946499664292351806717339054028088771788210751001807269280687605892955602885670316840162554845690132111033547560002380326938544706397556076117842845767572981793600277741615276513430235178814828526404477793100323454669948555448361573599808824064946502940605916770456443231757476584536878852255252898681188007854467196009205650954992056212352529340503700191023256101991826565524231639794905986388351542598099064034001299622030492251586506613001007439244000366478636339491038600716451430784812195411785241746739469070427367151273083783768917674083707461012696605993636959771170872128322732676271197578758960138758225506798821697227784741878102523365168539259596119675339074444402293871706369937123161714874083086112252567101521933579277873112217653085578217710148178514435315225586342146914068993481353099552445708084225760852864636859264481038684482190299062611183665205722252221172033321472128262997242665601257131311094790585515410904908405926687379653621312968647494158650314513538148996283224357735162774711587316002702534158476242290055015426797141457353402581837083335456527163301948924693469813245869311440098788450307960346164263530221541675308002179076035135989270349307923009875090649468992134292355648738592566567600646363012578527226395750163445774263873167942957554076918899246443332229253418198346141799291981311016446339641479950761241219422798428674988399582669908402952203634491489069285022071460222533999569360035370671510080789368490501098230999770265598781529576050131591481546438678212202948167338953492605482231664174191709623826783363139792175154202220843830485587962376969632344598129363248553525881490274686402339335887843946081710277453359672296482085375104948385870448417066974159769598066218394017637265131869577138463575586366400748812648739358829994855686367693130010349057290343525562628842159350617692362553395064975840942865040972305013740401638901902111191236061802996971255529278979734324821127074030750985684333912888404483424897966302371015918001208284918811910307483128403482882281772164322133145510821887650324611666855069876838546702262264258901611715309343597854281356643499530739837551488495724500104768610970558574656688084078489071647784626951938876425103695107836440710954203196560670554072661320194029750648284281967341160261431400093029330115116099260750646935981080141287938968022760150794529313888623700165320654428048552602612943912238956242579957277179332903613753851530952429022070542846278685150376768429169384633281085300261807120236246352698209385436744851222991584268185236117884147757200001572444653828410732814571327134016413685310062196098432191769948735166220839493406840921402503332290656941937984520326852382037097288585674429953854448050480846019768816162982241570519820234469003026216731671506123420195726503379940129739430844629024358241691427272339212541698761933643928595829408492412770164808204918665090515594444542120350566411916447978426201956575759199627554986090685010731379115045021627192178066856970940825468534667562990190822722985307656018647068128222937052202694352703544273320539841192900667630078279021060826057797421513311155660243343907885338181291105824826036809261767109641281565286775966548104219954243239369350951281046151054145334793323522193845864790116134113783920021743088808870733333855865165061243051329602481576902283222736334837373395561782905232259697902234583324978573235830302084673343816279775625250141298808014020733207891537182256302094111150697738348388647850693709349143278108994094087072479757138547119205719728284010007072057852294521513422544888194448649245935836898466006647909996000920294328292410787397264334384422398434590513743359590666265743499230326444172209354437989866669997496405365122788170488772783782407335980665784396123887668675958572677432654817801313103609859596546541475425901039855369451773695689874656099020713208493074632168330705514658356988978561584222600943522030416370408074823957863298764070787943784058998756494526526584474695565145740726205603940173126339388115843039572210354602174847004728038091629505805452255821912777236080553440657864960558881007932274889204088084849727880160169255068332753590869748597167366233469437994143443065372459050823916589130079448078752690440247775002273693694009841046490042058953679361849272001491323578335842214477333817204091297607007932496736682386824515828865291878562899162994405566885450509806434376652550476781618470801751492615688388733380658028952767664465565824995828823863904359738421815888890823379248951773438414149996583190233334467838944690365848287091736335174134777943730594158403055103317667148867206543391482584666528432959014864015674177479444894580300525328331864749993573249849770640070622969664394220585240197704091406807059910185236158693607378176236014708892007100277911268452711612927363650730675927966546798465710584445034353723556200231511863996822193549205994838034933792325167991359164812906279586890958100133573361563016887200281163122999556283117704491197750586074038060376505337254640791889960309834187484764381908133137705003369166401241287772559240291173968611450319110093422346909294832874302861296260483505085404357945812970660909396014574399367989033698586811471360849970432047331003589452322521900718807525571363504163028646367749754793874973986479890498882129820346225224412705044472766996834752610250687621200115945338702610909803257679892525658220154758309703149926090476943085748411807272304777250785466548155739455662113225580231571849508822053010916113579573804330123032477993919053998893104816180026699146315699384639327707158731938670804617960666629502837502087019606791113365158053093585853022062271241026602914197974189620183852470703726963479215722424972271886782553405456531828023924536830997229888770506706632149679487896864987861585673115980848209035127002330973240321893165108037764261756491108987298601053369711153718029995184115476462343682625042171585859358673841924221633060521187014718175897361562643290984046678656265035953115126845267364573402535410252744724411551570500646517407905232221636864509576759573572277495685205740107409150566553733096644466638986067739188294595943234126529373160246809774373028477317974577833484990566024969848691157589024281075097632086499860005925224210330992072701618736408155467806356884599132914055898509520053744612915146928370239694505522172389401771921874473425664834045652124572305113636162078759947811438881549624858864552536973773407603928091981347699057300822575505485345959524041603360783082936116637596954348887761135368369937919629638827789786567617074951276563833240297140236227527196307349841940516283682816995748811153950382805668269337768806623821419622792301719405067606747118663738171984113093143731910329528993987896263506201574133439957185507167776492596910784120139066300255340267833772006127796098659079748228023940531457583281724347429415108579577658788261876304971109115909472821460500172045200547658219768480463130025475133584693338239195368895311230454343595559362546301166546634867724836853137576840460411952555265570836147245836615681970369910550429563089608845968691914454609885216424429388990610301187560116914954144406479176835125697036754921052340230648433735258893741525069982322305378911592021432354624126909355260487440879068892741339177568779965816199257219585778620093146391657528657715210846859675842638755222982775731061552291502355484625632273904098579175445418858609170380742722396877846905861387023651304562935797958393945110841421915876069938683300203066821389238304369608293817144568017574610053566063389036969039575645956883258275521687211150193242744962793981814246314561784628086940351331366623612808399407216095691882105225933122271289469045167752479863523610713302431117578475570306780705433745347532731127266777545366158229793066872185255842504485997894955599308166293057688868050422436792516175261217573973282171870998249609555304883113845555260548079593730883207252656353446236249780861703648430629073965795011788077135991039065387174697776078579008929675207213123996805057470348678976776264417997070169211610315093119681966874391216494251297974746876943710353324760416662220209194986755657269568033647921927714512712164874708718020947476031535655199234348593146365067339415490715114997035315056924466912842013354009192787674650918244317643152726915885156292057748968780861780350184789934366268742697617844669335212703938357659818447281238224698063545225683887330559746006217469064824600734579893157529852595037770065584796291291481231097499257386571812652110735987072976343861778422818894925397260400735335390306284334231256754299966604241171001786211874056955872739847642136607502755586492242814646003522788973615382974322538373838793380612437030822362279618833559540756821574074336400366208292317661067763188294326779406043797754644812637411598691624281144516979644004518924726819804559099792704909764106085676686105579816824704322021932255185596991673073593129270707959301399309992018941086227744000545118460972139008052972676753814781734909913278225234579835236140703883270029596494488492133647863052909270782266340408533478058598441648517238080101187608919808395706404634144727855982919363118543750823797488055407814530173111797721434494740912784114236702057215920012306116415404850989327864525284635919028141700670704405899616395594285113203299300101144026874088289538037255470238474914528401941590668815417371716155373796680963378868635861347877058736135651397159488974166750888854190240510478160229149717257785344834659789619390963418625808127768137891971518736698633802369391639858807039504953000006230668815174743144673659936181534772998182314557663299941740339396806926204351363431257268173438121896027680690392505958925027357916030987961242704812408249775455967824497435213730009563527415566054372642326018869797632520721123102081665018787645507787893650063323011462521228559894610119943619108792358581020174501905323410229084060726527832727999443324767063828924881372671310762316508651655945954339028667885148646587784320665799888755049310725708849234416302190100883452020055735277425875469673200933943601753955084355980328396696184896637712379225055889569701295119313316976944597508294791446957188271474337261281107294313199275602691629966195071314506182967289091954031053013531869950798598801099131365440731119232090977358440142170558856385554776456532009512054132395370334376890358117419420738493143076913711200371182623606552532411792698110764303706809447068503429916354457409821927680529334498081884474676192725954016203278660136407404341118966421546599522822998957198556032611012548545135129850385545033649895011073629647032319380865311734905039027466335902626087175007218237743560619476878281950707077583636412968545881788318323300294475293407812785081327787964770742277658528122389016271221077430249655252518948984237671205833534456594094827642611858982601175006128829204720646631100831965913341210667374877330703063224747450559063165599181565162388607380850759794961349945392465400056237703816171764883556323296676140369654604178870426424872441917211845133114935618051768952004957070031005393839679951665559606871857174009882973888177232561258241469789902391004983021696465935438784858862486071229434914517844741331833779391309038542073497736665189561554649511308751175076970897818756898261979067510949746723113835522924672865483968573596043388683800632483549311994588079669092999897315653367635624169575405871143078047028280119733191594478307647160452854024200210733062030217533525228939182144952552711511177714179837815089903341121846411172602575582426275875175312802541462707005863086031685730068166806833988278480389960998823632695242799093775636082227879877296441721382592865253379951469760109905325433777936716022128027070845290782285158749457937698838590689382467005505656251053118877073970940532902582476319843136346415052082033506236836378161034029913447302274303041423649390816448562024570500591247307001956160934217507734476741482696625023332251801141287537142210379226851407898020451468848007057490281431437550955295495485488922599876932541707374690914926676511947930047079061646287349014419543471890970808812660752568991063091170132345641211078996127819194830388971523034039767073613108395358109699917188212806960016562641410973025360755398256679603683235546473600843008406859526195645195289604913488506396870990611951913107018970111629390007409116050704933902443012823396223326023081425550357108751855974319368722492920167462342730784295083981324082285858107141693637941671061564935948632669125507339568365037945771248439625493022227827852364557823516546841704417397305253198678069672966039586003833205570658209880021663973400588655727164273377461149990095318016411032646681543516076177977373998519102341542676495119666362610460003987709085308217572148523795929341343513624809423510130723898992402490476598736242702809837807765107306722583849151841274475457958171570345341069376935914457395763590776339378876886585248510765637978920455559302734659875821110921277656314190652645080196039695099996052263225404727292035000268496677860250784923560799113634061627517876005036144084314795628153934352723498863840184586108649020961070081395314594049713489433448104122852154862428389650258699516367126355552168166773366466673129487585323116944339904685494423661384564853700812191926205172378152555075283286537026001606940448310168041066247851882239089248333273120561943722487109699551409110371541690930029820177629700998273268882126454402257554819891486048940329264830530304543897117088390107946951841232212073521568455906846205128608869997092067184700319331423770104022253515578793308987732426762260975293568960634789290949681152687044108443803272561232785546739689981969022425378589478062806368212569850953852130012985395509115156494557441284179925197786231921275090322810550922568531350491849371775490938494027107405337390349487105549522359520865953794434639164204917557524459889554260370709238679152109134485653470017021323358530349060256081827861478859214234362440536883612474657977775134878519090536019933929267384290000377775002213223979910634604715700161295981331276744844342504158529088741528093340486554406057177133739096224497685705549076906894145080382996090610173537206460154618119692959489568493975949478196484250831214586448265846214125972757021731570776408605039713804489168868347828982582042710234410479631442690248541406015240362841051826774702142996018459461544226996732662303583089366889890937981670286688931820918171852183195590198601782584462053475355947737176408785467462455804532886734274069070501086087596439685683333462793013650028464558389107796916878956371775148501506519969013990299726607181334424015816172668432397457673618518405668988238360980921431440482465494307602937008700620624516648735561344658749185247037789437264506374016337951164903841443248746249068779342805720460440661695127531240723305404448575396177338134295876242889094529391224116718016476997410738396953257391947115972851169695471919961161890817496606597267828520238875759651062630951831213096119213124542940228267740448016772259978576698981207825018983766270648687594132652840694560562465240074062119810384270840170458388147076958405265492687262798627839028960677372949360240355520060268984385905816348514822210802973885830574147285517822833763944526195219048935725842000625146700721560885424685717963491432415048366476539938011886568682152411687754520684165931647371860700840165353797787998716153968085653338962590229713739836870828869880407689983536188101640479555220835716781608565945842726756969097004229793229079483100626405388172120075966861803651847770056211615935920737778253348740836513012049208973992372653905702526318469515351070455231124077085060866927539177616932664089398133664875345424605922604291116462157327402384132169983738821041134395638962039151258493031416543062854544007978837276952493363667148546522280433068878548412500200392643168767560019958908243292853358896741399522569887895048351252416754058073088692354239279408842448123831427645524589641453628392376580345457244132387221655598105236147783539738228023785437362376156417201817131572050328801301658027488773366363828245063207673894344056657331020117278222864568714841488674061584167118714620205088824294238488591488010152654602504730907644599987011536424552868285639358612540948442623800960218570774921495814118961413809889439299001363479018904832276366131709059942986462125003989670736202946585620208910594782952327899166273702720622480996964362561097297109285848444929800932473369037944856274019272150605562399202251234036332508639602688882977652105298368413669396711272384259755186848835241204855491777161969363118879630680443262125996673182992704829000335666953224184665883383569229689355386642339030405333459372556325280516115434120657787711587800150326437450034341532683673072875514845905714891512098788641795516692132678154649070197105920242972710110607283943651211798947756423715434476162070913694356983428682461312639465447519794421679074960334834805849182602469909250166763195894123710372572876664994396016117750634264292357222301151369484046828031818082112031524452936250678442952289645745115499873078319585673238094488741095762609991089789539240428303626236007018418115746930886393810048348940333016137734079988447394489083223148180234177513337311144581122519587567609042050608483642615824602218036869609422515212311376483963712962071131258932430695439171453573002857799165316321328202827695382651390816406799230485639095248471797594026905387108876615833446192749142136594836719182244386065977368583487245506097459661661456728488312935494765450712457513868544103999339204996132378667691498325409384794726213280437433681773091488719606192695232859497450052539886724482234537361217775618084683381409720101561105437180778630989314065805102075591323085651275290875778187771920367559073113073495322694580611202845449971965170208718087855022218205423866180052303310848702021941251664496808521697384624495813317285868711815685373139061508286111481672467764350662109160805061170251367242461160537013397535847386453987064663071893930627618021001764284817041594985222944268228715014482032323758014230693562213960839123926429468660039484922192942384262759285479458179552193745882351476887130743239565461431491843723820145680419267619440636270760881887614112270668885848266314603132806586935479122466232949220332805329868074298705389884484858318777192842839417567555093058375333268113247440462415599094097423955412933167140568179053028510463214463288582918313648138782150268251014710829687654767099729578907475046517392745456931214667139302912497823606690225057363939114815134825895221350945579035261347357269430818460567378294951382548043044817495420307141460172439316573800150177307526915563063347930183835596815286245805789256962800292824853310878466316878487992701697537355474165306032331488149263327164064325649132131878737452031201374458636937836898117589603185251785259271474140951756963400082780159150985436495135128387831405561158195995364895620164021937407946337768562229500451977941519331263420478051689893862941836879331424477474830922727073052084479364762344560613685767041053658601328237887942899076548497729353290994544611610716121407957267546126654479247394369307470939775713305739117081324743229485545850212657571464780915108582524457386423445733250456107116656163941325985913307387653362215116417057496034619748051338144890504747348130216295027002161707541908150626387740050606357178020672188225694535909423736562359141983645996057159992209409680649450490386603650289447997109149405166299623525583221503247760585519622989319159484629955676351302571840112155958654828124230342708699681390481149014832977809576378867103482889842417170647246704353580520897065721128715495067474513053522954967891092787483478494796233140444810748051511143105707155600394866064397548184400218092903098244869672529466221825590173439418861543666087076602111416012939902129313066203500015123381993078183209312625101255039804408064475742195811025107674642389691196891651442758426481849424871184088651406098101730137758455785842223759627988806236661479471022732760205621097386031930053262115774921579308028555472093798430386316933186441906329818580689704099530172450413564146341584072597812189680850173846241682561607071312121019690585874045690226465875736788286400923948016492874950076127947182924607271237062605066171999708810065867222306355288642282444176972197067305200779658524985898529334886006090285871358986846146307516715363764569615262847221509127627481280293335520655499141576764058386389429470669020179102032152346845521023785445911616728842055621072366359479468019794704093734523440344314051529271282268950893824537075599924592744275442734053811732475942038989048208293802669290098136126172755956077716050749025595279217920913287809565290324574520097188452433311080034748508350965595995652660422882530561317279273215065406758568336653925186177960466988428666465192627596606040524655370470676154907900000900681772943519969666861724435128778761871140730180859912660720980362929275349479378081039045116032086539385578047565761929084416296633662835033215633248599160030720213561331395864928581386974224947349089256112649293392678295219051711722854615580096365450041074842045097526557324740176679994234531334383451250555286023346570849584049473072028553355904168531883968778065800923703236194284465444503710770086066460063181643466662678256919566165584190172032375450718881775916079669066113168254546127041777853179332492655488497008415644276963172454118894761416378205865820611300863365541598520135840237674806694281156753591757901079924619324286356550488536830998849501190727381921623157706520540558918048074565316449321062059999336997227320379261371364735113274635503777161094985889185255191449928714890400297448918534011090965299336644114025270868921654879784404473881488806348247517836956466565194343564716557680738947682064591179435725909769532495871788638761630483157106180010083276457193496045446992152519082800416525296113853448248648208045769360239734085129307900417074899919501645136276753409745110805207625051494053115006598686091238998714877818064382309453788147113153352238028110565578899481244867325761891369334665401704473076758532382728638431119043507856863337503662681660620451491029976846180055351363343042965033529681319428169039201704254533493606773937296866742008829139924346763018097808971633873034951996173749519979921649541190743826465010328418603657722230145606600884184261426922836105168967648013941103306354000200732575514574509378987407249347689278821570431031197811646296129173213008397069644611895796012948095726851347270417257360357715561313898720088329412106071077821902667414925743449509386065324668250738331002370251575079131540829017825010848511518868034077255560300655077079602887461970810813611353638131099910732708240489865443051590515786934382145830217349524941285802142677290082362421405962370983825621189785546081043592862984162512452231457160706563928995598591027617788525001468938259603879503859158594904581188564643139301474204440159272224748807069869538590718515894666287269783370154349249866229020492455681872650403633543442155424830125967272200230888047008208157525231076320911873499328918486197968185613925903907242475116514177219110029497179064613251818484726754261280274627843475753717697865196065305613165660156165237821776681047456683685542958989416002791098222184344874268309287945040012306813570971147844850127513129225744841994865979545443545312253567669587645219420541565684715227784865464477721442778322478808395942932830970760857775865686290269140508320204876443627847578689656409909558890030224305040496338547116608039500596069786057976049782594359604934337415966593193062590719940926446252037498514003151743640426830174021729772323652261757604073850607284956341744001183758922358263494230152778895323053237354000283887219228242013210931581130905882914867582596040665102579126929747775489772757585664048282191021961243280208254781785285914749864086842393660975392373899247775162695699048263487646549696229728453339922717247398818170247471111491797053187979579712048008824070761098555841531636621909030923416484075563121159351491670241486618087694838749201422373939875498047534133274025596402953528597605259623044629590529937817898160798471583519665927188970165634881874056365281813037635440607635506192234280875112402130510802847373059260767548305161957399089617810004355181311616390716545185919534702096974541514078615298948475457547205756571989293197088199034921386156987404916550106289932396484254055405356186108624372667769677881081133664963357270347853351380121703560767891029113009278421929020475846540990243367812392682842680754509942701797374549035164519055532563723463429909002166588237634191151818454375342580606872804387677764404263822615521253650498180453798654727616199556472877318376560890307054928673143271796084242498983983125376878539542336253879028854685323280983709282384273402171696759004122234944393563661480886045584899494139007461381334357802069829142695489481635288265053262392022892740687503881858458130245534583520745683548103429546494939775149936695002284766254176248377940273475134149409394660737221095162935947639224806113770556260300489566791867180616093112530271805530701914239011552251270809352063164033922561220774434801938224268961590934185853010767049148848474832118077636719024518763970009669476533747076088947812396959915244734420247391220202451485917891822024019537549241576502967648903316259972188889041098392545182950361881866230857165940942415795892704398975388029746192838779543644124228565105450516640522570887628019697696513042096281712497904569924602071177406323558573798838517802292199429357652334411697956508777170323042681085567861864799416105071310215875495772704325254657277219588963058453093846568289694304171729432267066094822796997078242731331322914746202794348454076662380494809014751710490971953551241960812579870212652035788000963694536155698863274547886790375557810994560281020362358165334290389932112378426102975923101898445028757873623661006826849258020430243089726130589398370448334524644011288840491957935516388261062669862851156470414228421672999754655124179092081383334974853568514596923180772183598116886677634533104169523736373280940556028159796153702441870365749982359823708003117475672567649603345393504507846208593521487859886477177550849478417649376812420377076890292019544556871010723874571212143251864672148255688112910396741838644420180981052386843782845506912524862750716035937677120426528545333387315843640583765961857104778403200527486278843599133549456545225716448409256701697302464559333264579683598559334151059519413188614510177307134892385588038956311678076965877821828837500945107228174601561557350461039372255708949588453375930404454216866271007790280048418520436345755849556666749412049634379648122447430064914584972016138296957370814026842484683478665548171233157646876557882501605052129492171694241921371170135899655535808584698847836106632217651821978720074732867819102427686666683349003945941322229883689942459944458166476372847593652174146908757917385830862839614805284043628402423934312943307382467813793435990048195499137670677783394656145436981713384393496016082572497753075493841590392527700597546239176035449366355063764272535813515391416744174376251325167768538834543457128537701126515445808177288068229775324252989103886027594850777566807839454783507656924422731315606174626663301627541223618405841700891402148565659417226364613033584829785624850020153245400701998388932652395056046189144369585043234347563480577242894365118814439567905752402546711386719964294326472563178954428495867046002233993901529246037869486122467769938996741479316608046001743687439909657500953467226221090085845087746323387051422814244292149467930725314107564958667106628441658193764927280774658978499850561138481433498073650833866984797245017391434536900087005212894881294041170949620977845935364858416364058715369917713017015249339746994387138084812395374479641914238643687644150663815545577833620007427048134863067161715067275763015617194049298230899187386801819781580383398723219621724440625185174322739645006492081793349727545277093839246157794351266163470267073185361777481411689739377946857211287310351859199904734379814836456491860319109013615518608012228193358260345712571295060499198056331834620256719827880929465037071454426463269487216473906736085722534560623872835471632301678952958914916913759638068703441564636529537439196964080403146370621333116145986419923780562656580316398506766914004094096099413595251911616772802971439772742412233213290244726158288742535254080907866842101361200241598370687708188814315812640361710481227022093448880808980897893396014327181551057675171730304411002301540508368219214304337668047716145914127619679147590684230580588405607464077772632062378474242832433047898237375871995765804286054536984630965330982681524923916306503458028609722778170878974041320339030507653501453828482655323536944609264450247046202357491890799167315015441712340259100928022087780651323561863058044733306136751936326295126383376839372091769971447014525194034009373946750642682567671517798863528415790878749379999875937064069659363071578059631348509570244206681146670190841183349379679453717622801310788295887239109172356324862443492567597036562855173805394959778924988266912226072696131516568889980837513404300377295245277604506383126151786415131190230040668674529503433119749133274428151388177788509393858113402268140732584849581704573121367962157937808365725804030429086687308892057743304734761937181624756193999011027359448261596251755862116864912199272513255950257031764790737893370840007540426896917535599900194204197658567201375932152497771427343720553857239276073420366945534607967317065233041166027725999444933612156341623237530374082610346318867366623021648972468735767352063867803034251900611230054426633142765333662362268521818098162728559714752813649132765600296239193328970162250136718799792894140833864252488943484855145553122577551066380614075973422174590892061660135438714886915702916362748979423981959281929959035121426988436972219125213470313902534421374925338006197183904227355046827611367120241445111422552643644964797776439866732498638740393646941583518955730541724242900659962721053304313467584117696993533560762319532446993923192303282616949100172731071018156195005458136968762285983452780934874744005206793699941369718928320606595803913567147577190198175382952872167458723538865372922611511546819495310490138543122520739224272947138379700537131923161342597518393845055470054131738222268419306287236838142940905408355771002899451267549523982811762615635213892433411133594259497054399763201369293221156260907517031929264314520962972716078623611810990448502709359353233191878407814855856859166375549954545309668813593375909114228856804637838468589231888484755189305630682528138816866858176929781711469807602861094205968708735127956283963155730374832496269289201328873798102116373664025621981329431496401449521449814196595862623118757027404346189507394183602138346431166780346225535085372629880927461584623803474588352278034298497316672446304798579386445745231307498629862253367055721859883640078738645979024377957973304638095284085514404197276050982537118680235203729106207428020763930389347599936334525215827158750761127761058366253085754675000557591972586765130542621593544982348583001756181450244248908841523886146554033760835740067669969537381776338680854690837314701694861712962891133908800469099261616021555652955407408481385827052719402290168038271580345883215899995621983256725110576100616569673902043460259005469396143431262262143992826568501331611987447672994334448693032757497577404640172916456978244535769886954005327918756690670130491781894654559133020021919229032547598479437397442163048094373258821385613050173176849594997213667796314862281091314544461377935962704294370586987951184676272437729266439704009934403552116439983257701143766588221530601224032185548647838013638873134476395843656615708699207404444044700626558045032138340274577101835391052980268732380075030996472737426694615117924480488546356184962226563444542281058591239733390273216363106306912396627102468144472869116069636355858505217457916317587448335598783224849410008618183371532637471707581779197774363888551932057343365918527748363507279680317548726165159722943741788708294967565321409668772371687304095085250669958069294489183666164135601660479477088806330077403052941580559550168608483474919622623881570430574920835297727841185992967219904667156662140979489437350997458055452093740016699163931109470229490135684333503749855279926392100430590009974139135570902196638530116895383796235893254326437391946148528701740153420087414143064990206467754775482893620741195427433267869985108448893307893328432463702049968004845329428676048193870713961773447769985221629208862973244562521369005269391883303203331320636319385520965953878285387292377803468175873911164139079887265669939312646683688815535226382264221650114290414995785644336029465361536361867780131388180137295918281947340214644392470131433151723624350245328203803237090710643318569207664106275641751023349288675175072796905778145283043389803878653178765083308709226023953299446732195780468316488422497756235873663346659968022102702173279647494127843887943317042586386677911198678960598240797358131329130474020275138097282436842838600713031864767647088304665190343707150902992345018748564526274894334561489939057570502819988235283063513157005924914243506634060505266561045060361423587782717734916988003836785332239510164120836501797386714418448426194624515799212386423853534800285816248830115868885656248048445193130284340713275883612448496302228189853950409821625744966708554542124793406073889705372178108282749791995760345502959361401624075932424177029954854283698576647556058534712828517024124215445908358063652329575118509357878332974168901763438418495398587463305511188655010584787577943606661462858573634047153114669664728492833957967313813872201108845065511177414666629249485523725526937297119614437924837457867883043081704273207943590810476287107756846956056728852639585749361909225502285676444276901927942052138024988534170890527654713506017976661803842621132803900126782546339566222999767895205874992700692162884432901411446141467799191129759903044406832176302047993013735645573929710665317147316812849523687019669333600492386434205533402304909874212461465336921347020456736981040778245906779443671640511008688225742207083971320182945413634561687706556715295629713340962519118977992634483028368119840070025086499811107609826356280392256266833404401688833917118245315526382189879717665935301897948819136929413577730142996105122804215265901261151715032270879876722089198108208361210728187028827041026557756297671677574743420342962833682520725669930150604685448129961773009723687493973638664156399001342062086412812757933027065419502956301820212863925804478634317354972915942476512134169657790741873960798263209187561972765996665980334280310575656163383065458723810135012176530177624324151647537738881787651001989025489561803253426123649701948440654861480634668185916177606371322331021312808737559063354548424000125325198722420076300625288814468854684598427103700725924156314385138233152898856806965323764667134047276329255484799258412915708145125544653261061384124622889798268654499580047872169562575839453923589210068644483735023034091642292284365859455605216994036353230694230059046098231071745869078723343029743958483003871854396853922142296668401049963906029468577484034064925114766497795188549086062764689194858776986055124287939012212278795520612288804985076308204602684758678520762397170777099005182799545422898226209719930427578322415136120006139126016091716917851028419430162175945805189956158163904559350872685191486900333095090730254586661166551180071961712427737661339823404858841165741857269959805741686496837820689198046529063498774059820038710771588379099885215771150333409530565604969226650430351138090066015909750776647496765813480672777183675585998564289294029711249878919081931268200883434894365546576117573245184422536158345276081023201314421781506877292135022333752468883510459686391307238612962207833765297958455159450080649127706146661971593477557981043888411292325903328286321238528191584677588771249061236498400450674764043310994046466198565243223393277168249791978821467390909217202169204454389843067521017139074211074473365337075865557504359615355826468572958061693942389381422184440361336178033303971147611323193878548137722847483738816292362626690748945201749461201499312111516375191405443223630499366897632499398835156274858711070856664468591045558033419207775618680987959723830979859610346437242450882728074621764064038000877873930580024359726234167040445761584870102951951626251341560668128909595760608673095712471552306114640481157895430810968985203726805173714112802512774770785570251392197740114017196121733766077688427818262831259785298197897897148206859940651485197259607521291050294451058528716430327747843729213623728583314112085152469966996363081334533588020375972991461058853408058772251793112483263233952820583718301308897296866066810607979631601379925520248818178536542467057544968548278281333410982986698112763277743154167501042529410936945290096556526210964854003258896289993955429260717941689283854029727504768261293018978803026181591036321984095426360268685148633657428949399663733184934148069361551071393422619433858708949691808455596697600285251719483268607148775837222155158673194236178608108735932100754206470092286606054826827589579044494446814163615685729005603087548344891098346150497563584290641171007593028104404261253287587605965008973992151380689417701705849184571948164555848701046883510555860985903800374076663899131470074545876058960462421683363052310548974896395259809445780628696579911785981348532797470911059328073620561317048711576180932504659130078989930993495501064375043432944211549760803784406582000650024210030549311946991016425540859119866824672763394711722602713167174952583213527968413807887891938234745568776540324934066033894068401076137749582461838208326734748588768619971300798248650257853010247412971175408788912575417642570857628496197117971585621420544141336890538454111310999450284221026508417788001745434873927747384304107342228626645850895177385229275968888845459230607830626442741925423680294949668210302041017402706219854347361527798589252712304573497852866542344175000541239748004723851051689204447524137119691940903882022672536040805011813228151410729741235321856947368861426366217646496878895203717988899691377271510528979252010783703053411496269344500042639224072639465225270087170355980002570875262132035852164375363026898927823527617230992495575971541824230153927374073495002977776137558613469729821450149463638536760956546057231337544484142809394073094097155422779434108475751897567635758316871707572919510086313686136682592642120127616127895676912862097543772158869327202723107519811420512884031514170392102129733310923824821435332648055790214673333546953497631758404114142572913560487768991195903104502483674792124040518349488655936456224380268909055282935523785955197206150433341034653276877710947966985431808795501243887083117129103582546077653126037365624198399491283855730886236040777044640025045447655231146934568970568723603812476843582858695435713755512932021857772224714062261919691523164825036175047890608232591682052006300980956000505120461699878523058703853273640278152932126561881432384226329228977277321735639709660828325085566063641575588439227091661219799971314613415558239153739969249972387171675122692876999687087916594859755220402092028090921055207868948811464531646353688513477263881236223377524144934064932573094040946036296906968698773085942645406375270007402616135899934910278283331711036105870272159354583141633514724212425516425632245663658896368035212675503324064947319324215330998650730518306209489785705473650991358822972013839659389379532049084739985113006050428258500401491068765721008943591431502024213946925391334606074601540771430055939111529667866017778746829687219766665622313030386465283362975498599107354001106056042445834835839564478485497266111305599392384711695269195606843645288514360502341395974791016907158488634879978685089801789683258585021953746605484893916889565144809968707314039058079046089783883603550939111768202755107010199727681263344694706896615814913041928405445904977306873521756684505341051078487343240527780863411382566646947523903989533482244746074264780429327391023418666905824587076437674861719629649015626734735083714792320487804292716864537157906948706143494417237247332650302710815367428161324757062796256152949965165128720208803156648462259151480415124635520152592251554154157395393571328998155629016692564974126763334305778353474346884715096654510071770434942429521572080522168490737119930321059177920985703425336723044445750425616360531008025683397375683178854957830971757928641418486076681074981795966451825894011823546020721561545819996163099569352554767122231276241106142723302017494337413938430260030676174510182785625117757462791348032414018579733597107921961570751196546238092401476193971912313795947921866218648910052199411971876168499579719848729752823515402477158729360346641935054081988035622336410159112104233005400686012731667619918946714514199395863409597153509469180927037710279046532408925601217218640132772825543351400913784441128642844088054957411703425374074142280329042613793202142956292813682746971200976659565778453376017159000815730849488828128007100242472206562346091224420030482098243537484639446511556065180586120239053543335439570528556472551951299095213675271366412592716533299586706494435052056923686702111872080261461819370164686734231857890147531594736846350049086402878610236949190252586538228329079705478547875302903158242895412760032382931886467009024718429938679242357169716225961471942023321373016459112964849293468828149722906931420153831970858430864766291789240853953106179281550648020631663395659588797118999280696864818597190058743984080468819043361825108496247865672158896001084141994630502857350207833166098658763137977925621223588108263944603367348230264978178960173038149348981348468155201178558108336086914509083925707338711883619075892927870715418928295926413123840769786024214819579459696154373571963841409186991697277493393950425726718403813736941906400771152144516101868405636357072901342130139293573909371570501573296306926495498219890741661268815892290652930012622169364251650453573758676812583241289733580833959828789514336689922254669070404636838030800347747203139185981582398146461778000484501915610100577717411896420930054685201829244988886526276396789736061723194603046702268908564046972567252103393759371278508906335870716089024427922055958588173276479262504880378352266312390608206838359085871087524248384366213901890635102065810177156086739442352273620639201514073720292592670006141002163382915480596601375858723245819513866541770338678852674739157066296953117942395049814954086081040314408143270089474244783475130261938314089278397972420955406877703758762043411866190604137905358152020256376438622772574986423079223666217252397214384136388647608473177157670332137057926327343842625097319903617918069755223440782529472639155325079259295498365743802260509240179379926045063886660152307216622349422521741865230037310205746882237021139077103720645823745033112704239211096314648761695939514030539055450050272157176406977412085578011601876871534241734124104532309286955705633118080894172645959865368600363845661274095965988637028387978418793887471821067034791380221980895759058143854992929101194588500272236677386383830348442878146715971319115230066956291916358846278260566524783539403673435061020786033823707723085477949713454072917531139241176875719108139696840750536296609040674221669548190202679929119368743839509717555160797419704216437265247534436140155619838096215722146491187039352171064504617086604636982995150456197945402303552336960429805207362778592503078768724441432447578706771783013950314696746265844616516890603122532676911911159710875201137022944220922450400416518686948641323163548828421860496784687027454617391805311201989089115574595867525511746161046924322586762710979962598518816203126463915799367326159221968050062832380835221862975764929779140465575055219642415649779278927672446123254021767388391034409244455386556704548702230260911328649263158176690870026396221093634526895872328717225891584689843839873220678154517443538824307071190258004841073394299744869299284172141721882911293006989175931571438420866352850676853933798943131067104516878108857559116158300047966887754727868393837662409471251875598395718695528079910752601510234226370631558511889024819092009927940372073299337544467657912226558416961252378250853801823107159276675273816708221315540172396040394465560315309904773609648439807563668083726704480218104158414596403563864183142535371262649424054681744566033024016280961325035630194725606498984157762756794049353862908422889731845079087655580620662998941596276746383686747499486758188331601549541106677786314840382251279289053266230432735319103772967364809326295984292442911240821392113246029924102361667301416836253771305349305834840650474065533960426144927436880880382308992979155420560635120777740612511791555632175464666749318708013082374879381195814072651525344859934371546355806741871914718811025409434919191672460237350576030236036428056613788327492375679028628749265312880532370300694817755144901474365375178522228486105432808114292565054081357767143785604337899350410710039884383417366130744008651675899387271524596061608963495307313492377497209477828380174180460429308361768555184181138515212462410313902914199694736517107320169535575189069478008840018670814968602674645318064603220135448541615467671419945483573308329382441561232714938973412542923343032562907419184970845627833469975620925471915477696280465867003053130740928490338921976571343562504434210617181655985912521393480892343712491891563214695551380980524638563871848748861960210497158384060851173981815919330104762399115845239459013164123605471272235837890914606143618806275052766864103244716620877038166162851829310184188086908738371989900062873090055479184720634931329429356407855033913784831235133822631374674524891247593084870622678118282695579273478307114588158825641388251620258184452660783395290121108908486056704718126088692440995973808593453225076683705643179234048735409469793923436283985491374411485728317599713458149538216655591491556136548680870869577922299304277533194134405018460726659182385934350195967205093339023306866132455115779426634190370408991715763337795415829944568748165735259686176799288316685994206822708285630033725072071624787900216865467841119343509857956841372783793279091972966333399946410043771620544372079429764866557390969714808704229082358602497715785320646527615681958397960101150770895344275401756316116046442649688431324834955242301118398330270276827422238869952646388472134264329185223761995866392006447561450037607937958209991363381718166523719939983174543987228412691768337447195648449490767991673959164361977434851686649401193441783799334123938401055922449864304429116680154540222763552684348230564212207544198569337169107545934784217183098645295259588449847836016668433861307151093572521925005340505106171818624370928109074916253665283021711787430094578081385642746283573662429175289386727425344324227883785734391950411407690526118269776086342245880357223017602799719273831012173592859917338740970630557004560946274280787819494381498632355945432452396148407819943444510261002649586237705254185471323583019671700579216787958441890907434364538165791663872741561514124846142462484459331907705846397236339079700696416145842291454116353002688890100537636643109605837809538096854679164619801408832577143655057809573036250135084830721098150674222892874299471017273286983869300237794236006446476670146324030173493902685558704053588707521625434321322370532031827222924482158791763786721922710984233559489453092371096088160781029526859125814785777841054028654016472847308738053879591769090350620455340573288872835913650293855587238308595119443808556538669246719251185086756788713110745575845549170835253453156607914362207952871354077483214069069356619273144086308215998621775465030910449735393468547349865302664637584917789763356231776303539745102492767278091474066397511499381206635392949334739188390140853857007991203237669928314142600717831424137535759673175876135405105936786784041129709663602452074649174439899250223151580560119608687848642549591778930002842304849458679709821931540090201045083452774119029852808834897788782823454965692030274223570320044777397245097253949092714632463261456621748830011212248224306904542822660914562366239325742720686699985565362927316385855994436721759932716994877153839988652571307731860984051818471980304459341480549564860631306915842459564035479207043301625177677511513745350835727855037016615477154636027115278557805795525710861720697353136112226922662945648338794838015774316641448230388008243496589611795242782232231974483237625639181492494914921279921595946987389932453982927428542776843582102228850585236095474292279614468614790749328354474357689814032197800332187743614688246326180636395140728571068369753870986276629937923469287237850574639833639625492124781387178552333289547796475267156706051327921576353925135277055105246405537034252746501466416767636354690068381792769750540453154761672562914997496081158850955463515726162292739826371397647875070466890047039543507429145773809663255661729899780686981198743611052599824445889984785042512583563211466093467389814715207236833553037457842046396284056838195655895025026790048274620285520985279416795502309218553492714453713429815762990789721339376223489106114968300489399871204465334306206051535654419085155175871911624933522895121740235933538478854299072298403142944744880071706296581495110509291611976628805320896293704071420755868746672251239009677459531257646984353645863497560981144321801456779223257300272785699596788334814198736409480023880248144751293295580483014650849122852721026385102595195945528428078317032322170016099139595541541598376212356463097261266363261883389874995660835781379661174500286958818881605915765391795202666876162821775782828051682439706143522778767416747836911025144125795367690624397891848489822624531317281945606154447794376336894668776341862705581732084703699369261250632744327974012761927092438198192817374980018185978034417562933592589201642268750160374537047729167229799138065390055766545701890669264050632522387046048362222979683275655797054879317796225345719165895320877827340104553151946063238483191633392001638278655231636073511613897174643922259246349348769111593637530161193380195210378892744486774577272025711615890592973114057356661958651551317174426037799706706815729180438327838540851086836721585266512698444010009063127634572557648249289156600476780770067594698680051149187860578529959772994695985027575992293294034066732912716446498521297950239085737384736074466988269039003448791620248346474299230021022182711887171693175630731457622683623428537362134951780145057854879914871036642276637992336157706219311481915880678401546541566571622245862597152969483525576992159821266080306680081693331586411473979914039674928323595003187260214346949273183738061554398022964199804498063812086019983520323483389567343410772851812996532950665262232612154297772298588039703879159558118610206184043881422954934274599435731495340743187175774802829509851693565362981100219258738348547977865344433150654551586328724118158851603572042345729820927913830697801844573238277913845380401117420330892214976071232655440961638507891111404627734089044156845472833496128528186442225470856535497013311585639101692320609098477146092243035711601255574231254001310658685055484151885280896181355935291479319751775412718280614061103468160652267151018176696164148459053842295419046034975826822635450396310960045337969686119211379475382191036021255825491471500090807513622646755494905430770465151134886338412157068156444591011354227116437934256200773716728025114978028808325075749790824345338146630453429247409715658343695955069265418249490908611365194134967866312491793087122553193885066701343155920729458346817793559711912053937060644272533933975690849774381762555362695433336702969744604929904071144966367878176469552861664090288408290112156358440533453254740621177484402983998293009925158510079579185519549495649659430692160315304128332551912422290645146531174763020335313950002137613157689620949727934006039580169478770282984116544928667752315824629697513347877438106010900008877118536801480590132938373048242891563871720789378355299092360750192872328964659656833371226699152335215607384539870522419620083319419661990768482513910547722968439425004785363925290443734633001477517479080235389737736181271554197460661693955361885172319213103107401028872601178448688278291665039288908286476190019652705109022365437041486959537949079376757446904887344162067397531439933774964430725563089172803570651559561857905050215101016084369429001295785343025727854116940265616437136293762682285438103337701359124739040857951294137288404960091129119693587511015044479046059438201092847800423395643609582254021343478160139025060392456809760142793887395589511996737632892266500196884463852686563600618842166499842213715920882314644372237271261663587841592539732068870106568235677388650306871479080828210336872154414913578306630777328963234126071066304344760497613962640152943758312288305745849974220608562564171134222450937528151085776801147503730777152179701947853027157882263568770902539992834126691664314802026285106403746021346617744034122610270432164697767628313964302327906119146708953507843372487884231791448390713260286462814907738585478312811787659990696558419777663250092551562405680903617985067312425609403010661178251265577473714273664219546886324568128709128062743327710132963759863805174507152568987587399506101465947437994137238188127985890300680089092204289537101548246303143077682579875814424963878283114774530618664771291914374837010107475709044212103288115253011113069711556250090082916853095552801871850142561800480862626317328648231862434519346759474880249865500566399693493019595503574538388246334887705388922466218505679102565648212041057198714022088784206252545857238467735601863804178537166149917129446391439011577766329604218791404825281509249879864519478944102429564320313422693016035636229839265292456864448057149515167939381985642097826145521537523315247826041897979755083762835512534372560471019213284992260470588124392135001933400485498677786858806694858102566960753957357768842803024882347353566472709482119439534771064414861328023230449726158113540204728369192455431462867537941820019497963121094366919658585024881753526779854901780934975198949523477711419910736019314076062776903724108059271982891109461478585813816031625561369633591668004682203426020351479939749741915379573756343923579508906302282999702824637167703926609970719487911434058796523217772560289628931795839578590332779689417080784202104028519268070625892358553318144976440501537081560569660572232124497812282944430343174437714229210271160714074601126271337783151163007691955564994123834511024016033602899303155904465000224754885535547443693698695738933932245924456225608456203971326044630934832414820418696931163547658978870188752924650308152162801988733754558621000189349504394366044042433076942743526758926677152837821186351585793143915872692283865121335564070225220247697273164928304430728683017850091065050162820544976818302173453301521180765339891446172371597046926727403159780911433684177985431689424249657867761177120179465049908309582220214309758572825524286045532633841392893343278760184855425788163520756546209547706941304260124964278537382939683034086143217717304594199109104057418640641477091105121556758298289648985120230291891067551160273243309714153900122862650419031872266373227669785890109121783219670115708955047897473088185679789424081177039588873107005081173407866655159372500852791011362832056506771349588352522266721668894237107131800854994167593783477620838286116838013774155166605015793278139975729307244904050275854196314278936426432127059290679717065619133803051277992185920610059184532147414742863658346839925108590651832403623797894559484669362701491118269789473068428762068809604861483365683692644582629976492454876382097306047806070743405230259826135388261721412434480698336092420043890384412498296138372514249439753986531495702622129024436929313169901685919793305033820568862196297792756466989729708849287436521834451717962387184797209934379119154758447382786812808674692440277524603746824340430187755631816803057009237274127895300906353653347383047297324314700600160262074107091232077809367398915661680005974383925289718190769726964902646705954591375897154723960243803895123433526039184032071454068837635496943227415061949577444502082571294598000734351331122670258485399252957648950595060945535993728432637183332803892663191868220868907373942483369681123267813964305352017584127958183267034256699087784955209406064013580595869986964387205281695325156183068883361429006831333844988458843729048820474089481987618961759039627476198304302931778267487560321659521909645478244665958483366922440069809994491555738320113811756982773735690052485693341466648962871306472181440305428701505519788095520246848177656570571456062491498818579941860400586559948129340308715393493538535772505191972999954792849203271134261541172471641198831757132593728570656674019548530343270789238470330949180192754329070172410352541100899435330663621351547343056842219893531777318282437593237557845088627750163446419595513666765025580574075591737916301692088281756095218474620179053239521421268260687901713882100149474228650081437739133435535266064175625604131374414473106565805813601460647159657527508881134461433468223623285299274981248370313329002065407009686367661332136972230824833901295081212530759880608475082646822012377806131221515521742671074874602584725854309892303474228690346714476764607643054084676442050616873124942587506971525077027192739546077017240585916976053689338312789043830969396596407688763124670538845491416771485227784827366726215705207813497509315414723431284662261795226763373309326880620209347356801910138765359305866533054721421409608401540347796279626431587239255129116730336605572532022465000311144663578813896487747911444891610115694802232503322044645734053139435127740281682606533719024609266129906005493329185271874106305549552083306526587134963473259941199072918883046668144404508842125679378685228170025159857765721988916675647208804046993121686147215296859351561128786996422644598472449866149633770211213779644160334065419995041949739464569967567611350267909051689368873487000082486103895555337832314248838786069195173228208152802075222358891845464325182482871332622332190931627757810125872594898879062098588126554246444564495581186947584074053116472175622541382877905975814254248163811087883527400257196132792494629303069754045535295284091016479358557256369995161937876591669129606959666840247829779559050840101530358306917963727322152866990887752397283553641458058204408821393928273724962800297388061374781919606566375638093394747412323994800387316972916984273227437207201047087265458908491879664638032624104826270805910379714790887166669413633792628525891057993842600427854555506269447180505804236705645974086332717849743635987288170990330496471275491351851027127372825193907096930074295389764130971382325162943749023662371948890624642967779388587962452952207259498205522139982830773555448440640636643832736576287636319670104025147604888888829206851985377238055914225772115009224030069117378859491053016190154246638103908532992368111161950233521173217603925812289271285317048005894909435172887867001786721827839632318582375803837326922541629286024310247647972135452385624325762558551514531071752369641670258284458643469937938185221822850570201352810884542235891181771627590358890618341378684889810300300793611497485442536973158435723171426766732145700921473784582727737342766962817831798129024331521741412073139920607022703070995650124063478553231709578672316038401873720432278595781293034350816830402040449029155083068845339555940681379854590405727294552662072208388881030577452971893949940192774322040207022916383409664432530259118030972068793319677935719636631069574328459954915969782390373773852586147665104818401765915363398797979502687270903291929145749497416999758915050832107005632781966480412311897287089023582837691227511113094407683781454151783963750183158334456586758775007720430870256395572027348856912546587394701710000217785396685041159546543477865075031591513372901745220825104759523625969478658557213695413201607652457707680515247983164422272047092366048643252928003362980618522802563508672512696976096455112272274533570483746125551616979031070577542195137057109937280672556336173698679046018541238972053314715132001413000770179759572121870604871958109100716441163029067016582734152949086019882324194010258894779247452675010442963957397380781715684857988240010105875985211889675545194694607409707109191759281985485630629888894421267136751756162303792045370895212336282423471602639336650681109677201292164150073913182231614819877905087244179383065663718915197354833188511984170432336752925911782369322041190354542619988360456015249668282100508854332523535653428546795688343793651840563648025998865992053207202786997975129856012685523376193967796561042671627783778224684777918065810638477758145539252576228318079800205941360071799044876110668828022731984797148704991647494054561947249468537293478773905317643221358514692800902010430632986434374602620780282743759858981647752401162904417813820898371972240806303435723427840964387874022208383824091189206140692263281206774603411608991800388421518891155228525638011069507468266739654736956250102245421366407640406189649317992589925475364625052252629530524455553265264634616534037966697816591456004562468161870011469395182889993267500546879739580107152599395630062211199252698346459516085250082176887089225152189917786951811200252534179213402210432238299280852268749131678112887247180402318983984977404547704669737048470685954181970120318339977304598990785358039587118767172768182673888474312398225440360788866699550803790933122897845178381445539181967752352478528988056897785672122786069053455211098755567925079979629407553033765109912370475283400560981892468685339027335018569702063731295513430448656623678861165550682425303079424334684710591276381483008838208640520692806873307422028922891098340058388323150868225216457342545102267595924721450052909684252111611128389742236858667745601586294974095875424449614380484973490598157522789016477693341119546554664265249919319172480833353830158579930679505817141571886051002840413206561916795814727724966997627809346303021151661819417539121563610435518514817360707337721214942088322192848255029768805313130142614940234250400115536410903899483393605690656988482200843826320118670361117381760563617449058334421773555143478963757144040071676447992540148180590678750406736604650811610027071572099078251273879012307100570117754532724489980928069627565626565724055776182463408769596133285767533841042323676836019270147359287860926552328163025528723620166203604357907350760607727454334962342407327322179891470237534206830956247789225522079234399352334859631194121680392202859940689246180330711900874225285023410774979381379455896845217672946193084283149020746473034351115890701719290474399723374662313686794961047460238139699391802036802766134877773633353219247287706017477438233363156651781330201645470619103315061945673085566980646285622982426205384841726840901270858768685240905023525053688797942510014534739638490668405778101757141239801317492550730742492873410371046616934322106276229234936118110325482607735096251345305346942664526623138952479976997017951102383781809811511542729596768634881587650824723186559709284381092511336024806475003725843072932765520546163299234716340128911077998566918317062764613282306923798148470658819917603501183509877679379440317567519011330091494277855307171083859512836596369582556502519307221965006663323754618707725666935385949740112326388273644727289409128212316159668986718521616176514591186679778085660993444060119259671736384879856215188477988688354356256022820584641900176707402900359333203006829048742321865787301548472841975931105628401412330882838038148931982379500077131261575054096927401326198094315288044588182984824498211122622782400232085466014053370562616494976234006537089453672339148797383117592125224468376710524409582288588971359423834602950379971149698855701210464413482684083184951179267306727718438707914997233023108974255688406876113537462256310434957379756006030979495725217255122529265973212281050053850151904722421294303057578006993844334082807595080284313909730695515499809056712916748105205524374238421632646970739383952336284128992372844384373840116270136692773617244872619952881248502914028736586886127088898137630218510098306171349737304977297233375732683687743235852158459582889032550171794007441737274650549594678867759046266644524597716809769333974482481215858069831071584127737963054737342335394483696149182848366130877224145360112887682809555778898269758117140745101324035220096635975658186911839809202167227682398197797992677721482188549847457932242172491751859827970147315294444756317064420528228696488897661205186340092866649694693231364584151349466140882817002519327400203292494791228357041663802056384772914402096631112444578488386818609698019581707030734330327046210576758184423566267162746188115178153726460729132476364764942988472948115238611167016842452124309558903110035376920119328441475089550380073701671189113755156427710415299506179590428206217809917449979597352054036692710654921098505875135535637701602939638849702242188337474825420816299559234351519041666384045959603651133088615062966914368153386529211854235694477507671430023000328329359551095661393645824339660411495535929863659348145520758899572450525241915307061624800226916136979469118748717748074997375181620314456233380773850955131747324039192189703916715096936693464176684733456011727258558962180863176597915952960580151177981844010979526823415958073257065666332328003595373885774018018085582900180452025427588672921029996350541079242693125045863199177283318957496470099199191731917652295346162773241989643446036951674466909544782368413388187767956815265749701736308729969934556191357843398666078749294846762853265780672801988358512810479424096118998586197721168765798427938001531218547421210975933659261558542254924600257290884402444923239999395640109693721102118989052844991790935061064621626704014619952290144826816571655653421854284942400059440292587340219930959765241699078427222603431386234228852754408846652608234663808212756860128772726573928039043369709587765509819480131351675255068921647906291586958917140941271130268632334836665749195744312278986228845855876799134140844390185111085131114103267826274595514233400667810001158148149425425444128513103889405936918340773648261825569685310496399292047795325718658388409855366167180831617239059804174968827001576163376299314424041705767083944394373404057819816205750221113965735762733373660375753859090380577884807772507770714219647996773980858425314036934968334794780816464939426476258662971803298258579115378318542805584794262722003618811332543720870914790023192494241028370148191415069835085955949587441392366192671652774955319526477094949459851922763964407717331819469319824279529827252839862952764056562003822075004937326014554403367216774222661664869095807880624170175867408995055906188739858884314014937816043728082665186071272539629879717593318517457787277923197935036622986343643372127643820641225290262943394362046252192573821091881021997724250004769307828835953070461226543491109907245997994766632406831916203928559714310026673383995661266286436379341191027848751891136998332193792215083350345018440006245606317118047709444338028955940200285000021994924911830074021383349774706183364086212542061929954259644637027759360903756840405535124252253764015144863916883835675660453519648899547774586774974975206302689701166951116688902946467607130096971187319400206832964678676967167784114315541330695469594961030946155761061695740800448968065733141109362035047354181182114804605544999517887903208001440044737099818442853806571971721734596696953189850385749250123911486777945275908994514085950015322458333106773345787888100399304195220901292882193323353887060234714036754759047651058576684245815920630698343245521900663382267861035457958143434082635108155149267096937478810211948917109511476447899682609165195975084424596455956118313223848873845912499926337669059636604574294143882450123870136766727296958027572261935534538230097911398375471893248968904807312446022622743319151615590208621107064233467119753570525811670895751767293537183263237305315217479983427464430498101698413126315426367855187915531277960556900855739663897664589234518862029051566767197784929855297644649867270351557246796821340643578050360557571443464484579984313195130696753078951718464427602021729988503710669798948389311823767839978403074983488639146971174484851224052405227056266067306321599759756194534956653804290488887812131447365227433041439420975814824216101929071001738853599644341980650073647192756033839561739509170733196569714379066194053863117554104448797952555139991724825672720322944845577572669796073015109374249647085898396181120759310253919642848795205285701948450221886713206146773877200303208089619812753419293176096301604637716893248982368836329962144682723024624535175047961991925887098782567240582618327240149415623165291138165073582370632105065074085479334827048785089328287796631122997311031778155435290766301280722169060194709290520672522840503593679899963664706007522904151142496467492709869644365499781946468842461636823348466003834114831103121766023348536928685163057459126736575575684257565786683592670181693809517980601418397221909320171053059864524359849557781316197013159651565838653262204079166140327391801633370448247855787184922364924674058437092717186887538851511857288467404501545999257166966125251631181035708190316927249145606201899268363144504627165447799518830071658611796343023422143779834049496994930807100071258563174594818016584404881093059114281204796837283669966149133823314114024434791897516507497077134086426629036398476302833729167388397362706923983785441596542891470223602738359821046109216294220301705925604143097983820289503307027288519443555820483097392430512754255086572441717493966125012432932434903944266010709856057194537117319478063782447201454526692156986795272321237184574117801765566796163331906844301248784114621311259265420977022649553211813219058362599791544914360100677172582432349222051293385959460375670297715261356437017712606177635199776484599315613946108485771256001028169050623507702853761453165832122775027196127588684374037010674052835727277753801817579779815650761625668773315518333626299395339311481492457794046980766565543109828621904686667619022449029308728895537367888656519083417304452164613543476504386690611332120223951718058009986267960406961906464897583018536329244790936335873171293863479435710063506339804439685544307953889634591184332396635435067042778595982635553279715117450810272795931805879316132506901291981369643566505372114416254126994791464578816326935017946110444375621439742092318151308499600212334540699220127108578118882514856820251140564244981366482289114196571748212461544344340158588767622602725893366491826412697267933522958357450204913892416358737527308146066899587970874227141335940652582256753531951420331966254864119003192765638370249981068564595544689712217300492439535633475536838558218532607691983358828979986080553336347054433641775206073534616497298007475356448786156156134289324820486542688638799404615415784772555721966121041823071211482881987736549683280798570560541002334431124918729083301696588906442171650559841815080339354715559816996397778993387148965983757265136312092796511267793648349905649022320003007980498601907509540573804576055756965689068136130471211210067575093132999940710424147409682248091836264431110821249682678118803924033826102527407439291833197028857308696339083501487730711446062753480841098770668842708794078310228888262334866216241324350656471389749573045254400917061798653483537949987777262111411441150329867406936636719618434766816421740440531726203595932674898162203906570350836712966183133999095219315151351058631964814248345951280257248282715632329186191054098598218016971370649268107760574747246584737222157929681651899621020231740921143198204290947735571590766537373346973168401631909439973660835933322459497625251804170457277205119700694641191399236147952242593996882736050776135941645820344989686053171403131261129077442939012910001278917693952323806504061540296734744783414121316076105895398687831201666978249485619498463653834180703482109385525108408275174787085780412682620938722760885806193154300515129436721515240313832247300806809894836468333444372928639813014358896774465138169892674788205779886775429483970506990642291843486421544016833569988275786470968448758559136586590514003120194356251204005155098175698866579749394333302695384553899504301056510652216063215369345071777220355338247726836473130651745828783888443104972835170972578803926469603015397057460877240574115372720602969585783064156872331125038209142471978061828329646165929502696359253295709754225670303603753019581528164913450723243544599271368868950648045269734213596510364542934208186536229682335181305803661142602830144970649281533552368081649206503365992537145730316409774267782040179910407595949016988442755858726656342145330884916662868276330714173467991452855069515400444150873708367544294203997735328237930103892308847176814450516940953274713871477385491089762365880611350308662519293379107113592121053009161616264832963950326831843666872605167108092518716823830384993822638446589193726645268904980133380024949343916556293878820054777966077835479044197741202198186240622514114794360576444017382742228058253390299842866809128029687245464347509193963110100690680641476757633191757300113215022663218814426986850202967097560189504596028440013396774529816375420767257175058883415233092393137947316252819301675535985639173275983881413580468368984675829467438702022555288579273968651011192566828924485731374914156786461268527587069310813859343343422047160861549976015920614019882626925664500405328799314642801622258268933205158119845011632461355462047608227175063225882616129822488967110399544171381886158620447149010444515981153910531029533205972703673910972319929911008975541319767203165944074292234359979501400102039953800314622607312806478504110957726173253279380268446779411150873730433540622174250600700367560440070672999957244200493281495671129476653198921579464778737378968391991990487692436653703806639164950731086023258212923135626536470993267842745851656080295948711718410962388948952791388813060743154891397270251401502345484351244727432911384474398162242487792229640181416330771515985858496495071245167594827675898267231898463357291381417155096316080585064603281481689903841590605945429896788269527647268712573476482156564747869246604257594090783216890363074600439177585768955842254234920645891713379937891473546361220278620752290867281875588396373761678728439273762800442534046721771713250833869711932760115885422982578855879090328743334209613764003039567198096558243252508001420561776687603328989457957668884197007571027066944182400066596739818123051941441864767165310252785406970365894173715328708786809842089070877264962332388501044038402062155831068913029737501003602185896312294281447418236583677895859192083642650851800778964009827745695493128414844358502471800428175020659461128296332791215006273669061959085189278010040062765885699539251085076312535765634597215406236351898187276975572654321278458966126258267090796514642280398315803296268213246976529473912184177854976119286265228420004592574492989566998666081302924205134104489219278329885086498016170983769951716888881467718774392111940223647471859448093498624682998596212220503412074453259410104985548502292659486794865698910135130714544692208714816012830851925819477535015587692480139049298519150790120129446140337855235978421244761185026275510096099678121540518373788079515618277923040703885558749681029039275215159726619722069085720577795191149052852615314694433737660382976984044059035357420895158389865389375734003884861108021742394437207009941018154317043943443443805029240003044586417720684249235513424510508859413709520841236417044764259076243201904306420056089424516602697722482831596952024904849068466889316316666696828390277709920614800926478961301764241202609386992941948757198408184220353663816408418155535209376791405996520760767162539025414269111831336442693286741952428870324545502589588297914009369137439427719474717073719069948119830984413228126921651753712861943457705927596512001717209339131333049033075139502290781244275013792955302392147119426292852048096837490499274635944174364015413007684993710112158841876334233776020366042251436777482394345086983512634253930638281149567478035083297396705267738357282020721263731837361264283257559757679288742708085721032165833072306141460951794825303805186791884961267436703510150103913311652035903102270413928949474108293091156238061168900119010821041088715743067991010776975216966197215225377753042866122757759822623313644937358159319298802625840269125147651937565629988484232697112495255763167160001669792560217941775865209875887197305679031630533842210867209356725496006282842004962621014904254256191251450000448770823300193100637555821652969646782342771241169816536035242632761774170212082540901551863804846858696731405831563868081172545820826713486731394291618966555153670522379275033414903505090590309401384791348837597109979192126816206189084994498835581093266883459327362629231082724986992747208325718028733408474448565790931655124853562351924232053470317771393470640391432707350455274547462959428646289668302967057146863016832450863081087114234406046176465378467031145632409561533634841330771567171570847419981276574383663659035949983225364075613145291692329907705804038545717045008539071333900588032969661609841322321303432849029505882653248826489376012656989873127248680886756565386051750040028487054940098106708133414829635442005155315783940781345025292081460859355266550841935893331535108716825309519429427404843419187327362237608811999390346236775994327993942402746069652081761515449301852226037842847563551904991565382035388389695266502934123054538359932549941409788144042827177616634868323462898083081419426262255380214299779898383048179114153922173628989211146965384777072212610070961832732276661207224828517081739690690529273483998787506622925188286087228280876013325047567098337970253588556628601842006563896092581450820799824487345132320884512874327028635943716699039643286637714457625121495336813556100569805219387197798029807602346127193745189478350384574237324621627985475903657505602545128066093169460365044828171617070234522216198790337519073534350716386870653641487009675815516564416889353979427201600321787209388912375574413534062814654389568599256695931279968494658158070317399275670382945094229466086716665583704374167691027933889687772342712879619715609043627080085962971631939556424157837231461989329512531645030541356475273657230965879429739855603975809572891897317149949175516254211427800373537780870240884444306148455065582737426523402786496934522881714746934388227252038109178320010261424688473336962488016697963340381942110607000432376286804883735401774060501668156108709814286146759402124815289814305621624600911740897425823089026468082625940157052820493188459862889418634018078477756255574411591079321718411301682763459179743020539877237131266429976570587957947896966387008450039909824087844085244478088426877476489423783418884571621496631666684179991633669405289587952867901191074902626303725876860014649435816158482049105373823602170135586136188849790445017936698631188350447604317315216451207961708281911469611558063262843626956738770863481859830600397932414217877430363774662557088568884153263932558392849820074782229035152825057515726852734777835624349075582061370178811676713783866735660414596705236117545685085851902781181718063377030588409909230227593285989647095815049841822890827515166126581943456378436417477816892934449116366345920235226643363895895266218382486778294944068598618579734633864838011055778171856843696181267048870453414551114553617822906018479912294156809614528272189200914413039341814719187790094917365479103069813809960349213321652486760421851733227502502946994262212224063069850690049592310104145087475461225530267750563193682207015043623225587074007295603717405468604423295576026178192692357399416321438689376510744378350034469678223253945988246607566640904348769668716619256610797131606945147606525447200884548300058710601803615406540786234251779838217612576186296134245593159959329975227372840903386112821636140252158567765939757918135415904725892849099073190776638690866962378128040222007013227362027850737016445867625967020462674876930970631612136609457705076664901309524733482318717813592569276546875666467446156440704687835318519614318021824835047197111337717723406003175814327453771160136507876127820699055973933453739107163910328998544138585388878612146564978816730451399240275079578061817873694609545566129244118941634374267207490387080548106108378384173201566217326503215408260130832059895511492492263266642172368135132476821787539629740305801432931099764487036684084767748357524626143497044287408884100451962923000733344980046545812028510033584976997156505680980089804110745515946523195804196031219189002301884795827225242035814844712951705455029137353974602068337536089103682385140132925562749992267376351728813739759883629639222243840304595289230028966142366789420281450298155397992417486816969345340493055810602091642091747353465487849873503289656815888291646122984350224031149042422395541408578741399030932295614456129771303302117820743552799147283928483379196272964889087755850859561323476264858303229855775443995781331658340283623800548572323377160252236606214263170085026115780416948945520745652172168148006981152829985511956806581016880001034094538633193686044745440979132197845713008858102004788540428986734823667121371747854839291748741228658345065579042597688122633766306459115644398241257825672524877302982467018011997730067492545645326957209948624766343256467740228514835566049396453609948480966068998357633699953021756413930235731611013189721044693236199013649756518491789728330220632619817186211485626149878680851008625096884528686047095340210042609035904160296765574699358911032957160759495442267126060090951613946688892325625277317613999642949692878397652693560737285737028558187651397225802201495470140711110487808311763956600546037327220403140837200863256726268357897356694162397616062369578391117247676864327480490886051519775196710288751209145250387101264307734423526252891877252848034839022906227494606020139856069920367369427351655838683871937163580430944859731442928797648807190330310540231268727597562923398696817260208874962319082155000795684449770866833249590197615344132872488243803649899452334177894727165681593016984654880438059854381181383610056087060162679933318548011699366326668193747783563856948130564777476132382595379009710541012011810196849315369777017825976071737857675394773145163457569995596206022227038290215585437232093420619039028446295770895468835546471123541980217124836349071765153750875934051957285406607771082217368553832745265707691237731335494077587646657042041640159869791171658897845221258268884980721895390824848563558405062348871414892109411069024840876478428927321033204442212144727345760970181496747459120223484694886534776712169470191857943335508315471149302380135326443021436800337351297238400308950405742562964541609823927059827708741669597202183968255813895861785178803912100887773435333729389169320644019631463857389486437883899801048175668587351800806155135630105332882262703369003957015068835908112483195852956439793263567829596624199439577254429109523874160095031845536103590809048243047696725797998084378860197074963446779070614082037408382905317536857470669381401550981150283266516334967998893848274147121850444827346402217079874548950877223389254995554589889135629328031167979726764320245319997898769924709852215323883440918361235481971447140788916675975063017550771420926122959091041492939527024107670102011524168043696956341293385142770308707200868064127207694828192847012125270501551436807625166280837342793771518048299900852682030468971093910123921431347053346652728408097906428072407057372512189756839947111960894927608324177082415024095194177293075238894156010399844845014837315862082372997823180995846527169643651092568500697557402967182255743141768677082365211009461523784791838498275144684239167158951512778354453267602243960661815972580023618225766687737930530210358212878441978053666350312801713696112735473157886869799816215510523748619211436036098100081772113156449366005745385745089975529381077488826834786378549838792700415533122217930013399763094950953761447536815904040706235502209667214959959492298456090326677020374232610488518125810779451415102982678033691229357504151526949231174783987805247045592857721293462495978400062433314663919665857365503135539553508867396217392412892003285592836158881022682988109494848645860616793424536520880339025564915557650400325438860674026011402769435889351909631430539770964124631675037469634033762406002051960000385414320524821581185245466802640427019441676794588840603330297051037661989045383574938836531110401260983561533156549526543993405056149880715942435862357657800118608804119886104957312612038318227012262795295007571269227647732751407490730911168955361891907598229673432609269031546060683737832747147331257872094648679849617666760130224331463675239944665060750056079056109689320781178841637077657825479352902282364341204970581875922348353290455077673773922971775005295838076994718538835106559250784766205580108210792204469618349501107055829005575399643798354083051710309212810080072236839638765027979344277831450412405777852261227921879172943914880140556936180559208417187581816134938373131787954896991623452462335374889859345537062100587417423980282396772718286795910050926627512551428821277201245166637945919641993219526421638610564118566262748814575706181055903974845991909971954860064194978546418084093751188884494148893504369809388465677730668400033263538640297262720466079924424594892682680163797887565918778917307426705534847754595028855380956395328724531660747010285031059999677244417064079431333064471382976790695772839389082490155422182697691675051708920756860583705696074139178011081511382564865536755318528563840006237545283533871241620875720433793464088363806603545041275357995165622530610388123056277645013399058302372215418540736717652347349793943263423329003583155664954058183071943886741317302042162459934240624065495646386430017574430765351858566126874991494462243209292475966937650419267859899836460755550678072837351462916142612034946686020273918912705864801792728069615032750823714781936584268564342817369338367058932928546697704813333839479676227995262157981945422927627548867871592042306023085671443059313141138154514678779491242571361914403959223602213326207549319796596711382746340668044132656657579879550126545435304395283216247461362610152999155355900182722028099048841880510464676671131804888757231436260394470211576462560709498477665119555875271844750905921304613964438865156861250141401123208361358388618443289932188693943752787133389627007775893164572038511211495236522811596178681664316722261228939138409867335044698370955031156424003735421904984839652011092990761877062739532788720787051159420970995736947781303549792571705391552285839692270243895973115645674573763060634080231167251882114707545681249030247395108475624902031284368790592244998118297069902130143076081333859027351302686077861032803762664513263145163891753207389112683989430105548247313696511431111410295770064800513643430705309563197067917860665165764877766460931459090565414357058610861253917750666238784158881356803880372101644230918398390067686225563462970431659014608687135045530971630317142042322603121628655532145785088447484718345949414267410310940206952020583436944473802796775175237336320480758083450837812005711507412533849048409194216465766448945761347661679542987815478091707787899739804865569834734553495468422507538497271749169415250338282352023020248919651204809018430388218063833987527797606511783517672849560110366536430770238012804324922291864739026278065380369126895048265219401157416307819121091978234954660776321842562443788018590700245333032224072768340946788809728477175505473937754068691191942244011096495365652230468372707412556804914017341071489984081088210868776867116199044028254140827349583446259543634570363649218735451711101378653442338972057457097332287703104584013788733733300126435763038287550200738403087278706049207129804190905240107719192415661294709579121606454223624062862726162018555706495275136747903562410157398776138740427566201833294851888910069230519160580063501070345924234379972189275754335295655918269627568979111632058905492418677799348299792173777121280198930043608808242887620283681231938229235034258152347122137030291149572967312424091596875019253873689545373044886739888380753797688419135095110743211558253763459298134934998918403842174631485926347963224830352772382049520386778610615225407386499679885785495205667573524090153213650707191353572635195575229408392495181886957548002506187029307847031754273262954720473550252800665528837581095866417923288546943352160805115841141322541651222484811284054190452275029749371512146350112635990087111012652800018593416799435607067955132714603062594365952697626698567297506765814082387627746644130700234122191828796420349527049441133044523051175508963084912603248601642241248106635057068534686403632627777689272591567646723385419675556539551006491579956320294749415434359116313032698067007213278178125391839364731395784583724041637102245456217643949678294881221288066062593296359019752133410255527557604447901434747049839831343971200274019852949469059884527353561385718924429620843237270943896223714181462383113479574487207806910597668572052157495883542948869775723209896820834010566567601362841530117299966051064864467360978739596529319331094594897318866571760217214782420698638101762395446935156769378084192875014845385118867562924182451636291497822863835113570281271048843266747189899017769993388805783392184344207071738966543278835809325373461851772627966596047025005756443496724085976905726778896057419977116659824578494089978239330572220289665840121607458878811198985932941409935102777740622858467448050445921172144605813721198668957756150384830776467836734426792123202698689877352513713080657243199472289993678235986409199365177164216307051400356801917637832697623490990210437626351300613745117490858071767773963251606958929778783208664585919474181090663211820069888236820477214449111284916928205089054069006715577293087567795979594732921590301742984499938464056095370923488056557453362339031583278623567148717606128794319443082835921467434475188282600196788416981087639619025573591125026659974416833489152977915889837152507126126260043907936971226924890900422437290708622860076284936126935055432976613694058560633582865030564264422778009110217012777914443668074628812754895358088341976808859933295973313428812817491649879047951988414096637983711198200010815277373089283411503120034520410146768964844867497843753926809776879661943312194310007408921611552070081854016005487911700077407083694795734339944354429466546991366431614797783792579907225790918726776679390979176123220051309739407568473962001792185698643286854128872692652200086029716179972026571973673284199479296018586975813349878661748677190174761534681883668927674394370562464761422311419084386941360997195432270339614016432698697226155605310646262017018136130067464270187796666807758048594725894667560592164936538572404456074023623642257102053256154253806964620571709614379362173994752174856887733689781820107347966364433146021929100955530046170482972082141791754311014248278138473989431223581066962109868721040493016541477766537710651831322816000288858993961437899148470516986846997600416144909514280708669570208342434376655686422030497110564600533330089130332654475507841650830145611671391401397427548152515227154095625239111853971100389248321319044354508427291712490181487293891046389582798901232627236480854742272928517953434919498558877206809885268109168285884158429768737493190407227688844274528296752709642709521237639427658808988064977258606548069817367760494624956786267351780489025294218628643593548549511408736479238086818933179894555788292163990055953679164813336049275273429337771852442451210412821263907247635366590856531258880924279025385684334371828951050055662877161256554070101362495537320959380932813293126168353808768335448676763326403025481213863361368933757749977930297382081360456755790179189309084328720866253632288461707509635355624457906507189701403620643937545694661038188870857086118563666107365005668915907201398744053415194770897037877938641223504498295452310787269525742135308813527895380761722899287943556938115560683278516664977205237276429057469104663370422707805185276903425149042767691615150156153171686270756884460108809542684944606604789478290248745589576086303579382356725096348133217529358374703057525955993507123989379048381911652025528362674672521483446390549175128680910131800268639054330500451804200035930997540937949705193680030454609526510435888601771404912406974234015221763057417378431687368770136884833729159076673848155864980101084422208773714697974170372811269248535591513284095516248723593468039290604183515380703291835661277701088790870413820460218877687216253479406602143354281802818426426967257662482439479533879868783220370604587710561986795075894528317202469898012903101679804854055445702610354737025678465776312005740888437712953824873683069745736999411660130332560121414338562440092407202542071236697303711651103829022116974261540687120910347047935572901224855875031924642463867581217555333194411452051072499428307807432515770321484755311653339285115104822463784162911192585740828837043867375267129822943633347301232521209208591542365534683711712366412198749601834247121091529058543492533858615426210351083745081656584543858888215503115127516628884635508281341852187888679542577778721047090380220595329955547630773576982272816565311213979159193516630173272535478851901066630975372196007537070082841270211098522835591383657993258557977818349229651761125092185881958212150914111662149083393413253163802844411772410114187718807059352723299373286263903968230630559609233696126442696927016049436937307148581206706684984290965282066533821669676115335146575869050180926224510246124918816938399942373255997708796705604234440889189096942065253546121710704645660213927444188288627461150154785316854525630296909482095661682104683552919800704797785456831349104017544220020608791952719909490943169963019954459271175060829609019908670270794231736353232388217672186426284870527732189120385911491082213933249662393365921691633573646619762053051908873355266863854622105123737247184707875728271812481943652997684934647425770963252755268357802726881792796515844600163131938812626495882503942136871625752626433501016485683344546028743482179244301150900872791132402184255526753821538085306905030968042066231994490792427983168020927349353338968840979943323947432662714072840425701031805683765658280440869893505058691104794256269221254354595797864533806538414215049079133769747765587080465263208240406377024063663664879360482323007779426343458254102051942220695540690615808051096597421059145297868261644021016020472790841166128542414184304167359260880765712792768514772965299425430880085801013939046673935507072802047916554858678082961579525697737263000156851692604962224696429821537067248792157316282744001359334118687562913231435556914690338605791921057741423746421319238495718854616221564124156136515568591426853549839580249292183404903368477112062891996168413128836819236232868082784483668392750107730657590349448196661428984377197397412019574622423049486870648053429479686776377545469655597267351159020532673297344047603827696586679056555388784039279027283130390255674036806968353477300581651101364496078715567330815286269624129840412250761630040032089226027228361903226727095776745991498275391876116173056314236937443118371531075118116613808404685966594317153346624583582903169785932077549155340111510530125160610942410483591655440977994635028566880101235495442082218123258291151014727938727385934527786735365192240529509880821383847018792640208958776335153588110739828204735636199091292346524494265352142222158165881507450098822068830382983001905265969962892878430206961796470254436057463960835029802298454727051475858795502515707700757355700076905943465197452247497899332020471197380302021476916411941164572813253247228902737377689251549890534631944105407204790554537102087718968096956805403858965819841011247380701299066144412169403785122022075029914888075705439429651239399946591718253605401036492514141967220007237681627100584522812546777466775423714875823812039375697494444179561472651531290572813110634826998300449152424799202814461828051878901802879577372653174849628494352501822603091897728506584186987498857677631808705971326710878540729432356192607736356189998598617367982408789989600391497258393736711668423277129197010941620032651797193827008467054626405483890847088815662798053283404819352250166877651635802544482365371286201884436193883745536627664132449553156523469578487300823863040906988502781133765958012276436731866682533948680535175462255143218767316533602093431755719833614653388431299468774607372116011644903623239159313558245244009260679688627214121372466864240654903238264764140161325387274685364400760294472054719188903288551868870078809023426015674016409284984817498543707290170980264822774651207977534291276106628417717633576536753232318110171505629813030126482838514173794215712074512098178689833254350375105541081787719694081450320819387482268241612828715464104977770438260216013715591458721124823083180689179018306782498785937669053048827112568555313745497462635632534503375709278557760477824606396856810623413451246438836918232151877608120285216481160138916107630639453201600734434808074596869593106622090325531309634698219996379035402700379640901676464164382599498635189146802060708831504766250198024999249047110051802104071562917700158521283987767197773543503225593370683489291177858387151011652252503741067321774722772612986011493320567857929979791507113634886905952919154763180334232216004511492326068480989622791409783037529967886167679293490805754455111790637241351681748375859662299909139355365361273902200690960029453834316819478768900103418833420441235203909444071210484930131438767113174541939933004959136747531526463413877305855699057164611283376780043693225964402308124848104102950846260290778138544198823060642676622854987668251302885119379470979712703060824744743734624788562804602133967049467081205606296474881054580011248257234802826731313510287985862985454206196002420196016472141034725536825758945559440136512071663915577820395968623971472535774935061756078613301072310141655284598885160782162174978806276179270467319818935437700724782437281954625676241805211306418296015756635139160037891014953914324893391206115742020422243012526849446008843959951579966060776030939675865375617012026286216334053921487402529467745707163696443573599323776388786596657561893444017748359491764861048941460607992331077653927615200545316082999526381641831371615250918467650748023716598026189503439631856871009106021003363953253483939856686288714582216961441243724615149328367982607373423298434994939433829949609071597367822005778838337647335379360011157360952673410516948620568595496246484140496831790797971415553618762660745227221527524255292600718320196774123354817655565276830268572781648105728134853822932681382925533693638832645537273019279992920305720340014382470445842213067485642650690114597978368400331097779124383459610802706659271742345304224925927909578119121725207742896226653441157852441566094346751968048538268676929716826286950199172298877789571611243918327507013382505077042898045903142281168581096357427224827019896931984798203629322957055151697169131889276933752556722409328996155751012396356218800486032924857272261750060842643452597433520849560486068807019633108733508687875938221944759651174455379412479085729033412633817747693162970057268224241778596799667290805650130127845203183459655611670303291965397410645159186885609386595208894204373535853063869030558913132963637440893651307615110639903470911500457965122526226619793752205324856707672829974130232032446854990017866602238090875630639288691016882629603168538791457261530352828980218926267648851691163196665447065495926823884368516534977431271216576895280076429752559767452068297713907080680594485379124844846901456290046488301667377617522404311335228004767060310305264446950825501822036824702341883589316023334627126713997614440572466419379595069896229306742997209576567714475984181161805860193464050577789099168386396081286241158221167744178695090124969034091779215263823469426832267524423923546802034240488120994640138295423790449250209780798371337247730499029252749410813301679621112234245687102734099559552599964965599690735736086370913836001307022715321356146323377724677842133412541179737473968021920754420437539964605498427792982964882101209138648600140196479239536482926226350916796982860348855194066974980353286078552222648969875609531073155683907481082612574485745901880059527977836845523432115768378055792573053546193357240098641789860646734659853604496793373566874242056474868734733645042009201675948896677570161118598539174713803244143130177093334356858782034684845798643207899008463053059345827590713517178483892649437875213438748639668452280604669764196387498517869242742854347677978392244178824736379070267385490909470532228897275901995483860493652153212489033049271620304348474441040525757129705717526109748166922981769423771011985642788051155359240703654336689163515615333125459031623162664438069369778282914928608331881801530674835466086910986594444863808337557812341572297585039611447231615378786952231054114489027271796811050922758630341518949990292797931264533039160989848867049921686932745324028702829566820461108564743875169547662949124401611923286410045669576437985840535369704927331770329782921381382590414307864865342224619403140953827798626305544790700800761779721156611518596488490494119337208178906524161258351166185484985470217369012041049892582091960793361019870290803295923497923401964140926318410860400590223776854458618101749215053743465935184366678704024311406430961144799123380785108245996517778427389120208013163884391634764391517548793269379423089895057604690205186819370354988906502325725737970959047475011677438811563232134771205924196221311554665785129606329410831720923222627725555368267337259146616337369496768894753932223417587715343239256654556557883004555013114647613946822928085843390999355510985108303464457002475809173401837726913587395931254564614397997504361163637383510796606423627534358236222447017108246807649541025226963510921153981011428435727452389191796867676546165503635783673813502636193995338230917704636522468008521371553587788113998338382893352358740259301793034696549976358030575840453493127342228399712421029399913337057979065762066802142090880736670581088078259194908886442620326926790927997868509547538489427173697216515872338361016765489749277298938176711098756755287672259171826377562135122100844776733815410300491436499035474862954883938493246270668201013588647439748251779005818231728421715499323526031950987836089614400356599171896819265522974506288691605859422780769581029399183353772655019280978143862973633778595966662072206859094274026514249925124064818006434317013318038439234983071243766529704822883390040193126739060843277818430031762240919992963582910417057300087091572151869793710432513035821211348997594588082459267190588820767151454428970433813599942319741406816935234704894868655960586732145616797905973707932421903756636953026542863237200979199048349412921664189328026478654772035372998912254156885459663520860104746834109070816478322571940334955286274166806273198186911455127583437471509963253141573979762122384999191302391983536157489873853943414619717685892043479692923919961283994311741859237148631782537270882123024436132911164565293578286341362444524557881308630552722697699542930846899195287128482044873674631344450958223660137417515230379328488605582996744796112363272906533182445104861891078682045851300797248565265307610553743808334820196095066235527735902678817228158331930334433381961617412317671047334372546229033740870619242589238310336941175643118752574365725192299348328647685345552874712559964049741444104955886297783607720329624575683628485588121770063888185729494406089708394053516057187774691475772204071941703027860751589192150245635674660303020114737953963881024513124077876279182136911942382485266402177114482142429684306466692825804644294244734724716920152855550455653082388652400998479813491408194256308939742585213665535886370266020364846914127182489487750177000925485423428125443474155884205874969633612608875952583100938336614766995767931544374490201036242018478433012343401360539080687810951943250417545046238878123047680437074618507968634581105015539057347271044908892318004827365342498939424778685572918015708399725530546904623379716256958995000670976206055307898274337170535997960077759414619536036685957295000047709450043990873054407210192734155117039109621645066194213535967604490619709757152386457658586454198120689638710728710526910752027844048118277697884752991256570215319909196147270011727804055373443460293278771619946044891354322153742123925728869682634221583723930813114759627408194784858227666410227143409310774859356655796457426140044372586009574636551095618068865778167796907901404426406145034617892992487670682518054326726397854718278930518403612175902642863545591740336817469035841155189797386570297753382712475071316549097031127270768101294003860940522848498738324822448829548706949692582593838514413469460292787647946144769539735374931253780748681253318373493460505267549712958225173191471006902913522902977952409100548211162522622859092120271812591146593321851945733543523779871893255712563366191011816106135897553545629632571262448076665255541527422022045811847127122538170837775106340394378325849558523672792351882681710962828806559693005154468831197872697152088250412804722144123492981402729771989311132451970959740842842919407506472197851221296486478524500942974896316592701280942618921364903922123958777730912980021340491788851146977146338070151405067909222620545135540367681049628018707663481950931267862793416622478515402620541841185769736538425523468709755279386814676123388086063565448366032946440218435935094466533227110536419767777488661204928998747699526034791074257608381648931032335960102944155188514941204776144628775594625315558181970089010967580103158154750542736898174129180023740130855392168647228737860601959789958581532500337037650993787789561558222997946136237380255152933010038617144578009371457187510000459798190901066179922352908429531264558463565382423065036784618453140612292454543854908809471550219836481356038599020368028045842176840677671153535976739382652570392669389746250326840396156304288327116718135226316242435794584656272457812199268228493137136003050524620923145294481641695039260769571622472491891486473152853837394504114305243567766440518444309273470175019493006631016636665399435698266067998316293026550102986790755551357724719274574850436858597368593638392624477983034052260647644893865398432697122105629479357913797208303534481764749979920994156128356450858592144616993581987945888925679220515158540773708854890780692086557569263025685812667996352629827064772358069485509440041719783858654937852212085574834688843337551540976799850940995960949174040654830902212012337197399175894379415105052870167910357408074626962830530468953244476223817451860307062848694585718318408678645873667601878466204566102331310623785245681865205671705906102537010378718669640297783713334225625264431079830801589174858062299396387690551956003083189248952524878161055551438609477643178718882850240397955604058315135399442157861898637611282566645477221281101280293833890102293485496427938401930118029287187258375245801394514497805817900511548175036494037736649121796858092637436948121030455162398730374630095444126665539653777081595650601166105727416399136476764279172986243722652271994739882167588538706747946990076379158806558875753713981111438363544453008873092910835663395655788536808813302648093537725005105105325673301885130317025120935919451903876119016951316105758574370023431614643640207575526179181819999124275283296406903379456254716035677013833783152302769510001617623979701136106329784347599562494643801893292308118771483269524900518727510628120627352464394323401502557037573841757807525138450793653105746555102205206450992868321447189396573871000995266158776964125471159057868078493520343408226857392307536789982351932551668609504238270410132438087831254636995154017482045630913579119636529079440134805681762622946560272242565629854969004535973298708891452517380804638614697172253096690426391724001280711908714197690197196417355877698196994632379734497316987300762612483466967447300852148665314581320081375717391092862820406989736139360288436885314673434936220465049333239725288133323335095292438153104769183720220169637375409167240941032853219870275497468233040316171728269758224307566989220070289192644254199597748021289825352016458315320705997405203042690830195475946687162471664568058591505184162595191462134201165497405437925346712420274080383387169494793766872925954034284320710066715567230913626223986040718782262775340606737161253680846820646830049860053716375481671749814072731532781550247820269841538347088284142444459866442540773650167353438313692409873426435342374988647161915867156347445198604037432612746302336296628408481901501983234531174362280747726682456322875720385219466645918998239288554998755896884041983054924154103026130237006282585477211992420398857367305865024992248473885690158349145667210269831626654839329009629030879392429868685455848550360865769452396891545992247999929061666691841927271277832696246094441157755658384493021013508386861719642060138483664733114190422796267295401394682826422712559423945717441832104285084634576507123543361099682746282516198754153490948491465986506156734323489448116030972258360966237037279812614166629521874158463445706245027315689482461138143075166512289142350582534080624996881899203478758672511111918295838574703965179846009571197729836128470837605385543752645334672442637698528988529114837270075593478179177131069819998796572906270963057360206139197995920465263171217306337240719256013064802459754967360235029299362901855331345440725449119135247745619866591809668614229300472027229459579010134044718575840446766914358325270264205833068509426317961953521958686184099953745030610200508816463119860341089771929470958132567914702556514959647044275373856025914158317330324729741290169695946767863489092822052645773603824076536362377312221079545804267244519298530993202551291560624387621165826308817161171507110794064862537975544622742801918703468893867768146138426425113324756844632528755271403129219228981649409874485052828397154348916949005160516122913068694211672449703982352174228925208069542030006962488503955168554169136834846360735337658103998796966655563067585428722778714650642525516961389759722074510197941561676130544437494700751983429228059322407884448153630127653890277568432343546350148127547034386649381931263637120901405391603163744156409316849863316006292800176296370906508713737034119881729319936879163294024994135495603482301827890409760886263963281013076507020211508473706969577884696927409446230867096478925356748480931834572722244966185357918549661595060956456752537231201991400448343705417610752601484951100871175383047515313315407242824389340455897272591563700564171739665536705626337767897659899095269028705600353737883719399850556420017388550461761951829033919485140029047823552631588135492985049698376246100818344444289859036413701054601506045189746972976873098067716174148505937553182523317196214658406950841815625115247229046019935305167499284066604679938352024724926300337813031557195533101972368124074119835470916506215566972494432575658315510570257138101336877493327676681766053405257364627947968267113313101912923544905328749136775536700600196672013454684362758403460528237961361942096457576255327077403228640135009421771346951593883156343833397481448767119158141550985167321727024371229556446183707017448067677657172999245050779135947945540641698953594437421011391589360844597605745768895517823586205944522487841155098324629846577282666412173890513503945490637135346032229894433217227946036736070666385205899334679644639386688119044576872412872691301355746185180098484345885306211391398176575774500287474945593955953096239689187776996183795218543879056462508697193040015677321872215351498570511002528210873109066978359203654607896583792796438197644333538709400591587549832894676676358047915271518021857602821341037189464335210007968644254764221636423492483772510350917650693066453827370429030777998218353102520408730663310209368240504861332502616701042263185878186005506087063635302186814019920895591520882940690400130047411936581106986914818258000921051490801063708114286638261608010271960505550010338838486860610376333157297624863972769173248974129481181913061788231167983849156209672507517784454432937112234957471906380395264478275207143166193411347031330271804327644196777293225162229944927805898069943091743446573432373742311143760603522612503751254654219117169582013831093320710469526386115153925412273241832479140140630061384538314373721695491657084385152908640003058301893266722852848360853702911780954431580782653918322560405676338143184697347994611246141490517893776573653628465135650519848941687762435536982317411348420074844980737362225701242242936359417060187064062818413945982694582995343893243902131273002687907977258870014823577237499033057817881785612827880284400411962977223916495344141467403561735760906975650853355598013786311850216797251388681889467317767161586948564042039854759884874356512275941762178420696070454583673906556587271256789390060083156659084991628804734444779826406491425315535481835721466102654016937339389330402906601433147802195939109682951923927081854113058634777545348936011371871111511130546243179342893374370385915528480769128447777456960481260159365014795533629063264557901763929391560052676646284267460062333332403283014319254262338323740010627412588247359505043441721719034407832015104588572173396752025490331598967462195133447111881503788526782153150297872243917313911441140959012167980375121224705924186829222598661108625640708149793203102257134438148014051149008082608146945532993176863020555207967657935967202268192077937733304554639216737260986289408737621003764177307056008489323589630804249751776992216620892524239612644740771708138731571867537417727507756111663145261243075224059890797589256763185631924368192857836005997913661808575165397078279595246190694230623114073058315318573928106578699700107450454293430320662777869132830364681629621102873418759379069663264403093708930334752259865086136623853632087534527175154333522789064044793072783118673179913702807392025499903280314108078185434814227089416259312533284062670876208635521308337035902803494143483939513068083051825103079147867759218407724355577941042441425952033230150686017729173298239476946732482515576810099355426321809487999608660739852830399385507901747405481932908770077723923154543103341812197142259982802574926893094539924532124044998726700696304534112797138611245353726165084095643496062483501262671701137894749641770917442240563558011449332560709093276885774472653408598150733251261753948836372533117534983848996293092884361498192266821807438207442357188858805374528616676482072948988347934714031351378431520762852983201270933191482608435358231342354005478625287150094997554312542010820294861363329438875780326441021013207697789762926936842955677613617406573023141178535620244764214351071941190370257751818828556213337415662273873435104383357736074551729715398249747199245303929701673098770794928049699413603258351453701094535935354451303175461186494404234392947078650052746037614637334396399249446467371443997405798592297497509988062458789307854261113122503063387559776575135905430799381814545949017857742862359026854130377958174709985866834739055439034843916989574615354052186748592180215791192442438452962879973868940644414958445064105492013161345694644226502573033214792218631750917125609629094924577050662496455717567120451060910919713781331951100041795873110949976175256290512319302368468858969847575748401167702191020035647395942043579770204600090735379455575603814114712503963663506281736647494769833551966217012757932679785728998438605964246619397742136924209435662982121449169746119279894977408221038780139053776006681280408950029975774977336036446661645981784480181316135990279229440651599255743249314388535160274019528378070149765045020083379702875735416591620340263413158033552494101585327745904620120166608100013991786432131042204270334469809045710891898747597305644857681186855055892418783778299759597041780770167633142846770235615218996376671427124020086889234454020139313671197611218803689466251492738794511621529615731809511928403274623168658376274502498261294539443707975568373693695355111210437639521088835752461999424888791505068878311296382315369806202068530243126730370561796801541165236024851363119828521703443121242076568625086508181663192802347942820914890032200498050494375324462282177899788415605416990230339864167656429676807422761389230004092039199006868171350806274318234719900384478158193398073218290170366058345652761178540542339398012155851967006641871621665857297867772409541651425272984943004989269231476095612210611910111746611152066261479803454458172995501943134904532202641100651754002275072241244460801539850524932789502461674972233686246052548477574323322151644438194077590568784370143668386400113754378015965657137916252442987653016015859473153356849998935637146496216313030108493163127909195495815028547227405380710147741030324149010130779384780720035365039588144689852706367482062088423678931681779961642708657677132592063897003215824763514970185132360269447896639842857352277411090364246913694018210656066906655563706717341637564751585103190837693657783521986981246777020330594347087462543927740469127169741650142548477966660178030597789635116078625830050007893259865259265434966497769608728012052888634937559051621961713841383681654683421215509706582045529435203794213365186189541214940443373716323192285126335737484141791899338896776808639766216080090277669090649986674246715434693844168139393472385550761344069946744953435268189104040374860311823282389200695704952277437333051670420211067350332490888136591375609406349660820995649296602067824088627097391283615507934527271442290181406391846472234669366231317181465036438686366193437920271346182163912263316558648590844319269596781212901998720259768397923722581012515391610923542829962747788897682064066977016660839573645789756585736300156714546864600622484242766900031722414062701935140465933697768774510634209535890148159774401464731466326878827212014826499569517792234398413681661438186952565636645561425401560361779340627809105333259257251677604342133495387754498455501914109965212725633333516844547644025959526609419302955372326394676919982593571361322470513165971053756389554752792032238579662232541476508339644034059396096160701343945949318204265110294294806193158823083261624274570260720067592417221702781048964472626461313985357385916689648881908097951064272447044795174586247806429228242203404345153372677650182655508108196982671696727255988650030310154177454473637973031851917483610298319258368047767509242503895091972260217509149109280159545180434021817742235738595390897407058756483323468624011559022878372640020549272124383361624416281516172904787144432690115168680504279228412913215723268019068543205312763347654905946883942900439797748215318526948802893776210545465995174618428585322828055585084629800288980832944492617225887855424621154432725537206312545687881404314007343667382614825177983957058806812700549519821138333955173530422801476022062982078877928308622183363258009915375185735825822504821947109116148869828546553992524806625685779278979305252083792703649331939909462250018225999617989989726396251373600817908881061736601960226529378561994075078723537549950661971673043422598220253907806160554843457628201873947724867162184070141103022207567598133136960604631765406292745938546257873161196543437433102118451009904908840256551734847345733152018455453133391515550373970139231506177393050226986671986080118367295570219350808884273595384017060008922762273593381432723083981957710755418300799968137206010136319650516790597880048434335939410238937963074525866614792439360396108697670044365608680154497258603585836198945007013448320024810731753539904697585652684499147754211045307361420704221532968970240765065705144197202802949838199354002268007898981138501397514789688946481214337526709458158254765538319799934543581031605934425273005443798921399952804353216873596453864475795801538666729741356850108551131288349213593429299599391172956738793940446966971274514845435485908245114910796582265547116645237081015137026377078508072721865154944387451041846631334995827589548425358077798577350239113546232114675764448561177719204289776434405564431293002490624099250937944080941732144835081390678417319206467119960425457536063841922183979689201351395745289222748782069747699197494918075591548921767354236106475019123124649850787276348523986561778245459818937577576390743813177862083826229101536518174037896687075254141124602849357791266563429118653051043677872356905462878760375893567382924917846638130886992030640721103011955641493848913788426942191582383699856885747616179789339678386795908012048554872212977172212712203823927284196161650901267040526315071466311618712279328841439744627287776645609081168583816145678931315814209337020247823895135958783200134428655147722742586449787959858574139728994931426788516040993887807546479621342737387102745369843106704450368200460599399941398209528894890445056736315543967437435425268623685525681057097855342004345408175993682529877958001037942084641290045769995548219454807317753732010763603965089244553878259250465935899014060656492793738963981489703570739888683354691964170199070637315576743338990979669236193816899336924190958024776811623095362210544474556503217474679819375945670046884390093625994424686673934013308155207449589957701109787215014116142212934235228293515654172113920230988850811496811016899960690217637538678412914014210806215906822417315820960641417494907227199115824698964198897076558980066833516747856734535196500998241569574795721282222479018157322961505462413458053429568583371246474877190430788327472619903395339048412829615846335618859822758434111064659265663600414411409649535469000936240115251093945934568041712439172102530136508314180821884077635746099158355061334680392526996836934881061198072066075928133306370632524079639585272462194393436704863072702158613945647202679672702055554479648978951532187485256597165387714495924860172682290695176832453547878020917955027559876348156074588459540954086421447831004176991438053893212776506362898472510150668496712442190370760250437914970879764189911422720422907742493758684943987526658897586931150605134999274732033245715234551992577660405523932737882460571039292826109719324008446042858622725859460939187937282268965473333919939557378030136031405767908600417251915892839461831381509965324770925567787544064024926164698255235985693627850902359074008699040050744777683420670661997613396781754617409563151480613637454128307830878997453127285641338998157253446461161882620208371000008023758950877714700862494858949930421428708619162902461782711222908784965270978742806809504863595879278818237039670185108573733175973535781531950119711249231853122439906600433397007789116917139920086219475796733663643889336712811665726738810120137159966322097612358769588027153363806038812743978021166571287563432103173320939464520691001450230898233163312586962733406205323824275646829223460289062799936505317771440557523576106655004359648829634320603569981387919082109416997896665945142600270602314629543554099429566018919713611989403219942976784673507898324817583317135572416305186141660649521566816323355590805558347330354353787679603747223112690034854320558159563239858636652180642524112522246271618724172279628273591928306162518471755233646650525550967594428972711856018165100071304203367231127687379040999000656313809921442328862956502901046010755610446681381131639366363136782083130540690197883809386457531773469632490936037224387463936678649037406861710784912925724101672554607555974126191192254565221413280830113873856222538076782793665091640044796237380870427054792242491647694880197999577074126012256315496055491407421550564894055941839068253184337016378709646011456946374187109641406147672417618438218124040439735084028303480888581038978837877593813711397956901779035954046321117941228809182977157596462706722166069735745400166328750381886160092590829681662275384560459841702062096369059455831493732594280161829468827624206768565723537571228387483711203810750373898592105186561502716886011022970521549057282671027706212615973177550745368257379163259257699411344167767563811545394008676320696119999038034925070875228010983538448212004987384962058205560445859556305863266104053963535283389992058887145011933425857637935576886265838919640040877271485804326218357994117107301039044511271672342296122534117904972611294110887429042360090353713372015598001606604289943608628887689777326126354148037531628346262677314513917655611592922245158771749407019018955754450861691428734088478217767894287053699088286228659019009662297158886850676621429316864552105160299488370083302302035632452164209251006177218651575311918793243114604137320500659462303727288029958582374892931765323388047328279969167160019397835501010462026525147083992154852347119751140207535242994947836874153946851618785217654851023616383247536781022647798367492567212493605206361613396660359873502100049203100416243192290149764957754552399577160962704352763000562177783529403907251101307786274889193312342723684755335953044158403505679370212091663297310983824959406544541756786711176351379806198453741535336459272684482264534560696151557051378212102057284442330872374334477186035864032168665833545090751026586921959798469097563670897217385869344949187335490072532093043114444946336602543052896429698124490900951392947188493500570286325739307992206837684374456754044780295795930278733252195020344192952172668184883670499459487825523928993457100896244257136116831188216495893705355393317379387920441164266516790648424064946524221328582745133666284253751421195410037071766922090576537179774648809979815016521116478142136418338939630507695746252477391686791848090072247401819070574586188176623836761860219582133636087059035982772088735215687941584433033775813857184282982845125100534504589112584400918197847087724819472902875538790008559012684342925458646862477707936764592742819484953565669524482038371580683487741303830982835103514106448551207128594365687212777861051475928070663902417194724843875211755643619741927713624528196326634816631426562333246900744054016937520993338247973780232435576797772765931553012129798758824809478550656031506355900476980878923465254536449310999253597102292033764218399581649444492176018084949423851018335099141448464406634691585370671046179102099861645682355006178199341982119735927102568470744789778985894652621861185509128856380156627173818485031334391080324323126381422771428645037021171850969479862991755188056532195475349869251209418303159900891966884507638932901767328286397485042133966934405150857707172038231298732063404050279993642993103441065870172393266231325176513886850913677137396012311530489836524719854915632106673028410705164200598952987289615761293266331143823727538832755891062275124875030437165468406064942220074647470927429568372343408021199074192652644318802817743196529395157074396812310020444825337606990599761032159400909154736123754705451005744122315167185839864415384182114732467333418861836413622829591713796357891979911558620763484713593943014811175963417574881677310286012619990775722089343398739268389970852282700667708138720165272897156850188851529105871188663370653017512590977262196680009464292514029057123305852434611034331588913027474952068505852555657035852966149399836134491378119013722208188321519039311306612272950015988212168828014930963921771934425506430534461820601660155902648930879749799172068493788767741263318167015885751241953628850828109090126776839762941442767908608863890730493089871509940628614031396154845950900041572988319247124265160045113601483725815744522671674557478893666017651208817011676461219257784963073635942183789011603699124099505398892891862775685441929161303513434152120317688360932949095125548572353651273564033845358305647482625496153288782962056930539150762911917236729776147551678016082603998670885690550818302008693525645873925964532952226923660680589631196424919631083397733345510086683565774587970076696678039295809242819032100206038161512602218270026598578370926874619659547397298297897048124959614786649977791347265746714646461000333059987639442784100740769986163040568289305272372138002373722744030764388089704417060904770332511632802216196194206279625327112813966090652816188847011431684507947649235515412245789729629703955758556475904494302930986933174055662665224843520987510795089799000436032975614974242076833511705808745264178762223190523973484747174811171459902357608486917673699728021761787932458370580891647309730447919665126874581759497009487742381092879606266473035512325590180973041037408696145141104060061877003291272038787191100851780451700746608194032214160647564418713687544979937126491924072808123548734229919708642183163875597369296797854239788969259802234439534454822157443159073637467699281676126295995041022780394650605038316285034823541690918427772197538228856141404663498275023466808348623922182770423822461206109552084314254281645959609401395123719120526836437882941785532429182953357062257539754541857615375708037578945246089105256075653551477640422655803354633823875930391987514816416081797902110433920965113737192664824698371498866991515301376766973761764052124534027878424144232640337965127358583197882141266676294691721529053818539852953862685177223500246390704592616763891032858392646305856316051290449781283941355295212626301466330253450246660521747937583551013414409603747660151897153470205566556516317242782388339411228673378915464992474311676071797373601405765969206098138402780876789658531354491754595768336312880239683454939302345796995747973050596694917063677586947497564444510171002101903536592247100451768002858347698671325415654226303547283114660743374781428788605680529841945080825412200575754560806958567886422932821312003393391133289152118347204151082275161604508638187042350295429994804042666891991372128982367103251292493082456991882545267564126839884443832856471124672441335741143906728969520729387482323643589147570972263871603278498059659442191967723449585342835866909014287182267616827011103727363864520930360630982736826100236217862630469037927795703912268061433138961698457625026817360508693109260292849639308869381385540414354176557638182119719543236439210815046893207504400682494803203097959549531124990251681738252602361706949619008701414275614253910759728994884838904315740533930283924625366215550187386841611121837882425942561569351851641627158319809198472755108438007991539920129590750744162629082553894158644014473830951934333972952028890163827303911267958462124117636078750853978566230788968775823257429518838700648948849900686197710266563125748431168373901498020249520383171645258387913268791717505381810704444014897256394026547113700671117505157641056036053296230155472490090948053385196488173726211772320630079550530924266879623191622383029371337437385717383803321058316132463289861098925011664532064148543639303944909295315732773792890911678819951015629767100711258995251053785504190564818335636671491602416319040657688547030580830715827985777867185857671619327784827037475371178661468007126452420086561229942782126163215748703142276284091798342362866895558876809836475140710278509867679346603940284103928731139452927622728008043139945104225463811602666401226492976554130676873788988485393354240189702140614136023426170136934459413469241481791986508540864700798882197185500649283530191877446037290528360119718947121251142434576180464560637065627429861459798276330934211544544605591984427261542827599454593137142598437834482460711838094357031718121870515559931007434726652242492999880240304171144015919583541764816754229710399478829055519479053010757554586556158121621003463005692573989887956229074121397107220841076977916238034289583583670614266864459415826365205279332198635648452363478351579312967998513431065177389176011134325315925748830849758596269923726074778662356139171582040205049247664196564295451349271637683121821217099076516746124218103240055518063798833130542122722894051648843865302729953193489672194785662586016076400205518673391838748485516138567091087669092369399489046932259057313955668093420618286614840332607671952735963151247287562437513747926890847564719568116249198069629850042976965939407316832757080630633240535884521936430035910523577872694272455248523814524893434543693172513872084907851095672076902065212178652016711011813853874949124205783413240697445277990492225691062667597706812859591893834914480423028670470515700903293943131524873309422807730560011301329805286150202331416664434333622192966453843822980337552326743453451092922563572157138404092533075377123268039227046121695889855739972865160648699170337235296496918381922929276092518715261135547074955429860713346198271472575765268413099336335466923250503742593714374374106548938010658294559068723356771425936241633972683152215871454586734236331137420143831596797023515757305374037188639626513453988692394966199429240189897305055593627180276701839644044120093083090156477400912716236375992206978005476661866659592521560393023280719580124726246838873782614271795891934707939927827833467937735244713595035093347303335689980972838593139456744399248637267291208492411478827513227471829976497781538680258006633508844217190240202894547986253706675012142317944827123872457505758271367253727833658024559167778928033234156788155476418802340162718948096927336497135220912916574263874938849232681709743420784244878020557921286677215576592808027422276767106631863129836739158027848441654374595711977088421849850783083152021048795747817011023743862831623997831854442421578323880265658979971656351864307767872692052069759991225918911031376086072027671520657083345429344549900366130346905928350255084870391189272663888310459251945041186547260567710269389445754347971258916592791377995077964056043764285007154283459104430384881524174596544029907119908016524501521187485432895624924732112373675719616151623976461262214126463175096454480815188402243686601267136303020313082264839552756805969038751544715281119711363444271794022752092026467327088199731915685283468311698466895306594809567688890874871887198075016759519879449764416403262734105670022533473187122382914745121752569918203500344880127518335961495761978171571939928677217854706815131763874589130910581108785771272771698481438871011872352581701201691725044521969252471512682945560787650968948404604332478838971708447689165131232795358796310845384443849575106007020046404611835105275085710592547070967881529325550769233395292408656326016248730985281623860097922062229502159545920662467061476182638829412277122467190068594698939263512546962922757553828292850860755319623718397370069768100295130879238181606789366861402274691612398671479212798472329640433686859587742766861209358594544802990343547152586063877902220775814947614060662630365006314513170250131503442632549289665328460312256091706266157762637841814491795289676929220099712938324899450059453037539619119141992947661136961009248628036667717450712495045459645935559264542358423010769585096511359161636854679071128738869657019046727272428405649380344154066145305399434948013272184632593462588394938758829017856092305456290074981464681002915772369135170729084024216606488889504598195913761612096984062554095500908939214888197708210592104029054734647865201988920907467662398709440408890715140393699489885388695845086128537813898690916036105992999353332332068789404464513832462577298131971372792790791241628607214994364872835883477100666676553238953402438941962031389536591680783232753365653778869666971533526569926845350950264490531144243127883793490082511151198545946110077196084513343057929702954428101876552210782710464291925640043057102947514056505616995075784922571711227396389686317568382979694994452426201921098507159707891318599038712440441204009951176791226238806819718262549907124477480132097439665809511950034425867028865880130210754144621805445344839828629821966127632589339986608686824245441622924216629328489072417091407088198753151928389879028253432704777608310586646914844259481071816473978608310667859801672220688837820637485916614513259357183118450099989087434253470728363824614080369560690181856577746214707668488095583559838558697874719254049592220792260495334079428277668954560756664644900441784719505498524081040888868904405769080128112368061629251434824733479631217772328173064789676648208488936197018520914046127363837152715766961450316219390016580273608964038951456966316060234876281471760436437090623195496496877470288687323148116739255654602168883247799770700777226809050251160250765750823786514049315627536983182601398136190280608746229488231954015615762581808124850999813905925337880513018629604689794166378869236501695782348121259128871771572946579518887776102221947719461976608860544073760633905289969603896680096860559502951654911629706734187901402723115157937377653816749657588828015931594412819036068411771689756852718644534334360797155107405822379368505179306191548964333404517041411192236728874675829992806081734196420834667646757337862937300843544224783264251662464687690309402402523548820753521329503526492029496173870508431266199876125431453577648763665161019602641801396947121391143736600688094637040636737155951303836086981886896738941873434659771349330651844708532663196609812612034133542168637192255314397942706091708013234314311340640796256455094402013214137917353371708849326789874202098481544696498308316188433254003611036128924883549573327112795435566351275711171210670751977373577300543624868810229875161424105236322335090039944417167499657484701241446169661532270046022307736557361662602576630284271508858779316835907839922101013059238054544096984920887198435064088677822280464068020381791130761855143989732804849602638005972065625245620698853354859779029069562890570639772601614399803037447083057969444208579044353356982032577582399539367880739047607111141633730059410434071880659965413132264876764235207216203343796890626368811264487251218889881654535482304564365292900423388725964379632169230232467244641126377744364974823890793493277515821204388950598932208651074811468480838961547563180568469239097296572538986445333373872643903793096495064508866365178304297949794764806790987193786608893752880237790505298435317263277087188565951880941929333031091766145759863650903479699977003085964921828183079527544935705310809627929358246473716614092763943544154425011197609254245769828064129614366427749204056643131055282561452632108137295261762974620246692391520296573407379456834479171034163102330982033763317349083710900375681192277483715993496047443546224239018352074702377996512422045547506263631214214050355463626225783975472996841607885615523532882252693754433596596691135284647105266827454630465386140121283630491983774163630409300901545506710067082891981493910258709566523316669416374265113023902557415237085906740607769806578011799486214562511114367057091875109957946323500835137663195194056694400324826729026096483287910512985979757373159164410335814156919298077014791212552405149618522528363611005597173575816863871231145960184845042679012950300166246479022748305222823982569939392695618224765440495572709032090584927678766810799164071776889409082723799724795407303758632526823050968095187284453577680801848860632098110629703529445814619642007544718906409589812689472679403901392285263508605319374876479148620838719621633757044343435503214601436699689813574583120432400945499872681890822381362880291967277244038134684088095291075340376068349623570582596495136763973289005381700229086039083347082011153461794645030932339754686762644011914192925869245826346565153406286058543809944378481404805242097066910720697922752405109393177973859692468165156719155991005031923845391051704427820807862906506742547690852001079757817977914731328516382212258797865239277223490825504351224263082172285828057189911820088006093382417731684221807008851543434660345040336604472360760082765190158489196566828180927023876742910576706596542099741632800618909594277618792213433015820079509035522143768404015197764305280157642347884170091458128818759715815823671622094092636926751138043154394077047066841700990280169941717031889509785092527541919495746774769430695486984930782126253774873149099497437282126549473341544133263712770375022491682736581224056135760903754782535493036023615794970917719587898154299404476631978998109832919240540559402054425931027495539679917411015759914311133638375479615333307157580249383026481816216229861095578826441072168795363645973936944877687420724041228323711319288485951266201800058939073785989166129886553584184716253704891747960329838575119097806054751275418874138004851927814547092399583160675707892026257012825695833109887329796524850513283478787859778651057533362943447560292887280498698745526299937254963107381448329679738114090072981760165482704337794890508067304743791722874130055086241126767738920062983702303918432716799248249448718890020753985367301219334761768604647591551108964566001855739724110423566443766077243505655840740111512012887172019262873084774684714251998357534367536487792458344628312514868852400316333305228296696977420379041136683878211405176388646984038314404294058231718917666684173973518012277755914244250074558614139224525106769109659676436436368046715555159186024612382881293640405429932261268493725323410218727297067330560364219221783827740466180686509820446362562237479650507301048519971049629439172681986687996645482130932077497641152516631407294916786421943705045963624536760810023032411809015258922548625953174519732881309403278721467787180724419671372327179712558867915873253425107624674850084032575310066238408929310291203435007961959799525699745908508392613604381346376397690673282095614105869081606144865360410113464700839275693499449032099610382518323191684288592298133820691795580299972717499092825344115785465691327480641560272291793732564059956682489302632082752901646309482561429186875971228750495331091754993243599804338285527875250719007387086394968078605249785408478481354240271808576679672735753168366334106731900167015652618508310690696370720449568301825338638206056667801812411772399589577970446525491233317347836298608571072683205741032147753439312055087840737914792947216974120593375805365923391103548323377042623200609951142187876511626873800627629896484777425834520190376458968642529585270603032659081994872198506157821260361769136640525820909411306212040501551409678516916691533312452092484303104348517456739500468815662835912382381104159585100633661704026177025658260713024748997662102099574548775974128951513972478694766430895490239103268322070138134131905622529720686721585895429112103268176816047245833868109026523261032848117112642514239337953502070238991349471432438545799600103906572580340823360820796852647467220901005843514672588271083939010820714599468446579212532368662860567532586302695514361094444028610808561121772910765161927889843090530299841382006676780159006030057267842751509794095708950449167629017556934601727350803976587103019434051795831361538463563461674110315522896116261328568265977811127933896756520765385257791744262476178465769215866202197179633421085666729831472635161826666708824221518481366229417625646337046667318052067103094097067767780414751749683628903353299425933384196382505752524437627653396748245924995386332086297467965856911682362886421807773158899169359974805420818736087345325371299381230182942465121277140837709605818165858575672297945874765994481584033464316186350259436473957848718614040883813139874372888462674318798633407256380709656774517676239327042936699498738335072690821803972510523135055275350124807338833243754239517665184767276807034588586326383661827075004162484609453157434125032354294859391820685288278055927893575717367973732435772241239690244144639077673709467662659987849614318353065947031868588743911618009907479836661104210175930577488398501153031849788546552937358670222828427579139299007691825313784126827416193065307459104170667330575184576438369182372538147226198290895708957462815217170387432398098019356510876501578650974194977919362372941692276338791484912268151349393396456688393980905045041952144185992568656903913484242835316925423354100025373142389663279299131928620394292776367396693601920639642763667516287250237196492039224057788207421914093666483620512773727559783134781165071029718180477239056874922975489442539701144878402166084701467752154703146168093477238243009504672628300032034096409974682111117826266500147864813203429827254405961945307733555996725053850541014140055115122388856413885722958188135853986338666151558479385964265189414895970020155806954010462559305458690296888792171082321392698420270077181509832781478438065968808190179271120833940930380536720993607264062720970357050410176963778636342535235958841998742091775731629565956110106638356349032787849039257889866168547657745486249477551639471576898287221203202326043574328455337134469535743260378802088855044618973256908504028926255776313158758298000382382809268117535940372765941874548243307744704885220785758562497741963803458163513178278332571241950326774911453402997463076507429456855550812491233719837654983458126729935726604908295189233754362434964148459017791328453727080225785619009419451622557425629953673669929483425721007780977159916154975248944095514019079118985379486569539475254665026360321442618742079937966746595370175985557202932549005084897721725698403394617632532541005408799408403379154204372066758572466340498307295955186401210968467790702686193648357453137121690914820509820555898339893982032191001553132929451568283451732787458405270927007126720330534009017790212922270020215220979545662106998021079412397564533279524633451958987812299648897740286693725685693262769902338130956392333452994397599648343691711371138333126818596844405443477416310621328001325553132744922180899221708460119075834581190742130266790103453365361836972247772487290168081871340296703031904681851964319619308919096803232079826075257510153167517105090345772537973140334540678367252737062851829960290735011943642878173306247803337769210405886535568785239533109115254841431667355664442724807662444578349173958194084412911421849641898254230849337248952304253945834094805081415626818498925688318902643181607518860093710876121047211529022810609078180321491998945978937992944580470082246737942969398876321167398930384939908753322325725179976365903155415299812513555076469756977960200472474387206940890452937831084983427624877518091423659357887454934589162300075903731442661374120016385429931701474687504855445697358323920695602571727749162092550841307581155688929629409223420383237737052347374453289955699734743065167817906593038446421386182075452112951451417590596511033448218442050657158326473574637569605235206935289357731354123519803709863242190813686570130983005320437596775861528651543205387941819235255186417053555564070030810964108896020016412874473859968523826168644152492939886031917491045822257124050725521581663333232761628818659534633295534675679422798086590607515244114816672945515111913610077173337473597285542934634888311346209745028439978401728027261223518001225013069627330422376714648382808334952381220812196814248514447253648187700152058537442548191760113123279240074880015410804471041887987346535821449645601056812651310471661124882873288095258500220022021917256529163529153712532390042342403111907640064295153491560560143274549158366948232133433746675427574926975261572523588272586176278775591172865483970334852947371775018822560680879853092890860596103399713367837198169512066911541883256482683533356176641264661382333584602314387515492695555408003177089819991076326397672373753720356840073000521002751629165128371419534015191695449699127942635188202378021647536838960394705081007613769208147588077450374797331605427690157327315358073808700010322957745318438941737187797549822629005015656929934134833425494270007368970158700436973980627014778889698792031283508419327839491468191995897525696542696357875691890374994664773649552588674969722952631042458184204722054762870925770956595955914071298895022042017690731018064800770208940419601134465512083932481898178380053304907544199455724565235403619904152420293483490564121407040648470548886228918812752870600397411200017825192426947624101623117519496829994382724780918737891126555831804926074842393503612807487640739382765204973952253763968615893781588075324975994604130916187559492805998715997851502779246244351026255572073754961940770127808721614937701315632929891606161810644869827152563113067581872563846907257456318422909821343491876984245692977083934788295488124059424514360215847690206771945953162384295551576032846041790713489002948184920487702067708225464768443098057315433077510916436038820446931814009084582231178800441977968212352758343604380933909572450319104019656987694538452716816253148953119646193890026573551446414392588720630227253718809705077005322061754333135672306015490709453893178861721905566209082974489066694643212736718098475563560874168190871421239029214624556463612627464677081961082704526913411103019703169689037761260094481407826899856070671327896498994278091730690909439839885065882070243430342628364156711383512025707153320042732163270472516097373261464230080892913572012317653168036034274935954789067739443727218236965077309804081038807044794985952590059160258921091721576738299715111978214926905601931379465656209936252702994392407754259021336432734090273476964733940163487554185364135728299123029994986757426632901803191039995755610242472353246716399818351609146480668896398073146099623361829725246696099481727426358355284506881216906076838911463049509186616223494666449391230576324773630041763335721153880063118228011099546755884459484669276090202910261566036298580469654040511840902848471587525172481893791096435884593606817869989212119532972379364005313088720207521343229572633171054257811944486626146874397670702474268621294099559405218530886106928956255656614933602354102285524841096586249166587577063143876948735529629311866463745264170201962713258592246776544456793267607320716811702270043543873798206237594247143633325778548225890994184426707099688279360294106249814193883806312430846873336461454199713828215192021454545139222786221523295306382793872247365445660320485912002986059002448184197402705337930114074677156158548769732340764250140506784305382612633104109751647839010259041885315811467234234378735183941335930338163901201174305377281290531033023916962347429203176130920273493633825509997086451928852742606011246743626892058034904803176076126574219315423345634201922735041791880188436866873737148490933385909621833168912323903509645581814103409274823966473389524810998337987830376536813375170383394318091631594091366412373994921035200256388409729395036319428080870614239212015826628358415447084283355880304664153619275232610828442265663351060057846428246772834092165005724146075230580528562904282155816349851613552335918345527476834025844280489940508796657227921828580465934144957386821346843314536762987716085690352795031521797358156842614994637025667791920131746286807132579379115533590387882147781797299439855820203786480354591425565890016364113090799925643944373909933465595791955738416160494243791462221651671591186076629319573445012423750920822497166822676474857412988565099392200787577176155588262646917835434456712393377608084366456251283220272568606459675129565884364371261540407203516624861935728691198251698780824972596401807714813132322072957345110451085766991231281346590832094977453820428109357136252778289034006176712965649619931213452374916271528707636948486803528105847446435652950789932760587106004490708690434694600777008804047477849881612709920042423791366504626867650617954792510429546777958108896735525080102469770307765882718002644858331624001724722378047859591165219647330890184018357759714724217391363159613559184036729272491496118743096703990889777583928322203237205253741322960325361320293384876622727583509095106597501951844033767331752414921474121937226565068107936767904877268661858562364370470660408277713870142864916036742320091333109108632715913745934427891429771313407740156368925944987725097781230737327745202979916218373188783012112207968090592525179415528560488098794693434704564161676529600626301006365886380642624925048937140868259395917164777216218430048504789407210313789263212659412118016532290859260134794978654915037015959054869391495827473139594130925274228623905393896409551710557563694955168456492622957968676514008485436499960837323410170968296940283489024271583975379227843586216070314266329526659612851421479078188614011160406597504776603825959915909593879602673972372284819215362594005627568750252578973020747997425274938113485872875243172033299811423728085315403307749561504184364082866260944318864513580624394979866178697552004369544504348231260285181790047394167475237303631506828612935871549421907874660481213417236880506387121548828574903814920654285373852977352579058872636589018395948298121697577611686886970029777241604442801361579682594188141345198215109239305148316429696137101887534052033215223002293105942351420507370708485602204863901649082189259364960507536191392730135803249528365571474788804546044530006939074685171928043552288637819894011765404983035679516898338161161230035526837367867994296488979299438020985556396482666470387878601405434078967651295111570725693632085212807973238192078620220227938325946764093197025104238204178964130284163387299972416112399456503642789872187496415916793273351755111777069351595579122691858042607657842314812328523505739442749034635227178695499533000357480815955413738887543316684584629435351486727122233886901745816387180984941912258861375559797916440684960942518070343947218691745782175086147360776903677984573390507490713874611496639044516709173360264861442877440969211686322495186569434405170275604399969806835951338203828338639650287671443701158207315235505563113031981965761797826068715289315740822019955951441833091021132534546369700868652400544448595984914674578395083387104031922305502922164782848270437407073824357121747807907829732647060573056578120954557456375686362893169694436166518487021727429345467121169762328577988818397533849618797052924653844822648266111303168666282468781434572990501699696610828017299842981865311393907041356323081212548487206467663850078016712487029560945787824412307655865965384791828831610168051990965074261131636410596982353358741965377819457970610050242727648220401970209789748192562100977199677402026575251339221298172846786103554652016776201781453868410104864621069601293757126313956370065046297633680858075340344068706363339932483339473574998303754098421629961316106136805164028703528199653738423920724421930847071256722968722580361829059164999094516368981689260965397435860824660541576041151435032236247193953984641076757116721764202513841724388349944536854765607305904944904380445002648933249058021430241957662682586655741303701494002854055056756393347080488135920217953968566503992225167299320452259268462462305417352695884443616548931292740586422908755898061637533784566682550937393405266227578654762626129294995173907832710349143160875531249553810177950331979406911512650572055095670299343167126142608180788411128190555444199152652063181288139931907105699921626299238927466396083024613219670983565047040254117625097694674985077470395111214041557769320210349322027486965454909892045500464367057297594228936893817286931486658321190966977540790224046586276816181718060886090764437352659098404917129856057137361982915605134655564898267000210579177387676144731966590843071420393024563524611306975647178398437706714043918233608892670732125701578400734956939237103022769596352277180607849981380077673566171444476964213572630779738613617319914458049300397210776455811798767756523900884726851417315743573414430699699138346745988012012345450464370589320143586539843202922887202596988292240692139701924823202932198725639927306289764892405660558330660737850937261234353538610445160492653752927824482102808720007467370638985698284340160462658282944525018366467017901998184926301692910217939452898841852305656015923327430231988342081512603076865888696175179902080878359028031803877997484124788730653507144330479487988451385155814882639004876362274191421080493181413489390412699907667204208042299861829006547223498849295943918880269164600449752189741142152841365111391293291159519232532119094719314336230059451524169466767477571618484060499801016631589536567940632920794503863321279286256879777323223726939785915263935619565282688274555466549592477956802333399152766246694604724163802473528447546984747214098163602956697141129028022061140440282162292731563837910970673379674421087568812005868893509914818058103301733347756416269061930445130863173697931230085058027964749459617861820018245798967637259507194332183922556427648470587201692277582518944070605249717977313110125861030136618529317396147902453970611335008011459305026101438923423356911018863006352725759989925320546165179771667025705022983947428633674364704850384141719771779517219336560072864838480854694542048039312181872910519326253665626333590141943832699843602307965558652037961483511942732057030481170604504836130751327480632334768141979509254052588369388388611153882045796932423498155707848481640680806175688222209022687510952153520756962354630179530041638700168078875484427865753079481920551464917549841346756858204371731513432240344160127526388649821383580787618916530976890882712054792374250619698633343889652665379365027906599049198945816965027532676614228168461010890557568441077363196747471231382911434543932325446024431843686580107128773254576282761653824111999603673064874444263915073475501533373465237157430885578874777250381955103132351686442006336896594317749683415170132860995504530498869531285832614009740721209305965516875070537674191476489640898265008943180155692212316464181821255803849157890391873895037365896102964287231024582240148642716690163057468951119652434491528646293085626839581359670434738697088536386674769898204628469620262180294008513695899172330512048919925603439555502878016227658231546501977481424573277667579748055572225802901995332748505987556913500933212901034560772683600895038294504887279152595981679623383229432496419152213109940435746731259627669335724792788987441487146983182866547507570740348995295330809103653065167572787049516149582847053832209043913741246226731642167532395917093386786172979159284769666228965625582712372211950967076485617429191793392308895757710901929778296578549672022744240294178653361430817217509631999839409409836377999640149469585685790124363083950597600097153177608031505751658948747881934650189935821113660451168982696418865403241812354264466559582978555925895595693654859787678709532371078639122750880126204200444547305326917326515074822635212220028552667739926471424545730522575035573176202650946362094400524971595567107175585843133014599695832461390722167604783013039954964219398344262562427165801639690494545359212408463176709983321091637503770437684178289639751050042891624294000011697617636376947901010569717597318792798006355022247954469459609979539797674095326523170643919460399474528250592498402703684378211488348633129768214629998484721473179437586582083903058344651263482405482486292554096181193412773075808926023073291143085328745853374759121271090487616233870928292554461663541190264341013856038357155765640330190345686273161453931062323315597582396987552936294902063038543018472945313838423075923453296588928098681116114093603336496187021332027999103448056353458202080754597206455924081549291840746845791612325979747655229881715824298086385216752346366277160590207519222205854519596591519046601003241166414723021905293992911159207072581963256099042164774692130776267042608159367731742915129115477106238943295648866646253276590181904624400137728782744264097866967362130681976003522189952976739603526007364293062952422517457298865614114376257374264607962095434441256755352696038130790973549096749204076566727314951154682341463822815720857329406231459657830098564388895526424084438284310885034000616143161280201783806582729202039670293691366240935217271581616093881501817546210374745349212259024548718178269602648543733595531673126766149733639108304101597717928945694913442007856802083677232199188769264857222851424830971951026777175122557010104286086574064380471839086036221681611459845922492008279596880947234068451931481405975555789851485708813648026617051727266267259209217422984354204051179240971826548772740086246861705388441060896820466887609769121225605149936367425552380539544343113886120296886460174779214402447281782871445431216445106364303402500126475792117887141683947425217653671446536113739899906335824139080714007772083207979047926307094459076780245042070682366375125917240714855934335799713216367890060115918935494104602196680670381849697710196170654895873589722420770310701190531776893138158535525677420773872063242072942282790410791735991464657718847498436954954782821382644458904936272131990156806733847587740357649152458215227696036229340338235664142128425091483948365360525071597345348552165811446035193678809507836104168799213694043553001534447080898059467956055237719915894693065038341276489738609559635384093889539292192255844457435593808314579872392712901800684626735468697762929883670792487833274005974121487691489341126905183893029788414105220821834758825575728960579384100922374045908531113645262838798961666939090322584557597508148415442066690482904790869566955381466714595741672222340536599246687504306069909161509919279360433387990760028453469156758400958411290300027008574532495211763534508380315261732742179249312683005528934723378123184489453769859662556414889554573581483922579287528115489188921535135715547306342024322985723215533238474225239590252444338354162683533989642751996054426240146478511636369828802814218470594040632331237443818794940642798590882973478271568449811510604510351472536970225084442527952359888295083846507212729714056959648235626054129942378727459631298627518425087940840774112132500304960107680507367285422234299440043081446837947598072591750505158893087989320166029015849878693382934571206370658861378853120874721095470179239042149985631692014840567726911463589060648509393260325498776332571565615889682854511800431686628904668169965036835092094392813221195157082421678613188904772432989162738198769461755794547730457987370816898964810748129534126316971387332796836613332363765027272423899322127557444781196409353673150315003692803789903315487062505718336683251982047383281491911120249496711074691678122351758817934914785929310130353019837171174971644402809055060768260395809357204986352801733128952417369418053460405470115890177129103368807271129328587196617013620397086196736610137949139409087545943740952256804190751498001962614839081594271466684563261099105842532123125879114356308090733695294984534219632382748309380924464465379347066895147642399794621688120256264485849009763707183863300038810131666611439822939201820449569257810964124608817584833450068872748840137158641851888712264000137829485290087224217838332154602458245921807607092406266058974407988198585211540428393255373397532214608563935901318935730634814048763776030840418498692115108348222136076484057593170209602449056299025428095700662914970626627979697573210876721263978729529030693640856062949491208481585303580235682070601122552771197171219276506987580529780031914765118355801951139439447844087944659085568750865648688432941166047419129224568001042201675074263858540945737304681862508485718764681374787279261885217583747680750311966605535748014976318379753698641237015949667118898740556827282701467924728885277646501870014761291101044644202690964541669984242984132024798659852091928172409373711756776134029714254553813459097803776404662123585514553840401841759325748292725358388260087410357819736639533155005225760171729454252856622125028885810883645836762642611089747676790077661014296838713080752746909282055530287031139177811583412211130732437634560119943038645550937791477588063535125307397009039194675823971504323876586238092754644132422371885283292263704118468448019295825550490793047383263547250778102818822599046396971662664797288192538953592775291673864492362551389470399907175691414976387425217133625963716768307920970095311990096775526767861831317238942828097444083166682872787025804062688100011099225720573022864716843607525083921391236659808208503370453626851765712316047084813475689978474476808936731583533352203327229403852454294470356495224556557211559719393785408761785712301928673416718194855762526448203264263291901600524791753219651742599517061682981044520360756531084618902995482927397031635767155590633908264730103020720375681069175140255313594749799715936985442928949111968371333469903855380959035928026311658303409006313642443900411855195624985612432958070578955578539341436197189079756624216728954670056453656162824320501903808737052711855298476506436867549409621681629670948234514068540386450822480474941258521148741361950657272698950400969643694587158400425376479752646011527070329340919043575599306721213885468264250298587122795464817725374837630953741640847978080346062109394129577108625387615502670269416855389942761476633836260805917403521062394615654591896565511210523947316313082963178166425460763063688305797659611761989707822006962222727395004464905428466565456997466786243025589181811588455250934627369703240908131809491937588382765269249070801342762180679287014488160416898866898875118256833450554107975184060393549590702854213528757206161836904494157451352369803758750345499826543099716271328778985620811040465901618743206870470099329483330884323601878796440326909207850628158550692793869923822074614370002277438960965168569154998447248384117024442319110678082216264362045215594455280238247910548823309161052217759413352082548804911675629269941475504132923865274287314465143121937437073026227042433295826539342398676776156509621759813204431701950774011585399589842855587208165791233995670228851479684215630909325493114605055545766122735512929236173159718320548869885141139901786988378850701649147709756422970690904760192585432512215098854274150149283459278508844960985366865514948119497377242799574660755059673280122861366677334213758485171258324460475554729055863761663778620883678472920607819495006381925525618293518818279014466729221641577954784223917036804262450203962130226619779606064800058212079678248981799867858749290577315727046238058325241811834219833373377834799685815235559071040145557107992189740137925301207216496429336519919297323301964945204381502011456591113008040735574216999485080282321210020464325578654307452444270782833149548669782198226403903372720147554028666346225893950858015842967798957415550668902305015938573472076418542920883217509432371799897798517925097243895234481690574764624177806238493352376278568895611215371972988729493916193066577583663865844790396650654486410806657054763647439362547629236111361279636945672723780861545907286451417294747018597341493941228783766203325209828684981719991562281980491044145180043863682781713505651365410488546219694869549310491941218382909449334149069184633474846471220929738541899801382858778414041368796494275281490485235812287486395535634402897486021853982905681120518104703355558320166845509639566067050127573156488977250430337789192447290018958876365155934127240660108551412176639425365828421425881093310106293657776223082624597916577962625371654992718133276056471685478565704336164793227019530306827297831035483957258977689937995306059423877674402779987308419104125878723130804608396500225356024609175358520156054459754069205060236932846795323769143078531643660636539108548121982469857544271578427983774698689750685167203208025079549253704135439465646428339294149134372570222651790906805325692388186234073970356943395787613309719921116897844809993655008961892275308783016040025326006356377213947720019185328515486202040195593303544250583979853909720153780027472341456708193242137928945927655920183736706371656101172623124267683859222457204256980800394125793243224695076083060488456831634307120293220489160551170130258692946465602740532440879592361412251820419404419584395393914051378232415857997599955991442053983176997752555092028395996855397532718949757006158265584189319892834732372500646736221993245903439860730828714486691704805668251782296741117730348069433727083859145971507033916726329351921231422057512965856159741103723440268040577834407602918497922208050135320558759576975880096299958994680028977978596965424655300606331434269613853220616528126554303236987364726264399432549444595873041043729081065249605169625946951855773373537460073499131913109414702850246212968747358516786080029013652414029700203421008486100947692325383432769705797007227722934987165220709682521181699205485823819299009362529882229766943791342255974596414967885496055669122707314051296572935441735912360383039590545546186652452706239128183654315698123913730676366086499141815145068644748731717471974546837057692453241784230222903479726623979969515351321502051789069003732740894344835673538921230083320420631455741337768450290533873577701164452417044710546625213627275644213552292882471481637349925930015331402666052072102974011077531586210722416792938489895803209331465843000157689847752590732458343493922551495849698495895827141811464916042177021036623749592327964671336339990238985190474702263930675695778424581084019752750438720414360742411551036644985118790949395094339283017017739634717455848583693850648634673778461947898452554273216668888562656649607030402049152320737587716459767095133553783569850896556756423057778068911785960111856084885672812296582361445992686723969621967574576310349762879291485845723377603943408896882151270439229662680564976170576343634344416368547541459652375016726805932897643130067419179748638824330575076960864662844566273314020522006598501003060764370798511453635213225877923504095336293618080245161528275898412076034818100179647169980382850792787782942418303012076538221583001454777825707601298189430941151987970565539434045475980439274562435812570914680016677878464728256391623707641167645911717526870685555195014737434643461299372905246400473399594749602598378379265972611545844493673941992382988116094859906716135954349238070737215309080890791952667188413365687603539817171601482958869206735493807766755375190884303340998371858120103298058799125933508887512592780993449049195098633993405933621389747950399260173123208167330988495858689724601894276248649970803099442860461148607294509074956065852128399179884537836823590870553848255587233439214062881003181542329234187141885673531217303295163036734407629678678603494410680976762773289834947089849039322697467328697669576523144758867958884117228254153676677301336959194248925275890750565823707722426635228599551294384526400312420195440034091045703979562531747944625348864394163523000789916623600329102214053103148939305536176520865374535592568481999138733815915446716970687681788658484139485247376863044211491359526075265656051397978519903287007640167971637078012085486899046739279855361447254432100607754375023114756423424196878355803915643772216789430301823866446960476299797388535428836868496170690931955908449397943566911937325921624944128988454747125935775224402583085673325106008193547904617787548400770772153502916448907419618998416570095313111548963861179886883978787544811278790528536922447701167735355123088721011395637330617046870231994680379022489215166101168398521958553391107594007200796709699805003513649919817236725716560362097558292194740969447148732676886836583385510413230760901624945568841473104617407886982825589840805717305914906174711140607489046362472404589273937092013892125617850084191121683505989995702089629102144547392105528479767323664342562018751432770720023544174964997541981781418238822856237476360267218632987329213678018117738729608520705551938214444423797108649027289277459263151382826056481864039322527480772134818526600681911218970886258011159727743042742150138950060054588696177521305316538370614079039054675020881403124175882339179867731517625226039430038240093724710954267388770513594257939570794663704013844087560775570036967170920805067460681883651034692600829250205804009735751501898146098107152203596559570980709309278343082756741773957965024696953487082124089962557771174475599244417239260905891569128755122863268810747965755775543740232153677361253286072797001324020585803811236349810343986938769665502607259428644914608222661040766083042467199714530574087871696313028722086678402569911688842606951153211839918335810900482109782220371276881251732004833207136616761343958866589580110603204639071692994684770747521536315225112460176558916808670227141105485877858897214943980957867474984248716887767185067436573565073627350319061920803375086683612902627863145119800046849810806027784297154373297887659414817199156836656215046979080408697417868416203879407074912771724931226847398385361761884399780809835575034437301068580902599318194532479186771323481041372556449897124985093405814321153470922285620783890615754179630261727156114810960742451312116164559982564552778877463541292890559730363369185719392356080575637236645712552077853143122224803689590989511030827452779917008226406929088030951218704729346807879160813057996105317142085055777545748448228633390929001982337734997395867379995777703648121586131268989352149422877607830730388144313142004327697499826368819304860928209930636158617802030264067186563611568465799969980289883166948162021387954798300251098749053442355558086031284401760178764698607634913643893253616690875736008539833568877204724028250498262032283786845782198233776250331534502498744346781482742229835689372358127265377972355334930067310621364752997240198505277116153303877484405637344851976667508335759103014448855059904844720254124577220208305651694757838146901289027735695157222961223207101753549163048131948973314932512311975303388300460186493123750073915259396383475415960648193020263224903691598444853017644302489786543941346119853011886179405314817087690322107154631149568692851925190936081505938683955017363045039014518009771505873809361277005477261718713781213297455486648227542081753600222683741433437812970644010036194240216080551661539265637926393966284141420935586182860228437097285740609579811193388216498992712404253998473147243415978122170698548083301530097744492834198889521156961329447762635140168219967263990369422734483211150172848794714401744003020144158405969032390656830824125919268383451201114056301081148651603493737013108290368352604026638468605074493527327671264840706065481426837799673985433097587630624550137892455368148837548277542000150412711714997420737020295148408896146190508377978213038234746127511388372206835452751252340376313660140486141091371155426304163952384275513232469621909244059690845907522517754452858668291955160003137897657334284690900904991511682547235511100634602403008174849755923330776540652510561072108577442433015534685040093604912850448788191424356005478147900336997735122314667218143165671078455574327902140992681736989456611028699148611908234013923285198176248486927429994279011438564719609861260924734603043980725304444416862695125082303236971045072092088645390638034125764616081812955305498729923829544051431340198412964772355200892631994636374495583711583785361392601804454125089916461135870438580824445366985357928278470902414196207954485436747168886707701369278046667246024459867824251361124639665868722079416538941277230929072871302841842808176541495238827418171077064178536861521684944677412397949986032820313937675483416939219845391996353811251814115333120751518901822832539195352226338418538346661938537632808748957259187538986006127888406134960762528186216069736794312722520360057711009361490130954186644488555322687222276339664255941549258581038809187977347359501224252135678707740448856714523966628667231561527821936626824799086768329765212945866782772854380042363284033664752422359814153716115575838390156495040892167431362832468327814799734632044901418410012326246140965215150394528185322740121162035172837993558018586665101139017601800598137363030176301391841543205801347252414777121407195401216129623818278542996367644670004842411268737853478854178371973213971811058254081955683155706060240563009115823088406359764587659878335375147244180997970824730530961690402772365417272135727700756670849830762952597325941653156748371457870175904398801292710434926922312126021164537802874078957455532921447046537617695807043502078112671350725316709291251566840284879545352239712587377460708526681991036679918468271749849788282668574498268863604777846274051315791220003598444939265266461425376485526125307961955302025779410474076782386551684943474720684759376252397614027279483067525950280547733400869313020550055273552880169565720032535236312383851004681188240723043622741712364613768174167186678482626097741141762039902580442875101926573081592676333348101502041572143993610034293836193580000506036042432858150648549785179646527178391607500800027203844993252453430499832469265339193249365821111167190317965853079249876830708918389717886048817518966601471444158335458214722304398471539508937577575571818553994402969102285620923217942584829032936842439292842900335089060435856705312238441829151259812055171103755646497095266944076092656945659508479834110296590956885516086522140516061387964952267418490198497366095381615124113428522786201203650219797107861707961394932977553916055032890648001108097884773661759310788673740502561578530424655138160717887146939673064069457752189171117078677902811713297746249284735496944337074680054438676703986692132244472781591854236173515128508527599471756150841889163352084065151672772191561274131220058232867682436618912127163131904598616299528511007728068682797319329785244699946701593316282944454776637573150481488667096622579839199924751534452213640450735152309073091183017553677436472140839800343385056287578251753517300098187335582814810630990264104354284650531488727834459900476121996774513703077178087449263270541833197359992283124212202514943496958863673916757605220792390501421272324742196643871110787462108337397502402369760991716610792654153930063686794330872660722539935754677981856833667540119594075470882493067028691984077803510349198361466075664670574349288860302351199855868554793674660986264620540342850959288971812005264824806490202617042737305285273741242122161997386807639682378536841705104534053462950797998744814858659420386732244425472851699535475222077980982811146265044589148919070327468199940812080462849372570794447449359853981303466483720783797761833211527036426293555863465601426335968048339042747918721471101890971837255937481124753694214506788646384928178820043242612229257645736041912162812922806687795702580461074228630482093089493263861462183235579131406453279638545807372517137389269347762931258022468580597500120240204020314509255236063444666490092526498001096259054115179953418994731763930172810409685037436638105714032636295891954856869816608990808654136173451359000530914434647569510212303168137620539204305634811202007263121612348611553820170635615609757649251544660675166755258987712245574870660629658156365763375360945054930517922261774822720304042277165648748874380645072509125343129051869490215953716057653715313125105184587697917313556523386114681611384684927396717261157320666870574121231587526789433668932774529655712763208618741167223942257464126769290724683482692142511056014967240703338822328373201719023608810712645613924845156074643771549194059366583221004501211071413085669529108641933985485320818013298875038606350784588933506177781619849420513513535669170410343070866007979729842995173670462462396474856532905744582625066732079374961755786719332014172064968481479275482589487862441166215696603688727969917699215691379819022152960841729001909965948495672003693280032704747567919498095656194103625150634763454065182210330034940474369645192619436116355036304804307408792183075539664639727756458033841064014472098527519691334309603282121606404152213358923762111382785674126104087798164726376603698880423340741717111991117246817697500826046405158754804135031175477059512832334651484265903036211192228506661453186686122031606997436963430754159941463564930832340176780083986781647660437235080221749201111722300046266237931284747531056019982051609876527741775338189937870069943382574875928249902321155938630247957532282263680467756413317464557847634067910788671422845583545425385401128059375902247568813652180725689952447850910647105281492374534751660280267815008558170435704415547397642915616323479136687510765119472037411194913258722695219115778824257714070411434983395562771344451390115036866353770542415535686906832117899671201088547167323872370874080873244773171167807683680444324912702239737984115001940927922703862076746691783385159627550555655207148677034658881018722258036920315714301557581160394786084898726955537818074370235978610421121673823990779787331905554285332107722839788835889582988956399587102381025508699988990606489571381666164482810943474735956121548962070857653930226753915905904314743227032807216322375850719273281414655891600261030050754802986255502089754717935067591271485024757975860402922339204320892795321553574814308279146629847639429434800804842256295099623498883024202318892877780179937727199270416888566591550491936638013116352383398154433436404134325336473751593837479948840237982182617507108478622048279530689741947632381634611502837962824650325378617809643474000050624180540783204167998721983876059871447877940267927258713648308973429937276951852306016459742950946746640196902600412751863043904313182491167533800908336333146513688808561890569805179101377381242455969733827483776728710700459209811632749661190690662439093453200885765946818094198628753803444137129872125860666420698849983551856713392721532536077044187200700087513932617333116787992425605241445968777836379462351216462492970491653132183590034141536276954904483123481725050429443493370029214070457829540678458193023904850909773968379848560089375705667660702240699626103636760655164992871777849236101118691870618770477225289275073796708850872508103806005845072497837445468964168770724555641147838936661013993507009359134827698808563261145271008336751755125145497539481240504333249918083523000362332317214225139640213105512291220972339375948140725724029581884710188306203939896889769828886865554343057316187041061938008280248369366121936541012259751617297927276052788548740658365790289546102941082017306178438860151683264413108105523642703548462235270654528447043952107399786357737672700332600763459392868418145642238244505109601660119469556013227206549566358959873500478188125744989537264455186314299961629811096074856999494545350024512827307744008552454138720250651369139642485358961182589637193352196026387413124422560801883909440014619856060040365557969965153275439778011505750565352427502294082035097214463012307695103271307028290784196179854120692242352663013423823815380191115630750845791600185644798308533754652282660559339708444582913093853813945068197857995697338996980993837560750408132401313738968819360452337063596571501461840528898211717524564478455434168868458455238271192087714657891561882938460065408939638485224220326255077713882018885179662595403007445144274153024945330010337078830267717989776940430261661237791198277911677917372148175035463746528745054090569245526684341512666992930353941577173319471570181788447609010978440698532689086570004649129003784578102227194996137294929527919611857301429045279726493474610354892345816023799653911180548164518765733266821780929140891595758144385439879283228228839226164424528363050690768645480224641298503238006112991363487624734767240555278468719753856134203148379561965825634741235055173961150998824718318912663925525514274761141451053063121631565689614660712651288854713452949646810928348470782149011811525600284027140252873658059891471683618379870832727055452463420007474011907874452272661662967317067122494788725526141450092550727389007707488965822192467409246093728384300100405600299108649050543229399936257221212184888504973218890092462897129041856555189597136725338906923549759792273031527156865819069293978125555310197664524728581339882051181647040148410841387911165999978286145143429531174036418735001106954633704516312451667697264973059295885856767413119872424578477460675813074640049467763550759091403584781850465299476463846854337190223990712515829733315954618193747156914133782308850588964822625909093444270036111905300075080277515363379553363598982403346103765360698288389775029014642531092584831680168457891104425775520522117834201698792451950461767224130856824444237904015503397498402814312232050022276758737023180969592854633379045166772178628904042538565958138186316111812034494775460116407890294283414439331884826408162921088895316366499155133574611261854280100248528059881684933792100774412430447034025867285931385315929956051334950595277159344678225071672273208814833142583350041790597458375462333326994875683569763040344079121583761031571240765959048363053934796927903529542111239093400239180633878511982553998034080844195435193561300291290803358882666142648988308054571339301864465357844764974272426182803742258765990765732468793782173402657267630241802128574065120818537992784156143677930610783416329355747227120811285804249546843243844340657290405655238659583847291080373604231922576703140276424656782689887767878910482018667941041112596098370807334617891902175221242358623005539786816847392280116097415934591552825927491445814562115360533096285929225513090158568417166810471594088966630987444706940060531790057190330915448921148110648137653207451943383123246228086428432955152873478965074570769287074986009050470385102033266774583686898668426596931431296324614164016221748556107930362688158264745212118792776778453533553286739867168939332099730269310524063440117838645967681688619653149589602835532759121076956310090316560131426261411730744891168264669537591926183241647063597444198490118344641568511877923062537688793506011143176451765029277520836559243172209141481055848263212256051439381905808404393952515213991651633563791745418055591836495298979548422005923931850459562195837325296430062639104377615680501895721327371266479560847597263496807317876657138198830346501743421150077710515981322588098691075433003488144957811640335439320192258929809341576934164200495202909532699119298514655642041674692410506259318522715028288637762256620793359678309169723638701107284925550115453505522764126537582674852535887858213594727336373605671867804090469544351673587442182656188705767769617138691361339012680677937133445059954663913437801897376695614724248550294299476501548231964962811715445829201451885626319199764626605473527737965926325351905189507811535375612220421808598427010831030241948449194093228628378802148099665665383964366815490676937984108664861158543915576055250235701453786345274439069849514177152719894881222731062015322200806833904332978437671190845425127985100805372076988697509758456602438465280663617415653108333406016122754645266581910529766568302681750187217359669522171373832536978393079793654269266348494364396381455783685972233003342836890104271377593673127020285139040796027840077599898013985310678100947564510539380195332234582049864646315477983958602874017248539581143288372821526036915659152438493418168979154170563450233192995572909447102736765986717539561769830084395253764831021128928048393038630522675849520205029233226237791471442104600538299985203691191008664668388070881876610756498448077249637019866321900425803103923623414376360550522844229001652511325938336216897356922302857961131505845351030674179967895012392935996878821602044342207784628880515853833756129677855815311258037425748978456752373265001495865265739744761188802947080652989291575767244445040417795343267534103176186730878685177161737480083766854586239653024006673855951976198952156924664629868840837794928461192923532628769465085972584670612152592573971730333410910311075352883159890134920764106476806977864728098338060987526649376015409486054782342411764288130699000254986863652659104045815791698748377511744790779334355452429936416114465644503577195808933647014367321687395778578803559376405410638487303276317766510584924848789070356388487146416844655982055049324805419265903706020757927483498038723461605495340136974793103394957223144278239752121840588940202915536813880753371008541778657519814242862122855009867974367298390419247971515537536639926798469987623477217284925203406178169037843422057212988411797633888183179029227911614712639305689054290591108497165090186419002842498740907654556068683739323095487596018720019794606799069974996285575297782951073310137160745528696508983976302201211584040822438863148044100949217128141374585697967169601157710777637035385038895442674246361164863038971814942728425385583978851255209017022969979633841923965822281292869846620707955282579972327277088090212111553285923758247518194995474611746919946518506684020349038051403572386064394748048132428360711844352463143064023969496733645133987437609720159763914695157336434792251648717765892737966398941326375707331960489456136399527493309444770001784182863368623616919774129643742811764205463649829361426711225323850080797309018493867627621974754727256835297817518207004406624342294960329752673262050342301768720035064901613244563636089379415339868284274388095021456292405149964803525188337452293569109306552047251407420373579705885034967571288651735699646622519928317245021666215050574442405759491284987318509128341513034402385113686188170603931934228776447978486659654633711986746194954029005014441447067121384430609505741301397489105692968470341568051643048386679276421097273477084021470244770487420289920393846883159502283454644168083451018570155076697230866178248572852448401820419227427786277719065881734340445106747897661172302717636848649785268513655374215449075335470805561606639521111720612200020108650155178562779757487744836856970506099661419071280459557416850814572626439165412014569484481810085100782156584560541966264853550406879925670447278041408671981328749114052314732330222536010189564817145314725298587866754988752499646320166484752249570725183886361386864563092762869660838331776262522185358672222048754016966854599266473026614652386478349084665497276878622044338863094581893671013654899642640222368042907396244215676541328929846043930497492315939290712327708266374893330913624461186848008314379768571096604950093982765318299918242122814030447299474583592185216854098539223014641753898706490733145165813926858190144676412411156477083326309440985942023142975410309074378266893698163185335037631717044511416538001399334352375980830016394338799572439317614135532927427428388531548942248244524236068276313743734665562981791125093771817516153136262562007352478005329624982527943446822525777777253518056493725417016610421744176032216676415937517864874039160471694381445734563638356268356906103384386635908916888272157548873197079557662448969763995428648495726231696739495439319941735075167005782336136967504505056193528834414037291122330938080529257930121456985893194010561906275898607896102833745417688960787731113165723455798395353618277111887684224132484576752287975096961309492857322281257394030936950892344169072767259656866430842600732644602323313419780383292229897055069524785643914864255738308385929284670015703447298721932365790418734244223314319614396400044595990174100539209612573283355551840777298781119883326741086182883358873158468921809112694622099772955407811130683718621359929220824033007195320481862588599737962568508883309272250887421894440641550094678256373343511323756981903486611707244866442616605340284054882417868242251485470205763685676804130636739683852431187739364856063000623250202921642951207853830706473259123036612854714303262191674939105443785913436367079346602128276818067763506013927186968770061073191971170148095977027094327302011264215674211425665946168027527996827715219306328810400348488797746758959841945576658607352918154955732103761405175627581300948926996982558395135441203583642018804154835200441930604906543498902704116266469370714768142166308176394412207563109833857320424242904820863789145477855414321178817383743802399913391114657108569814056624528907893108664181935414594037424677305703981540797569801798929995885897370576268618875225168490936842983379623011952704477972459535197144890368352402626302149810425465731446635547170163141809324420737368770199877320610683918071842328970342859627117883344028207654850261384317541609585069361827845631898000302922025987819464077154535447263997078127026687571908948143475114916883585009347738187191440553048247306190917703757522523453087045975522387340741852632226698609590496974160697442559374536324447637439799003185387723351235174733359432638345234878163739758563164219182528049211873713800686048492003686925275756964493163900086448924574136018367247406006986681812329861439170356096580565758320758216551819004369891559766903956794125561880894542490279459458141110881634482629231000318590112269444040093681106747682388515482656998173059409244101365594247108761682982228982349234489313255526092816844568995325276730954737555351897541513781617873184904026893431810310102881304633265649506376389467135071462610020319324073496497388576811226639682886742566929820009073566580449814303641046357064676524080259606584144908717856059687352060832771169193124891041460878592988757595518950451104124418333460208455370459239726569798493614687483641164481456985692363201890744842617245933203009204563158218212990701147343796052586269482327745697833802819986636515668839182434657169035315087860996595621646088306184721275525851336749933149307337269126588092265273489920196826425498814632831787984180012596242569615631966263593391434434165086741663242506541706080552661517593081680576531037126004303887030629503351928007709119162120521639824056890409689791117207376687821588835284966861870936544496813202373340787233420727171027078664304222474561661077538263107254469884892959550464183797376592459971591689609105159541763430397553939440067255253231289224848782430005830458989851631067387022956668392217905420656493929263187288484720703771654064270605844905965967798049596784952585955617658737957158353726615722320222525801645821239963110373612511500572595897369300852757441704293573491569827949674904347648635619313335710192683071709067645164865366273938258105894517801722316644400869367426827131795970086178526245643616316616917666530222712524891553527682803651761694729138931665879250749088543787296212062731080182742950732659183530989484592468975813451986038103840368569736340617120309504130808883760794508642224746912295749818431805893601478276194984301962820901907887535229330380463535268418169511938516161714975721795669544031466213766387403097490143716034478449695162695511586376785397267861052541492796398303439713841244991628511062701563906932231256546313591795352304796987817685804187847719130895550549084042197617397207984764547902579419029381196926473912503589239421592345160803550533104517220519428204153189918120387265199985732280548863900360964443872305747042528344028122788141441643927787839376777407668044380251579872964114979008477660476044284447213198822483758063216149133841954838677428281387393569797888521941069140661999850165137091722025482092390148316441446351008903984030454247832919367207095790365668570122026430895774385893043483529910750602132060109511677519861748629907712828161145393782720157762638757851194057025555169635220244614523818336433155082101325499877710918001898937441847419253747561019651952953326459665673881171287116387517490675220158482987530528769470820385484267036339930756327177959197801171835978580326459037735650130201297845304017080450490971264414221629064408772457589004662908191212319638448240902702129530884539249142921647487487742714482825875472228039749933664989267938668269712351471585465341476730157990462086913358391375404144209172982578506953717306465618638836439026477996409558316314146212917201595543051060766155036384655887977357617305338952561317831876634940585401629682133847987144757768434306828717053797604959257417106660495277837070124210918535543014533657420895296573945583934889191158907598245778122665177412488131550887340932753476556478903439655654572831794456424726542960916266850894227224623537167088252153727924328382992938378042034965651304290260730659252558080367619483527135738289834901098643367489609599215373929469197165308742604723540543023029278511537071591252415759888856986778742998148890038139313490489931481245306949219527185492160470956365639057084036865144515174470830064502066136393180921275014848318563247336050966244200937632253841356322301646739439909837412048629126423512547866316355227774944412017083958495168305614037780311766355421632333079019263951810223903324084115902296752554741386526054998306434205497068032894040122413561108785832944381717910205547784904907548526449866982956355589197258027436433537097669710432534154012825100036295734417259408057410438353950141112057249207364074479006154844974130558743231153322300285458830268302280135068625973480985089580385149010882173344140819909503896242221375655343541933600357285811619380744203279607162535784716583103497198051833235193991105972439883976657780640866271861311545965815717258084517584742084527391537222096129464383160808455705002102513688166271832001623504969818074203579694263890256205771642667671423685092702751322053440789782447654812129290404956975610239257010412951819126010060421020955116414258154955987878688471166986076927727853491491223507110823434948912286207055319971876710617498909012880692039099776079116701571990221481364745031911403465669319529150017000479586005410889874192528269819643201849284987567313729352055505413247648868106448102818687269333135460316192153394897402021636601740043622292923347601575368466421420866827192662010793910343618918146440438742447023359551003589156385121435593269137151651572480053468193364519134696261872825335932708480444885222696427993627628395652380690309832789917291896004344208784121402824555665587162330560690742560709091890572935052047090966863785717893722945138073689014651975327133117076041251477152983116903656824426019811202646367750914996196244610657123715253011418937348327220858055915856146945362726486535803234976706335275164911866414943197582587726431972247127073362569793107343058778467377370752067009576740245472700392186552804107845922383449276862705662089486411178016416657619084292016302007028167935501106609804564308504698216502919123818605009317132787437874923224805236916610204953555137586909912662895282081557554731242759556042951266067705219729021379513757383984981971909348200560747336233666986279268181309290840690921485885572247902640389172329273882172584639828711059015190577139866283291401303562098804953849647198703182921587080485261925174590786986875068882407360860622276588242262773067932681381498325632998450537967034630911304425010268238659272259089813791728702843866832944070487605736214939330933955347359820772201162693827721421709356444732896908818831769438500906314584661099123920501747951763468701072404620928748637509137363423397634511007165418855499207194316132125436659034090713518690669764033459505187990177558655597131227742892112262207721331591602799140349652687589911607665962944930410399745204564188200669582510905748018388330500924756636784209082958024832663848370765550796278253574316731553755493884342463850513899790699787872863739352524568056588384890898681958132370126470966368996407492528814741935752621402123071050090972539540701278382669407058708313853355400394167635877763815431462961143180626284638084092802538096201958422985015279922022651176175396762862816989314517751298208068988303802177986353117189701523085808290251852745124626540082990549195019789664216489525828991863165362720653131069712343067757366398048800205960748692760970414261059376179239355664891408104693379401803592247887414689216760822955896048894973608407463014380294223383284170596934738848161092945509637474984331261929981289541098246758453564595781931421275694137236775265506920637291645500845610870309962096787754722228981280230380344718200787910549612901528510519588456661359690523521820012776778858713356205353603618270811766237353790297312099263536239117358425122382275400566432279607562100709781259408571397411934251009497990794108072827668926718453784604466244983683875574338573216677071686716863946937521825543583282588550557201537272932880207755756624053982405296764036606120988968204040713877109899229579510380538862498636384945879548080601902372480576917579182405649594793184666715988272950827792956612769074299206317909599227222102701849636974747401769992636168156921973403464900920543343435220874854323798704507133428804769804295138118979058282369476130973991373192130662518821321211044219790550376143951302261910929890517217821527978147837899517429784121311866315386574687881195296045364142249014389489125371014510854701137729971054949608138668875790582737194420938069527290869958749857400625542816375188578780054745539924779871376832570377582497095691531551983369183392647291176993379841174097902140668544197192016772568612437713551908513520149396224013882371666561728188977970555969720964666346544207893300128978686498810908006421135460077869320457961377896932751363778053809520736431549471869720251625687361144744019246156041205073999518293297382828477991184679419141626140953773734904721747947838121882551662491009658677101690343390885987042724064419321730302139330287781453091493329145275904650821317129610061425043154676206033714205060715325049916729763628991180948982129701404006156718201286173615456804163440948439757721630253749795086607817866002363579537715200837778101186838857494153578007925886157726585226984435233458770566720104244336488515896682971168672645889032381841326141047478844484545983562813422821880259845898763694199507803331840271815126784056347849186801701943800156346434170593521927247512034225173663719304066234996265437509523300112221456872871095232234745679445196722249995722651566979686660937109583413394032136834655658600125556529069814116714088819128096346388801582715828502816464419563818267556971656052758024624680241600555870086147403740520730653114558861112120951440749685619069852656281804502535391697370836735114908683008310536244221370511861934204699932108952348165853017702875897412110666459848094045610923712008560719688475563627110270407920853634474600612934374921036233546244810428724068469777885361193879797297464975311397757813492825244700541654559878827855113907025514992500816305933908641673784174396347937468519543935638638682250101040700846407843085317651281611179262884016679428729850241302595658868606382396651597998967730221982445863853917133383242736619758706401998215635146946812810474608009121231517481846036827743702430160142412860154961875603678531107869966869629770213270543728272947966287565167181888366404653416502212920662532066360756743779377849186890445170423926861537458320494856491172823617886286240548310268925682221169357640703973308806641329520484391734702970071530429892171718060995072175085611188616459951925843426740450349459058812765898489004078074795954736934560298473919312081533100814404929560275477175139741359785670759997578868340573170680299054281760192277401798926332121046000722447085385884901801870109441583182369185196037922986023916948457566049052477949148445915629954277466780848728064249826197364904145838418952765239316623214493659672966173982713940210694784049190151235233318668811670077372061062329968301828314569635768984924925489075065997874166118769769812161593758029242134833353357579440311692122222955346727336192663074680701064789997732486573273281567719686639192182460284875964445865431483365444602964090352751396060324603919238996487525762774905763525148511063894438122231743544146362716160397020997843267624830248420722352979651681752100528152760030664466398567033035469881401760124422758402857180421272127884650403534155676729288639201447387286967818732709745927236243794612441609275885377645927652335185582209940563298538518819054628463216754744799755036818365511582760737929102216057495080913018423343762122235075015041177709392925066595770005129737344675327852600730161955314236495146371743868972732484214512442754905606401057227656501457809319794156167737000892454072218848358531781360564983550592667180042768677771009506721858681888822344286119919247899513437419854577732146501369415373936309833311386126593316035837020026573574186108070779586085244390812812837861915405828026665892361953804427226054338302609811207368068297349035850485254300983432427849041363582538086151728671367084330040950591672594574489052834323204118335861160732872280887309819678805764419251417861440409181780441123337253316935463243446273248126354779848300821713409297099105691715289271653998468769469256942025538409984575442107160004999813474220656098376962634673687257282480803399078352859380014384997964852993146920681766447544769811911914298074754243296335033456782554726708037753441850559346031652407814740872268936791370152349900072949861481467219407176750265463242283613999453015558319488495384109941712352374374254048498997704903704342038943536769040032989315582129347226001407069753412435710633279173845116163618105934776480881764272684554235147139357784345921708215032652303129602757048648613329261232124818171477926907910695570363669423856441102547689289660771262733977782689682772774429054724523637837668835287606830296464957420003974105150683450232949136724403047369106234115812888610320730528632222686538920143172229011850057728802773181004842948355781593195641462679735127917423704992328473793091994690557017267786497584557857406690106560726396290263715677457635922759180056129194042694454053723251747538223056281903266118795657277942658141063031193020691346794407582196086526357792295628761056714264644607500501289287749015328541631320814708472812733222622595174555062306975305563956632952483635280113051038163676075811352412014066570570443447809334690957651523274515911319438103586743760825487024180633206458540729803595708084824253090852262330312184922433813624108628895726187986653183217407331933949166036359679361511772790814506529642274984422028279170545802541259849979120581815154678043191960278865675171202327814995807922044202057486656600427793904278652863795079056669289082405753422444914078196888055081754609262218343440470408281044910182757131450844949112045833377729899521003361852644443750700911538635323743551746971140530227031535477553917575428518646324053144560752406718723991736497616783806963133451322875181393466489817731804868481137635251300527030504118744103823883785124575378904365749850824227613014806944213549873248487981076033977272544224665660384401718741017199729670224304977799360696302100128348960711394577030620103304388201679012385929502911999921078178182204085606652091974897172910896089988408996332476352362422052703509600901538406052398045401050313587728220381530247565203017262779182519805645739101379932645799488437526086279595725138740091535146535516401278184512215185110619679462417926999371776960752090686339216798876185366376858101300851098696042541780612051317009989123410543717862638747781027727734580110131134784071144153982807604372847698262816384155980527684039478588283131122519630430892937367972047416268273619041134947617959515042585380286074393851070586439569530118342278236355559199505447743339623165159496929249004271372688308439971486424865008597973189878834317452546331667775479274776753632643768644123176389650263609639136992743937488285535532963608375186093522313985748999073046772041378375846661317581930003046685421881869553113220529372744651041056596007551612162026830590998983366049115784083087458971498525955698075797164582026063507823260495283864009609421066253180452565158291772082297920902805037128976806326367646223170813911981913140952546456761672126256988088687919270884488266445723925848891222558589592889352951755215200825061302718297988409496792374154247045124362030377840735182713385334338606984348706152694416277486229810868808673753204867650051456553915224985485754555249828608773377334825546266813444807733870653279388838230385281703728298283603659076850492359107699232111940898015655201932161932693180371339975187971546729141569520497347761880917260332733641106667234273351659303666340825163101153435539868323204561850735548202693075075253383196424221225995416688274914048253286324133478282081774561473396335475730492481606297740730000656205601842683284471266081593145590428669020962689673386968530954262359865978236757884880548322712930540936804095844904274962565244029010115476943045822057529500764847714547498077117237560901756658193726569828661641506688237690652527923426784867334240005236604207646054468759326267471796047177603117966223685960709293601778291000680208672736681128025645041109364399582884004418368623921424819227011748971070199871901151142226135749528127173347586508842756797753954909965615827000465915006105028748097710365212081064578276738504222032183869908415311082201190092360437844181020076999055101271882717978154194198301787080123184109151642025487847837003374860432245090589897900957983206925313397601809487519820729928663396113466756193226180288811053378693084009178004293625183926949230795084547953910109304808293928852616195655044782861455264617891959694574858029462374328524395349510022245117425797692331967600724612574729634051893938753336818228146301906352096344535477137012624306073282304124175415229700636915998347316223857681822911312417330634646787475482865661832261137920697604484139267273275780652559577461957956130755750723346782083212413288290644736848888210210147834846942558586208569912766740305454284143779771466573716063860432497551462086979223951387052393394767225011833839628202898274236148636111712689343900265998722672916653151174640744269760107769341978377553158973406487250085610055623798275314180823538747028273290330403667127561551353056517300652958476052852108064914717938960735851182898687390857821526838532966684577935324705413747392326451868409784044948104478885683549725888182447888804455393416671397326066296671770146512497299267408860332246639287070568950808186800036547089650474787183435558165320074552086437646227273749019613603761889557287368957272932157871239683055271754027096968702892283137715323483086921776928585463934011672311563071153804670559559916309660478770405430240785361397477649134507567528431373790995266968252747516513091172865682110427781625677475621080132941776075211337860069952674068749585737503371967485358390365371088197495570672416296868599067645958618688498192730802389936912242829478313738832967748400437811087536084176323785908896707944348235623795468088495236200084547112985756554291369756325043264966321044747886728087491942335258807518151290149527895083522269764998641958552857119676639720932410879321187249226513348226384411889187097830562027047233283140428852041006839652474666780667137953136741057448941997729980743826256129710493715580715377048768008262166296435643270963833730892981684554921312937506572097130496905259968263599008375851560437768227757629664643664763890578262647212293714408341896734397130307410456255158411361367609929529024848522736861597984986710930320468419091541334754075581257160146233368650592015950571751718156506279459913135718278902583826140040157147177613500481511466497266677142360904936056320933709744207220308175710794353786683468026566878276413606301926663960233311562994771812544813048288938296977860169207409078569177101709745635190500652721493642578160991078039516996427939625353074067676580636715889145042067614448823908554740556715506090556964570447245446599111846703287371873529476833166943856842082904271755435484566383702347365630641354119813722478283735938774751930426139230198568403657513023332642794419414662933993053318993475665208487132529770498275353432300435998227965962105999937623464083579700246994073589658871014011950925853691687980298755992015127255804019763145106614095234502352713383898349866247657486334981736737314306489936521222251059400115032413030228682181981099433018571082424813673352562708261773466330262554483784413579809312649365979734147530490465135016644140811449227363298655091922911846723781905805998628743281758227464869104397025632379061110561871881221939717841837484285944327041183835740450208017597591656755579229145894354543243688012781309495707783646532431072412899689413238641915043839024477976397277867619584722385673323772394111116669726136210288246732342706049785580349292218833602986217416628526585385560793140562488355721497986924842328273310317460869543624568099109856065912407822987315517951157366480791085355757329596697880055908733796275153827785590931739855401389683328839958519064859127831634985979603223556695027015928718779841345753944889795593466881176141247330296617667006231040143818625778858324515265602680145898708021097728237435677839507230217706789003291178280161604840207092367889209134413211723006813882835631471172561138865623895571873676473410110395980559772396579235922924460897764085579333596071477027299594952869974292102025469906495889798043010430485447713482192416422624974882158767933245321047222872908675778085751650113573611233429965818091338639736731554492235501988672118050137934750015136320480709981177730056323387696925985779602557954718891885067357161662428226234241428135160511466080174363523853939454137532649667668488263611021361767865390965698018223528797341030147963727766659213320290170972988586774674655171173913246826022562106624955473666384437977551166166624368792117561290206901299237249035832258497778879951122462089117584043717278547584990812421406052244369687519295401544545278563830327778063383851340450821145143820958405985010735967263258078082189227121543720419941851845461145283518845920731223714860747576811691936461961879083116692757172735277307345442007373933286692163883965140604401528326852472805677119127769971656882502098547075680386714223470317528785723149646524416898558126047862445023443625436745777192652070022672618970280167243515163568122278045410403399575651374462395683129366582675575189698997064150376584798752412256353032203286930396291673902853622799676646489033083893982148924588909746194866629254895240013215848334642844502658406409364853457845415432041776884695933341275994665796323821968355752068217127735794186878162975774042494696257242948509508719582440339858459259816107973850577615627687501528114963867290708717640819569553264611165236961239045929543098707672274259426231282988712509965007991699102983293882847374524616977008738508948009102029711618994275661052496729497807117413622448279152710185805104294001485996817219761291130881131994903939087911372962005800892191308343548564617532813524576754539071894661661593254803294781521328949381088367541117840588317570643602309306904903388519351317017983478848822233472114207264155798626627773826840916040179085819422341883112274474148455886053618613448871186842629055896242669640796894428212812126311633284609367492037620333942441827456679601804434624394668865258342496821703704258430144407368376277465744305140888684504005637939224635147047732136328637344674998954745122097146095316178109114911634635079581222493730010440719209979957555359069637108481857075422154566623417762946797068047136447807994483849937029718801881638077376503927749713357345930508795889034522861267533953084970776463417111316316181660488298890918060691924741649132636292190254057745219567092808783018660099515054665043622780433211716423279426899717283814794621667181553354720079438743935588557862280216378427648055834917368506434192799391639696255403301190675291336634187143960106248555844742408183838236673920945653158365420971942854261702576205452432561144926001384996628283131834699525127764245219785320046001601807909180439094671067109798744480725997051692319313002560862322958526104644116608418537417678597071467394826350869923336732430742716553256604520706375973480201862603273799837596321229465166940742274102074074376102183321331001007121964092749804450335276906651392057093750626482708593581151001316010827594004890635875395321787224978551685833417029429559705156920412781801967560043374688421291193927055007012558313889763577371358968023638111915760323087525615667329225139145101483627253926776481080641848512850440869185649661500204889122875297210335759091228798959105711129723804669868746336509418213526291657211519557968003914604670358334568688197733431046568261953835685288919302680956060893030955399563463202514799171770116083718809325062114220810681372504415800535865500048439249615232749903369099238500879588644583469145397295355734078995560203684322089806577355514575693057763854921924666978353685374880941191207249877551235611204063117820960152139302316481946881559263398284407085340761327125441216963344219948906061526228636442203140361107039769286240380804347842273620514890654159053148211275695788353066474684139541515168707120417718282438250417631553557493130013961060680598461626994579281986455013253727557263184270688433901469784653523788247872638743001795359053867847609751963771828092549848164647043813745769453250451853729908905292599139655720439026466327506243943383193500948134887536872150684342367776498572995012683888261696416010408915296589971775816073001515105302694155191062859981538125444455009348885407288611633864920923518834062423695492010830717309944978403059050200097293467132164931785172008148759081736679881674666652517686539172326608791887053915854486676508009024496092782004966984443933886306683826811052225794396185382254530224542725665285460382268732931271457223421655259895170215153358724794917526240815931475970731279666183787820960042925771099706925088337085219585921558761088135178612418312036343262300762559447392494907111960731219307966953747530857420538505757189934846154380867258089295522590680596410264646468665968065598990744326539284402155273487930040230068670676703436080598665806759653678387195049127335728804475437913968004233274379665809991855199332938309646130332679247210418090032732942451412124338119244701826670727499372597290276016071249829547816678132915211336921242377169958231386063640180059105423894736932530602397340755792678993341237457921285218178956355945883436877331225646998325976065757858806165774977997667790157770413654879822908051132311198757312833075884338321185444467289423270314426073100786624626140574227998612701870033615587677064080368875631146041627137886244830878439482360274876339516809768247533500210300470991586183864061670937167240654579736022038605216286005018721867988850652972549939342739490250208922938890638829783143722490406332576808466743548435344237778199623791097445429319832354060143800330248161602380906378442374451855715333528683041101171367334333461058330094868220220558056655010525033732144464985321003332514986336500901770355303007183255519240202392628144627628995975667604450138949017336154373471878601679509036181601354997411702810735677369200983953150411920240011534656122102067164642724565878522403799561953845442746117088860063715141108084941901451268366415660631309463011591941262435691623774313482214100319881454475663429183464346713184267342975451576162890145754547777945880718879530626770047951734363068325758708697595230727716520128733947564930403615355081625277778173323856935801945973100169584767159145040686818894141594078958145509454738442750140056715437266108822624605000384069328406841736493753465812681656935176120515348005739479275763837720598923047684852719416575011673929627466942561318214711752629568214756754286238824232127545264176843713455221225327946834747998859848645003065379040765349257422953206909787851520449389171477607519338473556708369435632775456639980808720304727600553928142040578939225942824610958833579279245813826304905946083164172635977378126141419031877948864830324996383102226554141092525641012792369843901992449864985327793516747958887377564925402685332624237261317939054907061955495230495005972243409352013757448714817966535900903653291499118398848372973755666627235899270835240494422997191067532659319318022133658999650218247420104006562063585637836780415983178013076146961762089765737313970089580148533547425737688143275228007735330939834033520120622219951571672672374212618981509509451828713322260616218951826728824413977015910319303804148167896680876362590288955083000500984833837946877099126333117681589245956772773833067342289579333322821219890661098256265674020095898263789951998810267422817360216389797776307329780033221790078515697198283190443181997621949430562085040209046403017953536014727133770397954798119119462310248470221320179333572866262865164813278026438829885073855656416411327906868187593461003173340441332784216533175582607023178980659401152518185420446610832812932110816938087750975769996932380885449286801532709318754094800941552805694352029293951811259522716585003271315302554161626295979290285957932595427509082495318287196873653244250052959453379962441691960478850046806279114151838268408005540443559513972431615481019710289602457521962957666435070808376141671034394557503951621409213603136059149606796274208764525760651359155683456432979980352631564387105929827858292856026614928111388605818749852283458884091068965274729882692929603582292547971133830676392911933122232203966097994353346084176012729030432365342637560002374928270427104092880473971650157942191370144244327253395075023458003344581810698288104491542656722873753166420113129263202402321504277117381272364944908702636072860990884835296033780176250687995054474127070637456558953848137596439880615438234805669925373404579018645114186440578577705505297787983160940154953888015304120865595193439676946987101693968966988339181487851132434050102018754896724253727642591507568991239883333886139437825474386570108670979877100829038670976523088883535505063007975842251557976134763143365955561511746172923749334987292938043225038329234552403279849856936191464935641509474956777678494276174038735616172196433764438251492201610573894988010872638247712312404017347664389744002407891307116561885979350575051468692596968359410965170201536802912825075739402122669582290055099606654725065471133880290210455428731073246334871622961017253959424365542406241891941188447422446040864009823689061715289142358640858597693420212732936949339835341521586508762274594571190154945038957419573739282600238181596500469097437675545097231364422621605054454496918429609555761309670209408621102123418005088352055009965307261212599106841027237778922236921663097059818297171729341396737594560114443148608093958387316491411692312082714910876931470293336839895829654928688233027746794685804050170102374430062894977853513187843602494087329058091781381392222146655387911499443976116580125689262279413653792177188172863524643191151398431654258158350024500717097601195954563130588600139425819797265508891293777243418958164138260535229410228500795707802548669365524127704121609015276748426657888123209113629202370181291882367822644315344798286617373572526478737846649063169291042621562717624968073683981745106655220820249649976229081078884785947591274277177366897368129254817982594873603842394896755997616281868234954011337913848616800577487807943476210643158543754623818581676722977780504289459072395169489744720881629399583281921707556162474306374894430942476251502489769681498768228139071494454165980502082094481694111626996017550791479350028363497977826208328540735249038163499881260647759806446143939371844327784703200558471497054661227964076586031542405776651779920592237735136181950948442790591834363100630676878374770336762271399018880354209717719102255708953595410757914324411592831292726852577528463568957212985849712570693446947254068615506716717369085682040237705262941559263655976308727026971451995624497373896018217564060785520349674240246543970895707779752975978318485230103828014351123286718101897209903086669663762173133290472812858952634720398130717386993143737351338770552006415159047279504318592515929981639801210468579749767907836582312783618816513283467865569966801002781762254228521271640593152340341780239719736808744980563794446899661796844904005807251220965460473175660213024678388353759431091965834980920040755724966348434808467453821667836268158127811454197332569218926137126758834902036425510333362378777552487829814140010956599931520932402720017150917941758154133764967400687985162757050138149828495082154645678858913714491803894534043953361780516558513963707116960892564998594448026568509966069531211324048154120892893214113729334207168458011014650394962916924062715527718114794343533677928027805445880264829032235385955931289956053160209687560108098823019665545853206899676583598742719479926082235799456902400055938028841110127263230905401278289193593137110079019852896189365685840198578596252678356127241909705441217415025162421554122627595109460604090418893713710645689366545106728387638273266998538775629523832555757342629997725036819632985290000753281723999675135203432703910336730751965948557313443099772016557905385436463568307550925662075227738763255393350185415018980849612963742789920356397748337790290723679266168329981273247659487663687115182817550433116594887051330719348247512440653319470087604396792946612718983261159312451585416459886765612494022082588960779735666637330208561742374933176025364281041970423028577938548874745829951141220006980516523115163658163874022427263638260939485767326036490733883998666631036786894870713113133439952350625427308832944618302113895740066106584722812224251694267750066280038361078031548046420388769947898366286667988495670105206602458583942201504857137671876584948206792232166219846410548074306642482798471186608247060932039460203402813786291121809156907082846775215475337279771355305609691186602058459047731370759133450534209815078909581841722706128235894821254704264567781985727653774108373976291619574384593977960500840447558455364307599923800352446950270001955459816822182315176760877499166534191792731709626321708977033205425929052266596498379535021272678865239131500864208546588318597466516661389457682948614991034280374268983381695131164475978499377525667339838551244448970154526492178393409880186745537342197973046029936039035219343660348047667264363919343157052950861796435605232672972673288148958464792926098582177359983627533936994334528303521127943596182495311862202477301512195638001759335738008178046617594867168418805595494702964225520642949721500541427476412402028959373291029109725152778259703171370379700423879443496089496666788321049332628979645329566364592052512229108608729689520821478748662258280999273996449523480846180112365060229325056962973822181796863104476718991091488745721425552356635136944105674454135121550407243670954461317983619836029556146342026687319568495087552380736597598203786238772740412125319030237724550500779265246279615227334804573641943198589568609590041807642454878135027414619354872909840815805175662930893706714748177505943032870750287015135181707501663463328700399187947973968208653399731044226406553008179027447451726918174153723400725839081107046483875424373112362978339941741093168641740830689706341123054050941229962159133032073127373146282121026244135695447053025485813242424683198419916333432755829294615049897383154767901200974169474070434675276104512931856265900690254570068877055417969224814783788623245418038644412249294884164311154254037120410792052638301579810966511600469526607185760694201940812004015834132600791347129753316312447593952010272148089677343763140792242035469609953600071908907560667728990959805105232759294707246293673652712908771461118627571343541179660785307930893351398188985115381554901785473944290889254971900265801300714751499402871420025613744297403344373680084354894444109993091584242425184063867984166839192585386416608962815716045497030259233389042071069641463364805512710700752034674796158183615322508577214501192780010837095582489287127497036273162364144743419100889557888200487135913491650619724356036206344409066303364900399260908822119883960355423650285628197552790901932633900193984132495877434857658646232038217330836328459644415006682260844566763220495942645039757496938135424355653908735475905867351530589850481908529172262287708298732448284785441924580262793120597574119779245933413933463482861663508131999519707976039925530610852934815397640384531621888325988111472865389675264204346619852133555853905274233099961880626097933078933674523354247350197729871548707452467849599932032050596576511892190841659001268231727789433717620789740541700645743581472450842631514836564186591676164132536200447661757770340573042817281159079565568472301748824949619009476363901136999537272238204120896930508111894248471537283049720085613757352804233649210486227226229199174954977723119513368085100457673602769376012658000398414773590615888875931142264048457455867537993151278187318203477823062270676615486706297822165925367888809985401291548255427426248450841705666059414812505420152664427772168366193821574299039684673757997045757036932328184156083255940283112783787556531574350255513445123067997248372351630498465387859371276055391900094906629398088596349168693689592209898779989631857520948574483471725790334005125286415012501773640489796829894792235708657404648650630989132041595049285496118575402249738364216672056777132821367145969093319967495482830498758790959681723888185741128733847955473690403059015033711889303333340216959077598038774138035988129411114913044959535342811110090067610790225305379386081076290446364059389845116939068506934133713664416168023486713782788063152800643339850899233210441664784165602878564046390001380970236233326894564242995855837368649781528401722304552246637767941904233186945623974407892751527349870572656440661478673708547946800262823238159287828146958270562411026852176904273147947050182376463947793875004042419436645378242066094537298775026216921151401441689186769111099827468445467395562092870186841752520830642436986623722894326157352775003337034116295502914405580592980394825913266906125196524728056237021151903914115462944214545058282509515884450329895291809958251240549628407260419883876764433972729047351038017817705968907134148034610943308220608933063992473233193890841846594914219862650275318437937807508252784054901514508661245170647175113843994288863288294925216346603966179713143498081135652369407300070959915759030980029079033321316528648813411271667982518358596901376671093939487720114499038544007426552237473741135982029310026390608854265808309385082745375204284357315358545443615004083541296849152937245074358868044541265341309714797574990824449723452369792996630359509923983575281746607921571276693208362462284225369772130141690332380965334499455625395186812044986466926005824597288931466998018172880486752112667118130421401163070864425816987978020775484663349203830331979926047153366741891411593297338577090250382639701541699305966099648713778511721740737313864273103899193122612635761360695486824118723485264370404770716188064812501082021039555196142247521300518617036418976902243247225209381879529565060239128887707905719090553565710201727361354519826760641958554601361547273474748299022028391588900189408876980910830689006648753914364231499377561226273500244324452432790985765384751894171063172699360277112611170002051257206721275680539471643713836712661933163977583467026221097141148381797737635109771709629256555258125112005460474910531637561277959104195757515662742500434808843442330205442084203027817829362104288296733146060592853862856111655956416881561023775793187542964435612329483638970997624232149482136988381498809670712379912347064112261657376566666656270845596686525536609624601768383731633285843792634409503951717155194424817293130864855031486610869618029877427548048019319990996172046868803421455189547517130183889473202220800620111782180646240542886631352892490244570161859168331639576880774724676164757380752500987114188850512879865051136972972661667945061801029153509071805772771784403272438033487374232953376024074641952851586127537923866709863605769695093109418430001231917692428491499049492138292490450902514221561435768048717151644855152409441634927769197651708578551091276307178746624988281126081684617773268485327195160894155164019005066311500905279577046215714069689257179042430776417913732958202217282998488392169353581599603793454369307491111848885515383531718423780813577865781077680698539800924947439199917898139150561117707908358701460652234785994315550715387866129213819002592747292726179521836373297064815434370077837698572623757173627170108665017665342448644866948935289047461897419051637266444852462291363716601717697142235744454656632425828988586137548881518297455494524092406255933310319841625195186979648228733428970026425187503698626296628460637422758713447322521866877660777666623245052281230861604426226764228249118863395290827077345381371531861552351429529036035724143743246035908493275748947550912829051919715830420108507616080487180555295660248531350937392096665909511756145960184316139868871581772059331667054894455914914146311890508523754693047109218087164888725983943303318130814157203231647302232698139708692445617809375942589374625459250751947232445431475567313784860976402873880566202325075407869113717717299090136692464321668023488025068884746765248514500184826048574496209642998218961827356396636448359690042031504054339519043601864063727987065225706055507565288869766478393703571013652900433174897881779353680449981619343909985572491169733624488216159215879567748781677794221821111158715839505030739586915245459486735869566742935140619020873264188470824054783411452425554968046662011684980740041924997492582463097212323295357448793128078636862891845251332995039491193900575686221966482984519386408421166119998964195297630169836381829271620876183719029068687374600499065499009472854694377900540460571241255486807019577016059754387888832965131727074229310483958962866717117869582020788188806824864377856810506714855865862168740377219793500532753878039621266353237052011481201332600565664180237815093939817422334844371456172564902085453614475110211536172527454088294985895337386954486766072962990640121394286985820702934048230652878318861455589753146172667170942922541898832444016396538620565637544073911610905044969624904136751007357796772865805985282855735221293713581190652538627823884613296296341763340656185125798952879241945820273044668149815211393289701450831795902022210985546729586602477807626471319874495776183546263461715944584009304849740395737901487549883125813217153553871804159169284958079533778031093894339876956031980495177758705480870657349276297918093158841748986422090371492263964744118209703225699839820061018326796480126170070864456952911405593297133555887567128158793461539917135688041506033287801387270431141270311419792600772049792157410165630332722303012293637815324010936718189984614664973420205523736598270702821706742576160381463672792973134395317143864628475791419359808858220353570874466530671580084648230186693087499985746087486937950253290416449859069171713627856930204543715283947380043834154509722391872689856401197691323075432687924334284649772542214831282299175583068114864266193006567191234956425075171228698610038786462219186380369745700725366221713366475461153281331786687933481066017504665327949288277667384026149688428550788208233635001541563005829508847859418468949551514460565102119306010629867368613542396146236562729808759713926007592251919467790681317026525329669278665413414391314620209684075471251440108753747291727921981259449651432923647266164128913127913947696932547225271630646200911049999496435218519696150452123082160470225362795760488693548959991997744041478874530875189723892203742002243050323438568524928262592123983110385142089260436317547117512902048053414084503755726520361215038387917894507474486799466939282036905698528141199333740543402739704388441562293752026560859056187101560150678057345477674272722014953132280380506615265946208259583056175506792450064171778395606348126804227456528715560143534231174713845958191112681293699243245791832830639017977380007165504316601813171272921768241989059611071396717330697441198068583419339493596861217452857241988946518322844302049009576046774582079388061667718290165990856483120448279573304212169346120044619056045204323820811903343454005893484978875211682606121566883627016281341827430611656265037785041090569670124816004957675238347268343267466995472406506687248173268228770585556818273171904949663901473459159389655006260952346196332713573144864150552342697119515423534630382675816201674782885275851632549515214924243579787359148083211512551915919678173976581113005079822631076192024972701088978108217320308775206164796703766572163658084614515850301055678564751144235384310627732728139710500022871874631371446378595738090262075496614529126990276915368446666684379799962661357009108258896103563091757160101436389867262315305357819419215260797533505760319475193264145335011765531213939193724575447260344705197848354281875594238463668308014756905570115726461901476208186321087252514795541509008976889572280791714672091996825212970981041179655004729275922339264586775337796503846854846956702107701332172134509646138118652486770252980801684924686171931170748716312140568281839790562307502936300837512694894640248137579490561808119027108390952339480143474999025953299979142011477169124137989882362531825359935161222100265139320489118617037076235151365424254128198931840801638993915975955662542934767602033684720413824091019186271748577871987715006225335409778013246606893263817195081515545839176341750025455703557616856285745462506550136468315341759288260964432287383025358403273904532681089088810608289859033594929728108747552163296523069390645756973206486005793901765862417303185146661180855501407218030592706491962402603886979711821728088760994066100675916554304830843642719981866941344584151732959733348812869253821834372822656475844894065163994215593802146332150943079953217115256057235930616304214881177587297318197004323886780821165457593281441484041221607534285481624895230122743824132047965273020125164620262551654952780279604123185948479418911593890784617081973512236030775399816369351999870382890475331972323386929130538830213423442707086163667677469507085137642794667355825041886642118553243340717567726878021958941438739133196548271956996196339015256158292609368335894850682401278355490780251759783747455936612359419060814524612039384561018715678805681609717034835778103967524188764405073639722889860378164016715563352042431327024595646443246183724379754090333614464168803650907723602707424659877458812743996461086921246780644868003000715179265922290708673634126613624493446455880834490296438061133786374501720181683225453684723840483548368394184335225552288086266888113669244319956165511022021348909083959889665170888240237650364248534902323266359865722715935252104228728754578556098396025992084973188407691360849384373035872872802045980317688949370365300850303505811836692270075952756200666022206110451171422819654728845727913004005899899163863803666265113029439888479322490605147640265706516491762902316695558470024117071601476765775163115449454445561930623789818821456557985431163710623513905949940257460582286202040788652180654087271682421412180295405782685291655032365378608664251632043031383383504938572951471451406305327345705220830144691170485233899592132702207725838254331909977424549763462049037747595936852890258107754034804397091321324021203452204008835276412884309541112623727359911218629503290399873639141331382215890845962661987731771219177059629466124004674333034360531852632833254983679866513161707560412196262329761128457909481205059530390529696326985444651287906040809069293672884565562341987507195159665108308724668319098062030316095300541357947208910911763059429672590823578894756110729518636607069427588658186712928561009361104013963053415400747319420898917937876086294934209881043674753845212618983431466317325599787661670369683822206127623620842915725053470387994272195896445637534663350851974347737222370087245720584404969546303497202999514345346748837039750225107271442179495839911256323566148962095344055319294427582633179047820639480232770099447531823928488258124513632017060126056275991571977139639832213996723628032944830023445086233502426754916789520243079068486267502471619081737856168179105513884880237584457385991085830322338951602176860928102250141109438017895015476183483162702967636379374879480641090238991681088678413371363319504851437867941278377237813661253652672987780569773730143798058732146410323159441363122780918826415711347264618003277804524349174754299741124062306100581788529578200684177890076876404121643365254465955103318197164177809681788240565526598824654326648311688324939431898235851899310956867575921737927057256735888599497221079392153831877758471500263557988937619873482297982011684354401115612032929777505827440207414277622214663231383627986453282568030661119993981422545800950941244516595362260303500967841077890575725322209047594922403387444601636852326344877604531431336445075889131553254426199336700777531532486937035759048943580783314102014872675145736380727769589151821080727542866791980789595031096677073927497395173586773411180323380276416731613631781425058140983490107409670898204867706932887285702546392161264486715402257810836084537893190595040444959162641004264719304040747705344862174778294708835374437795285597540328597294086026174631198721275091077814170833550915086688470321757024985323678022741869561422408395544716513694875952358891422738788949259494596520554874370248270447735445138484264539062244076836636729258745739249818504249187145515272004429973518389212529863508148236756089120512516852498595842532984427890692135885587086931429419680588078713047741529418826430581579287070011537344714831225606732772282053117348011016523200573251532028817213726878058083297621617131892725081861868667401628490276477995564798294189402221026228065133169536804199306147659770987832825297021191849511800834378810914099917970725308214958162292765054813682522300971130732820444370043912677976222956847424146721957075226903590078706476676005103548196313826001536049001703427875983023214119587754624155475670327970069592497339274165060766566784157872867674966569338934694291177178448341640345989667223907653414066168266468699153122662622310653637170110140665843450866642951524649186408138339032794310628138049813083454777585523742527085193718342192361151258518794425195768112624711674141331830793333527005304166781425435307744698933551279319155111395450241787841285259776600923217008821560381371345356554987104516006583700954702276679767561875716800836386427452401372243189463216863741408777212344819664210214466552150715410145405027383133769637373709210550285814716082605122803590156242957587586928633713140034750216786642411798510083378777759832666681767732359816460001851766091859837925819648082876262936902821857829445146523802088271599806467229619487424739129335790584997874926902488608066749131428217056212622410103122511087465763255913227954821526824042037354390878808313048533533848273899878314229424291990321989029866013215125668484685843457719634711215185721479045420012135152605743749722120672543390196737295657000627313776982300629059981792423007513102839728670358408431162634197962932381567301325078325404510404753751838307018793963321337840963428845897641634242601043240525935153850021282534837641727518059044489581144740156754890463359323729696434616225520116000670686079191778703586300029128010632925159119452841591819086448810761306022558147094676377675665667312047288181899627361542515456595861519359966008192404649729740238536604220474820939970221597475472942162484325599891651264063974416821782209231860068271754991335440306254262426542069367957294336761241336677711303787141574025830209244664125038488608847391096890290330554869889132167456685714417422377861809628569380371299283972659734385793944040606197510964597596457228234525244416202307056136131940761972312438805362309174656676636125965548252178216454062382221663463105967366311724552382042651969249806958038477298338934349124907470276883799780191768405864099190248694758607924967119983022761075814782111116247087672131011139517432625511522137073104541978120257604809493104510595582027437212642899185410336397961030034778109784282669103018812938230842828695464512343675406724377688542567163244561879383291338830903677163257880117530132546727554348179299178476147391623149635438260772787756380854449564950586298723867168310212244489241579113928477908570638047449648951204784993423688210991369300455339255188211704128550560024916852807066572246925195652602748743922891817402501385904240304251977450160514624884773171772493450027985029863107343306331918841626357455477597355689472349455459458872006510725301131040993342701741859527359914943473017647196622669166716787310467382356610332531232511852903414573910832234100800729970940874955921334370868387210627749615580905468147167751994232745235645180175167539273295883202561737268458445927472854450292462685347050388346934637225482481738088537503369745998659163478854342190103633823294723668557980404654899499408442651073902390919139526479908304460781018956074573397357091519027185522250737261142703987990345322802584088532715475061626781438068893774807125709309998281181632064637929577563493288064453018046801952513183586441132926807136778692315530500072073027409849145107060331453429393253881383742247936955199403827777887734036633289302021291294342245946792220885609958165281416538782170620083603318634571298504000529823488808119297471256062593749972824721733615435695724740602412774714673794968722497534648344377550488075829730033658813119722757971778325559558701783123030484331469504693857903349230214637330827800918953782831307187075108353844063679394588800048758534115245407529458890902990554902825836139873054544709860795775285422426732128117130731364301018163176992507534826497978808064546837392146416068543125555665568169050053216534381147442914329298999054827383626274435713782920918500334596348594765825416392099484166452939771362951722257207171474532706724766674211264956075789312025621966716787173233529783442712784936633149152370607148092410888237697810601181240752511025022707448187251295515196961147554650217888520106568561826624322352803399750947723378359290186844404558433326530114538387655682333613951569221586149048450858364034920066050452245000370302473735519974820346993622049815453294316271323049972476653906785505890355022220569983403119832410338016396238089626925129326843984353612692572196684757029562101778348812750163788724567354387186712943972698152611724959182764146060161231985930737642521169472485206373578582630503689915551788878994191092687891005528743655983650264096055800408680210429160620150401030691592047186936891601799839993811218065831967145264925652071304054413051126960303399372438952678345631952747834713168038395459059672491324192192156185139256435993848200963068916158482593973173129244945260656920823494915664976447569753606404178243458568532162588396100862656261729019863137294543101307234640590437940534149979105061277585176039298608005348106586029696524076938671557032885744926335023963636534032561167332544829228489224299217327085021362249722031272124729738274834081786118913927351137034792590083169392322548426879029325579424115866908197306957497500721244375415171985879193738761120345053818572808846990232393083831705669699494766267476528260241836601898787648019548094242821562902568700358261457678370142824402707925889446160186740974669466224855670388971538556305994305336812156902405472639795704721421749103528480812595928622922892298648018841418185940842949963193387127936485661135091986311377878544802582105607544724879923602811141881449366918165085717653349938116501735818224215844398210765610727998874451812081325159915401354363695652667265585473581839822100447099710472571392579279442071190412652629585852364421272229025335990252415552238423494427357185859778773472373132614151827445585258245134577214459976517324949975215964098784671242831524360424846028260512615653043159535825545599563799571957035467076132561271061168126766877271317589116989375478380910787465834186611104195089302975538232861555199175823558740955153009023656830748678133691119420495742379703994155318220597491675246548666257236868211377742139427106092651098875060699481232252886290825958496600836116806828412179787639197040206953873870960150729380431287525760253891545176042598210618677027770659417724515503612756388436881618596309486264395774924582488011716788279294556687058380145313621128253245177201080746877656469727431665192553008315146163126354941834936048435998614991922997038472639937831531979140071881842054060500406207248680780787862905299358869957192576217752765828087642578849098057947059351170033052721858856038954861066111229336904578068017191333947380757247656035402857151844118697146790583435709286983526453062494119953759916755414383408253319278179813537297639193328988024792839712365422805712947252729462629634412947256806622124747146469606257602113148170018937466300130736759362473397018350059075835791293079205616147594680572984997102987881404782549390187459585768282039795149047228744203658502650904983820811702589835192026088022782110306489200486813160760380917326418938456931876592138240962003611975234184371454743347302362534367531118042197245167201255804989259501889652547691463035685771431336683049562956118040885149171893018586368620666848748344398688876948498816521324175519485328017952426121348098769381688296310794432544645952278005729309974848967219952874181027703965823338605577317050231689454982761067631726728913573138763259947678018532740614904519815985011470639062819149987875114097263483084702077484441722732704749952018317042305876335329828725696430374967367723277877055307774106825967606412458716499445267194282901983519872201343543004380769745319621277598290608366507780885084308349473712241909514536322690282837576133622047915575347662215169509565674110631122328646170113708319301436020139659077069894668465896573821349581844511391895275671717473845005792731655621384144111466549457917967112830920061011104442942740890896354751355124304901853750891974984226330766516263662248780796667877519956362266553021519775079473780166183138491888330905531314403817347694815799723749172801449543524281221183716621937028739124731237480069490093291604303777426407330873704953645129536206046562783475721051655149265994541270563121159621284652491953159593361617203762172544966168698774990403289243431749646959491374078508925798933666823311698795541261916348042946485477590683272767416690661984832218448910897651241169811449322129157639910231121982489229900439701723636320826281353375820113845208061197916671201384072254455921812360754576675072416045480341765855008718883146418550199922369012177386041675625143300504072141164344171942746504152946703476233652796845996439449655022818863244574473172300102084949446506995943661335502566497281000172770257290956220198946166476265213782385223096531491560602700608556724146543143543367196260881945026944295278313212987726124162979888875680829033413974237167112212540805518805524587829187452864710744027609962868251701333680746981267257687111939032040193212167858224320958879503533402873016652989031394888146771548096277371431679390063129017870589717024896001974803927833563506024027259593666522624609335527731468182243445418298121032996513543830743604272040137956897228499127139722769283417620388362746448079684680311576851147544383838235329821409230812918901804702635607869610061872059133806144818744420961545006905357833110597803436118438434431926663642987113975652736294279110535709634853632325276357306419381913562276347600569955434483994766055839539970618243641238780261166176605510935423307662871423601836097394616412755235120902317397977278770186670097971339935438021301469313416989780421174672491187573235708015730247725972615211334783186716804404317429930615728882385554465181925670718076781709796250291155344769034912219274544804021349402740926652270088634543377631285444816745124789635973268217690585982785232505845224772724803418416588661552220954029485024252763943443684410856736603695731772041100076605467376059248565576172597071006229243646903907643859016841454127696536042281032796911071666644230661788525660196181713029503249906989988670443806756021535925450389298450119878064913085382155466003559757348540433783713819081502341871387761562095290813858279916159260022563322524904433118977672754823042471834286651901757642278599390055770013535422746187438334681144403032594189315793285217873543104156201167017801453929041736094211622703304576675658652645003744087967014480861192792965213100006996241240115519101752109342714648679794610336791499435251095906172132023945096192886252083332363206711938664529134076390256109647878521011788999376077318858412869442089535379741465885989836633481396414330719965805152908237626821697479437704888333330867662244840391248826349933564531127965943980269541058993863231572838209484268008065152788166450161833034895621512600220961981678156084118344401335434927556610568087753508478970955256322224722048123542279063984880870431552780767527761886124163645165059910194163474963451631011190697907872272508917738926559742343101125169265844295611402801479975275384094958408871710793783118570534838068546001122572152825282357290363038458024869601792571073591978783924524937208743562181468588284260793690918900285421487305982475604093960193098670808412489875331721773586682808874602963000884921002403156259842715930883354556168946046455792416448854643125227142670557009829241982684912186306988326565436943343756525590630956396364351425559065347787603083134171109953481814397351045641152338367318020027286474337205817788588888911188402415512753642231720340166419296396991414590320327499997560694816338162997379121305299601708081479603200315274373428036608893639971264253582678259680482164227852110935488897761872211450450116671319728996620588410430251310536063766628404418845442652172066232124682347197830292359092341841355967236454028671187347185900925073783565689760525776506064526030938107443355670757977758804123003163675461853571067608400065629777283800148871944150497671299422535080949637657106837944566391538547052976210414968306020379636867271831891845664163174510636374357950119073746259196362395376677776947373239747941536659747168722223535954673034764181200394715041631490512459284290469966461670333955747925161610020768419020682155950077496847257995904166799487169128503051545312404730412461262749285893475081438938726348312408309290993628527499311727296887175620365187046581466704631929803708615887867026657508299207117319343010314518833709613001130006040422205482931938640056551805666926200751908495720351112873143828167379508657633168903994983303959818809251485300168588396868210083262563475451577617532682646959423414231006526800264982142186482466552878075461738553949652579548962249728902430158444356016666899816924649499187196809805486332156333030356103582458040546008028421148438287059433992985378719211011317641836320780660336320374212049618281735572638909901443454511010932329067287742596735134500849723739078375485086296594241176479313324782402226642119908598951182124875076358273853094301795339996118939049012954129899304768327522428388354229235520230196417174729494194357658252194716418430122759406209362894409983713282644821534965180879423617667699472690494847370747711694621399247533169038937254371788548912567063558876661956893524973621063767524469848776266151033713616850479891650958284785019361409590217708537795217180495707869401962826117068863512288966926314150710370514866781916204494306170619673176713267272368339917817130506296647552356311470758323212138288568142158595446822342428563292943922113610343688353819206718520245453525586128202154065946512806978234079119190636748790775811722297737989118509643381955444902095429521262960463814847451384631990391797556725687051465566329744102531109905148884451929444148833850053627392067618482779442449541041723034623873305169744078546896064782837214373546162168513343899124942254203591539751670535406220473013669724763747986112099804836716519039375493596852662958352360994911015295220588410063471296791227412561036100340735662589350103887846182755853702998172704490275648022701989988695771457000302671691139877455475065035965126247119961798532459122337122889268775436769624352278700780149708628668742885768609947603209341925656194610384052156856822121590854048171033705671231598935280428167062401774390566443525348789591323181268802095421914906034036906218752303203063722519960761482140533694773891981779868860081319448607403954404608736308760721777522375823357918133708783546003130222573091087980657090697293435540664597317663214928462490426874965315271241497641098922974871844549968912845289276361529959723310570381290411708432517826854243712901852119018112110012733093616929250771799988786398758872833201586293074417273130267062068018004841600988641976051718057937390808135441644059433441413032001258671787798470437868370207580778580904046489587931144017013139227867338805834515284535486450746134536635715794273915192572904543294581528239762265479904546922926030985939480908070219355790602649626988395928712422672046663496034620696374817687578142768913136149623742082133002565222918947110269897990321544029214996137504812804531210089216038007760801647793881945668501472919610442058862968309003851089512992561644335858515864358943355596793971774638121436779333308468627702438180156502359958887701386540451613157231813184108777059818879279892294347776240264670316787020938858915555639942520688706479019904485550147375369698988004272444227296817330589868302322775441174653884699151349138375299774540337709414650693783563562757920746762490889586762488957216789700475344059581013128353875675756265327034239491429162867779412972094512814173942388639401410332381914672602049196104666356263988280671665596333578596125691561946389087666171919788694577668253513465508589221633723958553185446678913979181767428141084000507928109954618882065095279743278336479489176321437718179321989374819409667735803676073659337315386256847861448652661701798683311340583732087920862956974781527235515352686591755995852660275621535624613246329588279650291707850493210503782735048319024796974640463977839697930685622488380548762646806296563545114811502598581567917047164055640602066556240667909953219359903062786147612105383647786223217094491881648819051301079769644839979728265550545636667048302334072788495828573477527853518754793738320143890266301831957077232926399817453058857780464950944070164961950741303596395636165325174077514971962650336462786908340691125394135532115027278701575142461967845734763321830891011711982720870011900085413358115759789148542131869021117077635598647432276706607401175960695916869501985630255823998736423241193715162857705658132010697993457619788577633624317391245055654439091867050721289100809004308387474909750926545225458801677817961135385160176235044225599810066461412665367734141923398747603771350665982131801048941680180047740162991848166949769119148424155402891746780983139202817049459473304148864359284559012617251860725320547866811023326410727439205695721517801881071102446834552850150945228728397694060409692436277090472883802800407745455636882660866735135100815955800877221135994300340018700086366719087490075667008865523535647783347865491373889784735261242682555210918267466380452302832942848255296398056044741151769690641714916459568665410328493247798639073420294881574021297141280518928212524556920504824426472050175003602504399951827794154750587437523356068683953188768085634893166071983276036445225320112443326400707020840263967024863501230202964345494545062050959536363758735390679010843913544743993602131506227428167216497082362842655214517268158907236489677966489817665374964321649160013367636653707902815616025804599240944885650579717638406187439079357863563788273016658293628734092983714445023693296907276297619818054072231683066651505326379805077865406351122267384119830867225289127631492142591620426802119481622655098479134584209002061084201657836623673456790832647799190424257810331442102660181130988721279420228678784968172568049290234257214985839177124808684664706651060637949250409109325704841117970678780430004781294424499191833540769299188024140919019195116855448257471438206196429653996061862236476574181841885310995096176312036110453323436966857144691018541121545938949204143780510405417282923477820977829657391532270172188889115751766183595284376998141733327530617199197146577241193303625046750180476668455858688406595884425079434236269826030384683483378187528831596283921637304328556395167382984435255245803443496776114885805003795338540813470394097753056001011457589014446469874530853443059678634119429690397977451419172107146375348199926990029793691155600634373975558971072784760396297922481819941900153994781279706655456082114097226147194574871168895658666397690398663354909277924354997792271649551516820290712214587085396070326408859137994477923698892821520337757771839662815289442508238941219000388978208092417516415173079060501963485990067819369311416882425374059379471092200243313456351759079648114275998956198432419093836693336372063661460686396728643050721992512404528367837299930808038679535443774176943461323277534604937252797490718406667497479237411264862159234144882042737975526566525773252049240652176726333392019554018751500729831576364344000687874693930367715401145918001652703462319495639111137000816540868068505866280986351983979640079672005963863418931175702257852465881882818390467665151403607520244830660579475848700630270518181296899329548353037033934957492002103856221287977328299735412961865808016777188650563877918663693057149947097414047783003610447824616231360673210377147721916354939881655513232233361803434141972113540562477964819398520100075708465492896671226478483555595075113913121202385804043216247347559490504742007658144321312959508229676247798543860279260108149007618133827886468006509197765254919475604433905144334470454685844297546199790487023556541663551522504855176429664105761636500511730477821938909369497275230448765147744389502477713327681036260534839982061453486395526383391746291205680274894388927978114667201520228536654980823553889743875030597657059109526290628268931050237109354211947523145010224108609674947611986774466212847161382062219918025272063455652837351826727966355109084450437175143964350946426219332020363558896839298030973137249689142862647902611423524306820326986524415163943204131619675377714576900840389136266752020893774584694016968545317856159749421018600236494583213084011262681034223654807120283605979832739898383116291566283362323367417279823589204793370788549470377624014586981859364330177757254178468170300177479880244224988321596066265522543224655068295107074839484153395464924830598542378267885880003544735905641789084526689271530917124111724596213041915433368444636418653158934629265316578679084618561119778283287760310849161247247814589277183172173743198770981461508336324276916161213597472527795338393403893817973254938213447707714594934621788171314514599017727126641545621375678419142423931098622133904538467156437126128141178135756996242612784260559954675953604457256364839998482473409817582374901529703422708376837739573388484045786519143278896832889948829471729283774508966267545488994673639001168367846156473275147549373025554077866883090877585067890061338447566708564431836894420335765420259244751024066964381279002579670935318560659445025679315257322209091787032482846162828492356454342228372448401698764552768685295205679423629275654877554022710195582766270069882135248712969855229445241930357802685725747191750285519014806097064116673154170710654595932726971535301613144472790079819503001806246762318479440610237778422303790438895160272372071627532986336828774895121843867307291781097520588259287018235496372577631055396091776249607874229406025047907495545151910295906529160650874749065349908141152697199406214636364564585432206663839454328182975533919596447087369014658886611311078764605049783998407826452317694558703399060686618725529953898875698438689321333054079668717343911646968257809222520814714185138175145355208718746216635720356105274933767911544163934478012598126761854220697075323457296302165312508452917002784975662836591866217999177800466580477704380118728336114241821680590286813986686632270553952637771536652284843003912449574968802529499678995801490513479471754443442382595765658910736614251701682560716160894226955209651043936184251920842237280876191691287727897175153186595290833112516121536684731445368386397475329015630318309239388095654889064529042544331517790294789769004707105042285263450704619014920123961323013015787657460997163195810932171227729715139162367343660747376254075082211621782793121279222031418613101255298917375267272010032110092066558281596297118309273634474186836801167456328823862731475408234721742322341186820463857072933903250195758208482322711194338522406244531302651275374320877945416405402049302364726400713290210526920239570470361247309155350368901455081708635352284942103335660369327985879879230986227741199214168122549338383953335007456487223281879476840073258272053268133737504662591579259217727617391300442441739012834243410101028369543404149076425101639073757492943444922419565744431923240703519725617376238300697637255479082527180451708379421001294756031365847493144950088270469201811581375753259032229527809053732073470440621144683579483561024641968386841552661411622405438801818914645603809209997565546713175607756736631444786061404944985503602562638278297262704691939411306821363417471531998296745812417999693797560728456083925705482123677923212797845463094442894876932278368184388391347197180300931201611722845800129684788715375025338077110532591730365899664981265549057114786872428975708398535914937227046230507500455924199861255590760000296142696079386037273117146832891435985858414861790203700735564260900407684360550686326806431526492628238404243298659149634940149545892813402950521548353417343138741003772137085951338399733223731024086541006521019721931508760564221088429904451098173569318671845034784437448776726075088756894771963979009717082882152027027471648080220439578528100901733122207111711305745197446846589506543036278001099620304965761902773899192835444780548671244872941058891410444566563264417081214547794767541743582766146488044970028104776740340034295900763563954610395576108370927926677971935254512705642442280701439594915092156238933671535389850676649192843369311493304989213362082564198053296978303788536490949743970826276081406043333828632476381452869986828817929747132951983301391039501583363607488136745192334575908304992691185850161405151891416603567046520182954010686805852162544441849458031826590721177516406433813877027517074641253023645475570143635233481798727329767894288683951797457649000659081408547516915090000977796715581639348067882360450605523966148955968280462360274119710194827622915380906259464564489075959956935577930156324112553539995641265368985649084767815370160906194188666822195763740621079884722291807111909136909617254758366094944401772178558249111604897417057145519268106549776748069374176638085790505352422920125360291488723453457860442406393626452090444571304558918317410067220887403879715726560742717855442057983019444845755898748320529643924788849855092371530544718706372302879219046459751334107309281656715134284375367766862211768285200999170940502026753572412415539701788510875915893288081433224250868720598072952179812336733089403903690472087437605748814632177056220557040887169213372598633666595750751051837218875548891689065398955647950880296177050128312577261857255032258261296358861194576707534069878768129082862502461534353079546507571180256193573869042992416599656482023966190462606393273703375062555824329409250251057403170902446195415643980178468047377687190766354523077828449226886346908773712828181999981689420767456103958112909091829723468136165780525454823292990306863140412894773078341453412938804173245167751998469036188890091640124386624673606420058859225871852628263914616046812104661530223601175105977072100190836159041500376833938110224066691624971650317218802719302848628730711365610065986976682285821269017110802471008723453592407059478442282661349601611210323047720635832974319502677585141348598194377874620963311747191604650688997956308675118411763578871012317280285098882906903011840725133068538459422401999378818277988215404449893869893572053340880742775762663257622683230772837200962114308522965630225299703114620469592796271288110387417157483764362860965750014780050721726583594452446320973888437771894431060657034698355810576342351482476383938025597443385203061823355242087302759981517828057247762246784538397367080538664409034920332530632219088241613944671893172973890077218784459206972355609069441168595429942799431349214614456016658266262317477837641544312845623126249540105423255307876316476187380020378321924212955052878804445073496769080649761613587746849074623764958471601853420794803476364927978551285013668579276012362538874853557240041790971460993426826431521311832810025258829908237965303737765191829624360232359210672554865595081081386681974381434703212065357905619735189314520444947112575081176348467348518560021285162495170493336320320167051705986696704122810765333596651363555604310597576216585010142107615567893531956550368245303925436423252338192129063337426826489383129520673822441506235535777480087024066434292756845485359707249786463304518679312478797202655032989986237568753133166487426626159944259981127992869334776691389600853843323792778478875047067780575577186399952812169134433761274106275923153930327143319342858901086227273874506768589668884917219082034463234424573796175684646587994352178047089499618091165358534282344900475239760111212558194286577915469183800119396192981290414590310549991276080161514471754653076066734305774052720280530837013390613255280027968987951461443751007049598748266021938455140765613699325530225339375612594818517138898051587576477360839050608026589657387886627015336284203921953828638185589279800785099947297734280025318800181978727840232341262566443908782445108907123596745405941906646621247906397552634431369128112072542078732057796438488784344589566615932298120068592127822849297047700557706835563575243251139924001939596990015396009371775123626080829714045316612927498375570430879512088067292525305825827233579981102029262393090142216378048176076722089708293773640083534772612493919891370140606019008949954554003196096214731876509440785924767988930945509942498847562462032149325821662570972910179315271327550391867045486452865765227663788198437058273967090024125190578094062050738403144250649818728567804083846525182571240458498301432657317181647525280755934456573015912870630499790945332487364627950229503548685363366057649157125959253580101845109196858817725435100544457255700871693831914300195375105371385645754926398926586046244091994577950416026501734252304357304313951553808530294194369886808264958179038872167189711015696426846153305185149895177799371189873232234377788458121682762429937228990052526105737477806773774101551156906896610742816451055030659182916961052917343114935414852045323349214463646638962264482696278770050040294947741145667144631057575510391030376055610255288497323674347924781053750009073884753332121658011643144469738698982336597300760255980952685970412728007414350281524305072358966814601325873258448788889587162737197930111399845626430153787967878554754525561138918904021689312300971494069584562006406528377877534769093426181670042914377558279794965364715605592961446806213986648965910081799304647101907792566366103058336432187706322481769484176812473755757420036104674800744450759915780122851223099441722518631880830300457602013388816558315964728857649668610611916806040194433810997743396367989739680049698686032150589634830941317095231723853736411281651882502548096740615351262317584453362375223049546484221627125973084769580628912020982304698210371600721613827428831164222881199893871023389134755849807669807975495993171915043419771016155449386378574634646911188518379487267053258165296904290585416788692604118011009631298639651269162289320144487295466808542108654250692061707049671180859793042120109357647380650641483893661516675766799035680575780694624177432210119804229402011281185332042527069871541463540278960405375420687607198230453818805559914952169262216883592789755050593806184611264093273558476521035068636225584916573081833499999658929242113621339134089805492328039533852836480066296266464796102832761920528155118206128138461548571363429006077807233507695470907666384183782234700345863806324531489646430788231428393296372294181896588446021208921475860673650560753576337904304685293734888542464368793230631257739366274254197631626429687314914806728753389846627046090288113004119790343868583905825224474106792072788195200062723906863734848866208597490758825905411276479975751989768080925201431948253821520412442734872155293279964242334408352659184914492230778297910767233039142239072404033772475381287760595085010364524195357615985191926316281326658905825369057019020090355761870076671435292722121860691169828052483915128939622996629174208854677943037661892713794336403616850150091816068527829896847867543168134937479572986544651198511029031400323215852850325787719008077141440159060983248899448283409738601506412788085157087695352778318746314913066795709022845086443409168066668638215354910523727116566723720715204721198410965357212929195446110159535189006784983884720158048317739675364310875359816714858196702415071891062208693766217385803808688922519749478487968171433437477397951916024483059118555549821698954598123195152289170977165266487002138229582868620942619232011435713045325506481818225677410395919183079666052815852741918910887881257083648920168688662890081189009112501569272172682828832175587522364397655906283277465822168414046328571796377061920777774584057125810460487617787926300272785086346580999817114657246061728318895386841891303317531797707821992597107726444032544560556932156824397777299777009549234459647075534622708432667943979728961945763823502136048273559871097754066636025893634396070023964092754271351107660569336444971655778791773983301341301462832640056905452994495847897709129151846986117908509568907099649371815721917435133583179911030619118246874827976133310806317185654773939773855068507559769197858816384691722133642710271562002820680804332435008013121010889436985818958308266733231283940415765188906526939867646195099857232101802453788269843031491446301922780254242244629051792033549202560299511330493752878959337147550138863880278268536016267089790751688320821265712314121218943681199218494160862192357210934381429500756189660807715804542099122647902849774329370071761860611725153458531380843995176519669760941910667784486732684605802135005894871587843920285468792696553272174951188146342226737459522942576777942646186289893050560931295370463275296318115400769136287301292024449979315184255410915871986475797560896704237813335117362879365916813760731685533890611586374159808683348248856378276331039613540506759861774864838967855214993368644200410563981009608176096835533038748414820118998566115341904608382406738963676396841231724780368377979219918549689797196745366701874099002932087271320132149227928888941691367977019232913708627824991554099781708390646539940682729124727701537644512708945399263395287597882751341984912572256887698890706343137797029761484224059141360285739114441318821945046595661612824192691399004382297920960106225461434949548532511537247939297031035800152831315022221412794118877107014862634403091655956594997664898156662666313818663495177117874231495597857939773385270763201040147399406882907883734126071400650330817979865162047561263564384387716435388994299590819225063200054464198568796109484689203541115155205207542891727968098348190124077361977929798001472036039980856026270332709640198996015008259668632641887741582406852587223954381664629857886373256574144809520286380115549109624666099420657079721318400155618055419146751428938523281035632554604114449311309064340448072957259180764015153651367215631449161731472068442910967581409000488950978334232192031761711287053037070966321374841588981519713138037257653933877738259195335340826093777293801757504669576103976403249576028469505060255411367848049671725877847542269740208242148120454148048954044738142943686190240376485137070946761342289816330916389877488012605433231145967490231067940743793381547797768395969571601492411588151178230969946272094251250242800981375020883859116720538724135951624633180784136584976244875523636647943938915624822110989919975024881029486179793804507151610966448974219235261113448785281929954635031854609677857692012286954033746159839997215618822514975871751484288487162135994006762646717305220061125412903850193276431973671534080412051377947094570057101701530597975828799118319702246463908225537403496097216629646298147830678822048733226344583057049186373705521674313000180634778097106722483264124722062685835799788425020366305265500056297727124178127815385269147723138591955493420235646499665218610175458894758409701927190032141257313765688541293436213371908820347325730691006166009473794636445417151991855202381727710300642942061734497848042317427567447760717892746329959435407949106681109139276426631411329884586076594539938192182665352732130402116333539411938838819861308703667897149398860357888093049704036590754900304017745771048285996135444960518941820495346114274178421191982274882114078279078656905932546850342535323176206094117089232278402157352834844026982300234177908308469466106069190133821965943093740466706584231518915207334827816223153951780775852017782522714576178500582451325186459399829941373510084946529079633928239944447642206999055975877613680393611844711418414580191527507496903847017459308540915031325673973167241387815069225824771915674283718053769434233311085638291619290741517314586624195199492621308282307013773812081004835489541437685246504392772061244960020611791424821826281083170508811186590486584351143968117058313614900686329194247416011904777724312900718484991071353655133609347909184957932103434720079679551118020207767078504362305543954505247756496010718666770217231625489538556309315781901809616721175250967524369799575617267505384082496749503103949788250454488679048810476687631401200540596309394927869615491682692393581515320401169485501880616504119273807265085524775557750645588506027243676359256021408769217568590606779529818175850529709637076638809785902130017613511526602552721526245725036693452544376120426256959271896712727820773461585040734279399288890875456517431466226861960434306759436727879597226964645607011271032259226526483879246512337308902444735803915976129712080822680067327181924255129636822614543944052689344850502066558961942694368263049906586810728398167340665945927551558502074589986164327831428663537864131276402321959008108583736049893682193413541164314693554777309971842606621322388912344061961606631534462545264581304046915039884750301828295450190982088594190060621406959752963082067040006272254632218180737786867763931106357352622247095559728720600267653905674883520953158008115463984266501823042599631985119004299130181516375407758625400292619044827520130876785647003603275501447920724333506255909102056541366495476316867210300711499930738215264037473425862847944933983819832894696985685795665729423642050251506837082399413467732371985755991840659341737218255944173864573263523142211249664830262204148896686760917867604482787956210418752786050615942133614256296640702451237897946959839940784005826795527240724083334902399459495870038216217896099148395769410766689293047592466736369945200263306460459428392900406739930123927672396111589151890442786741508417091561662975380312293553375952589513605993952099470067638898045622731834124156038769476220892707295560623981337579406781351297910962458630424487529795716083280965953329361588695985220974828794972088712705189334054924651251656303282610255400703437005733360697936920992658536262415020977814492916157381303597494365085742201611714451508711188326131676013867122158373197031363811059093078932829352657484060701244865532560490021120136093152399801782699915851959807655479576070341762365266188120399513116940090086996626790840720402398529905339834345390449665868896263955859388712328217006116076050491020414935699301127298809109928480685110640401039226499006660666874281569560287276991490427595191560936460695418682289374227228210406726031468179784608796411438898501398605590959378624137474735561464831852406854746705662824858315455832815332234369376718986153972200225864743439207920684258302792991336930468614444253660514361133103010964125573171269377465765837846223788878867890334242498862759857372345860133652469758530703342368000936177301996079974349588393239279820068542359699389236499500274063686807725091532903656545072039276654838900014572682325904820333749608123345927138247186299133305519573524825658454545309288137969455603458573125673942167091268743487630615441383649970003255174358104363922358943326156851941650921312189434033340486941553531746601444684952487034365089553341196115486874990868627524629648341263959545984855394995334126708195820160468951278642206321528959811613864201817776777336722830756737717573419434419919558305353355487893800824271985944148088901174804016313163984696206235723541816436091885794092661349134565028384400123729612694565292791243854115209771954596817360874379376251840274913732368459723972696627182554818929393051546874382365222183415613303980420319543042172408214864430786954669355589012461639239936992539052077094409063616126245712308283263644895386944860907931926738980917299684484180879859065710781767986164469002992045740000383034210321654159727092949187128944404660105833206198642477591686420623938979652758956431053140635400092365104711527740382761411506388283278766555779443092503409971223705251842780946222826534943907690687487550816700448162047386297480773263741899803560072378887555640608567037431884528205319601990726661999356610390813675751555669460886457511787474763313853596954600182677488765042613547061807057338174749157494594930853889482161040829576374354364185598500515951361941015770663150182066269667157802947127072075931168601225832414407177133182027042262497679042688108094659383583867589347713484491776597503118611961743255939562682553475815041168772883050331858689876439542060860825399698102035731939258085174340249863936705790850840510091533349121675825075417626087433407835852684492673412813110149632712705577501674700858577167368439176246657075730793739762190647495364332321776666116097977144961451904973820986973748237523315882093547468937885791164055876672099192255354059817656710747164500975303696628020878264461579662564225840178883353007394904348259585396783663924879800523989624021417278796980897513314930276803474641108600659906873200651065566790753166048232679020937523852102863951177048538293306881532549020191117029883734278737572619892374104872856375315822028862888114875981807836685479069038535799460856446693731788794945595527670353793191527842426710459135862490570484501822503750397959632669737517209369324412102841280069481014613390637514592025123641614004794853026329041740875292525359783514264710087657536006994810347928921611190457263292476096845695144263520130004094472110182939554982375395961053758613320862479141724894979269847504688651142147734274433147990413784146741930852593023517243550059927229457947611229033558461826735841904104195033211703464020579318090377928207450684183583569939875944347226673581961411715653846279793812120781436003143106908036984361657139550097728267773881834224740061763704071204744621896062032320779564162276878254099586605953191799360508576470940503696488701924743359651365913116764159333150876157057146878492779516104112475359788087445882783241555370072168502445405866285557834838659330478427738928067877109756658438411169538684927038161282000888218953876135631216195190700156708682120718376790080829107119538668875299988137928790223211858437359117819134544927135789233362118266428570380348411637980009612718604329917027884478694501699939124195584029473583324357682161269083401045283380754456141046285510202125674481690492030694920646454737605596820599548439513015399739748881289538168772846878058057142680905544786818471941675408329129905799084512710522630072995693458772039991728148906484154914653244490201336490100531020432690380240963870530190734830084315132201815889917829878114919638680591691207104996892601886941163727892743682495379568498085194357362354953532736870957417345232437749472793968938902273543453145744650391286712228024841053448989994004661114139724689592202106938003126077781599024738285661318086443826689339445521212934619418580247420959425280336561421238945869033393684313049200302427854090735577465098460009764563086089175283752843437886870079206882197494708614587256487558194206161539802582280371465423511805085008843528700942687513568768118442961765655754959690814036440070545371682400898487615291230927058643342761203640523617598896683600961019688758468641676757620132357177819245576343483058096948170652028036256050956706515209926730801546297380986236214510029320155425636727819446819118267425220760729958663817008757481123032921720131763069411485487091031703796084568104800729148760422575834211191649097955246114501845453771771927180228100270499331497938378644072671123327509097477786233625773447428679087292714621975512184791181760913192801497056614933212627699704639941861520537560406790726360585635018304627791637695299827016991798076182673468905210845577225862133379357653967759972864598888643208958909566522874007803492337063161074009265636817839498723479961583585419225211283311362425090690889771745553358377342524459996989578162398936108680323368308410416382171463296659912499824479396891672193140885737384544112950454373935827194977557328286867311614817747550668213417958628251991707579388791465693098429045434497255951330967210673938589042065406681531629275409984912268431659097965980744218890585424575524830141682711229804652100343581109737077473109462230638954572943443836994574310977939301975844840485279109313747363477243101149756310336815742670019287938697841753307800489269354478405535101177101538791922108533215619662684741716419885781658574295043220053503014452575375373498602494866396585088702673023040423837784331018802572244804646589939157491144359398299958101571786989503081426411780214200588675865424573808552414869855000831294096056670879331028207809816342455050418261639332582958793019653592486438220733787285173311568564800564393084148549454917491694261996268913392727108011600374796516644682214335937176155939151528499745677532467761331299433682729180334853342428148353164173026720388962564952451497534300621008705203124717982191111420626100507455123899316976319131491701722612037456462254151575681322570850044881394408687913552807966799826981775862238069572740559157770653354287932878286808271788667967994778094767385699312511493116753939797858974333547889591284936917246700113701262797785673247850187428607219734659049831721588359201536183710704783611344991940514289543737255202762260179063871311638257118020948581541769746266670025949645318958567664181852744861724988815228207144535878604149236567590702336499153321966827685136338762182417049640918037574492623712122336150494527044820696786792035924294529379448831095550430339109375453686279711089014293371643612820572555252618098709479998609439957440340608487999669001459685623701526192204390013748518784063604772238427254149265101818013172004235262746578805649424600572145710289578109466917456237301026703045132119563277853857115887676665408562803971772373305806828286339632153746130230466320778753847552401292470715111258958065342346166178687684870594562293977961593074466006721536466923471592997815888373690562096519390639378196094238804257503901476872324184721030347632201426930200358866080390097103264469200122940687801623773665283540257634257501086846676946093663847197390054587051208873942392978106413449012489233905277404365459540203920915396401258638876872250031706741335543677316433638885018211363968781095191102473679504347569061726701696724678710535219434723023307638829869570783552808499696985668912018781288104598947762644270298668705416533927987303395812046488075009143777128920335046815001881262406985370766519620602270242191735693822441640053205565307606539070841542530116130630578747754564684985209958321176996874457169276316173454492350140142578643288142860423691634007652102381373319641374448347944287708091166277726071584799396021933140314502430956909965529951825380849928267411497261375308364207003465910392024164911564517005898771963920342569608515579054956925658118621114829530481856589142315029775980891734851795524024965971302340417633411673133087798595963711738783471331406753745371732076878799815720244458766995198386127474954011363164568552993158800578940448236226613443454298208686032051630851677433138674854648137724284557904865334787103584039338534965603974012900495765261683758231868754311286606575925705348916882202217267857217431458155091366311709451846688731946889991257883999884390605791208175864500114608136361088666180897841415700319310518710594686596407979453683559634154695344232542945375885467160870789611131482744927687559114104925985372250157692822301969399313205425197098331457975454225613482359080042533042318058165543691029192584030159033297453621743567445286717578925810732509389467419859981600960269178085022070881455139021737727745830101434870655445241299067562575873342902869227516557785260928439990098845496591866702960139606342537115479362342797601882321581408346742017693061947395880468307193974445318097452721187278794014232423798784481425951555286273040933593740248038341323096307453242766571896245911713539661808142453374489312324940279899548893886658682143105048693375550874265936175408007455008135355161319719363426262703626201208877913190723295818408411605119431222801535836314234105473203595157327459712293474602592169498246504355567176187080304431055360541850968054151268805925708557764893582278008394618889350786240211989039405060325888636074285699385665696351590483654794879649372707777297991184402736115931797013969349537834534185814986708965595120601242849302119358765571050265709361460571985748539091315747870234090400162995391062331153380401671934891488632328743713599178759425258466738491141615168416067086494159589854353829634236457583180505026540650462665989199528864124450287267152059378177499848204292484586750459857108773060057385181191764144088625253612990627686420122958757864875789287698298312392647463391353351770595207184864076352729765720329342076347239597517838725123852624218911008576782575245532971416266535316760121589550321616755956952163972659050075795768169817004036631106246649951904008771404347902630563394891102179654358615396464127322041658376595277915240178519000868426510898415658989637423777197552181818261237793140223209849122432749776184577574038996000740587106661464394383836803237282334876333095629607498617523475844295391246878228718116406702612614865889930265780060613920339402338422031151747973516732898410694008920079092091755459517533760613117070283993873578692851231709440293776665435421487098155640545063081881945784803580241232368524054184814424467722222391999888637132927674591347380046591095297099229397591816817925094662484168161239614400659142876131578212844710036243751297967963971200308320588973730286332784550487242716529277540715013365322184401566877520785719667972833480005076470902560848322128951281783541578350899421237014701127598996964504160383460977634047739639626066701557582785887662108303255596595093610870866483347539359080443604340783013163387361708229979144872769442324216599715052323287659352289316333343679510338606240799231532848866209273252149314225514957525184492322798702692795735035797154022202231780233030409028905129086730968741364979920520329803185766856243736484410801244669484587225575220543010443444299749813412513147007611504158309450691798168923812911593289393389132027225191079143270201398981311642539291229539177252447773684134535682623499678296684937544773540529667083599872898715132266178588222945867862906457401452485829031634103059514814558968006769770952852234524504763246248768212241901858260777092016806622595258095231241225384896640905019847550358254944409696129599188160430597413894799701574653082630418269036301419675058901642475654512093940053639265472818415407546150956983116769405166080456393486435877642555350806300126721295475976294038614550428307738240177965985072046031835258283743092621024635761305844240003407159520871250813077508889749864998925748106319442219611456570441846720548772166393424625306981429499063077066352788082101346050016208352977796230147924970340812213161458074472720824238038292870379745702911421720686963053698713515280886049009644447870716659693998198853658960674644994728028611941645105817740115575751758146496102935345828108211755785534136448284060600736816795885166907363180524215769378884083322614362345733093610557558520162489919167250369784123029943966387767411484729941837090743591319332852784559026409218715618609261240639907608503091566191494029175238988843051594660040575135640207502758368587756737317328977535729588220514009832335343281831156489949277485232784079109937380695106924502068258515197100953529285320739550308372460098145470686176454567181175868018704577086031582124358209499913923773574441038564082917194898362809488360061337437543899079023437716039289341460128826699159839412891026535607343231213700396876920499588820367721566936585248470212265689093579287599628198189714728284198947775803024719239752367248311456065185617301491124351336271724446253680204325172095897260128558235439294050761891654455301107694985118622964553901585041041879862524577799951229691820080235674952741358141910041202663025745692516033657881657820386017492673339177826696466652793985869047426459210821077506169351188004882696343654087401102575375644919415255674941736952293535881585746413149464237304015606567344173897364048122459271388735719686504167174595041774057378205408068543329191686543611738106417979285580176194525814326398157735255531311638942635760494359092335630795583441320929979512432219091502409764457301725122061932146509911764956759417888841248875987275613746252692431117492510430375072321154729317532925763727565283340247181131305974995437824959499629693558695901166998183946458716202708184413796225491649544079687262393653243787721526126638629549377688388527564744768568338386613545093225408819816276133452761792836679049912037642920515761968873241110946161863004698399201450579086120173008879358396962677305747904818199316751338392224958028112498691423377302181863174927284660350788380108581538995335801051123658925225038652029387819341709382390792865676174825635634946623308633739585127319775181125713536628100240487276407348746405428728764952705735261116784929117328634975483938620857674892388255051714209358492096687138172826151466504328577450223984373110320440819772090351556999306812469901911555851678785387628226627357437585576996656490748428953575542209304527985326975222465181701254778637944681659144622007551430732674624006427187497218155094976620597477198359468011203419698886386796505376636636398659789622993339310276368449585699890877879311412900234331040346466803348483149821244932176487889984539007846978260718833724872937842582226221257011238574375919126060515342085412876764239569420322275379936121909380174511282780423422414194265298009210567951426735007388049080981928977491718838477870966199843066255093444753746650759235138327813062368548493023549217670726256482852111902031977149305504824681520046746978912721266555435817022437172648393920037678475136621716606177568829736870569767642358306398408339946278189471887547083744280690662398577247013183833990083985739989379174366257626073017198043178601383868018300893587328039844320582039651633248960918248100734747995662462616559111657186213632175025740765603314055645935436931227638793895797698532113024009095890583992724383583833483047878373215254041826544544317072615928702570583725874171583039438401329067409976517581170813949883511846850077550615288442032212115789788588440547726933747134228158637438691607911920632748508367416797677442113040773070809507927272429613488776268635484562740122639000171521950627044088493850077991407763046233765032900125498852635459353236028790691125555452276409294141447747648062673090708763098819078476482002419648997501223630395062446173563521035724951547899286709894442690858288335576185634472656837053801522448813232601612511535718557655678327694289193559479865828094333626869374816608302813092338231120395136901776982642764022316355124288156547249216607663528833849427549779778083554874506957164878305916304560394439733832251597297443636855893770124113170570809352837823014515572213622831476953530094916822449096056846197154308923753368451521771344138848834970418247115494531981236400664188896323552593473455763708158043308883496901831956830442022338026133406584789126303625046775349333255395011581294767999188214555905799079836770097967210209143612441222238975797532315461107315623399370344799221509395856916249983504187610252145112347467784208718244569591453053738174628841666190063326647718286522533824195865641851823371660352907133285515309956924538682951494948709474421546598419928909624835999837176374788628204439765534963015446146138019556078390881418754743454541758147303134105038532523060120876083971197113845779595146826838348709652382118209684032313819559712975263579781314274690984760569900048112406998765182711420892069895348828959116826452235230818721321493396510473884422030348585205783330685829460551544040197509383316412548500654577355690675340805364072301341742527229953173826012196202632619520453132709956052419092760828072481012570984712021419493182453460021917789557523176794729866237635825563509670021092073580526914906627570073628082939942980349384082795920061220840463587684652953196836266299499761259004340342576437331369352829802150391302510836319105731117001308426078501465288138972988398035756680461161595562979202778861922088221232586617065800419306698368075157077919478082502476676824965253677668897972012383284210336170698752156462967008472707048708190819078553568425295489027755693714438641722569946651290261546196561521730596031037238982157890498601993884124753160887522917558132146134359749446936257237058679481583283572066406238724903919219964608766099972633837923927472188611409983482540400617760786501813075584367111122257399385626089435018773899100632072201102624611573556847559654761053936576303515798533861978951294640525877663010852753639547549628411953261462812056957162400701866713221373011520270148690627911992549271216342117347995004757770543219066715554098947424325274507476609079192565649545354446002743568297229405856849649849237314452099112177040813852636099239190955754352714904742055720914870256814999534579055155398066537594460983709934183882998074676286204050794494033659489659200702320886005204060565883328421495407867216570027317561376794832084083599505303821539295794714927374989183955200344906044493082415431204601789243439902906450668230707995762105319657695279815513422249740323844566901661146221798517860378546332948375825210314929542908371160458349203936110401581002183608454901157857076287714943815832446634179669857866732833906350246037328957593170875944724489067771627310344316513308299912935346469055705354855759657500414194935464710753012612716187077409460416167780463556218522003912647874275275635334112248162605246881090683236562621590183394538215724570154186786684103499305551028396476568598598038255927354789374566021255584328520739212305682817223246236173591258112796842972239710843594045531080078200068371426791262470207604289009764944983011765783229954645952303405414782052248970496803660977257828023180386711227545397618963812874723451551628642025809068577384547513501766728949091402140896276983062289620936414498211784746938681042287204927043073856683491640571577268100518034516836461357953760511247593036803799311170589431872835972038882615488810324143031341997195654371983295078763414438150822112632295962754865039930835314250863773012018114152625243405115619179714631618387221879755645831989073512738328895644591489177662693323320635566837362467861165007555799402762129451528954856363439527485343695321603603025515936182724731604584993917653888141620131528174476131266758637567950651739166749637001928206351854754938348400589341941374620190932840557475585501006965820826594861204639891588035379382306545136178251577685168115851618304511283623442011331316119902046393273195042337777315721063632275501635264709087356282641482978595032453976362634074322417768700621424035271784205875227685506437344743025900250791976933701864131608238866734366685526595490787107413507435822362148955894803078587919125516547775717102127062520613443512195610375517448755246937144460939260763910801401572307916860077290291468022279507937917349125338344895874947895965136636023071957303976581944434199025303752462395833110307485878199784344947186331447988867195466617652492432156617473765866044522181156846732281629902611567984554919952644952287268213096972048302800893462953164901978059508556721835888034783107031092450721085513759168945480620996398111701000156712626673079024411352318107621872991059277805074918999597733499151817130916094032603241163878334495483940802500418796011605473917188641764266060851414500432118704714911040964499014436032826872103048293614843101852950431562102958114031760945594534291529335867776592592606255951776763216262496515107761585733862652094009980187988666212045617242465895511007166015536401928775029945032357638875298878243024456903616899733945123443768881707596065855169605811423817284044828118810734011945302199116900081724555281684460494656747040235778520059782564079045395866935992398501311262525644260223631853315072485719227525492120014575501480436042270435648957360791519011841144577721605479566803627515932593638111875070823087983443284063115848800335055674128243255591166077820422313985429472795012416060053520824037369017914769628107527306074922874733642452462140690449687979803425148273074182518481018583193280308042230394535687581432101750956792067146723967125723134236833752921902748501252762308484384726415979915295418637106174536361390696711015772555220562162576821876443759254823881621175584319700465093666800372301846977688424292035726730127965739759984886223314610720152290824691570651132697168526946611431759527712399924427964433198188886970638443658528551472267050708928969253254048501548594666783108751823341375633578850067112981702122874560074144190908556660937968048269163215845634665980691987817608169405866008859218004886973647138927704221036040788566641655528421954454867135541839359383930140641655209849739373298096741360297215891653086094174212412151264940468477742521267805007132014515379336518459522938721361234305754495817872322764362289343992251272733903699519036385509670175485679126885222590191787723789252819977098352587030756615359959403030360555119537518595595812789210274199667210251898418358365272108915645958245747136432903990108295314530827552823689714287728854948112831898647835946208179542709281239129202054889833980277193950304348744592172241286261362964692629927656025165823278803599509285909452858397711457949107195981568307891041332440915509262054220806784106246955899987563050919019211640948969487252351018906437127967733382919775841977679096881463296177806468309702302918161557879988090644895214480017024406846167326717446499294527397530691419558180731190810375895860039521998270171127920858533716913601375139693744931993905629824890602387700973812869965672088400876358524741242215728551623480810587543719636851842480429120787400119588734307404368320055541066435391480955674886414244901445000937689228050493915959275401347928199982531722838654794228994143439754625420596420602712867089148290691575100881558725302417436105557297863974548551943987020313195904701694329550255980134750599537577209651433273277822556975443169105443869039154383429433594883750191389641274380029859577903926467020432723189095465935046146249683363001714212290395868317558367495888533630336161616135634408415281460662229822120112303170631767601935708384574957891275467627003997188207328473772134624549663725948410011471798636908533736494932728121934003502732277489679095244736970457823449078753801896230967182814416379474774847086112855019695462018328229670688915743494332555414148461140196301131673441461744242923744106052728299581569410300249532768628114401246171597527984113416074098390584970315887819441648998089496780056745826461959364425275301556608266888671845803665230069914781014841688624365288696004766989917671846102046089534675824637676701478236858960492533017013565100274096987852215914095579879788615946349415068471924213887218756397677041007678485646635339386644905758907976059716347921166843998699031696893935896530143194501447236339626077365301972019382331959388434001176272957032836889758128717230171534106484729314299564730697141477452474725350596531901087139851345329985159578745322543335498889075367740964601658154077179160140804176173299833611088970847070705155062430446673861424098881787865412613147355805733288621015473594731095815154310785523004191281214015811393591690717610530680415685037769203626461097987260877422150308699048221668630373184516297703938994980261029409667325049999591319324461336042956771194948978691430213154243866434981590762987436390086604055694616260886927204862257374024097940871936206533893254721934931598280493719445201908656751421113385701936915904030987575501131693976290287994364357168446351081500280739088285595003357039954402499637065293466203486968644937366727222031636890172789456118189375059351513025524858032074524366338647760274904418183099188380346009810882657637257599038733924155276867687814282094822923792523087798218512568804699936113682268210844212574379357133717749181363735368692195122981202402007586468539434450815639683016597040500037029049978228398102315744932203296520886889206154038043497565954975603034654940644355268478563064296198975080449052905854756848867778630540744242870428673887492950078445232661446311809645805643267956616670530381465148714828448845889108629568029054050804051652573806196372382266831067430784666633845773474509030572272110675003040394435772934796518868789317309020449648383433162191583773515708441391259495767041320463675522619526587095667101423095274461780034926327463725873091850166736528974285061494744956686542704797893754741713048144532581739705033246976133240993576057968855329071674242480146940884783914075729477376317203344484066372998557298769128091402125506931580748157956614950824673067965207946079323745012217511862612408746874694619360397752891540416211207406417093108771607772475296830680873875293498111305770287559233835301930507522096651476936762150010932030175904187072945660448591870142535270406682554774728049268003373064005157557197618012616122445694382852314856363526812353216415314155029555825601545607471316550841339241144493030346311789543938112811400638782519158386173071591170628236950525374190333176323554759434394294344042936233794616807868596687278464715660949806098367992605332988323385277794437382796260355368405832542905562119638833118526751754014080335314880151960361596122267393812400708156350299874324842698407827326475767186409079548774725877153738050453617405048535772359959443384598197700478183445285797318438584308887870356376927282667969642221974185447053923024761772847746368336408292073148398802400190172655609973010275574144907586541115222235957403435759184744632708316555133723791011836662136528141205931927360281129210143882598746161104365906048464030870961884546947246754795953361048504230394857413485420556815679243980849021861178622931663793736495744991290831558586485048729762216913772723795282933326033156290798577315006712860621749414683180892744683306947428271218795939563542868194277635499929700343159682554132486969793454520386143599823231101871011285578774685608878519940733017383832377618974316061891527227970955600232465959262058145885992760803469411511576899051156685525635395194808818054354963716115679832625732366177389777110881134407471533281642770328573400533928624158637283949792780523538361170624928128641130255317088887218203795168984486599714284149081128719838246243431264310581233560302987365045423151255061651770582827603974842858506289533337733902045487626996452959809817731171473421478043223866592569823347734669001476380004500899648625604219939174707191613931433630588309931713347274070689480509725571038589485321621538477305100779016210752727525025192443215480879015781586241238338208593573210876717549506411456486541432939539540926924397618848159107878442053543125288310616970642232201641819079453770532448902877582037000720286269210814903985057951612989179329733103910973119863274086827355835491415345064822747636364627343839753161512680905723386861680673995680315776706018011761280106247531942808973850642317430697288836335401839537830352767340400060474980989656002741186588337869455753923970707975626809161493883738588631880200659769150338195930586761401916727582758739785918641785097695614509078097742978908524573546664948361941868950215725728050539591215291160282660541826201591434049889853069977062046670454505880567922266562000380779249672830621624764922099015910776111514520630921288426322078415958840033866034040813462554445938014462120503930416073788643460902575414517772254639251514379543488326517229279293084602692103161630338950966855285126754698842269313003364095396276960563086854403760743659212229147701515335487347107003881118949286691851982135710443183581153077001550873297225194840971704647883082003204600805208901827999939295249724090469983793074166362779704064964041353000241286619677088938054975831871979657109948025843504036651493304739991326117161551785958969752380294716058915259418713735219720658705469360630358467125834720197849918223045099675173433759362981914048535900988962523462844887707695000267496273266030683239552968072738280896561448150015164204166430364642817274713829680015185326370355762392213275931312615105329602272332781701868248613570082581621158579543818388391316384539245201031181443663835631476835241662064433547224128513553559850556808681816361026006591646726733666470138742321548382158436058285574098117627031762774380040053586720034470402888312905427957908942914033701925934826985664959536445019756359568752707159042027264220864566363885620317523481261449888425340555518380657145686183299800180438827604791894286443487223871178120579592804520756256558532300961008058585001729429273713300450848772226398975136597089450077125307442824484067623601457228081185003519528667456092821292299145137399441327458440294238415199405164475540835369981657018313960863138049957593593352749576763395416271999411885706154852292529447718477079231063755456554455287377001802125129083507760019024885339161931896220458765651492515024688558311017227153680577731975621527864153524699257260080821351171441853736762525068200442279667368381648110655113137573297327619294613951928727896485345834134370983734815365997027027553700106053145120909864968284924109785415991550595501761399829352576750924773261173295726849768435835773154673565251869265948118563294394889141817847619749911778254641960033993567431695414406286737376336830693826068514143658263563725477768741688573327769286162538876506755026097429841555688024564786277934106987414643123338260252603415280305596455315769717975938228817408364951392532107142118925389184637168414219921125160047073029945219017897855715617214607049736708115482624299704283456913588130009529521608155275975678967426968447361858315284737249764165318431162190680258977991375565802975789773516562605771572907775732016893749672758617339967383129399587982128351886917297636467029012171298496203741693649050181954948468994799060293277188816801180563784151638714350851823448628286060169130853413469430060320220827852478214169104700795545248856878486326715363193782921493584419745516393188269008551977746577263988474479142189237659928556846955370062353808444027079848998084766232644395662140742221524277719146271792448365678489719314465930485957340873045156896104885037996499104445779134211638149415678881760802458352453989571355606497849744588146883832778678535873404858392152574942651975429289811525005051523841301444145563258691280116830092934922357831925737777101262732526136722093214666295423661717585435679012326779673897091177932200160781082631143215272945946879764905783080861438355033452578477748926751103082977022927892853218743923551240009891281283677194382358707960655242128575069714010503126528994932648908759094919657432860547675800131187337069556477712931735745316091260120428520511130752827953038681742202238813217708895298983556654625661367384868995310805390532135518455229147021044450759548917221710845883101791104126158668242931554229407120842427823973528117652194922899802055869989599765107103088480698521387795526690045678066532964121008939607149871542233887987046201869974656603008007692806238164531077973217864896505161322081713027206759139572087958965577649488567036761570001264816373407461657962831661001243537289128434703925754748220994583272878509739827236374913425431574285092395388306674733286886468390692780838537537847173255483790071129509805625670848052048761231328807775246044420493143550959668810166888190463207683488286833573471957164207027868048980159541729134357791205550452434651713625178297971401883887063817458771203215514150222824683300212352988033935107434386022646228608020114948036135875003761980300286875807564799632119572756905119065763605605588921140972540535053865768929426997806927608848531525824616960633095012709606268350265049252756927954667515233168820815636734592782072723762426852286218401445808005905248625694960450870485053790115245931036266251921255327956780785334044566174494176017448790509940172909392146664262836245971895311227453808468001679461963771177831326365765599544792562862476793665128593506469712591427107033760429261615516827566000047460106192589578448203049486518260585545513858129438900068630933296295497678615350746957996215299947209640262421098109810927922145974366613174792612812210229212767852932537874881792946960176659158834396262400438686428564957756542151396985192790503496702774153212357757438849139383934976982986276332838881899215205402806119262676221177203872750286900160715349035876702731296542948678692596268109493696264237992100542822325475954786679204424959209119266119739325241173002028281103203265255222945037767024691506160206264217513948659303567428628644421235915103637700334216136087805924653641777901227585813310505908300998739973723736147254808766806386719965785205030212746337372732325374527776990853447247085864348743904384864329909836814739221751824799353288083538398440624685303467173961832604120946115335275682151118854310916961420815458231237925543852174178959841165853109362596136533200590291288718539528923459266927222410443122037436888980364394391268140384411315719922223736234682100864698826774945241633678424737458258049308126739758176246412113131228970326370081123334162723830017384102698303641092674915646232931794523579368154754081711764504599760913779460355175805159760626264286305481605766496793486233737959645654817236219520124394397993652713270511149140750222205475880820832163679295066495550284015411824638670166416576068725638764731629137126426319752208489099314394430796940480141440065412566146234007510872051179721538766676489806478636374894331653872401376913449272026174661242087783539756722947748767290689900156816478267143833400557171922195274944223887751277633828570838948928950323170223837461084610233630022418800105550110073834157531015262426612994679982466673877782665139593836783742816128813527068556147093054223746298688188554769094757159546187334634317192160284465364106801585490297289889941241618780592567302767692853667905375846567667879732693636686638090182670147080067560955757310582798893975700467200509620586957719103197759908441097161281670564744071737296547704517407458683037277524580523534481417824891968588045501170189768351299856749806324267220831463060725010396017880133934819956356315106797193549289047237494228676703032352853688142692745875372122281040982331236841615295153158523801396046149536865093539637450538716245089866133754094719585881443427621441943718660799991277154367296520147524114801720598123372963952290958672843115255572338073976167835997457990753845596199518014212050072291795958386885818671877695562953316889981208196203034219144527364888179439652399613878862599022595973912612642412488674261837563041707115306710009631897093274703438104800744837026585941452667408028092967285436013910125981730913647504882802476662567250418928280970594966952110558158421460942337572659845204396423729406852544750856941072731366263005187834588778692728048399574760444747312958688326561907898112627509739017121658339810701393304824808689181083537577816216824995100716926092447361956536032250813620562185634509675774529771255909289102125882927159135260601580880794353557033729447313871106707840009592310907085705719638131409376748539005243440915024733112925913635966128498088283169068345076926288730799753774737642394647649201824652677418994293863413801959057134531558992622456795579947888575162740898811430077093441770486719187258154075556793924501826755242214667150580507182525859882897181205688541074580204299726244631496879019641221533841202904976431733819416259315364147304764443453142542598614703438165073689285849023103554978175770477401090978640994790710746786079387207300306487713834443269166431888468636558731147314123166890038717663055032227356221097588218938314418248380834882095673941203749973361929077769850592657793216347354690880422225762197637161761996929824783829538023436508339311816735469573312541233678498755388153595719399955156192109677208362542305518155860949810353611413664343323112039332935128266049844453944522396836546225800284833538011024812995059043866696482830091954628866525294987553907884771259611877477507235096919124304602269857727541471952934959093149736165221339026229030620431314355464879836363927618675927741573374328932846129922766494710744422357353744402566930648373042815704924821109836274375484837999796318585778632016779809195667918396378159905430162450985652298887480003777695495857998416910778808463646359174194572148599367192045000401776987155153690469519424988852832111800870509482357540161402304366976231255702312626473178331175859603676054325211586953790422368862066749366745395225505477070326265992957148798845836783976832586407842230300523143993121304383221130836009378575797867289680599523804674687547981257110189723843228309507315601827237715914984612622327232928011900910232588424504636264663872649606856020948209145161658570821203259217452469742569476125202662295320075492287357606825937801620301925891614663361704953876002384519608645704941442180697950872866023056809319415906731681536834693761650811213619000550405615084454547038143556911654732404425320767724306835832363820804428224842513746855517961092648310079556558165654858484888144302160178133961139200388106169748915065171851665145333673052393745517233693102069371756913857561354367180461372684875193058259239882018576623023579504756120866725227811119206911947376245378475352036400726119390893308373865791761345609953683624335819901813425423019551518789639513838414996591114755014831668306144444678851439331337086251181284757430228015642316341612516845032094987600663305667542399005189394534743776070938187224915614383928965776919760661555629625958658240473547464250056002729638666734633132966017800170279269003348448112743491280352537154458369977569120641222276055755106395872086870016572572492282061920483515608353237337293138850388679189085131645597434006509142189056434366587434117078913940461580359663683279959437728694828540285391866166094627386797657539108667924558828360208883707624873168950304859215823981803448747120713609945309185170877073942210801307348654700436358352489707898630582892454380469914156789157281756807786333623161071510154548083239713912079942305266511683039073075937543488531640642138335461132929001853766900243397924383707536236975303949071087862192617452580339383849569197106776413071740920645897425336803495846590521232596135125832251971835663651584411204190258844868065049476520011021319879060490570246983215748274429611223576791275467592563772929768572491594029349280514984018246790803809928237697462956838126612524434664418770628957748298734334247610078420381143707991266570118275473048452652256626330413124346369994461822225773595047138880864931088965381354145738634840906085484137244635003431417357782513227534443936306938292574283408263179647744410815611222167765398906644258458917514516409609921401552756261203384924713936976419760925280888184248713539970079210677620405027424562765643803017037608028391848920914335761678671953583407731586313008260169972171397074280875846368456245553676436313948091544913343975416692488485252167990348172738223715613576696776115508310281224765434933311094105854163337084156864806888914542840382497377619079988697989354562167625827571245562779875285615679533750579025936094169789659972043917992682545067076043269889981039395162466586874009138073857419454720435658356467493915713339679286058379931425415993333022916644696084434886834647830354750058602222093087580863013215780188043170920912475990395668807849741841379231026692519316873865406814743106136409183457603203005713613563487659721749983128081515041356510942516242272733372900115180292872342474623294800260323752414465362421870494292734730274222919862108047266018382289915489958565331808047537272073626432520195106240294119328747236964713470794787813817358007349823589382174336929715577622282252718373056062218539576798571375679899542911641661280853215994072406540625219680886259550864940245457757318607502824168428997566140422175870614495062992668807821309040550822370451304151144290581776047422034695470085871654313904649319503352942137075566673900080279066658005861963711644869464575656388319805446639845576550892130401805381570469540517744984133940857455121728045885284280126059844266265143041564455583011511735918870547243689997349793773193160655785119781744126816626390275350920983811383133268476538544111834455454798767281469632587266274720657309067656033074576771443629156119542158742284689498135113464770885083487601201895097827638559917344220243574985992957135276847371956670894326755951019945889697481154918199560643014243740178540842651528059004512609831525628345680479582037054985703430098023272427763154238638683161520992501376587182723848249936544481008266112579228713897053988712719084622095633823444655585032432281454169901850222030865193342750070601838276371366293560577599166998878953490026501155071335717855729450130379247475072750354950554729876094598281993504854068756061325591837686142419515406848993609619912701914687225983814646250389871963229220860377848876431106504583601612313077861808541795689312185294842982475629826238796170215365735707878273894758901444232123024066201864491679306431177198511977827615365879324712779454616720398447843903157539218022732126134640147656726712407783666418799073133657285244978943449810695857883995509172100717567755081477425575643586349613236892165956111263126670950038013744061909628432563081001822461953550481831356130737942905332551024065130822020621569496504588563707433151889212725164196123097832461154080695265220555987673559569087171909251227460464578272004816114067364487962401609798788890133654131894439285378148554758611235202096846933222730099459395625686413527435846300089362054357135492259915313685544332045026439146368263896705181662582429025279850914198254018874218661883521394066442403310999584661129163830864796433548906714297599100674726849642484160690944655077181653794476495461480445106350490172786802074776875220705666324246372819246213742136483154291222981836898501230696078881303278766960783720745917164877959406419822495577053495607137741907077891484669059366422195990763869471352425129036401573382126643519787732447296762347317751468742180820850240947252300343711974025457808587087221896990646788388172646269965960227751723257897293071616801205329830685392478251417304802754408782799741900013169906888828013392177750930545453626914474651012408611106635155306077376188157362064584511205329155652430774008229938350203042768079240630373841835824432501756611360657155848903214949908667959168638628366827950032869990908830460188305566658555289562914306722488505129992064069530957159055998776240642282170507801476604109938977117177010070700212040506618764058018884828056828783967328039958502057297999271177420737638833142337526948237096360618532723464752566309522656495595894975661411709381255243844443206509992021585711541054953090979751384120565523613382533887575747994443096099324453803901176147070893353933088951990132407568386326571883940124839989667608313604838015337539382509955044033987781279359983354633618238710986992012730845995368176438339990184119337975754334198778897896891351163130199113406811552942759047723714741242417327706430564059213250740041626493670621755704163955104245702218084164242270286793320142778169403810936442053903895149982678937102005159348206856983221620738718777898691103268415209585751340700407628402958421304223840810172844727900132029890034692263531879333477375971828653789992626603353455267850534117876466570480087484364315087358054935101968729915693303140400734254652359391695070717082823953268234291821242458494681609231244279980002059823559886733163634057511440312776504160353012895691194748687017618210459733059360742216574949573617685503624536447614783525894388176501300348836518205046940859107343335307035367092927273518104914266422478354056514593575233482449330778365793937684618643844244161860615151075103861104955653275854173475745375604656487704401804236635252478917014620670666767865178887275735844476207112187037371847600723016035918493357592787738170027399059102810397420499984267567215602554545377663752214195831573938079910184550467531470811272950522674191609668695786319812086928587962333058205368679707581471163238675708187060738218594235291622623761908575987565399429252002631516041697223348358238220619485351441528694266042959579551175571808905401673601974843709278827027408824942722513676913161046498860154002599144666990991145718208288946768896223090122077373138870139353831575868682811826098867493934194734512645694575431990938689889884795299760897272680663620650010927045182389475673338756385960195127111667054315586649982551842430719821521298610548105898890316967900355220371291608302219113419005797132217419298483766731142952398491616142923301116654775593255023882033560130429349013280516751646741019398656420620661863664610939533314293238403911646789268186079636051454736113634375216559130479979222616014777541786446412105236200783058362057587615479301686004697171436855119063035186613307838072221881873316298788431317121090948160768764146651001563882031920174186557340555280423707304735233907068621291446082889278128388283396697621258103608197474984012355605577033639545113221844092001113189502372449719949565474637793449658287160476059788363807760011006485438643300272450611436783843162503364455064879059991592484472734111425386378784353249503967328502042903813455337569047047123581490629587500532969277787600696948560118207423505629648049000124012031558768212139901714260451859901007659751690896472850691382468736009469561605899183378994415108387524799556072341498410176415518232072032137297974003246823788039223099554165638911195404599928058296183402861640725263949249378528243315305521089231497066756547879274103079752554222275170306890347291887856882900691767828576852874035943653377561664065027332944326433552072518878038088884553010918968587207975476643319923885657265733737866955788463141243571915146811736508233030059889009064504846524548564266235009442803366175417257656436426498460286023030710561610572451898835078377667846142323357064194766749998422533453012254708967128058848456901963545938697996248199613423506801751638456597954798437698740281290389468042508728550993472507110505733474727148101645237669655504594617979894377997498572025586521853871178778446763804506300692484508592104392700354647729151497343296382490452199865257606262557897439574690124242131753655935832209083690551956301177555810851989137220946414064613812021029369874071883422805344486593274924360739193879001530332459469821926269960600581734589836014754017295749956422226352113125482832918218264585589428822061067438172130274026841038553912970733295665511237223956126912613580071962286871952065280268374646258159974971285620326620832485350467417455434405809488143871238845846341618790079825046711205729932567205535837727944872053619406915873886612610897191611240181346474307215193993589731875904791977744265829896655882134412118633199377017991580371652035596253290025008378275010697489573227784454418011895622952882648553321437728069738768418166713690991774205067206077292678558922225595198551775323056415464774944471089294561655882435740538822833535111423149219973437701176146862110260383103581645830718801559852947716696041326810967196096103766496205710742440796103109889196800537148565763771180064182804480339151707066057290853406668195916072506105453876313402975807800425333329896895366700187993235436298240472984361476252093087993239170581613510254757079399543727785591933485329950292801238148728124164846399015586401676864676683221427493881084940920191770708879700348103589991128168831963878819038640287796622387993733200021581008917110213021284876413620463198854883235712096868602001886063469784026866955439034156835719824451921913420760395426904756093165204593711700608220159634260041806792106803733586770830815438507154320669547832105963380466844092856745992322428778154992689097691693498652145593631079430984249600941141869402684291574197456342676578560800152294946925579544261829770946312363467077602269108956177353795177557997986278399096331321644103828794454842583296892823526120826785097649062563909610244169858448669235451644363843829700899414162355410071922919836395224772844553188725489419561636561532949799015212586854920924248164477613714592671637849107045150626163708414230076633271118313507616463391377348472951723136451164744448153970689184503990076232327914104609562782075010036285099471953546174616151599176950192671121345589339833839803314537129256053814159569379559302437316016452666990214804311315155779804789631852485658822866290208756250262694857712798225686065802479619689204829263075273913996581904347563156728724807881665790581511116625847495048023097865754671332385531059557697571838568813393513841993216565107949678086496166251129314866494785788025396093749181360059469745618174106607721411860588090951938918508195854544679643342709170729034888670426787186615738975488303203235868288495656767093304037813518583129193779521721945377198092882721037303321750775491883389282217140357133077974293791552817008265234286458913089171775719214877485962292134578149317047114261226049687737117950262813076110332849836299209401826203350607424905364004583219995248975319180817567669425689041507473940463289751683440473754446574747021352352205655143786176389754550686766018069227707119310893818054283143625512906691391806180708633686545199873187803143688202612473749770724143653130303725005699419099662547580326780679910642744755594016182425681912234463331150266275429809816197268068202607851019192442930916507047804736418004432365330153074559653814740497963881111516197431163039289359953110159970017242846147289989260387477016519348811169420213473836984434001405717256162719301178550995983563586768614547724431335965455846432609468706989907266366387188380616652757371826060941111056021847011396810829689541739510866374444127667878057372436773379147337413595427238333788593347084676279634684178679141386596793847215565230798066053079453227630589939342094863560433558425399296671513698106957554365345021010715083235578117644814789859991346083953122408078186877778560989655669715328860205195740334528315439575801241334238810338905062518310331041191491430276867219684802689887475316241074412097162541320003762058999652247601789012104552469277380247087502403148566887114866237614228564211897006143394023851275253558385476066751892283978270624999527105017887360492442090351118106706345349366528549842308932580622625786978333055492485386608107579131069911057056804642630454415895528692691517838029716200847784812674912089871138873878651323199595899824717487565704939448152334107241891805973684165107390557933006633289418505575481243286711926880914441310576865477019690635618024460342108171208930300922558477659423077299597592799369869788396979799312756517835529750519632125970250913888322855790786420741096726574464634603844008938289471875988641055489337365373302437827197732510577683104186133932551593622141408326399725621743020099948227943627038346180837146535770328472746095566103728355201782120597816885366594318449804710306443201812564840995819613773404122515195486085248679779269953738450585492784366252778146314939043298920795520777302620739028159101944443669069718525880820532888557685083666932568465914820911465537040982964035611264488017219051802964031895124376393039806391410220117315893475354436039027609606632482531544903154806234311539539159333412352859035433505903734471897576467965314069855793607659233369215058124673218119030090944320961422545278032677245844265445172973988439621198061802110906534806925955030587589581129300989242303212708768479913802409706030128030913988751273522761425857783621412797585763779449731640082580223246843909429049778250487640315734729431433934544074722070410607378321253223517745399556511574637608445891959986993612964988609864800772949084784453155213062785807008886559849898613775477300725951859852540221043617701134600233574879194049530788103679536346074824323749204580027463618440931377907024010558549518543972931180756406847998025287366341913259539218463170275644508463191694900329556807511762043002808535262658650635683762477338755147073004257787398826818436554270878919964568731582515681992000644878277156525848333463722841746782834070403451598411678146771177424510931470516461901462126363348459830652983970240930852269667881206386371705636801025530525411380173456799000163305230720735891167229774221563843032856249305126779432272567291521347281628759021323203469189489106458976181028229979417074567400209692456481256337992424458281256625100809687156579868154538948794776312944393183981045057190480916437544999858140592260270070591613147444167599890139602223742718567167515020087256761551414051817607118184241572213167551462945315308874320726570661981944158207896190107937506622542731184409520412457659399431221037051164977532233543579946562392849873695705238122115098873233961480539940863940113118431706641215102345386271533244863600836534159539021725795193013085109055702830494977321345283295130466797231759309902012675515852001626044284985555623999426415142708066634399546855736687974528374114653856128630760818515944461325762298582296759081749463505135850405778983939776705218452770989480697746618033407530847521623941777340006741336371053597586790542975392306345784873882542333366467215853653254700299765840858543053327480598526790676206666724919277547296271900844598953778452566416814463014075870025531371234791902344748702495712415908825457243332367866317206133310359886595926584689327901030780612514396368549802123168310383321593141675701350414413552337105374533557774114252588787570356233583486577234927315258795805148632512575205789388778472262476758237665282386818816855601177953239501426024168853042542239339803531122214656517805414669708290162762690522922833925795585666048044019348277247001639028010398829301243654730110327092596983705292948224736197806978206356790074871663219164597778632378591290608941425251880441339442299503077777857509574307147476937204205601466151306056962021221608570671513219324189240326664472937903232080098423084655555612631975028435531150813114930452064275123501372493576903621897015730643416285835815306922065103651358670249435982504292081075230489167068829457079941107126689249614489052676381860186315624442400066195986286458486446028821546095266772324656258344369110255259636473035856641608810842728520633670860896779429845459849550107317427037345380170009364536723510829361064218979775492965469948504728563372703588778750957273682962787065611060837443358384235610086690269829610568906881584805410796171011080737984137918593211150231984465628656669441520586496374823241928452049634091141206098305635247071663429151491351547028526057004525310498010037436829944987360251276116959834803957316280741676189957929676298692652103403556668876825749092573387973110484563812413444240431104835097108464554305651531665805066103584354911753767060215334545784457934527725961699601202421885094774559870683187886016264124312044539314405453321520896942202791906101785504196395775945949696139802699572465739453262791441164141415371266260663809813949199804725083499947553930959134996566309351324469269070611680577446815932879226320263787601617260735418334102458672169129581540695259107769876000167454101087068917892022666971073136987658583321798473403098607321625404994746892680865849108111283514443573222627375479853227772304182425243430597396340216374044023603789369687363349914903128961452041890568354452823185588734054942086119586851554998200651201103239410692126598597268756929111415176506531089342557633595124192333850931624129117080374761036760256356279802954224608398886011729816053124451806740769210993428303428147952726042971785690993447560322385407365250434745413734478827872972191819056587148585332361212742283398854480723988471560613161667714002956720017410441493129759200716760005815679297756181181463265127077663453257442642147038399375060737742716343664082066843230090206925785683540573813656386397983097797556813115985954507491325063635021290367410041259755357545246548656796049530350875763257301907916992257663196791881458134342767827076010207732478239685435477146462780048881992581018896495171513778825347542494819656320994751503883388326116308875527734765255291137383327540353249750967880821760565899235562769632221337754294006274052189139376363650575087139425424528595205711219859287828233147789454553025687532446734067780531448241773916116677247443317659198311067580240832073560278720716774258405589236022447435945316374296670039871486239077599429647418514709733520974405125640666319323030913264718845597730694039766206878019158222395526648527863042235422026795848681832182811548993634156644432452590274429279735133199965753982749516844395471648845303535317555828448252731150235328767734991949314630245771600762312739572001545494126383993734569305522410901684994590143525818838522829478661827663228269226971693004743788325943915597033099461291377318986117130661865106036108200604510863115933463326961555544255896512903082003439746820185341598049058765186546383492570230591314843565053808141965914970340760663720369021100559460878141723794742193730051122235522714985407969150157606949413145695580405449885670224783635122583046515508026112349995403074169341514708541287435793036220213126455413050149600327061331495033623531386941629126259785845410202247608216012379200577982613000506588846937513640376668155372210379736547350372055296202407609967897939117143730052186556317363947892773330322321274261510348633115055219574544317545855146266134158428210700842218937641378948746222780680169101990990703601970665415258072561103053183676698887951990702091136631853590134776180613762886045961592581821410446579050189472444550170053329761310985865676439470330047023502912829966260832111596726324870266436457290715172767131401995602319877969365448824717727260200544302615002775478404691635833761491829432709703911636525072389900153190377303269995148845979527472804392553502803053739036147907310297389093405209073756015124916277194787835598045645205039370710459204761453817228745940559170671368642741347984711014499624276933554007136334131380241545604782299049735268621785147001818224890541456243104857205083715858591979779997373074943322199133860796146181942359317444066016094576518742594320433788529032630767146249904452489757335655041060103823189342710960025351764218653784225851620829452965219526408849405649189018877447627263992586604964438454426902925392308147491101681279167803789144179242578499521570167466091897740334078597098144685870309581682148567784577253807748282804037627072078172629924074618174625617309946219968373899749262592783380557896768460918134365836857962535321493873391354026233431026215239160932061740563548916700341078824524301068383915201413324959395107939896190483519472016913772569313999794505536319386123004336732794571173274209429526425384207122536070040748541590471452058902916959641103985033216644722084674459788351326112713244298286541524258803372383500450876335240505392737785406587663831775256923872967428466202362074442760510095614383643729288766460149536771722247564021273960901937045134019841009896595508067233156265938059599294814465016274114467446102618530292471398824318359829928183791251360124841588440629491300293864011362032525037892664859954100050578769383317750561687129823840119324527166648206104600467014944667488275816269424060506384161632301806999951020749702558726660370422466515674976358220175617608828570943208461688857799129398519206393585166416430268055651128368577220703405756264295727476405204579587846092771538145108868167534400573112241921867755615763138305445242594165397119783237227331949767845109526137185175463294707815653567438859362201941512639635691686172110567514750225282060958849688764797094681807944292117683410931827142306526752589371742882841550437464271405103132045285411586369156119650734363886614186589665668023309042177024295951189724607239414897495569166078284466578011997760287195028532531250039101620340102749133373459517469891691222028245080106103645125231223471926447261519745092393298044110544760456211276337205432715917271970494270789976199209240483222714923621427198683815819514788146970577024487555252863174299437305106401686613146530749553827766753935248182504952230305615920815265511045277374092853752009931779866230959624742486502965741243168821688280478719804007902911958454064246425570560097756615813786965629010282713704014175891015715284174912769162083857671633033141415304713647725359457540129864661414584755035877509179629897490606822813859947638463360625691358892779364471113358830581540478301364795026984560765255453035244829160026478852558442581347303731233230352292853717682723841903793619375630676933599106814734806974356526844013420834203298969440502126763149708748894289439468086606684786495567134780408135051175771167008689505746353773019393418647313335674497394568927870960105971640960458693366364598789159134927486900528342286557288949540501223620977959653643263326688664451438895812290793351898349641914021246564826206930521027344993758664510203633202689247653599292115329020510997330654323528324833945032752264446400137129684314183803618976816409139782252430027459376349148933524702239109997163839239050892860250453781573331299503938549068190088631829513861458086973429898705691288640086674956075764199056264874813400379576933137060893714485673851109484838569443004410069358293457013840080918242176202472868234874454344310317311821988726777004390088463717863150312752716424296130657691101898585043245848645393154041668896967243408595308061463666689799034212220532923164339792981867899834891475993394444368365616057052431627908780738088597687261323286346106722273465843734855686831232485874600885622572989124891244052463389861899011296858271233008518188537566971318673330928366327270771960439191942302935916993636466170488283023835815105567034284581572435872250884057513272437854745297988325610477428567662457351929263324534560109120281487959663112546054664089677749842550175788390710154500706339575732926173015152348173507849106701103387734208670278798953472367743527956200977627886707555884679631531572266570215518572452719034418329772732079171536553660829394891083291824540251467728980353330913710970782104197711563766304792112399678298012395297024338778927933983926303284605358531925902752016239241911933612208111350600472469963435014229320264803983827900970240846440322385521868763404904696650103123412469920432493304729085893378961459376580379892971213215383180090338303964777362403096416976661774565906115663904133513938079577832565619200184935261447112117873564667032214998684392170049821512565919139025173111059468631902920474010832726153589013696565913813906478327107324622485761351654347832238728045225506101131449963662477470281318245593881719593293399569433125406448486004489407024274592613625221892765340958482160913557329506772473841610354565503336053298603500597037685090225057564524233385849411234505028662138456900384365104178419096122336338325296606019542765330657008723812149271305678038615234014452064536591515111134665536590656141916961415042500233366032731455066106539832938367466176518339197394129202335276332214453928084595114123016693458803551224320557772308457687925379089490216896883615738797787285118139118842634802327360899972315420166477182131470182331926937542597559034421201105954300476009163002439552994598467024377845120618842993648067963505981259638196783240643476231858201467075602623866878533724214252477449317810458388007435193288274078943415539778918115226853995044100596179720327996641202201654403007393537045725771271697605342461176810503916688570205867813519370033799996937066893091321310523122385220222222413581217688825696726705784028381898336132244153820268893541494960094049419004405727455476779342463378748495155005732855594570995871538707733567170613233328771681604471901985222671729983097324753948220659439692708125075092874071434934448504940202355935608478256021003960512328493261212561611616776308751564123308386258188688357049379912091248263986065575252725333053241888171272850563740649281764411050993954196859459888923653710205987017328888663186515101552481379469866678277088185038085749925030751333396005449236450357082956044544641518143917505726076549457369049539282755714093933426400743830904977549322217094690522093814389838867091164949594510645690811114964698758014277451038732282233510785624776468353455420118735291761621526772845628981098668520827707478181087377295186457943692907212709800243451327159742511892279743426745760917740621129696652231914282820878232470753347590705448870994908081574187999206400746282556910406510915224610654357687272105512012394027091191999700636612184517802994218731566258056858961318777761335917994373715188524435567580924002607185221779419756111602018686196269407795296712051350548133722632138815795217568630196785210329504492114323624228471304074875750110699955348170389428621437308975206571898591277568516803839077922914361456499923276800842088495289016718174961314483655795311520487856350436369342731008099386474622255279187828369544395960854182289373541203851655292305961583084764128934107581432233576220071793907893319850752785875028622035850722774444700990408339608273000285375775390038498379795936191344454858102587277142962195179116392308257379822796958808183555272131011115716450002137860360673876649270363371859717318440368644936160240982767572422437772186145238601769668311314963522116259028903491893874954447225057262026178921638538808108675852050406025456500804922179166303091728075157346199681626778046204151128732872544985293134160177871197060083017064368742863889491256121778280519572444496442145567647793751360565647579304277890249434901873742791022422986304477898060799185232283079151924320838242418688766566633904802371175447857786170996927430404582525137862402378012150183679395809630606874982452122812075995139413627695532478669676849369257831570317653636244299694639962046191007966645397161296455063506986984609153665775106001401897002394131322634798293536656841966243665413245334705315671502238717526674268831377507365984653147589489432424604598689793597339001154870537591919435498857676896965185166585542808298260818138485331314880035653167425352087316109553080293768873036984586359118222880077154982980539405449776015152717472519220392460695881381732053728822887203988181642306898018109844948731660201602600906278260616556787589764698093051610551464364059393637373268396616667748073885587413069973539582694988016705826086410877650029691302958436788862901110168085026118549757931661095637627638433109292317106142748834611232452430240837221745375918138168135261511652119344553116288813409279266138057624773991251279369479792752770703553234044778347615937471426984677372941729285882107092872411876007069282180700876583024236089075764608984211608121523603316367861985309108075226892145070547234867393054099315465401540030392571950538694388777185258714664615750373827179310368707258207471691165842358796915622687866058746780411901436361139588270532601645878128912656308064052060622217891338691010942088557932800019655043623941801793569569921856534119341348764478213027224362277501422637058692476977091136912862508053311907092598603585176048393146285380511432083365592039428276597037044905939694226593227608513387859075754249811984265209019387943430383020545923171239857715185256191291999336361246810165363797712017400190920619250776599446772067320269075512299534264003953947365731295467248526551221773540607470556155314506738809164431846440725737105342250485004972263059104947207218142369801870794228269933246552198824748461744658502784426975791772670632552236579838643927752901509360877228543412814556406762156095749518080794568968955595498009198991361572324827860589246496010074938679201224668652900602575893357233890355750214173879188933457325554245655252651161796808873038598255015159047835738293107849560113628993554980579075579512822341966479805860349729674149850652213349465827261170006119618052482137213067749614116120827257080232325316625246303632300752554982666816822933632964992888725312296472438211772424879085396702150942087901387013272480460565698235915152845383074389899429875717682057557882679987645478969683213515057264151372737977517891181642599591914042534233707927933022205948543933589090889781386968350773877104270006944985740097947091596510814028055057966408168067153832797047606329906305441061909729850094990282664451414544799416640770965122821837378464873410428749151191335694993258633253117000377032250850345632042499274549222328755354049464376285079808698553156050809505839104739099400317670100841492090866410397672631258346902476048603766483860845328249421668571071147948981297493155644741592586595439853967199273444643646005775957845538894922234797191309183737497067832695027393093161409784985720166693790933895951065669408838577990826913994419661604479282599598463022989977833245589490410862818087796765876039129670995297715939703329986969035132743328931734048157646811044077071669316788322054152281738741658647877010504549235989671291790321944001118360561000180846875836430784463755226793808426297530008503634680582283594497280623486229662528021828765263629050846356728137021054628892303560773335169634078267595675435605146659465819523527185906912974058322813827095379939635160201424183427784641546043341408671348650510061372605709635732780022938471528698583777128714189552772377323212870234515304419184549020259738456328098021419237914567100508560708701628228142363076067262473023882623189781657186880311733952491295516789038334510582199182588108673030291478910705251072628096553767967803308951894268093524856173876902948019427381271968650594637888197481435341232417521914376030634608656089679497462844162059559694426195159887309130522121019791434759191262788209286164378540329327826479750280926126248339657874747804273232382824147787567479235327369591361417373414560331675611009206206754243907663780570804363187428780117954419544784881681416183093318538015243991217587185974942661163527526865164373397355350795935986458297068680187761249678779606999441809029666387927809774302072154939086578676853851927006154015986306231844432737237288933022361424958116806256078714573864130695232651852350412468286117027703588522500515240453464904476818129650679179967560361447131903862198899212178430562773979518777645334271708254689644020814662995674509353003104185377245929772746705253008657545072510775804019078665676286394515668810558929836742009767786582446953884297105867387778973180522438153255311788177363808108785803213192486221272859920853205003748618728921742203803108636533809701336635457184719537969998155736347542595197132315386605776069280038574876079475732661304001843141870617783424884160581702529955374665300312021748906420918019039267956541662500636428892505811655501137989717386746819035473627329136293960415524024975427800379739010469456608481339534334065050359898895542834905240972241947556739263420161075026321269152868390699857260910277593922487846564784502549879067374103131742377236373915685163613769513929996307913001659202344898464696664886370582468618550542104097913349448203070081012826018261696660111410806604319567218271113049279716495969301918262818355722237745960548933667029295087900506953771821171204913728103205265348471399240298767038811582367759801050705222242530571478160127778736005199338087738647538030431709737332578255794423423700800795088435254056170854053044221094642409732363926992726941624596622061819657630348815875764246943065915092640131059865397947617407023227613963427872465856807767957064414432140239284005545203366496682330967897910001067309712079817349633948295377159417524501922678759014811837446969060103248494596105197700635852346203394734715371888317049449273791061594145960950730316316437701061747023443391831069956032488398721710675037101634894645584230586669379172705036852608462531006757666501165877517856847466900182520929802178733944939790667455783869438436632082316789365878342407018403956270371162384188174299289257710386055494080403705928186398432130764164438729624483067685224925085192857058768594535547317070084673265434243052598332570392859742234694791196159760676702697552194498942411281947264054348842827947080172240844101792058716461755820132650884077075837324116776661607424691989586092245141074457915819805044269194678382567789213166632597166483108255108469467405927175159460209603590968074272791108639290662725774717468519641948512024526888080463175260689719453810017255713903999496265849085266091888348070077923501038090753013096736051170430109921627787652450664039824677659798235686702477530531485219130821164638544187967552325704687981146053921489850109237060801378608923065551716036358004801814103226234536800345445702024779942681144470054630938677686755617982571576838143305849663067265590194755352695168595593040692664398777906931608043774791813499611204079465054308034712703208362046332926879593962869761574801289904514389986097085123866144736438886209743058411129765809290075393289489480454030437047740531636244278745056228967625509344470914597261407254054366724732030527859468188939191277235863583487768195724322087336199275669968417508795223508154971424671337446695425399793262129899730939859827435236521632821614481334653371267258480472028908809043075587941655603455770574317634987409082904252712612713562924846954294062202487524297911881882083176843528378024862459060007063540718435713261647425642095804419094808357186307677172525760243147715956223524695886947710730211846476756306474692326527944084138300886710681697350529207277792759780576870833118687498027438554745157197209625780971812243634765845856222679198577007746841387800826302802538485534810570201638668294011098174435937201168951766061157412191072632173832773280590435935983268066301275461181341182844956795718822032785555204391610028067140055209402887281912762050730709453023472026715151392633356568929240345404827291907770027739423116373854971582780229116361970727357383060252310238095757754611531608368773972324870507659644202109398046447889712072600220157276598745100173852521516007570784093212661921450902857665268202455908609621113609725952410512156398623720687712542167833081765685384105664741834185926865098804207418166422511983804701596422973408637289695975155258851981711863754855247620215113517264572952428830537718664230014229252380732976583851517437917396029997868707879798457832743237501491060103595907196851843272377338647560900399956938386953062984248838877686317048098969958489077789695550932406855848344076398120843295150587914596289617737696976084200353106151306997476250651964812191759035898008422561057448876154016752902413379655998851354173234386249129440874889094111188775448715477692444709076213316207902565581023354281491149004306821759001784135411175725016815384374761586207009254245894296139959970051194590971426418249108718533625987384538307877501234299883924855917834120894787905486079297921488171281757633597935238070228371454588497573396851887126780234831189461307968648669082597116746011179826955685700743200365402816612926093129022600954415178797638545585966933815431474914767680716673482114577504310627563524624288509081478302523899017810572598129844626139656881417046880121720971194389171105115727383709794677510666613065522816021674770993894168528206355038773169161255500326552202573019890904468280790530857103955407967778600899928601169564157297854410290218489704137670782180268871418576346051432004781786790403254736045631322214488276762919092705347304213069501615393560013274842832609670941042779207651724605417851389318077376277694044126942415722997031672386743477824684598174527007373865868912465197791969775115959095646893368858480940114363309088035601896334758633881755986524465220747820152825126957727976198304910998097704697933771290944813701467492669994960978278388568952807362597307756975054657049814107019540692629538013317408605104409431957651163721283003773885862982541829932974290803295240427870457854312298950447011586914476267358757767595000107288816153662860613268751445847383991110531406369209120784827061325573136397918690547910929665882310090832329597092479703698062193714455858942009109985142325250906295894807819127141136324214497734818586109748908978272766542513149070493886421748822145504574500471612068382340349817681269933927585264472305033435583697867431548997663402007269478821353406172842332688447484922870913545348036071236132421322563396016228151540312488038069352918869897091886396815816688736342472853433691709992951917048653472324804149137685065770691235293045880871318878927073342295045584474276304628828038857582348506126238783247924825804149891042402713837413952537937679673665176868883567049213879730936385388999933697642828481846775647852163355576805781564729954158814332077913182161674762531861277506299070936907427573619125888577300204557931269510944619647076979778057254055898527361638934043902276769485187798798142374867314410092372375998062338853940761159407120641287769362928315840596186061847866424172900990297971080513735259860450422404312428214445701297161061375130297192186392518159202971906757454145618450144479970190930639083718348433484455386441359340500038399796518220021380927961177378870237372429496630174372617703795475583434623212369550770644838737862736856045722096590425949461789057475897772964197258906857061637017979063111012098015025792443824762105975371481905710684401071385035730764958187213884529797826106902665762153260548022120301346645173734531723536976055583119478548804730903978333648151958596075849848916690385750588791645025269887159033991642498831137700680441390857813300209062336785909908226688518984391238643931075069392000408577253320125402746417611283881557338383074236478565871679082650298084739380607740910566558907041253269110821072334775157968888668881455665158002627420771595084083159250008656912922654383609942191949601282241358843660916041073613734357824592839662682329719321779171450128403210707825930865721636774573058944923639603747248952904544140448855973712918181407049180460959784123913715742466994670334919483165658251854588268162168184322271852240403714473741529744759807511257679110236538965157714402790976394883357981492162282820509222661585021978548769202363498428907104295040333586618356793095801607747277675640058361402741832775857406025030765093348452575776463233745869698205294514599602662080992946961953394144455012518364133980590323647796309567977895359236180365617919181884308306446379169083783918007086614579082411403106157246820939937987969550728668776997517195127950015132084606154734908128738909888827137761769268732235455998613353547339179056384237592234612517163457224836112481931468814865443483065543038506293433638108837766694599139622187460138160670139480450060887037925684061419658435608202937661468343932792803550388526676216376055281110134219293834095987408839932589334665147962474236324298548999858344368257585077773685910978254490633802682027171093566954447833030773421836092792401191512535533176459402676759650040663844673309766232081860135123279326000166606929460023945514255712920634190398439475409387692823877802120984070876808035300503584412291723295896249226460853471409985262920390635296429291810346395964701753925050123302599761174751300986439225437824110369055577788461657444474542348201288586960209987061244993302740852121241949191487304785012809424259100778734865541866288916247324656713178478566843618406793494185178392724218753802464495287185678743425239121530871154298203993573657062910239597720809183931727138826681310481466985111590820298659774662159116112444253639155405823749743947532444786153381289573971394884492454533312816081282230407287478990311366206302689097806921736295296958456043704133284822230485666954395203551957066694727261636968816932610286802371347203898367974516485686594848174653828088973683916513848880189508349542139108230325629869225172893083365650834048109327522934307162929630270710213900152878496127962781149497855053908198500044810316859549976659780758104975368098722237402502004344690768518873903377719753356781326060346428248188271494336820258883509515291786443293525491220866587513968382144746763131968353487003073772400381529143318047465470350489903571909944075826876994354306261464005287985672557228168684411061492652136841315831566384564210329996639000848876649407431166951610521203343180334859937581338825647497971739638926463275650463146305455205304515796460055627309151203254915743067093952413428887632049654122381301351766740425234582230031265409523545114223949767410915388522177617624278177283428077511234790832150375337206364556381523288735752914809628362879706362855551182523386780482325781007702958704129281767015247264442412863036923150522463673720697696748066588712840924210975291987529661110960406132571179255573475723573089488338210547250167249050989444877426366471177889746060450727136491096836465672426481650785131450145375846465837589635343998852968677029311010638594636403791295749334460126192372844774770092899188523511720153542718685085547975511590119273673053108670138774123011178294038200518960542436192209143115029559862603887575298046315581807184905546364990978003385745262473876953348868555950784574387752909605305096959435637737753403745985585177815995102393092945345403724957517448640989663223555847269505813005760462339768105974035469442229295141624648889009034547934061192661394512582819320483698206635945548432924125927970533113307313803110095902812933793305578764245243318458481835390828621479571574720354446512461977404571316226775151343118177739534073471266483236777722194125165564521297264037410105938783471065820908781911052797712278637465597817749173531601136105077430652522636652870976975068251134598732385844542219724053701636295063292123292768009837902158469455635173499887988734321486853009947275815293697404387485293020921237819660896804459647127388605154442210787405449663928212058925568347569715138734442693772051525016182371228946308864172740346847389594508847859378356988599418917359749037810161374537771056485719812068940140778926371629333876291254511644646177954321178795475473651649131451970563617441918848052650672955360056364032358611144584544714843592595065425471632454538856335436188959767707410148556356652335684586568733963367129267914678219194153609781929937018758424551719665710136874154251988853976175999812442268538416705699723484290676564753749060879965650295464031218647487831143907790437142429288358480605181201389308010364701389925063339906540077358637062328590066928175995602359063336594166506982640034299291849111268452576315245945480292710105687966574830553814708199747318451076885111230644301979182252766404672782466765237960868158613991093276373008018117668356031967475035793648432595962659171542356341200789022442742971717441151320937613073647209929597808813239614953613242279602117002217459257598777726113278866391583371180392557791955654287070544067604875904796648360346321084440309594331808268127330192810624311139815313105177476523469456408019099697724229831360684951348459417478030429605813712011629694063677888195148754642767631735928730013319464312769112972889166899540754024515564003385243824783373164813225952201434821056633317681531781147629620449127750686890736359667451076975499936647075813762860732616292365952034368694256548496103781291134689061076164030129053194157899764998914183870441746198479196602153945809927526596706901160651791759980958390887834056644070591736690427808942756623640736128900304936912144394011881191481564033894563241726883260236802593786671366640096598696235354101465808199110823475475892793780150499790114061489454237168323043975448242383652468096632232081866564109778566692265410056551900360116887332228286773787985545353151043587953499324067562467284470571453259484189039793117757250164958955579723731291653650806853643437124341163734573254644051931010928091776696072310475206198012941747954552823138325351002086181223297368808115310999626380633512792401456604097589419925485393073052250967951326884305093001847109685712707354679758595546406712001269578324866257428807934864144468738283036202793720758506252095228108818476740410481159940625073055447485855944528547323862891795841590434189494163094582239625564296479191242360874312893434712694237230551119486774480548564201695861892696110487763534874875320938585192593665973222351359104779524370358821725821688875463085276364162831225807551196077957403069750311534354004327070242310647325028522323779617730970626865812481561086950600813168358787940987174975867804176304972729057675972931352749168472808368805029787013217108435918182510163556501178516570798555309039920531273258395339216420397409824276125987791651583118766554330522214423579534769691538585975453224057587258715428820954588282852767050998054333484344496211432737476864957520936102875013995013952643751590904132445911075562938426546193724374801670801935398027661571632130109974803897199369271953794659877964232975011777658177021104275599748274955404289411117780958233695642202662700831958760196793140719030458513511465790046173750815905553334473107001290506889603542066239332080400521821146334001561562365202906060227870834784568107719516250955370231148371822383224696298966908076244981031180821896032104991114607751732539095431117367215467819595199349948361110573525047196885744942188742850627064129935885913537310583035775038899144775558750394955599590906803402926976424981894524719319228204096088457858572362228352753197335850419142384718102412406896099029106701256901850631902261864385980991643102596244281015874874290008375307766803078021203331036603865673119546668379877335006503840530461906423260036052329458472423424950222404238792787657598832457346181291064706185406742971785094322408763873669136918216566362767409769058827288464351853925255455667402978557849537070615359741339134222557310306277308539104415139052668352860061171759212591494099172886731143491390475834666583513007506629818915303206968977574595604464694853906795110276614130609003255051705976931824883832376533858554460141440880656374275126693878745724329636648223885427080183405085874638749453081032436375684801149351541058688872577664448740812364168505610067307769587163570510165255416814572225224473569138872593642122309388569613402593302730610689755303427630967210323810581124859316251625117530059820151486627732555370508065524488946688395827504812551570322335817353122429386167006192209255886025561289103452538421205526406577503318177382041092940704706836420704643189758300891478214460913254353047597267999446390705242294106622492928654580049932534953423431091582101375293389921260491053289928648318254961517013779059268880899466648595782796242093368908067110906145313975403947623498087545793467121321130930781575497185492886402525702697905803314161975423386473813920583977937381856750672780404970522440188724078844597235344088150378452830918526431505798452531393923543041124482933160639877194460922291910418044712951338112273511925593386861163326345826253233579929533422906585023889962011229982780328952656975696992767267160466524037955296168264722409281488422622838204518967325668274171453579286480832656000922323445758853404257237748949579846984287019561739587573147898504109495025585694437833459892653971961468722276604840476008979066729363561361170159435067251875257914792211800043931507832660581661571918067656860738904256411278872893766145494579673291350341307938685260124159177583192576631115652449020803861914348638498091083744418539364713537544039423009242379734829408926672933877060728761083531249000402608289540071569863059457231059380244024273405065039489296323968454477780786500350135288321608434705754322835346655932569874389082930602230552974043447483222208997876768539682630179428992151617856834473204940025415996590399254776731572851803194467754702035552328208483241533941844055898014336263007634283650319733137030740708375615035212998627076930588435378044137879158824990506946296177296938248474823184136103986666627833519016921675360878097566180762350097560733875274901776342681463460891385036447292255798310573585314518721487111047710782434167364473014607849011545223052045797375441772355859072920973580961898819909341537806444924370435902851275006515144043968551589406665270612471359168196249406094757309990963878034211639398047037183175083203911036847954161951802365906394430818996198446581073978020508184279834260311455354628989260679925108172103967047301243288143883040536360675718463452089852599652036938115058492111345977474776279389006176394575016213496053038107326105548872546539128206782912821884186838430481376336895970526894107928228550559392367337560864114961564135475179160731911554697362727463401093645765820027795074970861059654087507931248727194905668316894736985160966348869062027215752723759275575213880953899176457529610780646937177135097705524792646822643199263393660032492244623996788191380560590467148373919537758938457215116230553128612518200346293129095005608567906883102030455644382730416870424266993450047443363424676101977129413093560597739666986307331949482508586421534285496474920905372209690659406695831709866455024571163390729518335454641774331893948611042223497886891968610369772290727718235263595174039482089716470493721385838304771202432667208988239571619274175739931758737825672048145844223421700288305756724293435919780212946869919689119857939788287815753901486292463904270574966906171097221661984133587420646080357253736931569336332002941653468846734333818360535940278782708858438296881451352555351186825065123930036456208127346318798049324072437786585559480018654274167848690203008515860181412249353314294337393488460300678028899071325433952409747693961827543587773634292320169918253160862609908387663095355705162104459096998928195630067641614933090344937781116745380826844277321887307268615713685686472714792659764884780782007021650318774197126907542601248466157737497126491927182127880444972672648936697996474782568705535051568224794794429212033672664958132675819834211751053098577584759351846985351228482888062633998895643282187575481072563481219415101403727028242887999306400750650687066741823665997179342581246693408222984937455595358680975697820532178010318705438513497714767398251450420671642028779191953162437588724308199558243460627948197292845800091011740185802311428172865424514565463713835244729940871138765096711993822926305492395834504146030923437555267879812252305041539894515006862714186786973698918682317925319590460225553901461476139818905350200682808977289868066690279087203154191218373096155216569657669662645804132416184961158789563258192553395097166102123595923662575513850190495449154875442964550140029347211881154546961664624165364101546044862750409013175998440829275502252681752657660931661498280747458465964522345865427651011796933169683827284605402411552690969556458059434775759273018689820552147646226566635742041703694291482829612596668413114211508052495909209875036231564675929719148583521054289706344969348029857902113304224070366564681631745188023014901648855364097448057429125196282068778977568845201705866676066664941907351272980646931465786275540805523527347503168548143181422729187877246818523626360873774019348365485082631473559782986822523514925533459865077340402956230275034018147432760778711581841946486192396661826696651055320456570271632045525976670397355458317738582572311392920869813797232049547678457739489069341061459827999537369361321426585158520778250362847417177087791725750827877477034544934417531930316367665258315401552967517060063802589109336033520517386516280130456145962488435494674303435360589466590971747954248107601290515799383200416432170112648439979747904141358844430314415145152939541627785764960601425122918643928816931410511018253655906756975735068683756346351062677416749228546301211063587910373863668788500450696186146056409752749627729258453865908714008311442898887316955117722226502141066815173373447556294224070513432674552876545491684099288312165890581918574133550817047880272117972701743979889623619239436629421349938110087878430934135341520523101710186853801825938061640355695805958181835704055884577434211203421146035774938018146782417365078767898667456200108030794471847713141069445764233393129448861778602233381385462253120339578317417407561485699525002396027629158571962734598507456045112994777434230957435923180082333340951109577824338770316213119545008239961946847211637100495451992561348409206021866820947157748442791916011409077833408919247498527353159859332751039349257469214274233118981250375322814083806879874659046582602210039528149759502761564545282122185867369657533021820790240413608741353238411283587942810845318512629509502453055024899079425985112357229060310370636899751248680324181456817031713600014270176149987440168895081606399716913904867674752995848753566822587084987960188125722917386397970082855030584857995114413753249049675417175951782426887133045774642313040665144438447432775094282323093519051446516368708513816731635721492189579476207949542265259345255976002470385385984322439340910305169904281211554535020161113734862713377386534242320190006736446450650753070414413702913652105073095732787921668723877045502156015219368010123414635105830046462888967399747304054987620815310700827674386027635748498946742601143297720708786472093321622577770955180985813169095641905479590246825008753541456543987107845156798056055569226745519487762988761925700639129443624824271231465880403129143414238803429801343541107228737937718090182654807496889028102121179965620379511607278960638385883745455083498848661261954676199993446059889735461835203120908551840412626572476460655355698016619980362883947534108519780549034521962505774863374236863742770091434714444723079436938447460339946984131745286748227587741454967857477318668472028645140424170421175591376665406817771606128959147177254089536805441592843152805275201801122990238128793106565842622844626819704906642315456586287143424847834527709068299959807415579907831152918531422900491404843820405321317663354136045041887905420438756383846139573045842618378778199765372774015652778563992580789371126853938994889371086727427007506826876609331303328313439679473172408937115590024124876936163603472649673209682961691724252276847138958266056338856520090612731621781450650590950742621221552950166344254230015959744723556222036760179402000368524996449118045754894494859631528323599941373943880577588721745164945175903914013973637513918848326236991386887795412440289386017609408189566930458958409701474306980836316566020615642082586359191938452709797886379281926868625499947806985623764800638021831645776106623748616036900372333186865620447693795179939948684857843440942940752334085466382880534557140639778920969724163303898722519421858525361955577927230769188243010449572521006517242363374410382684819348449424358158655758431900755095150481067060476866633324664607315424975848033816475725118161508647412450101613061192200249126627151011609426796313102335121351006105138544167761522953002588045352969497074128389119005285120354321499801561612327272130642171080636230389871569743614697261776315823099179063132981967967604590565985754991807190633592536062918799383112823322022514413071920671842307627726451311883102511301604524416071911927869192446598407504455355852023910681100307787315299858972027986421093381794216202043804241522875053222849946050415848844676610017469844795392614630862000147965323862332543309976559703169786679734471996908954966309524347437756965104580956468148186394972675261507825486442771036659405857062258378926143814872739115077341305640352524800223904140284107323993772164208625238282114370481770210726679611271898542874787898970823664511474757606115374025955380514674784220848291171923182961946824110017389616847500765752313288942170291432621949111023631569620497654000795357134531416999023687374909789793971652154089919341307083288228000982130002717411262440281148370157324863018229095606958334085848993284354409855504145728178106881694348353786803451283648633223118408230099117622347316335632334705983779341448612136898457050857062267341420952712786979432730433840007261944599785124574412699989599649753192147451004137824256498104247431368857126830811331624728855755905287409086296094196288106425846359305514653395911142425083808550741065358366283044719420551490118151605202586102035985936306591334716167847060544033601894884138381010828337217134110209382663514150092339166823493227296949178367193699327398402979922590580070250386813234491405294324719771697221996776204721105766928439192423813132837659426076154193609900877743775919687076196467309916446911273050676037193739626012633865045098387558995646624188609891405853267823528673107584740314527524872037970043061211996257234114229360097048021052265322609959614767939187871041628416625958137749150591394880250030163608440007157850911644012065433090980946475608751965612348500914068853358074300899206919950756114343187916453576986779630665276306412549719112849683726836336592717871591925986113893894665713215421105389073576337532066023976581816643064669376834640235183913810510183933296555227845054531462137701278922680120483657169940366734426999719024217483517194175474381151798480048896120648518408800697793066561005501190966076515238557917224090090065292202674960227411306799572574916912057935699963047937504984774388645798827741279885505443522372060797900333680265682804305973988315635108845747264705544716217785489627133747501371884687284688656337111365405090342492486581760393544365833668786658261154399572384579662310038086828910936862129769190832523440463016765948447109088941607633545168412570672215806489822577315124603451186841921658254017930427312909190147177259732056231124862790560758919777153829797530091360110273182566579629490788069232218471270680051945448328502416239162522155012536792132251436501980034110023874510505798845993499448882538759178844133073308491550418366431345321451227225417392855458292626402896434516046202632005215036837357844774268421220685754509747684949163029785496489573177555894798904778915421015442833633773256548206514476345214677612196778605897232049877504659263387960942112593872337432367099941945879495695385659627187565479664403869376457422672632974088620673128588892616070140786938226006414922052172575083652001637610007364868594533186084366362038421699078717207919752769504526497964694791681216652283737148649524118534494327153718219489602781248134007775404849876469325018294837724849173905251324615873159154223859798079941075592772627661129872649826759577523286113385477063165091415063526230927143957777303520877708348810388217614076449721489289863113377442157287481022236369667420362008149601680856797248299957581476519863754797932496294514306271736308060614478285101484671298830195367734039354029336777606243491907933382945524398333258718275915209040117341534588862119097078910584694451206851178815743754838801463062890933995040225251960044250994050157819207905312054522762619132653957663867483232564403131124983744065029315212754404270862308560023972058442299669691730767496059776490448649956478461068768724744405236382202165370187383919547373203650543888519445550626500406243324835035993574038354055713662625985615176765540950386308574133400133656258284288067727926894659854745334649146143983948501421011044793831693416380996290158794234669025270686285942160452025363248316522222156560404605938645061515431526182771092033243406754984174000831205928250647969611352734338984870859946407324371706109189110538633298285219987340303349296150098250092240816128620781960131117599470828513051085007457457153574900553745870636899857124548656874110601782777513663054535606100821779040985226413905352542229627112011567803102180483435160696231051606889326092976078933835675649153023793956359745058935504953501406950059752014021513300718089476848839972275148769864255797564574115809518230838359014467164983235850692086260502376832072263740765437341703104183162403558400816358617670564870681628055752384860396521501280112301767312704540402130431725627142061787955461333645692130464515779890378304661637913480017904222275740184331467096982112692779770779757668573484916773449442633689808745563846930227589126205665295382269796927494088291304988424117657621530279345571581607668454841771123913251053991040345373351149825375350553576087670309372823418598170732316691815291526535470794122601394535147624380302008045788316495175661807656943241980008210484930428438031962427531395547057927133488317206521604000765055437951716951272978012854102165804564754157220435668792744357954921207792521351174360210127828470172120404447079766305101087364929734969159823571122671547051601099963264219247144115430480181241662426228987327164281328373768474726094079130262905096198815765884544290808650292668343181105202758722019760153074740346544048793205362190466224708625933050692238147850297442125471537755554837798173164756927718509414913848898725412854418252272894580583158190497990871667237638173908491647456088511989687458453596791483861278654191484830862004160553053394685414435178775746837001488391207364610303592782983387011937833852030471540005111432487270889780704255758958920447970917215036894079317278792072338692913796334728627246392991506735110170642700166742795188893203372285027043212220256062915600766990111804286200564053641465863047050489168301744443188533054133462686753753014043797795210137152424357192121589060630437165270381808576530297230616319949086906872879272851942785338328521359278875523372747900975297336441660989596944308409228738995326146969643009609969905557095202467981260445187327318975281272284630732781743481597131847352851391626888449298971702137875299664576870365200259933522234062675853453166147318532084632155777100496005141896272301529989170393949652834648470444959062856231714846021931502374413200162896231724050989533175745310918754004915019514349728032313330271050845623974722842399306650183258348664534907097521916296040446672418518121012783868318122466253644527446903510338322552355407251126399680716702008513585561970037432399224854029881994296160808873618384535131350727892628433879408099756723230911158009951849110694867458854118513975919719798321864712828942038383322530805718059829982497373131794067285485851701889271938215804024432306503497107475661114780563910944188901073363039956001352958711205828433411487991864891870484473909015059321813021736325790962964692784526663875912341779139359753522127292107927518826403031616771600449328143036907409685244950775381417472264689268188625689142090409427296131960998898213423375949058583660962826359043507579716148658051728859648379630544991868389814166682314503023397208776819171689555647375864787405605885324800478611003479751839606206822266210336541587173590992178030354127765662061359017559180433773367816121003583389269116305280769936700882225183912846611957161487027071893480564088141989725510526183761205630613946843440344505669704918889070500665984881678030446508931001068428125663065691088641152535842955230421042149642604484830626414887778268939666139712100583517553006745086578535445758967851440448000811368832495001402696160940301743398235370151891479625124604115281453173021992232015819085957719639804818271534818401537205878339138712488800526185689326812392691854653251184713970874910344548832862716824601286272672657960401563377819471229922375610903608615923529843074785538134590444622309300996268144307482570734771653219151680076485105952925948379530763877995764953691757439658366872307365227841147869203668134055495350988485535421023491145867206096561451740252995401197047553726165741193391021969391520173896860754929588640085287768044695463091588971656177423286957463370629346598618116774038210752204918873261524508568139645390911024016085786026595315546766152683896896537264821958159345125863850933392249334948261731344504703695592248785163822658055179334568547955014065397733432770701661102609555721868359467201588450677082333295693156849713128832733202967857410522884129847665587811865571923227125306282777057518311495927222389090468839220958614083683645130577985850788476087776479142208577312281122358800464742373056549897231929363211281369352221390457850237481444955295042942915734369398432640765426072449339139072830967337530661277566815284960400820572314683045648668891473267685382698875159554219122990528455794592064086925012452244367274868401900654654795770757968423865343533499213836659605688556681463719382988167994630960307220384181279964855752168827718781947717350272757356855395513658621776564306722590496305468806162137394570952163295501719466053352536004599509731404302821134487039300420118020400201543493256918159837611167737084919821510230324370122322384849211827928326066212851964158470391500212808923685802457035397973480151130342179687537321654697487919593132387715103120337679134732562217546898091419321765521450703038590074678685925285621880411246956469755297236774758668938382513799929144952192474769181943268775517136568355573873550062781230847602375580623143187675996635025306681809869312883631787432466714031276508621895926994259208407186187842223654301120885478996683816583521707397609037280847662429598589388770334051657953774242028865398620192255684803007270627150640519847073758435251335551340987934051053333909949343862375400762689434747232946770529269923736902067706276258464906739173782071289886628909385917837858491463986044534397333417553158737853944723150411174153467781037072876492630793268196366433920465829365762022026165106737724534978402849400460412523648631316045858403622115616655007119334269413272596782702384082284495517257542899364325264448643780033814705325316523519894945313369451947603477311148609405263525303536728858267539912490821745185572587171671069854228712559009903923347813389098118052208573509920059053162965000089705742920292733308168677602825487073614794374302653710668415590506314459370827734639296005113387510917103613162302670198220631059280374439964144125189598515802650053338048624550707469362036637229388503268376085005790194561949327178265850353857007535631220463378679599906561509617275304537880530477888320910988594581285171276891731507902294387889869118059750056821715244077618742015499339364932729960092303863241119844820778915191315463033609051187644379721962069543544193404740360142612210276584532627697544246317340268470134352428071528648721593254623255262154709332062905491319695314032041670895548319802904946612006568161761116770416657175101190500197164290669253460290695450357550681512557092459026402678788934382818182876751286463832268410175882662751822880984459699387839036448879788924767063357138665851874954844866412588238057320195785085314075473714466262342471887551506796473186888608671269078113119245535705817245042015594339848327956826195595945797420191798713353983601503303278098999013061037360173234326209109685812835871697441780496637039039846882784461134642877256083685752085112857111158569558660711567665335982315982543730358729351376855972638082339941930447733584443776765781582401305115044472122430499724721719622195821261473184943679752705937606961274699010362337555078858068087510801773860069235690650705335506140754428821385071413584651226714492243064728849133405759401172815302283962268618427980850259251358482836903988846522008689677798422594552757277654510162148823200933869125595202251869513073192332147975964847198564144245079132748448150131907642098044333382836355366325932669780239521489132471996075185719307941816631847756316543023770629875313391422169183169520561097831511990856360197093372983075456643935767949624745148243063500355863038332309800359154232270727465033056197872739141497978525328282254876807297722118277339110170329426411372361777534989383265636180407939277831944615842578663783266513416252112219673620793937430834692888788506741821250324143622928598546910484966259790782352392670842069455938768204027897788063468517676740123977381499570881759191201563883467146209717155729557696986912327033868081332873416318739202581805020080361069154305024949201961661954739667396667254916208928626690314075424545097789093289013747027931503713645843207283022159454681118871350547244551676627793434315538572497882956123255953982854244672013693047197984873672529730950460053954684184397056873643630781689860498543289377701763053776014499856236549538922022872744506073495818750481967983839847273191305042448272441794588181166256040602457812730621971205225845691792656722013789277310886189491402327368349287743254289357494758985862816954667202386104813751278528567734027332107780467174981319073014294942408784382034942083424191521738361972461325157908686107996152700855345476261530788014820330066683772552048201360463913375497918450971742431117572134231167890748672354456604455047029623026203308562226169247581197933885539946229186185172665638215221008198630616169894657749489858726315621809237230555645925922163982403029913894157962755617445246076557873498301230088441666881138489350760871839138957462439435469950951745887753878461672684877054272153252840839908785709175005006663523751170053867267367112143303049709279406037490610199425783861087648817926402779766376510868881908238058227367574779251289636226896645048534808396310725621102954263082452632402866583648255293863215843970827606409279557835227264692808738272930099875250481584186303540110634815487504914817436158331090419555655164209840000827876148988324012661412915028617225944771532321562025810001706072762500813238764536625674558986439182793197068645595715099968795278627493197162980514307824017392599461449895655361613575809326501793841677746157893478237999836708423888584529297632705586435476344352165893521170241487233688519198639101069233587811353081423893785109889645330794026291912802621284452580243889423454200432439398980942899581061904270631102651301464113166092172155279092223848437419860781183417175974155855189956128097421853260580456033642534102194658238376022459506079082393640514958647052480676874221920941554506265924757374516057720105047077905374976212630728539117040783220997358160022583877204266805274933822816186452432768709524301460779600504558087392689980842526640541490723971688653972140886383350320153510685916989235212635465749499052886670709545007140949026947352356384947622796811699710662344411326084881422149462654821629957205577111447133030664757794378380306414197604682799378013648405069599302107900387169887239232272720680015484442797953501517063285292327375386635603570877941435683952976029218250713051674349909132647808013231299215364357712216618960357166991631564821357266485511416359836934527045849255001000825269971645272300859416541428664869164639119335254703684277479966639689169917843999138595621032541174033244509993366737732745420922745034104427522458519340886755279156565994373760617134245455584374807200893777975339497906543880626036698490142995170619314435081692411747250666986408673106501657753653561529164298912443504676408676867516116648114170281297108331576349366648402067929840948124907757675793864878055305892888858277085118920030519289723878733961114150764405235895444063444560864882382431911836968359668908283022566496962825227082943361178087342668466584091339732634881398832093826308695968239199394546120382291522193872150287045164592083183391430554749183200610069907066032369162910269633337191286093928350253947671509612254070208846117059620843206232151284967719188779155653093029338923748055412971039627834533785936686436714716122488520183352552634692068682930622815553092379451652072984040055293040352467504437043006256568777568226109851138468852464794234857834446862415253923709068873901368119413433571144864663631471755562959139209149809534116996286694641488694019316942054082740588910608570651762976666776480441721416856974904990299430151832002942303852572068340376911112583578729948693876034295205545755430259123918585651126551528699158162017057526539773365016315742596880444762922068752895748630857674905249490797151964937814979506999260000564747323831150169010285563743850284707078707453747282490378152931429128971357874705431231704885262800996108436769129392305424405709795023260972216667347886302547964310566684573668177379722195491203135673913956641574511623457576188885941905389369192594988470769693613728945700092891707407780497959849800573138191778230992274264385657108124461350905596249859054568648736302003026279251491722372402208482186717762499175921125975439937387192228316492594976344265766385664198220676799914943798928758720917236774309988383996802872012710794286952758260914959601474557972388945331798352773743857437281154624176495719640226199914793427312869173118306733290445039055963356299062220354112528839318043145314400920651240716367789572475083491770691065623526732884720079624301079174130510763074567155843498059424308602203981932499810648407928155151604583195111462978255885761995897283110367619109415541951070262553643356033181944027791638600256618358256157421475678628694935774886500827168017490862276226742452678005963525703452443184932927158298221178759949190191194020063285781216517421194547788857115355496978049017487063118537861445517754064275630404581045508814826953356187772037303503173457878674164318745282192425664035182402067438032687520766427972778591005417255346590187279258993444925223656214551701733008094718245645298322345544950366761892022407894271264828903202700990216718677942262599865572802986477359572262843145786750320601867191983715583130462193087484813069392690757765027258451050918755001654283264844698406913616598652926489787557548108577123997931852169562189553337372047365247531216152434735159159455785859060869922659179871123607059574449560137928369059608736375666240119813749965277866347299545917208064696997927265361056026061657435073908981052061369640916089005949295494936968339432221116257551285169927529278571595018689055525924823828295066398446349819877828765789590953757757758224093221961441491690997672509583215905674238375110486318799227800349744538683228758693989755472386891922006607801743370953629442378893442324454782607573243417829272977392637226386533819434432953889187465892531642817226092600364812036404046926637973243371149747189758141758405175793479890919283446327322083959177900385502475485993099559724153120992985543659339905026159779963816604800494836740342648646037540045367244997701121731914843173430027941248418817693801639432765107966533249299727311045192846926445089616657309115208131219333350374827963970385528278084537587616265823414846388545963277621980458477440120040708721525029733144139930025580463213395508061207324822482130188580451183077891590721274843760870316399033185975187236616766380698549629794430548402096076916314528757941132979771549776613004156254409283075384165533113420480009149045394551593393609914586386174463592430718252608251053668433106987353078984900658660005429672237385493611178710384578681833527020571732987910890353673383646654645527084559671590438771407341982067214010040407491281965165624837261803434011795208920068147339344922747548254906239541965228030771438834653489386119584057223409478537259162863232234337299156841974885213002678547236198917353919221405098361067446738145887564148697124196455693714585115362048909707715487793964173354945741379853941296058230469244452391727438738065636987862674958443666103963921673968975998468393222128953472446001264110876929686091615554542962556726677090294537319252109403557360937514992762746206381776484734130378991267196599236546163832534063277226699361648009693869597361959184210394428313877550571732711601624923823795694224099767051705476240803489395081697796794350264039330792713226639511943809386780423419042295854403676784272099358130685734171016344685875319069560990705807180403800966804118111785231753403388061139229283788795840023858593513594327593567934145218625073813782827388818245809554511548479892546544031463702162009707206896462455514084251951595182182751749271865449011271788356708083793234315201788145537721865687767296561132816045339957240584516740793335553681176458946471048820947859253064387897280594093065843908512330653935084969944106350263172003739544129923726595630599943779220537442166481639446860252262734676029573464383959133183855247702047268885167688704118443345333290128152407880119758910176384119680390453257253530439160739508826535927212227659384618485913461487251269165300141875942708749277054981125763785151842134453566714617582391142727495991268446289444260481361289613176824913920786061786992799647180503342722596502810552960618235901384159886099559315887799771180695770110616346254840672318606225054022295866932623570008669374419506411894043682128805740389765377225569927883043135020982230500205655213240743918319658241309730301882351526911540576898082196751446358235993441558426056174554241823462290166949192760099631193268999051254647254157237410034878660859554999663631287107517739983269997106994073988990913684559540630451910975720314225779361575450798486403676281257258832689918148129002762361993900628451807962643205600461746431122484964931332663066768094794810595169937439087592890704559534843104203938204844214168205544146160994720622452106506066051887661086913509207578190797654047800518497958858379862490805679577822511940528661284992779020821569165980805767273255115512735558004906363551769799336283149663014309213910000039737250823906217164161434943156762760864648326246620752403760884973306432762761602234456511856760050870104673977863410679116956242900729940073073747468258403526130984242243048226221062054726302039541374970242273938198190295188097332132614555577120782600099393814789202361446399266050807194614860264933439519434058290011693968399772991095899534841821757072524647310888815096471552810441062226727425477622984687833813441007446501541833978246129448558763757687723991939662201954861089571137570593796086015929360730035478365375490392201878021316709152858525602621762020785806139157482773505208531496603690025948496450189051488370120948332912950528918111398851423388645922921389961845098519675407864659620899413499781967888550174031637390816848430925123697076288321094523046761862344666415815580163581010087668444209390465786527530455176715121556306183187924139595083592077986140387438763352039408441885585584711749901866013416680003611093338021648579253049031431456321066198619061194817641023382365078783304134374914687243695543809852628423011825197225499672005701336017316074338586736606294541904704791508444367299567020275691611560622710841575653223193463086203422090973220780164105152951487891075078165528804125825686489831122398693467502572457238500600338914582014929337384896024020135455063576345774420782558125782577865784966126327360878251651942784093181373860784627261108305901574833087856217215591634640879620570393593590528756221937674770825036407670668010639439248886888807234385428935777419599024152327341602224659455339375784458507313879083440938977972084636892776288258473463019512975117898942283868105890040150644684531562932181816845822763382225385282757299992828393140584741327949342013112332965754684684501853520567510190667643711434204269850407977487927677797089580940565257928670389571798996422222681961878279419215015033036756091697829162291818045236006843144560514103491107073045157417211821515992968104095004270320380203017827602012753141160801342540713568021283849852408496139143758763852201249442254136750284771003785867291491225556858014335239617837482114677300026641360754695658319414869797288698444141027579278387599364944117021605781161784714692019048767332251572350247009155213489105576860822470939527421503756684816285164126376791112981922740571792488764176548092516642476950376933808036363666364137934785160035070844598499490439620397238565118910053959913479549484741786527719961875453222574918630564526732623903967872360243190747938988272594426349213424290946986234659833361503409148835031208104957662260051413050062716998313136790998924139489953187998666375602799981900326880145344884502047964697626050674346354361771973244039167957632688082016542014507778059525060120516389697122600900398555686547710155394212393076177832448853769476230961294618591730905898365125569780051280935671992937747299350692657517545994104576017495557757808298448071654859120952682755202801970146165429238286004035826023423110443555704442060189456611987546642455134805981210621428770269541168746123067761748440462608712083408154102587723532828343135751574835710754282323342362131802421371690413663098437675848594073028245707293951251550894195827004683880350186038918783304086967107969543073527169398003026060448179031556592627902760437811658136371407178976101962515207936367921857687799964913467866011904390053300325083918822165616145531626955944294057638375431390516455234425128203868443668660899148234502570322518863645565412786332145592564096591179260634839414879474620554453291411905769281027308259247657484859422022175848253206581283335012666464100710792036350362190564296973835416950184629917537581245416235484892909005195843160429797539299627772258074495715898372949449385419631648319531442902530186659550889145584694110281815868489232762497706876193970012874899368824979499807984741149529159483921916091167969129019125656780257562461095488615431399418821759993973102634825761943623852373145601582167604509258509271220226953213313674795588268813471252194751339538177015245758677957901652326825023139468619733073200411097391897140940181827056756272329590892960576816676854565890009869881638606956382919080296728676908070151246365289550024732458015517904478552959328800240705007880784038738691361588451929609780339457941529484693218646966501649100599273714282536526555597960039982572167318662387426664449220574581799335930106506330039806333540015260864396599533771870459106818589114085130292576554958878710804387678226380092728833201937418450388130492536118664657099499181726564349169847964116001168402625066966806686244302153094259900627218658319480441000363730347260894995642786482189738197056052508296095676773833183920562274692233631030651889974275181586606753897378033953776100432191509780383741988087328279666054226179768239774318923307081884049639654246915320649737856223718129491330554177118483911953819104388123153516702763000211302629070119053332416455965112973260612834445494539087531853938190477616674588095439699436249788420404382063630305011030160869577332951159913076947193220471830822183782384259813307700151433070482514543077263915781429919784246651119664245086377429950621812293460256603078774517644823325167820305280872384154220546045546713157235097043623290879848589669302430934035164884291421432426936369680491816515171055909483988883501904763846442604357976868670577978388832394740422051849815783670681779817874087421830139074591136250147450056396669424283518924654744677531651157468394473497106824849219841489467134303530404550836844132034053318503945180302355968845121053115353487565988476569594122548603911796580707160685311454520096266674981061624370924836947401407310671488019297729730561126191152166152533999822547500275691862895702855458811121842762072467544517938166905895422588073821250883039431790788733538270527905040877829588104169811765041756765615971067680020957241721522971402698732212680943157880553986249571326360631537861629280178536775023390466863025982216296634299335662525921150512292647241986853570331021668229646582265420200995521828457523836212006109227757850185275825055398092185924521404375175936445659809139081155130222248860231069091318396589847095310375497849163647043580999185731292866040628961347810819754940030906638215551318791542273192500037024861213052134879272244770813381402277069501183489889773493701374132961784282000839714070989795083706980138184837882802898356687659062689686466816299901885211104414091870833128684703540679945322237155616146087249454098100824582034272499031152026036293362142351505310643445898914274850927717765808323033356078853279084330558187719058853471101753023625703721690342499600546195459714025530442271705736164372258361116572070051809930385550938238668372827565632523846215523594130259471435648952820827594002003340233280001784826707030316234490842253501069145212849863893529816724806312677966052355229676112960012940226591681311937474281830044045242592030880978564122601640803797144488083031010390113946184850151195230600195947932613212542429867429437262133860699759135858279418885927711064476227390749978587118172142992427229494671953305829656451570162896067272520689485029184150611539741235138899591046143768746617204507606762244304659509908425715428858567593766650379141832324339578289744700032920104058127592485010158610228141634167537249481475899641682104062566211452833958669849962584084644254568116325921006058289529844162650226323197454020525474841216177062549698331993396834894520237680513277534529469452467455232915795723173984431585471695593764173524925983356133193916117306683442840015172704146657327500928506034848236016895771316536337813472706812771755551428089548746908439361232356470004657088896175093526148895801097068151067855370435866737445588749906297746461577782300445160720973015020540029191155089232128690851237907013040419461612380752474006025418907079703492864181202770656770080299037109272368610681133987300023402752954447318883214976496903854329127633300327463457115713812047473656614496497682531269214573147223295539505141419626076560351444226752456036488929069883217491418427820054811326199400463323435139201340600369659552255701277014400181868512007844456947616893781636816249717021417723256385127473305471321173419449465075849102010357294478734803991573470175531995917537496093837345249613057981353223394126141560885507563552157969605217112096161365870572450354031684855004597176552558900977999409407148557730013732128870029657424959837966251639772922132315595271463676834492746291410680578972359389811184804862438956689708185585630121091597628128605621570379454479345487382235357926365011829291697315849874379270925164930685124539852405722271729751496832391094170281129558609944147664264044604401079187977884624194354087215088982524462418508946817864813673617186530148412943411914479924188085266081511312780362294459447446579089157371653782147864925384399128180184875676435363500131161604298489970414364744924193285644290399300547370896422875609893825818228958156610210062734767253385330287644529206515506067369202985428788088964519377052501520206225872306086580219321744604230102800782803577256850880479352612289397501960190925277504914440068286824128824152417661091257042090131274909558264228799458477246134338328645314279665944795898728993668897028782655075592233621417987102884516969028451362472437482760223554346974249101469693118919963655798570539599246921376130893722931341327373001301959432440441284623736391797024525057354052871474581004680331838916012630873191530600173265093825469083216041109201613589202661748020849692154437963719333928777873239275082962492185254578563611579401149051700188746617531436033806434855153963390052585193307369450789955038164274719406980351355062091296941371501773791944304467209896568447405122054215435516205739687913944525156230775363278605092673340959651492933932647851217779829626945982639445859913082763563780093274536226782724598897224783548173601272241061309152481661587766533456447909324719457829574825584757701164688576590687514438320181711453998594671028293528778726760279457525868252642238382736818493384194517830637850287335590895456203233044837553121481319883351515490208811500654741587646683121125422663951967804461090187615609256036189027881511306844572475213049328003399900381440253615893764699873366789635109723621504864016448937787562649797618006604113815655795804975361421893473133864244878455484820450580618281848252380359629503940325444015917564648066151817512902637366333789224155993893769438149304140196813353658152003836791119340413895713002175493985013537976368810531579914992521207078503021932744627715976671118644945873800977778376325445001445628381017988417534600432784800303431964284369152668761873462137002009690034073278756943337578145024078591415089505316297259415141065802449452102980493952028100309178620054770045280792188008432597707864372716175320943650347594247460355017987255485320059642232798662244261329997987176849131672478008598576261932892907074717286941816987089505666723969801765339908094068015462700943979685788590878820157092413182634350863198944219878322976358799809481363598928461999792477396497389425124114430650333001739470229497267637117900841845509660315368689873198190829312910800805386333542205960717116973127879415172578103862662216426622146843908826879308015153907779578918401939991904378491939015477404242873520751486548363586562987958310295863634001596199711581254114225061244503045669594847871771775203487552374095627738822889192785315407281082400462331358309949033117210545379618120883610834544384976091105627649286712005212662440065571633155636914874264461514407882699794236718906942680943030248756580972503537866271989495267100871274739496336690188730277014086668379458549081698241645743554898008435408049857414090893489191027018144011941261646769724642113202653710440072584402664612841959867970504686598315624584842425864287217019630857214484785603551489997533759422575842279974260430377433080187124714897140528570968203707539101527638392887926813938023232711350505244180075122704337093887046921315605443296142599516241732788834625952614817200837521635267358254894415474863557199101286531669726023314159820335256324709957858040146947171027207591997596552761215307663860816917254805845008850564101701634677616661743136831471650245110209238861868843012427061412948916976077387774842018871438789924351101992011503168576963683217345372070785063586012553804059978535831267890292105717095436653524888916040705653599584912649670987066630885031682619971724969737235308595748900971866897659845963863033899571330815565320421548948617712287508987720699031085176499282882336599171699024270977630346567148337102222735982596738243036560060262319019444371367702862332567394581624853650858537420236023573384391913354503688844627734178753477832210289200415123385275953027141832605295248896745474052505320459674906116980833834352810942340595297131935895771868730167352804129132020920342663057174952136376225634632693762006381184332871154637184472462651893357782435265517177792809970064926597589390198943215221194479138140528987104639437244177384694995711640778884907437190460043294276098976462546032108145226897930786327717743556347474140652101627422267329011953526956652462258753071819128322815006032468249297953434460249129956606630685102893487620718236660345819734754755179397198518651930316963215159781880385572036458509776366386570276544281993872041173040740432098338522296306759460282540508302601297441826858644733672726461809025857067602591633821502346138048267482057465538979590404244779831442165012023256524790518142633011620098452991232193314094391372136697142580377699381192691721178851185936353797559950101434056331789410184392567862032080483570932456239909420243682441088921388564363223434462557844103147899243234851976099559535415349056260807762760651153710841614333722748515766324359570621487206744480691062185835243284381636681656193586609315593531462831617765291852478006332312477461291715733094848519860430989381899885173201206881409139993394149645611338766455222126430363559989240618227776798481303324701035249907339409057993489792575039581696758580550089278022395561191665279235302007304978934002793300131436213966001645935464695168347229302267464590666183639279568697249655681161574432356898226005183673409997831798808156984845056028728449744746946068662082854081730734952888066835036255694568864618444609731558398768108369942899307444612286521524038368912396257407484425665495295850228488599476073141001169325467311365662295248150180968298548461165413649131910716961981049012842044270624012787283896040264432990059122738251751050300061792984890891317166891899712936564620245914923589095150820646377566312484319686940774904116584091156829909864033184251913130263036740029985679216587218249020679941733344130297320545369036498297678491255913941854594272110959063904726864109806423383167789036762632643248182271211640730092291309573875178216821101038326705412263467807788903948928564142661114842266730441278903209354024822563314422063317504353550273534960421424247497134361332146894255100440189884251725690722285992298956889793081784788588210522616645593773870333124935411052336710250952418822359720294945772702845093564068480400910848983483054579195946440722900744763635404152846859754424029198589606652262502077719268166374634023631535014530368840376165493034494116876983673056893033731486737847351626550110857330549400306116803332150380805226474988943164466704086286939619640962445514092564458346563969264596204767378529044591924680144752499272962984817906752347844114313460827771892930420016893178005135216383040056991229039581832211161111980137562484507501026356052207337686250883687245981534058707457814311710096171774512097166468031422982106352408663002666155727787878632592023459563945164720360668589532966628967665839696217883880964600135568752972130754504753046383337088587234318643284825860769159021577689579753401074950843656231166942129768695870651510259480974350907540334650860770729897664376778723458651230145796844489338442649756756795894140195240434529708402395622713494198394607781453982534542498023328970041055994220679494587533003414829508210423587372703219266788451615964016658002277466059725041096142678178856394717338865980481030176525745853319088947930095545763070103680049261995545230868028864831847793404074825421353275564647101572040894168098614831083838218061355921596216719789896564292109187017120830807624026055562504562584959021244255371261075022936300149876036275188493114499408742923993693332121573810278089863607529797869761592049302736682998248134383423324987732099123791961817694378416020208901612194605696080948514396883764303410497395733675020438682131378902127777911983005652831020629285604175665023420047514242626619002437655253895778046888275712076789904253369512220789096960856238185200429369750272228528211575699281290902325178477485048948973879221568928819053151927379191466693842859081076602268878115033616078212548849308076070278684623696418970848074053127236946359246975056256688719440287885815038269296646544282063217017989728020466103105989271007697837315065482408289623272642024665947185292837505501048363324877696655437738160362826464846154362947387509511554546085980581637794164626730870366494336407514957527788167385285788084380694249199074388697022766408316033769590674409455180166711073160428026388473949541949689030627027579682934801908578465099392711117336952305827990568566297384687578900184752020005873993604536983784580781195684089430738540669414132937447709451569526803959832653906326753296704202826648306060716171661943274740510295568547354672591622767248942397134885253505263226319458482525399586248083422721522723269290834348760196833182038516398740383452859965047847375256325308181600660713586443548132536372934304911483568700419330155117288947112265087928889740921796419087612868076103865768986074331336621924770746145577438965847110346141059495463527994006795641687319572175897274948537123199794254056312708731156974097990355412909299706086119723199612567089522991395787013861931306480641578995760916228871998504670803364940761010071201420117314444998260388257364844974081752786115290112328441042825516733634797340530168065993259048269454341323173042880157388860937834618853471710408531185719230825255049988904363216771016908848055472543480410552207009515958885389859037138250350518757412041022777961653754702732258712314848608209258808606798844468364815625828976199874595293922243261882617347977967666185488661289808000984963759958280265941057647991643315323730066745895080159292562276110057657797276147469031302919330984719133132407709918912115271649597676873639854854019238879296335588721589654148510771581940168889516340039700817712110797483113378049141260675779513350798494499309504511538385627126896157863400987170127580456098338141012276361657414921344933092871757945899201153343599928691197084790103480217376806008585020360896041062943108502363029575321752475856244720146547913177715990966992605304741889619431878739962454338179753745690783656586963234092386350805248527377020493985084398263558004179851621868780000984523804482233370765586167944838632026529603322591194794782639356273163554739481728854037663823323592620183385994453183711128431145185918905185253044775180471794558058145663587952499415485465956968282736933743512471280104109628316526357301007289935922925597610864089789519673840214315024125228985281516821740343669907528874008404408286227962350206156114327204248735791022607330590481580181988837366448587156583277272901183342447374532612978420556943124001051642354889045952458154477677120255850857748052503884359155390993030128655803124160408583108149985745434658863260995395939435103386432496112684863860322893584321331806197693678864476151904604292132327144197278240734891653946463665373612906030668921204784524824806163509712711036365930258570904470783269127707904410500794334466847404780380318293764099040631038858050201944491219270547597768859724422412629759422364465151650937707359787706297212206317803178528771534768475902917669450895461822835702441606263091693937072254661918643325319496309925190133015544150786938527031313563797555013373679820841436401104975915911435911827456188092847587399349770094229537030473237538401109186464907934020277819123841114056041287293347453885550468415804502708254282380808507983990384975758428015804677807170203441704994613545525154981424133441069999671836552850483365052257620254600968985600694101715585047174016178163371450258316945807316924268875921015238845614864384398968062505419753935279139359372058712752932782916845305172862531592491421980444816593344847332136277130995867809500030205545975676194771447890697444864456131502844996877216026734737435213161954977613819720639991414054525146928712071485970560129992138908894413361955397840618926527986496021255612256849387263724071670459710948702874966838859960619129063779779795609116921318339610083001801783711396890245304728050100256233211700821961278562883240801880886258578512456822453246288609284523055985342072800591506174573674189833971429215404596808650419654554611054503112940749114837261363862220150849013919942706580476279193342515200921718243774047955069560112327755955651242590528163193850329555884367225604533290229023224253454331207098176405082163452711345596575717170780461779509188528962277172419677679761565482233205523737206274679877833490203760915799176544987116230427139774929604245182941918876005460369511494952149265999452160713958237703133455169873789644604237583301091857377632087435520552804717754323133402493361091986180091154220907567377103737390088276136906365035182961380940266808639328441788277132614782348755527795687360184184248315948139880440963566468165712186701446115513601233113648559878949544101246198349466538810143590388424792516710664539659024898831329041128408628143927919345392574853664527781124816618380251710800449700231908860805844272630547075643792158345095363782988316962544394268022670108243074758829891162290892968653013749897073751068935949846109234046284804742104474167769296888020854061532595524891461232533021226817155961412424621130594322241451277054009006910917445878086383495026674239077882118352838013936715274004366767423041482337148214870405339759326861674655824794593227029367755385488502925147541768178471528310311476129231817770790964909186094722885764381017511087486297726096929595973715578265563745343603689921251295683086018431666904937575537333430585167602184881966877903774471951760630453832690077342951692941773840012123311125475962824881200285087324220368238509770285168126458750545567101089290550576271866378334118306324851762065658565080514262091483344236373372614873432880835731492422399734943214914060801655536639045496411174489679954821061460248070359801585033400746987372532919937189494135479293652103095022566744646742944393080217726310428769693138371262500617938133056614788605365427268717954529728024427085952920229956998819244665338419246973713077862800212262659331599235564713230152224982825339418224959123837222621283322777215185842297445447287305875938039387717146568659677741590320790689330022803778452549883975789367657010540778070051254161004906428867891376118548137092780144202068009595768694206220773247565268887548819266976035792300126556287495236297531260724277251276091856853230523356368896426163936029891784059098613178198514046047658495584701010780368785210793773785870367818461724010417690640946091444886785026815594047675572510654136978939810668748434685798226306392294827581866256613214239669690229804699722859105340228151170667335276371624837361954492035633083375717176194413922736117201026812131388943858994228442399913266074720016108201849196823765906692801877969674857165775295240573287658111379835124341190814556709744858205112422211184758778153876871038537296580924604566065144272220319069910710767349549697423280416447512682204426734078351972113093715670084340261795019928291212658461249493306457454873571229026644147271181637534337475746432988785284135990838830933004912276952650345669532931487871924719923279683146311542982203341392055072873258381879866142036874476757001296997981182585033080562439917344863138571927231367514767747071834309559184591635816440091862253679798460982273548956994979990768822962657411423590716492157493062858989885313078984036527238234467440641354407533761247508524254909947867931292674038447520121641998384127317651629891250250118297931940288656901123437924736573626906497459086545422578659426792511693347153652349178130849723503837958618889918904292589004077683640106577034717646732175201092542410869662940665964233744279698323213469360109573558897128764674777600900629669092170878811625532323099510650850290294560057703860492858802494012177411383626991957792608899154537130532355377105141732465061679250511614765972757947428869929093020866952115832001921751115228568362051499925146849034278555569246321198374696147531012639444695371129285218309918716280491419500645955788096809686706044823062544936171801265987107329321404963186592354271566593253940176142110703672598179310087537729254635716565243382095680704941746584530558844041389382525922933179515822369536544933355551925496762330633292435308372623829371178425099221704590334390872273699842210396476189858489097296839389532538493308130142253317087826605548227132261882441954173483648999804962553753946756464796527282371475850636362765139567004897604781920358058860682362802476284232282970989343080579765286267700743884331253142103310621076611937968840374093850907437892154829269290062094825635216915493830122360283061587144493958779297772024876201137384934962161831081600610759544885128815314279315107206985381467051566781453698502020178559005966122724450461678396369850419152166615276859453459883578884634007997227471623306767754823721259449666773817242443703994328447571368962935653424974439476019199461251673907894377164228305995778443535018122296821303981203902138065854628503372517680178128630144405428253903819621462759416195475947812636699622759703108679098163751656175252839887076917066533532947668776758995181137950307530163990469349534779885885135706989387910235355418144660299256872078670529539591479179031797976698478145339523738857751956895384330039087533467756962724036033054006106700718846442718430500061318086006277209329563471441644012766375065876698391291027948541989984048890591534208421999779337662551932542432222300847479944947889109018305174019128294898365107712585440983355049594517384038366684030751997061184255835642998008846547679854485578322585914741136401921826442485052084803118633350360970597563563680348323190906326945895723448959167890162172283281981106246618825637286346604893038198174392435855213677618151788958873629851395670055275967579093169046765149142265082855546956742253026982073919612627394813020341264489305825065459953889766742195828816117236812693429344866204366139924235088695960696246270850550220986853825114139016505736458651853762752918250687221380317094350917717235520992367120373632244260064033414809129791251595406343281329758110077721210824732240788098415821602107678314476872583457032398582363178420856760889108485926472138849929687343492828529687263415679923023218145877526507986994152765950045694915310360501237228526572992375170696259546451787616961670462361205715633698168255034417841434934108011152867922815831137613622739945505767303260014821300245684523542784651906895707435307752568043438641399579771486762325306463981625713386805680993123631687766665927762410635201990318328183041140981880087432084810433295676272823128421771966242250229564350697049504692734061162275535410177573718996563075909149835737968891649190925527175453813918508628350971650388883843356627141564848608960301659669761886512954237088733165706252030749479035197516032195868429945953731718137052980156526383158304120816066965796430764625085366233953856337087105645705044380001381739960896633030763472061721168829849540728709945620914467385047138456068924873919648610642302851390119671496897642867845519448190554067242127924250208494160848760579883434865410054732048570159907934344340952571414334332598627570423122360667445736316840014741595840514288000742466444476930207776608525399292742076696836115699349778234060821080788463192592165275643759832121120525576815758048865621574658062854875099056351293240426090898621352284140715958561915145374283683909122212781877089187929285861816987849196261403008211500821032150282010968269968658689078544298581845392722840194071029028932302350360873939147559140880046096123073440092137417984003395144023053252686830639497080986942762014017029170578718111471339725273188351541479588299250299534687969276206074040828965177948081973172620392484891696001960286247290204041435487995697375711322010382387026934260871229438881122260039169439631482384544637647253530488271948114466279097085928294783326042168444554871672918908046617349794319314592770322470672624055432678924197209335011945693801155798225299371277851604446788420617213389379973234650841575757468647086453108750939960486565002074271626781123023788993328589623575140696822547761692402883763414533729296245985882281607178334253623650809382919558490228869305586875148102792200621426192594660114026640299071847669397740592884435783355033777281278623317143607943551097641673597916112559146285415986723345241944099164658275139924817784908351532432681731588180542299094788513532730842610305873355348193106832945339234215981313039504574282234156410546204322764243754245419623479056541067289981053174282214382115978779937666393192028745771258788699845311301305390304969936394616633645877884474130394001969431847054101076422642471357186037494199553506854507133115438515033223139997600696491142005306761380397482772349544080899056851778836321613541263468116844809036289840886079847327270532229889251796164627265256436052982310102125133267001258083487512182805420097671435516603527621597943792815503360055771382109392011717403544680256364016374089159800392958480430686282503434762025604111262030108138528903332729680124140829715694527666093853061424046483817708306585395324643807481722198921069816770221170985591749454779383171999128669852234418500786391746660573976952207676343436968266277025988370577683362445130478663130691501820797818868102808531674545182826172726940123897925983306732310395867792847166138798314661917506532343632823985789269288571665102171028893312114990232478333762928909102183044757839864229035750505218839811277735116134295397710697512412892772602025816375249235017570970167999864336268070719685579222611565394512892770863444327720490203031537996616141027995875614329842214346707311662111958084013573583137468960920941299680362845635703059001600884796011887069610535864901325152260368802365332510894128102595687748708716776697864624929390143899223696776078509254362943698587669680948661268746207220763876303969376951665588316264286863066428564145499947455789977827661174456578849691383563954229251440751253541636866029597456057495124468217507334821186477941273237033696560836871085371460339751703372168743858171114222270983015708604121486975355016717663539850770007299128619482701480671146663115411226638620785969391038981682512753317193433809079608474252169944936902949210946645535780875057462278350772460792590997058759624036031442474841825753504835667483467454695859701843429135074485068806425372092796140584460948136092175336710696702211480957087023536614805855859520335563404281540819528358875797910572710463962662747727164368128846805278879977472884986923454569415326188027726169702252801252741774899888720806036215279425385397668902343334150602400577845062906579985269119787916597630781397481331605725391071108602981794376052130161220175932003854318297034168805316759119761559821580516685651414048583366622206242312092122137030470865131488882939764701690563570062121926854030082991615869807930945333383241776388681005400504440571505441259621773445630595284586835094683476926918998610605317969803300637624572625344550360109121994961585808864982236704328487307144667167228483300632854803485146270238153906245522094328829650032366057161470301519842037593033538964117926094469412329090671312680281665172409299110620687994655781272353034667217802295466905519212824171175193522734983316237048062237165193718741593651731269460817163141549840422637202660110762112505795430237651516868966611043321463271954531175127155755220447453082019103575946624894288423559544553833332379343700183072152925957055115083977797470055598272199258344987357927285784788186615949849990846003309938085133267156181571839967118101316495330702386148112057592581809048937622455772057475611375904289489692176979020598137612837203848703885628927826240887127304176280546573427438268827191621893129171416365567512310216089794108172293964273571761191545205909568319578929170494723787635519197984837476030366736399760294782439478097570221093133268889319537645818950151922477229351075102510415640040185638741979760964140604208767563954248546798086601674694670019943912581347398916087094346053474432169509440286084649534387640780209256453605384926281185779927553899241314043511198175800177313268790906092027279364453058661004339670279290980958536408402077241431390986736129426039314138930704388314970721965641836586971703149035443463207151241047190152607970871465137628645161909646759417149934052858000030419747577877775824450362277176280449577231945193391901050820529157473024398426838524381771127753729340601935573227896555561606723607907425330178361927076117562241111139586697739889954615306648312661288799135515497620504296525967393854751960697504042505469619194839588870260530085866869879236961526183166712671898222177003097969861661197062128453963028182017744281421186905179619604224410771565419795042917308632996704462873629223462754426434636084414663214575681767707974154606900835971597361226980278372346403775135683494710169488859799585178800065965111118030030463344969405144198547852997312806389805637621654805814939108590885104271715954926178855663039926769319525976899153806417112304261636599432069620280107998924701800460523334016344735577074383760563408079988119942257575696119687487925360366092004702848958346790553071750028380021844509506543686505326667122645002236651070638831985283576235554912993999160651463930789161396229680199095840461406657093853480333711310600202051747722527157758118430575031927825824041106759984080740144489436916832544178304845177470721869635965154038243405448711737912556000901596595912719555600848295458032801671893708351838967083602853191039630190025085499828188002406641753057291921083085853251927474610814003130831287132695363448100798434033141306439941355641094226151849983911402998887386495896013600180806162706555298539905204274637187950384968299004704430224012991752481116402241848707647846746189663561495261851220248175890540568461092703000949332765936930853594739102972634917327765387815209953198663168487900289051458263443284289576546555733026657496208625719261967303777144626310537705493337256549246704842063021294887371622476894566830918011458869274572402486652068295195370367491316492676133332240418856352223852557740075030539610590995910828345828757237744473873149151044653592329027117091360594642460289921658748149089379083255852017463202791198904272403074657833626695017128999176111568666136385668631273138596210562672859116414137612805723896623557886065434202246748645042182040421392729284143144425171250759515094665435791485379551599024986190201011047340304494939168937740921811559876901658696933721322238415082475055343803986666355580953176618084116253709731331188843780836866051581829351217463900013704458683286549186023587447530608303443450185878097998561146177861138942740425474072854243166831351395409290478193839548445566144443375118911612587917340223819607068785071874032779237475377041642176633056046755191418889550909096108614530624619541647109586626324964053826308461063338155564829483655582067303151534027785074871573810093116121407413334942639467649303444977754526680019929501503924247178684472924753236048161412492995240305234502141010289212704270109740297286969321268884647768123853435182074517326923208764903719533194014164861858857551530161671935622483318984713632155123026453664635647223950561281462863263172917327987595158569564187047864146827128943828129344426609812788615616104651600717430542525250848024938405199580127306664116878933711976905791943832419367801409774380365674502224869401644735762664609151927362959558134739350166030688939973756753346586460142042245516566265515710823757566330678183927946957414378551082596017296127941889390939889395323094585597847083165980936528977321736294007389739035019950984688511615899716586641916788746361753508998337034076773297896422588857359453679344765329868807764109777942227681464701496240518254339676188908654184457742771117101352044305689226501827625634971993709233842939926521366524277075802098081791770922205922327553152219890870457167334766130773588954917085263254109199077290182463631071049383364943828901853233796513601490578603305325620475278767992190323296078937325544231504687032389940998469986808701800915599714045200129712673913999877998651548251665608607539725757681909309059035690648457296010328911038474312560792934751539821967274911565468541500085316072200993973753537538745409552349942070095902204113211182467625211928103734376776511463613137683217831529535253227335535702872888586750630233824596564006982646874815232442213738558461133322699793587162950196022954386367878573842584952871330353038989332937816418662586839050442958161582140690948535132142585226993907159475710607285210323371626539825022041243062098078172547860430012801209752198337412599839826728159311744104474979147228145245519004408986208101272481119426148037809067906085874864454162181443146521521559784396932256497707082515946088580934855864624071491968351251014080381968078453958949007646930236458544787840546307307848081524106813308393030881873848446839078763422863848946631297252996290658365223930299834044473813588318556973587049217220567539077659181204067763902569617602274323954437884701039584599496611201727714771671091675430450694036766375166436047465023659087973653015422866389269140787563869608415320978862323990146757479366768639867989553044147475627382459621640497526233325891629296289332158460569540973737922043394736873181721281842504400818405066866541943835334657232389820154184654878351992085816244571609510584883822826737406721390768964369315966759950096763676270621340447637084819681661183468191559211288570703690107653648162780659970920634083699237727878280903769816539423458518848237031150622627763241901336892544222702882066365376407582532965150802698692623352218157148375150346178888368713980344831310176515163642301775577739543399332063181296093158991195352513262779459094889849431182956102216474464108558234403087332867081394257171473928792137711324891587266395491732055067365548397222825263131751185344897012508097578318164366477117291978988936922468460736452788000745017617576900669700192806308870501006402896472749100182880575155745078678248045847529879346054716035562551929747209826521469486316120921173438556289845462896119291678392184425084267136717967431497307469233082063545425810124302734098189616483700668693049067367661459327922982825928123442709583034818505828609515056851158834174717817228458547869725994621799685219765742942192425157983354136651091892950171638556517089710911461552550468500030488118834912645273014323768508686404189951713240043535543901099341345077600691986517929744846309494479603456774979212205235794558557759866025651964573074320471023316395348893282729403692605405967776376053644054708911622024300949308152176828693454269309872119626042858964797691371986843999732259042858153004761259602482941726699103963483101123152945126562734647229208814894470946934428265967216490419032898657698936121646767883677479070554510900096537448657785001907484924652524224985669045749684413878845920628376907834612132105206392570494909228396903667894412828830207967000404925537750468612050341875616855182080986271488295605393863639650290662530291836741392353486080153600675884449226411557689295512183475452976512435951316152515288030167776316509567740258298302616482599451704329010767115233312772123425532596200546597378017578863504122361898789213796723854655785894764598867406800735074455910949668411041036859227628986311895983751558309818154587269300901871244488297519828121773586511592347452935236203129733272637830861462552224185304425407569648149004193624351128297609441754928144666685668611646067391200476802816026112201698241920029061005011382173370004536125927952328429747933539684591114737767969759340603010398684868065411791108629813983792407595096844410766113633522382320709002034596149477186050748236798218611110624845005154518324703031389027374358246402138469265102382639517816421693009673472170320728213713017552628774951311268721233363565747292866754895535368547094005985900242533299520303696569324641395225709605241272991261475069221115074290361495077372038981149104643270614427492324906063813422088814109619659131534993480835561417224381939919831617056457460456250936806948053492856466522189089835149970152607835807563283566373611796272502866115347893750057670673137417318792688613943171517696751680776035384618595889879250545828983643214350711157953199947424825065417637400828275592297355056325226308975108410243727199983690742710592104379900031205425158825289699320585790524205570234959863330434023422060717043260143959384012548227661765046800154811298568846079658694409992056483051466080726881808540986543233534620588651169162269421101598666574569584048428853805603695368584976676091644929794930151333498519868068243861130890727109617580441179465562891199319749796732471351854284458730938309724085103647915223324433527102048412438477886759253908882977838169473394093912778542680072326672403703461927969543787784526642560275580151396931362223839877170423075055396645202421358251210045068141176082180879748426501599584256577724740264919624422335182585089832380418463355107745732726284554778181597981433984038692910735162236220207902959153527602323836327938648075425836203325886063370192656666422177334641932536673078881787595832802842034897803483085914692003026571879908653964426325528350369097124419756033800077642506983992602978403355511187392202922245985360782145624334694620897464251635790251089096986561904813508188313769798648143356456939136315315481623108017556180327363601660627503584791296529567388697363152330742822256432486431984855662727745142688329041033144668923473530226638120709186356167630546892515378179524478543034581903932531898999019502550094540213746519589449276050310756860478687344845120644054539980452844160620160358742817969244556637671551043850789647254357591157467210580395843516383066493960654926365125161630824966180559418362247797587431434208929075616665710370739805624287949490433017336274203483937603029961350176351671196383239845498361588669635010901833105728476105990302927082146911894733889753729675428347369996664869195299710564697814971360844219032020816225686311686631419212823055795702984708334578385837476844538465735440387058840690996157057761522708130042324138469293219189144391250491248412686817476956950723293814082884708203147868090806201402905187854732926417879771297708869503213780825238030931454973395515914864423763673991430246884238213755568805122705022903781489480545915125787072084660304451470787637348548648318691910071449737793098984604649132949126912063679866949720905629730133939908608033506290282934290914793369486663058539501999746246013329941438866707355772455613331795269414633393677931853999163718890276794636748928297184426251098303439480731296420345664914499703581888919051147963285473009489184306047295207475112940672176687519554919209918545327030740051746624104880410219838240704317809934112831926433128843946209953794746037431237567510218987444501185823065380725475636451787336780609254439431704887009385333173948960052962391181339535674490170510569280696341108638504276507192743254115228169904149071117932507290469807426003301171751761171991776546631857554131821437828746551628264921608107202980351330491446601273302842712174477049734255839053198711416820277810515575690883043325862133097420283468937390674443580521372870804092360676973924374535304851876010498515082631319575753786133956627490802376476397729213077908584539857116900810007528542113139688052116127427646934448192796456310128721102458949414424341161404794767326353434271702532026364087400925124531338637746506589262388168677306838172282834748269715779091088924448966674674842043589307854218069188923120350160473260660141968335375695590990048846562032998357102378801252406915139209905604728696563347525465726467229851669959312606045752742288983253253753856150741518356244601852213589893430012667304065680924583091739309834321452663460360523717732114941542342428988953302099058628296439544227384230169204373139993136682056741862154138345573196921968138933254119969197280888501406206823047745308100812535708719440328034746019058931880517282310903589449376312096133895134702935355403934517439828496560001240742695477128813539913204075473838836667657293358658991194434756808536825863733020961251124305716272446172041176848310854313836747945386650920085164681445239848299402044350246112312608886338791539325647337293633647344897325656380615467994107536343769579819756214518624071330008192429164388659856816297228140722879784749361958018733378343470561813443892478201394369290739465059114779155931295640242379805966652002773717171933053769774306083285197104589283439817240057056420109010437129971915712193029382173003421716005535615430307909947328566363691213419214295209048907702731746988140152417755808003082332776488618945570336512866432571503900613057388837026547574852227233127020519549199281717235962575462976739858926596697173477048614957972629979465102785032531946519316987449330994352349428283571995224573309876615755058987598417384928936433148812385373278041566657828787365999551680354753547931158165223789770140882320395742306848294972668679314668394824521972988668891240048043588308897140501171724643022529187165410647700649510622601477499794662663457447987895630040581596888479010887791291329993515736762607007344908740366757621007134085846411026424950467138755157587259985605312128847903633496950287747904490816171849731567294599251269482686086139960611289068026863041624811656264410149699272794816893255711593969640902719762314330440211292678913564123855281698132022079416686272636098623839697875200440850961520801653819205042311009096550582178014331548788068771269671042072160646179511694952997594758488810778709972867661601559206897276460472204158602902788968722009975331746873389300395828533120649076492860929897668824062218549133107057824246610069573773280773710368281734717799603051774152696772393910031329218566359609040980536413203724325181148904352719036885866869557503562380157566862242055790482823397364084355450737389191543558687761036122842245739149466700284970132276091692835526067471606382737795098855435790855647852952613327958553378278141951565019545211741473227090826633407300618143007361307507162489969601139211821685392346884347498796368920993283697312306237127318302882354148569076677573292739760265025497548313163549486617510989395314193797441613931562623559648673518882199152790552108644486953305120341261127658277890592311003000077155410988855904353952907440503044382331307304334401885604710041851626115706334494244083841731360055612624077358303149162110422909816621085580328040477958842975386528815153395775024871469481051877789590867267058323276522253453876246473812046283356165336923850272840311049543870275023694294318687180524265793361285966510817541915997926649806643162219907352328389206402170941386635998379823788227713345700803588765861746208430258348820334548777419014667913637343762171022486582687027559146225852570986339625019648638261871645541033769748691097112114969789556824418628238023261963560146072522721679246049511828999332133317263295778397876335898287078428780243230706403503133647855585249150619719986277445911842607560577757189900521629943902821232527934808725262143016923044163358492066856697680429985154335042933668684607850342392997478239005596807185256790943549993993670847731927321877841654701148167053348760411796601185662468771566687921280676554982602796119359107150270742444254188224646981997987246045357805099503812167096246459122256125324683021093865623785902076928976710140759339429313079909859055892113615060652403420920644433896703583985409594186151560355917791730331635439276187474454973154750127125224629119913678909244021580093481185558384481292442540803628955231804887556352472372296777668294430382421834050643691440751801150607662034597609596829645744315076838759910307276246040727034192333335634340479851937822556735646675830189401397538870005712948929978392838358119519733414229429599967593982153433776616121813936551512036061941607873599020580854865298159195002980776751954389431567832257848639835098267099928253463458394573217969999121057245314177569588768762250994487689486351331470748874545501251335101019863917792005168754441563654728190542309143953280572711745341628851480538979277928126654997480431236149072517518575953541395300265176209132115164499420542197932432192239019876590203655603276940496140042275315621294108414275953076142748316306650919143413879175128012609570000530474560109248228329641614206196283024036737311100871673886108619166019540022320660856207281822396965293189994001021489506778116174467985068691092726104018089092991816920630375959200839830391775010786997886498035994994749581178021551144528887655676602574799729651504464959710023561031859852787577592871938447656904342900403843937606600690942790409003369875470876300451782558779916535544806807330890879360727591222313122472029352094334023297855925861222749286735283941714504346315749490856370802260855383566480903208458906526571185634096789791464790714009566549743983324650700201026804772954917098636953495546702717095877610119616346789744652603599579408652185962991766408212188143987303486784454421795859909904812572254592502229435835274901233771990899797521312290375631973340864205032720095961490153480646973579608536959110539824441103168331883253461562607773716210956917652214990762233894359514648291054436578996915906744351869523827050209783159210848554745684964604132181411046477340972791732637034046221653813218712074787845186575792654788748990193033694951354368092166603334144213327110846326776708724662248214907247581002339343186928024386594444798065567521555213238908208593098891980206010865026427397807909630283488784574127226237743012171130552484473196218818680488640634942814168049203184965039187669315728413223587651578502223781071894878051629941824099670901334431731163998442164908143629989366816060448739875949480276753992171152726437821134540615604935822135804394729833367729427110977676736076635254237105331649510382367370418931111290277470287779977678102496172602164821451488882384973733296218463276796731167817165449869690643592635754158312170098863133782160569153491605514478095214856782297208010519831829544650757739178722670781174622101512120152784151931398057230352044227709057317047354222443304424818876824814726171640025496025633056957359159880328975768534023322844910427584178600484840203457464007798209458486130227297715120315615445438422470447219727735033427108360120028053334543564575042869550397377762282442483608716130279740524344939310968360651687273016365773974535175021914420323898986576379631077186096910629836398398794684129129077728432258643615814287954540433309684328497900481979101435194182148015634051276948298483233938756762709136336921832436123059897932228770733136277525490763437797039150731257335035361044475861646786117601786954188100248563895285932576228168700042598604384411059501956782284121453446519336505339292385686367838826187802896349835679228209996848481428166603382747665237373567407101924696513191699255511016735960694267567021980888713490307789811561547886413263368624437448919573906746548258712213743670883763444214956734880817070136051276548615152716024648530529483203746631697505944907874573421729491499677349071179349379467976146976454220408325035347072761733943096053998628826267857733904398482396083752541633800306764731157160677774064417027039921366886763381415722120261481613383369956448103040838035623829124099299926934280762777928493645114735318270755743187877765289750972388013250533347797679965949681612784844459455023550568924172621839846976133315163021599026934124886599611020052019246635908448400098365042196638535509348097849284416116246464288432775580638342412311180336861728129481857424407929348425340018665061745054424457146994792183472392884791890560688196234623035340816656031577467864714398522415271054665600578562203529766012069249509260830240039886446079909023746745540143116567024671432016405322403304125070540644400093350263039200277583543718073245710597401344704543497122266922079487422865830766927394772469338902326585560407294947136238186403925445188220374857868876652646783658517785522894846378900127063174524072667123863593981081516806462102011350371919481385343531851142615202454652908432429709716339237323896990938734695760503780313314494446340029788616773100745070039010588218914931036535102858901722075626411689486999570668415018434450409415024007120371774557069585294838789869387116552057085665237768954074321912128946413710922551842627574182698842047345935125140434413359166464612154123741245372346775108060931379143556053855008723617961341043509780563410864652697172991475153117065429881412538751863300546215410804116916977813305861983488383445874360782190319129973851457980094383216403589915716691527544657134284392363065064079645134507234175597561290253198511414398211694059995661812734994619342713817280771913151952501664683500225507324827605109548414837142434697783964300184754507287609722552253298327539385667663352273972523106084101016609485659150962906013643959932174112741505728351345963635364194816544818798369578374514456436327048631181788733083505359128753107076421140500222745132164090052886835991231622885012174617640912546639606443345225027644876009132050375571222073550094186104330981249807532725949316788909484670061646832198368659161027808170322446560687939259971264621811350917765098020070843675381084194623338078430147848570655584368776451908680568612726463235173083966839672842117763628240758309855879092452151208499059707038181745987687379936225678374268168847693745822486903790191087358251931422890264937294191288640409615805211633253304941945946712000144636256955678720166964738268450038610593369991720644636522509974262286921557634805402951816968072740067059683479199799044362961070460868750608595505849083642432217811884699395135215153410688735523252269465165848688867855966729765382965074567914617707505466386790952624695807414118547093225140466072743283528209558328592349897464689652682929830675803878055371071176768224505305872312671067494311733976353855308989868623838111567099282831487546479325177170760819000638571763170170147199627807036130387655347206907350028575620371627289525226872484014709161631662610389980637732956875369954597218999424624081114767850234700633852549609162050338976732995645767027696077186514532475016091462926666436548725901576359266436320558630951746187427311023566194290107939609023798372403761199975524761745172720635887358988433559395870155287254018449950181664145273328770937717637912689991093179747018031543272711933622124200769704383827094927284650361372083005423355080323134624344393929926303268457568084123247592722312943603504483015443995241785757410983685565009947688315956832220959666211619940411802946634741261050915969140623881257315802119997026939511509462714605312284450905462580549260923358233937224338139694999998970907356316449152260667883970620124861403976082828755925761187271551446926609531599488270466518043468691448718378815712897494975658016855649171006831212446765585810154644838046135550313163201243491320515275489776604211833164477647063167659920745296961548035993833547617910666255781419837211719668220686442373368547528813997513409883669629816236270500787257396651465261738390742729664226106672012191142925181896656164397022107560309980231641656756030956476918804606976555877765322607889314075280523827162628071118412244366586980165841250367982421520796012992259269888554021805583371108963443227730994773611022256591243106930342176695997170979989966608415227561511721337203866006082623675223906979537429355703494710167584336749406410373889061929559504893841226850677069727458472538065014987913525759721672829668228146383134278774201879187419689820561754356448886841350120302447216488304758209968114754534395290499589852228929039239417109901533319721887132601489284650091823788112163550298037686999429365190902178175596127357851314989030417749656026553431653106656993722848815854034039704610015771616647267352458835418806322569256292108556946420383396009967607344024552740504633341044023411640975578911009745336123150680279532641511538910425983072827747433391563193596673466939619063972552788892617049159729078255955766266343122567218296612314182211778479700494051664839486946669091269406369026434211853782938198882059914643712102755931026210041717986994107028688410985562491431197826805940527411160592475522651367695181624239311898059002919929449441482851626395748935432895694833979012678046034394131300573494776815076675150024186980017737692781079365774271450237262628877225017970887831931431103284201461916910406887727789523890009828775886118374398922627616914823644370840014660494189094279656670371055274667663641162850960967919837333989346836448588515088437535060521471354153491756062536355063690889190307651654190461593508910943945268127871621005265476285172532490193647213309603075800662464176656592497069217459376748947024581449489421418055020477976249989260419690061628950474521251475204015299526213615576107104422170828670351727774864506431973674093846715064681485705159815269580359328341134452682943810548971737756947536178678746965057519533805543308072594539335786149997842383495178287694545701368756987011540305146045812497366219249389350014543375414981779217853968277660051102342490168580357380769412673928326499261398882465124148939326503148952630667853191766543711362000596840689889811767308841760743003925212991285781393863104186325383953904539870404534893451793636323760090449063753918317749830632975657538723885755821403294373715313825683790158911154204202230123757869739258937520032636169576038326852943854957337884188489454656905460165568168407763645600620735027462619023909873208120903859120278785011119980864423908909445682509269491122992464382071021007130313566856370621258852918759835837770130860469635971360372993879042049886526364120959451546589782887405101251773211996081547390821686514217618932984981955604331222768536599580396872977162963687124107884347491152977720843017505787279755204268782120277594785923417427631180746590924277118351076978170498132318070520086882676498933373423754093877234330368590202928512444577194057890005779244482438457437948400332524362560768392821230015298312886321712994435838241986152572209023530374262981719525787534092874807306803984648422943151080633958586261226864744862462373368377603604358240489783611524825960674112999914059780144875642782642140442843560912711915612673371970971541907244111770100592261981921603163245531061838378045856999348620325784872267463259220764928948312029408162296724197797342334629910976305742774463367668277802507870859115504160044522505871470942673465111016201460004462949288613756356631518007526200799571241240473366602407752315641349245819452149405432629490741913653677859897072460214782108823123167124304937445167301533144906474631261946107226230085073504160538047766748609284087444574523307056590861091296369947527143331067910696652219235525431790035475909895732785187826262936026275359295461194861353668150983004133478449996933549841162280943365640005902272570066508907548340485866220328613123377337662718006251041299528452154090102664638973545870943785211700363426905796732026286891531724980880607755664327003618141003899291192486485045308383354109890248810587401718940848171451725120414766763584917374790850596249082898163378170618320455787875229083310709058574637700648808530980702898998579851053016562397260403401737014296447327076981357068920180504880146359885994716978712400415628367846653444254535332922062733601863566685654345796986914761314321320278106317691954258984503865475669756317824086321016238430386056936760667762130050543806154259037456968827742825288840820940857901754972809599980605101098433874674916000849068762880601348812509495093134232844167200266898046339690124578831078014639232297425962903177271861405880567964273649404453952980550074203027026217175149274696919722483393742965584934237369994642846705882376569046429625666340869065496499468045901836428009342702790061679185245184479928090241797451472018082490543116338773966553336583124970802864988105613264060045054543111958730463051987498435784096500169973234920574330435274341060597081182652703668396737402373862842254951741327532752132939947774671645931818299498646415095458269899894903531756604635825449588560541137247836305184206800922133038567211508940080133990618593527813450041415514098146300571109053651501366713595274328769451335794956223250719245360699138959455292472031781022558093353792330925310270785038966889048813391321799296208842872404938869834666031258345452158341640444433349697766732729110840194138176134963835523672521383397828876445332437206508970121141069202201594983718305312570328320016371575508214142167757072791356083290942350058905399214394305779119427585265930340257165349943690849113232171654838440907187507010451265614371480280273701955418179581463605837198758523854284533001745013026935062981326129505377083017421233093452796574572249786281647239889486704353773447112674880032064653965460698128307903542102265195226126858307277796199318425021132725454099025951548688369599659697776660321439724807014185790659031589126125789941421571884166744044589984205079461189544248905133585659041989799396837201395504521408887142147011763361938638078976921538649944540916184584746086374506629584689861011324430262710468137412931195213913463582672734978487156198236556388121502464651358586297593978174806596115699944830770726450791776479051686016816362340013232765253898929763756269867477903094571092611933308796128523090623972291546726804353495398842602371921957601138430801429192473615838352157898432582395038339350523677911971121111982373795414047919053636236183841248696665178279542313753633133393669680711696727045541033704057749741779028397750653246773125587177488474214262705371297024258582008169316530286534404319199439719344437148877119788931028130519962642271758280883645172058979803724436166792296938370050728872741281771758659723898852362742218789419189020181603981282161789652538166774305533333555117945118211242100801874544358937260026058107201281998649723256709456359012467970627432454367523512473979813112838049177035352804568464646139894348514280155235029352498819975640187196990191149298815940100056595709994791470458874435161966649160066006328208314182515496723582439780808992420719362672863847123458336986611901678877458597500114689668616078722214396242859981859436482989825443133555657320903595918688714250278382975250240665324041734995922174564856548714998327504144616331433604008862599478471691902229724572266873565700363632045123935430215372947389221415436499643744482056881688819230563463780873192588831900045446215798077258216863956081136950393696014702207930610634131856182753139739585336449142168936404868815139968039235318645721655706727591209819964581329594974365827765919665635690903156670169655476251828949401619003921152299363377014332945292547729798815088019822664790854289851919496167665327481671972928807758347926759845511969169951505530664968594489522142671634882192959780291511411769739533393479349633024408194613477494847047078259705718492449152909078652717936678441225090036758688688574516000220605890208572585809326867590228428288717501520456296811259811368920965155132906220233594379173602013815053821120720500763774519615208879798442830402738988850739345478547990717138809612789391839672963872564348892439142792973316015983144976078339531249733718221586528394701402861694547379778511670646290204325048271369364574976702607805187343552609350149035303164681366062410310263129545175402215077612557290576644642985989053792181229849225199678557911948800441815461452464369814772902853108186632478799870075098826069409062283771005934533661525858530830026816075789610232374557141022501331023921841246852102241188568114951937726687532098475193012896409799069176021613206627827466164635057906749627085129297042681984318063277889776043084472884751438114161242004275412159358841148370801515006581184862590017996389803369580710733298780114141237196768921349483519959746908036660706746309298041798034313491695482543595502811108459888605517103156970533957671281280236759255028483890403129197047526452299362402775297934780005122517380913036630696837351223084618165825866713343097234019633129707810766053993986495639042178663583673374230202186552811292542733654051424019595952624310816073690340745052413590615439649352469587327892445833472751882150931091723240548037868645763117738266140268298754780714125874186339702971762298927381035636765427412169915401946763184901994983394602029120076826558104588612403125309389876353454366754053324402549891688492989556446445544686407500238959859807835342399366130611036196734114925311599145057630337633378430715219248185780677031263891457430742057383016717946793004808842087370887274804567666338205561848804359069503652055793841377459384075689430113765558687814571971785090741683893767615925785924734705940956056027310613362839500389232556439440057665398357655841302606812864291368204438235458204052191260811576790407343974619927791437014348271249122198765206770894223526732827361651694502698113393540931178905833631420754624413062689438736690892184414875745790379900162874875292070930724082183990841191707382417847968746839345247651984271624092054423560087359640065016615067077030858993494980442772028960973674045305164495930520107337806177784031405393449682784272052265781391006320174544410543767121047144655816681228541177508914763706419484026878221269674087290187764084723816328330873492668276628043463178926595595241348620708925827810827407693726914459660946203313364893091807935772640949354645747752828531075372411036317728216453552219159336894277438803841927577522368448289182180304468821446282991810582904342428439605220705570986152676459635214630113022785631296055153871277948189367861227357623163032115125517817029927446264793136153650055259365035065351856195847666966273764737163346403510743673597548725559410156298549431047426627326100669749333696119970766702732346686498832353253233687131639658105721322315498773744738941600029563351364552618260851901858537893757347116240944433648044188849246864463406953515423368586519564063699228128064732854770689209952576343104829993817175372071305699498220927548725368732566403496492682808562091805745531760826635393900428284867214325484066021989083454801851946779498462304810035988250952280443331535996938027242086444540957981077672484915667143965827185837673084812642297595026439489828077463457100314369833884006934541456128834647541607252914658972664335221845037440429541017272281946161899410278896397571474780611252833688708329198723900135849001387840420055781300019747924236919568452254929638755435263749826439661103872857805624063920061525805386551372850234585307443106716963253258248929239333356680338630631260452037962962934938949336429383003320364211010166505156188540114464305411744717499840561039839044263618555162130797063396878627794301463000289149766686149889227965982068179169235495870015897893752835147150073551865839111497170711927343209594319960211239013454679544169484720746548115598252127086369590277671822846110393714408594410691812859215496268275913018190252463665794759343924879502534486563055853986298546744321363276617479308423860689141111969736656118990865942773508097462706418184296084478554881887408780455006154181060708358951260241596351471416325793690308756806897984568251165470312282555903269776250434709466195542069809445312304387244426878554414392367153196687894753981802563112030156459023083656463364203451176354436502171962074386302824966423281671774762958491105650306214601304203118385514356292030701449974717616367790949167373584780043215236685166964290281817865767552962887210777607496858463503384632419102943441408298865984419505656637781256225953219662357396405174409065933180075346080539345042873242883412955983186804108114580210604705283737919906038430204533794339881879323468457500230002695946497787320538568071812544669829594858288921614340488385440369481201025878974470010349208485788261518882360481494106740713436120331597728994073264459154343477082535495373941761045764482771453076475560493221053481875823117487662631548988400085595955388804360522570693193224496701285978976095517216178565581070065406833529415448673881154252257022847231848970477200881781695239905201893108361397340742282850746488828729149307924904873816815444172139104975088079227047483900854176352020826732303662400781190798712073255165534597163684530370278012599724067245463423303976577531344564260375294381871510512340611279195559889454689013260017340736617164209814851812913569797504857245913755527179833464730137354951376656687244533484373480058183726735888537665461309136278147843010064334729525618911189036253957356750044671292589982310080554004577655537737965766190892856891724526029878429120387087183677002690438968546297466973489436402002526755368843473636592495772333328515049011698465430445951679008128406363714506752915078364289641433530590656089175207224970329657139219118066549959207800834938781558410756744290273446158959322055534518341001646243810315392952943433926508405566562040863593168954597406327774410981573162388661900094762515364666750563472632926624856933190130355490054364708726774590219839930072103244708880717523934058688891337965911867248716609819129788613533486768896102752339613878222700981391837986561373119092395709661668905068204851048802136051764426879873792784649544237596504802765649634724280906963296202404470380539722709414443299062213552899652317519530364098077410617349091317999917571076189240872141453689932133649606859872994838847778375904480225299528498034368471248328155734017844682630663852343085417062487460029112947062546362933506920014540968976357867879242676899775128324134379720660640695088993203273833370699068274863539668943979462218887252290514443871378072441939740765450333338132848671280300241662786508915974250992460381916595643030259827095285194655295121205223847079623811586367902591745812031437415162831407302262124313329327684103187019041640535876939017003633603800999644964525028821763700466615582729107945308067289991422426983532187617684612746727859888949692131007868204446716257984204396163856281490670534576833318638598309286728463177305787389921965258058630587402780374995783001562215895515942514406011241351674893427214495324633491426110508844323930356008250266529768228296732785109022174644266320676425020907218621482509316238823260535569422823641004388585348321504534656997853634332609488823086731148517767648453147751424535682197801788072699723092622250175281372387777978328924920303112977673775273448616862595968500386027876558521496733446369010609394828728787828161711662139078156652938792842991150911922064461898563135877417923255550273268452856403534377738433878304214684285803292707706858896114860148914179279112750675845880087591901402897776821571612667526304071627950338078189055175681403093232586897090434831231754339752339034678032957791741210245570788500011619889198040991559605714594760384601052198655716447891614242292294534956742125321888885450842953397022159990093060892781902018278975818661262808318525920294832901775228426607334513098688908456116078918127183740359461576490706772594628480871632972003652803659586030202744657228141229472130166108880921026459794860786420441472888046070315218771607364930230889854081974354221150246157017982271112550129195945757649202300358785473877041895154319115312413645411858200902394305441555858760864706043171000137435732510079128202396870819612209460406242165339253166918746102674072522641553415285045009343940139114798399287017102639534854872167029882500062722988874444160200274858969746303829823080455810677190823703940011476612079201025820815606150913811129550333137768755824799144773993342501534038036245584250619395710824957771218442258931337488765595003700452779542585447932912719819693724083501054577490391489322800558847110205546472699293674412080206548451727097199617422657348380642276342066231671740432984359808177534325770657893380953074594076665970108949258259032241035565537337512450629556337653934256466319083850457146918592081772189927424449883873996846971136461518733742867603794960049713182860602457794204091896335727607798773869733730308676446628976855326862262059854193589386468215215276157860369650486756314404760453978073008713958099216633295778810000275625114072194128785748974390385163015437104210839066894221942578073230173612240923779405360339471753229999774162651664737065983270816359700883506776055161633016130989156590640918665346734296750635620530290295700728826529111040218017953118804858402068246631684488445800109855743380855746526588415512262117418749969575522675102341361725555313834479619852831599394819536300084885386719779364867501357721315422465573998195700120747147373025520430378732498888458420926327323155801951605093554766110537901331583962936544731914323507308218689011354511080152818057943062744487348923183705432857294590834671590861008430689166761894769730887740114046620509788218547480870176351071671954351150291075035758465898205612715169063129327996176416413263541797112325422606466930954792558199018633703675088009429003257551049087663802156271867114133394156455895090818782582805067996725791292034210028135079529732033667338480026334709500725625998267060217785212885203492289348304011383879499574770715787985212743306457451182313136436414707067548966579500676750208383641585664274874865776831025841452724916661361018955772634208121710036500558890551165731054376423348115012993270111374848158752761107264469701155690314655399921205591063555633998030785201760793817649659102557831635402045130224982453687132123173747937259126406511636187284280628189565803129796763825292785233452805452271605966957789060097957384409585801635015615205095346128848792852588710564323117938591990574871763286638134687458406956990721867752377369173437990109647731015642141484598397184109350936066918214936195718196565991895744810575652258847108874169313725727762815627459418319007353859537907781940178518464759166601556517342623634455554414903578161928613462206161018156015146893082393263575331031947516489214951981127756979298994107204558283675709786010705320368493495171105162697703360083010044923556685938996054742709845675171621025220948964444423014056479890949623249866217186576331854014673178119105553806378336947663310492822281333936100685972931547290676047793091216540774349134067229588287963111681156175667959122280510652012902899290995541936609246711564760462813319927490888532697740731430129950017054435463096619595036323813682838758620204915995714503275370195437093209072628319070997564503763439453751211831717749602144420513134777552454003850795723599436714263025533798567802323531067290348554002919479802435421156991272760937000334440247727304946627243137451861652937833031210674850729242294346419590941568025255944535437786187973979074976621270102290129557145040228503916141613996306388269757143937161526883475710190277354660036995882990253141257838006336940711042580093526403124942611418950481631962232772344763395342564864491280797588544941622826030282748275082077346143435417905126980845151880970656984009923597496377613169968969978700746675682155286360327157495409649629882396599756478498128327793512621425732442656649293478660581492376789150671522915308472180137648209241915628444037107441837493180857832695704491985944510721961715325262805117264224192566496671474721374395947872266921630097694755402489654055045072010506772575512996703178122835343031856918477786047986601262636844084991329084966608639145080926467987106559660828643015770167130772508977621045745072344453356472463067205081476718765728527059007529951172312863825433941956528989379272149058959940830664430471111798058699458380793563952953482950168065963398924321210832373480163363069446872521177310207730576922500631172481978575534991136032087806320053540218396909492261357769820290690342368851073510214557073068772789805030356432152961413531373446860877356926094566428562470634684401804743485669298291713096660871711328753442645501969634264215569585000668255887352566569794846109466724822328664048907033436228067239042519597887715655602869691274422904863083040381711021925711248923905120977831157906170845888756058055248936187834681937282848676315609907905012598491251543895336744153770147507444271868261520745014504372421423122583032406293104585199645141416813329152636836266731415454181455521549923237379226536110587984351355851522660061481200211621432768361374880003314670795376899043287393808981061552483006912031581073854638694461741081950480997637562852082232577336074247693429193076063305949238616036650725285315860175781023224331299138393850929023710078148997305086150341568732250219183901748363803689947513039197823181773799648333926524724360209890261213423949640875630896232299613159179314455383501649871808710241313054335490907209010511278294229411932768455956950114127169966447547461433643753399283641472513134731131937726468608685495479505216387587736337162168901629798515971737833270211037466003876849908468753382525272245939748561528424679030939769077135724069616707122198258972910572480127201864678293585998362266163406785633865778097227052796062341200081733456285798261673535583039142611556931394492247065675431777989753087610008853793867532507047026407968713458507338397454027593666929257870371726844360073992124120893361873766643709791998465960795972869956417500036050595173286651742335170050847582766024932217818716781130406872221308232196158210109582891419066894376305602875590331833311833304932039962460070542228280846412318665203789608306343908789439500008769349513624978190880956794601915201228934737120313390014454382953939879706499901709720029217474542251918934967394146343971539592470946769250837152484888833844454792523671429542176634003295609585529262608825264280106856146268228142091325870944570335928757645563743191541459194782386768289222926525122095634513756802630008485138875208853386054738548057574222177462597866524697842134550979395087429827282399577625861019208951924606445522881341389065128806948527722452194377660537970647555366509955965087068419119061700053693255207596717195863218590774090438032916839540397273855650510765236929924168303841859423856065722005045013247447390591666684484622839814558907117298131458829401469257426120986024143528743991406597166389953139998984270465338168450152232128354101498837270212377810371115508822246894190755758014749827758560270030118906818970443080939694421414058574352775517513917991910086486937696178301865285067105833559408087873301849809519112875491767230502834108279984494293241947882599060089107818984794495507811142748720262486618333512069785902316952703779578865264886173434803280385661278822030402654964972597128186793813835629295655934032466096309184327557075179542426522962432678299944026486215613874607333964533683426845876440156814487933269308295847663258002213319349743744306350615024503071819903055087060300818066698051013123079657834243144378318930667417709529910417474478312507892137323170609629964148359959596179368321637777203039609787925462862868344590579043715964107157608869530543889727946909936053729189433381009268021643251481616233118013549571141221604165271875030126441552293476577321429040170651552606198495688462243121614887648104409959145102343579652133898464454722500866602192885061950608972608267415816624816537088078295980323578869783387244088438906897475399410941601317875488420045593479267080867923014014434858084653225666265704767405634395386699705835622737258832295480790279610985125971482288975334204641954438715912245057745204209264756310142979094899603931650364282997779890551694755678509197261558172333232030728079530267199642366757068410570053539454666072669250115738512996889605929054234984900273371514181636737989948748583520231000311907415241127319630943538454972133747443508575729706441511281551320396010133923027171714548188646022657835158658719253079839001525298385644707826673831120584185854056743503425092423037324753610558735850528838468038353651227306617531916767078618035676146003960830226131887420639260220796913571166916620390415224917267237256316713982808969148371424202964437186556501727279829627235581851213625558430708359702920791791917253136974197724783315100958738692172130538253746183960675908828950942769344745285911665001541080374287715888526298308753255528527943143175261072412753915578803757675892521530581164438087249650504813410304726340786068497221930493113445028379454749351837764683841691326644637041166895487530690855762872957708796293521547110132677330506120688943687294805664366498477408816938392156948014871270832185007160780553734729973538793100603817653170171705930032599377709725663255428113583682188042628270053281903474110731612359183872812061942795305261025097479111202552913345820380517283542101173855816348562417469951886940260474018681416348604370018947510591142864122552141738276756427158730071680057723960469550660670281785872482943066049116875048272541761732953130937077395852754796757904845535894266841386818080458893860356426637549612810244887993976126909515352684328305251969306749601969913809049358530683314376353483171412360758876136342438806898804777832408129811676698095371832739547276963178479500834146196457018821252915603946782390633415371216515969045703921256969544025223083903925638969316767727130148450061872111272932597256581479642168914880699845074840766574774759866124306553826703448878879711700650701853468744383378913503888313605555429436526310399229054335049357560829052443294271180618924407470587800420340220559994476535586347876873520390603159791111471539388395523778302731253951265494121724151283499223044793891463207261130656804478313792744879928808128394015071741976955376637528102509768139174444724698215648005581955129606123764488989029384867557853501146983442214299264289838434776441205845524355164154063700905734947920653439723267399637850676045181368648685448220663324400748698764006682635312416486378729900420860803661799088764689597441179179282210516626387721053898305388619034619090155357731645934801520856700291298632341184769869048249021300663663334910629800452512419638576769769102142985395812154046469418407859709683283947425130636988889498633022807245186957417310791919518626466653844067762816032257122848522810054004259746859253273370905710499409440170701424374189736042214455911897966806076074315518402333911214467710512001465968108454436562864376511125864343973767644146434549694332383103173223282416147516600821173642922766534403426443729854332861255079627826831079017749465759908541751577840796020731999878816808428898635311517988028273207915115714927077974707099316378157691256361261753949672918524090970408087240925730977893257109607919683410587094251853718148542770865103009198639878966703005727103637303389456850342788628702214344281400004759976858323266574561860280845677069234685619265655223499786614296751943801746089010068932892135964376576936566062306856829910638269882273812861429440203358842483509728616159637507563459898026858122628933343237107664557620750123963931464905284769072721528028072257873053667308542379988020271247164421887086402820480254118123940512668992939491670400261487409936056387892775659895812806723044772380800898529154855800156624576359202588611699558139481875554003467529699450538918621370293595892697196348414508110906994976220982876217786449901442769811895881010134903546763588625648469556924634954642521973707946666356127078855359625706079697400830190968551256234847066460929480344094812588783990703129398886234948799365471418688986706159582297288567576579458852796142283399755298796398361133078020512659570720270290262508643558100779467744285699891926465946904201974242941507715722247746930019036955950493234633204747364551992181738499659030419871417323315804591763168826895188489236823139508686097333604995015648664241967639454956773577070089854095608249915658365705774214363062172500601447190443635367314819266605449554748704357009024667357484575965533300976894651939403636041366563252632952848246497352071892963486430104187214519518282939536704303744321463469886224774206195606398575374107344628470039220893029055093064199857427318993099055744792749920903546134879967452103802703396009719670957660060002853346314263815631114306799917762272485526138757449965251390620263646390051901548790550823570155644052367097859869789008178161683456167929049676408401711838589186022890988389137129371846873428945920940792727633778450571096867764585204153370004137018007648673551453415887347119795080558329799523233566658105319649803493467249835032392699103093129191371427954565472108540181987978812079697382037257560537412269954029383935256619225132918895056121141868156175195136157629591922678803571462858880703414319804679687279981553456701779736624922704620644128918508048249874317559784852849850309799501656721852317958033721721315905322136353677253504742907682936819734687359947324628089031530269278675818998149987822134226760263871124955898278144617007102710200441015906755727468802659545653689368686542217657184201375575453731062115906808980387686766103460767567731634444963445520577805290367786480401140184799258271326816252644295422605037175876822963528514742912897918615539552228566524179161809148114738381814917084785211862397531678377821852516345476200227691392612464047062445325268917942120196500525185980038592970004769800664009025572364493144694843862309907826602541750488296619928316450772793331252618211212709018105972078323218377984185451123465839839434256270475985872487909274756564771288576064936113373790444915987641656456551185842274821510063466293542198010244542327331124663032863743748725050666153750461825656500567601581709988166107417591709157259210869160353595813272985508024673330782069580239739028703392753204103556525172036906695779623832049978730177355797971906305602721244716845034444519937133016736036854502552589133183218935589980175860120613069887761727100638577813210252328692419099791645725752644492334583534252715465043255000994238539370990671944644275791706072381245318339728615435077321457749684801005788255023793008109847563750344831038588289314679753351951799084681089320471706247049637316940598725482336435385929918797924146656519865065258172006321867642019957194690451416006443952163339808658627845774519056455973473438497576251404392277614569822398447263342721127167490071882724764330699596316029923410318740764195262638737060866700102377942449096110461205081082175685222102689621482917692109143932951124543488414607658860553359465927151848885654779129758469221062212623775670750108572420953325787617201935894375480432467480690497738267772613856601915020020597346993659586839577545932444119999484645970529884046988488035994622309916719173392722737179930348898799967813047427430370332535529614177434219559623881750664075492806396686380389700572538635440011192248591179667150896106836041473520892137243221562910235410223095024431957914150563212849515232489033764418842259240212264334243549486524834523627555331595928520077170507309438205198137505771482107834956668526872717214301075811089537898232989395050410129242774911750969817941327150922380743914128464353960477070420143326116306183338571196899449238290676504904888604763315313972606372921249145122813392233738160200444837847124894257468928953814587389270660673756880593683405816864660483773382260535967628700027284117570968410673995383093277765197607736305154212798551335136873585147217609500243487256998792682111766932152886724817207618108152106862022640147802087564794064901506482250239283431813062968992636014170987322942290179923061375206881871740076037602380173461890246711458754260247775712971949409871900002356699693254332335481922154367078600582721749604477269225666373985820608641784365998402760265857772052923389916679993864091462529060802897637984249384933431439114095654599987035922739307446511569814932154255081377539107329763333728628007475144494508704556378710750130733511494225235973318329999096314934228549303096611038138206381368124270007277527299953361194734708273694210483532527181256114580391903306547775395495498088662419081653809436353766931036175851546749247019561927218779223286027013174184390719109169200610901211986775585301922218067890736458972979128091211076870777792802583687716329339792006670232495528713576078441769689813958621190340380402340839596083233606817933209922166857355907729012560782020843647560863348682437943434842167103890549128002876868608155599332956487208803119565763863299639467417344802973359143650847170237007115982325074902842840104876325683396920498955810194162373669825681293054135258300004253219965554209582928830381699526984976078781636529753717782623363066996235792032684021104842844308834663742821426464368491011128991612332670566904891460240417462975481090890664843288905111264254063753366592782617105226165480297520548207647118331083222108254777430731633464025361279598347537764968664023787849539388365636882856433616185906638669100925560628767403038589963886225497412534751667015821182788210045028989622662684482448543803055151581966869830472003195097408535931055056894330840069764882634386760830580552611093474774976779124761325842959932806943544574694320753150598676631192234243570349598748456237487985676972115223625146067096602933182966442868020655802221347279851594730224838419255504246531440852191460922021849415850173461170995386661204431332972733885207640720423750491271373644951200981315802807142644891099832671707958806049679654389692357267490123931187676869440924686998083723113628907685572123694662451229130946765282841728122502764546868055472888860022718095956638615194618637002183983933453540142262711167277078013368930223994487904924877550085569451184446635378351787557233211209310927503801278645451799236504252969588900290321919349546553823584831857440176218224828890281833390787527098946468680488639133252552900847518776823884103183044943052481047044513710407957756876314760378303890202540174007728727866443613566784211284319545842885261551557200061938198458382960241685172435979316058115289957350771438789801018132040943067148580921402480640925854163095084081807828371703276687833026460228349565652519404455999466434789509248350545933858944979614581261231148769315353212965955754577296774969370176779091269734315013952178905638758458537715477268811487378695182473023341899534043711177723229665083766482601667403939935468677139458657950526517765429091387130547374040902771697053351180990587239387121578502033440930968575693517493809024325279898825518899395781141535679692248297830844215032443994848412816820507529595968372237867005878396496280770250926074134105746940022825759118878844482743311722629071197906080939407404644332646879434422365744125471966220683404187960957910427087157977481356657434688985265077034211611131243338017640970868209979510237476091187609439026316675429194074099403118946526989085858157638504459662305263533125329017848997373638666130686565330829371346866168983668543278406799473270263480741982702713402455226799735892974123640238036465510595525086409060802390934118155010629688910078488545427490223590249806816253616158189609780417618962083688801888419491304633439093743467165382753851387946839561039066221137768367024520658681926095427153301246234770020962442292397573396313282632267208021887961972120249615442488023745186237223463059893226519545465732262449173022142243774614157169110965741451274163131457053108616034315827522363109649956670270983668059613087550900513718572424260999438720884525432867547088075650883362307259040259002280435444083733060443181313118760555842962959222614532947162439627993495878359523382435611936776284973604382128218432692757163399226808091587294535729230525898464199225849173996933515706204846858989686938031636568301638158032391113378320168497700161916563004680110348946023453408756429128507244299989838045478412515001836796634232581811316065333746942512548766660433006197650436111364880375083754081728024928529101600402384122796276462535267128437684589066184769324743381407401783390797670441013230563735945602959510301179808644086561009601161184635755741001128705138262219892825951218976354535452745488342236937891932174442543748822328562399183024823512153714054267053483434763455599703180834616048667946427370414539685057014714069061023353696940122566676763699398034417347980476713664026774141076172732144264560685746003245875311868139669679994862165548935012143082120754641655999036009181925641021512087912888024037566415285624903970776697623588116260104794623804283784216142061512027321478076837168202212898210498221381069711627646487263727776109572145998478501431503550375064829223661364836739765552634351244225803460115013806124409140976381683338902982470167817957752000479608189592367386810572563030553560047726570844166453250177048149581455145854992571320080494780906168463525774491425974852391340961234943077099006580649940119836391562049537931409941132710410190415582063748565494117984489248290483911909317461103695636912495854180204318413881158768765868463347568013313522533137152362221924275345540695345001081981830050611693915202583826818239171969389728875224300271782919355427749967779496899537131844259671980311521865144228251346722861190810025335538350278607375074942890772606326777851123662355813008456570739809482709494210786245377876018238933441338281406834952338317013546139748378008702914363763739801022816480305510906457792353603194465675347838740195909046873783511737331517956041402413419439049610099088299844731721187603944514916884067686405193409105609510104587450499544471028040273385043333900306284271661427943340672595059289009672226357679311131256628889511984029970064588718600516066065296773592265447912114659070316042687694496386969362876659822594995627344203426183795725520283764716437512980130398602314297976922467124865317156738177594053008671517615356473907273347193100865918770543132268919203193159677284746016615565074053682699582813457733368306421539005044951601717036850832893696250596333132157307670441934498673357739158977798410650522870786641006261499668786211789816334778383411817644793929060833289052251068913596425873613428120937759722861343606390352568488804621558064999826956548612416518306734490945496763163831855713580747530053566306332097912890060076397806083518633156055490903827525026908378759292835069652828613430655090815255208962769788900632363693452898858573916672744967950077245470396643614892166339193817806548404199580260966463538503104425383872842223950323512935187470420315625669211789160557519503429251060729068777745787996028155831414280752957894863778537195230651852268326883980723649539165644199652375912311692979630174904405417749791180838020533518264139566421614024930482131198613816434448489727692530506847490287907019524292665484107306082501478845929506443215652407035865920437639212579265238299018538028964377051335305094851573116806052112150335757620321531828462497910247449893820761298221341268255438705771002250531311789015894866349186715414725400308057953163252059282018770655833673991324280946925888440896094172839808468685207996265160466450701517355876027434172760342071206876639232086213839783977747172303783551675644610120077673140444576591228519136172351212924337942199394041741357958832466323967063198851558583372444895637176279246480261408786517857788574860846095605708654239183259447677835562965378880163013146600449658942966782565051626038210827387504061988133216020651735347080461093181845734686325895599210521746171929762898245311651696884642173160602756156614136749403913921569619280823974329308344990469384083347793414879292859313986188938478323220117905239151567765804851329134974572724448170919778849071197963191982962156881770465124357516296667042204125609432166437685340684505318860808821459320588455392253018969157798082288681797099718443535833835832873921723858080727736054254437603295520781444693542564491114175055025696309390282981729137869038384702530353102628682865416482904590166510462727450337587964571402409302304011720041811340241462746016632264641369452735605663182041563350207689592215885038119489911628326544112531687030229972151514442587023899058086577838140898281651299672072045694148998162559621897142424181510053512856586823103033607671523365995152936617033749248009219149587649562179843259304572911286941027862954619856807406818637772608636397377482367299683646242996443644215197605027573712858715688394974873217006415329934767011403532057161640404269316480859229373137277226944841947315098493405329442433846545220632218711073394536128793325327925971243870313597217505709987134429939851454885997574233925580534384484173286903339621310019023170418752489536622546551263651669772367770736653561504361150875391387834109980677029126212423126116594976357588219110860184074638819075635457243727552657414509831786848808025577014979810675733341883053307311177642389152886918473589213837685233708175382603833758889418529340778528051725715940498500617672568598354020846426676195015426781909100290081203523911239651962783512096971135266465703585355676156364871011998668758859883794027715914889693548417053205200582962126172095721993114458608881096568313357181338972003338860193070040189148856094184850394243110708757554456084534765664630235854917390999960067081435546224655473849334366301807662872723786609075109807925668866312476500671829354731365002752105100747563096451367185780520886044311112602962300212645514898163483250862208025891367565793825302796016109911382338182005906647953006616492712172151625388724856283842093244546045490973071133309116797277073079274265256242489183992862439653623126838146473835545623206590089296292366082106758710699943810013315415838847002125654197787394779125746018171429393573757442630683488615397682507414622601281992127830579796102003922947142785179003839107247119262274065111347494147490153942638443039381178057500140484868902000517095896983918953942767993793956424082966024502986395761213750573203584661402373684480366427358535276986064875498118030017536032386894393636405058109194445841824269137155526678121404862911303821962989856830341171639430862262368007620168622568449653439551434699497207678499116769874371393555683285473008305551509955500788601136777865107812108982794709637174956806972945257319028850497541137538184085533598602062770364432821834608592485885730621680536340630509772676940207611633707579803865243815692214041091458500534094801302786128403009893569436448238780001400011563423274740113968714458952355315543512698349796310865282955273118615191684820154893830430546156747301847230777191095802619136734449376940827337691859105738889402141822648971922106846747678714116861443760962306647647968628509486355742731809633777746670133316280062512079659835355688639492942758475864327950439470399036122671136788924973869094718043754931988052445372603717874466262025985405617082958122388997524522627578792226671868294371944739851213399336046383500638556640627656614830153854977699652519655722753656593808310566614235792644678356329848927371754175837286049253542466366074937049892903560581789973989481409925559239409018523962971575152886176193255625356225775876690455505770154778479944037964186177017297148644979873045250583241092661537768847376262993983059037210866138068450112578896907396243001982526274840453716257139729910312317509482099184880313960805118956640391001209670206546556195621567628234434869785119808273455464612523391558175188438799147882294334303827082335277816134994987571265392396595585847930363873407471279703208488077715186012123733804320520749167113672654517070882763963989122762682674757113192434856761949830209529586918785036761181692933087536878878715565833100525222179054798157448582054450266799671767792442390955208965237332648511710588524023588203098298375545285285198676202668110841936100355090340668845703898383435381667961994482746600754430415192452179967481834856715823322389814743615455483600416116438358187374293072012552750046347193385357680037560335025895320889303878356698021830914731931414158970082090451391620547097544855306627714179099993121921198983588771857603927699868420634076569932632136022311744406386618103973923440042140499720357888782092252348149628579063345769942652630760167181693145329880085828049203411514695282243430137751372957656364583900848516615150992806607972062059654601415908874859874397557235300638317813769983550906996054605476719633966422984593180305437044061853877602631734017930349989542165591088456022678902897911892555650145402067805038001830414988153714285905151767554830871424011573682615222048006370064740590697954292100467754533336727782154244933385320031907123142406615517073685445245582267138753884547877236594662461980205083426924692057025979139620612620141091336894441684529377396069682423994817124262822974066002384311278573464470888525892183783294147777281948327837435681562820010131917558535623636166751852716384857170674064777864621144999672718077976536488070732926561888372098304427160515973812718906854142958343243159641590232016028219642700674950665798598303177421841572498378485900672549592745220853262291591438584013960833054448557399072478153734238214262321206211717404392651414802480325729929095395609433913218918431667181249493779431736729267910175322572340464179072416431741769373292794195004921725423607138262547173989631148212849274699648816896495364871335364347263446495223917778383916202658458614873551372769147448983195557264661138846894001630884204744663213253389220156487860126811580278512495560058183145686466999431665748064937238568331065392667576526263507937675841893546862122228776182662139539904193248592984434007158901489464155844531871969825902301236248211919407558154594621167212862692105067411849273555195083314923897611694736834630151330011417873093857130345850679808047656966473170731629577461648033595413553198704609497438110874849047297427333118450098523947529628388560429706620479929812084593436001448523962158366988131732535988327483533729600671429106797659814117403985141005217791025765335151919579326556052972903378485383574123595697033078624169749918426942002891232518022300103354499513796248469325915797523439867964256350630240263360637762107358524212951164420789740763598994605736907145274126668963682763777261653904155265849941811415158471952665262874224263629865694458884874163916820879325713870779620607079869724030163447233330841837431382830441614349761567298411636080538316941529634426761462174033934893101366965794912574456572740071381574911402426230147629284478347242069378895637207702237386866975232786775557028839225743507384826123695732135089616822258203599729995952209188487672097240264359226336965742828870629542502773207660256660163413499416840553170640220131892584276526332668090923996013490327216458998227411607652923424801445576667450308882978037367011909536481391793794246699515217018772834559437378357605187816793736588239441822087458939910928384360908505416598667987832167490548980877525050945956178949139400155467265625066895914829705547148545320266960119991032064649454777824552871047653931728653604576468082465669406579467169111685503222182659714957942729714906420890573033213802252606487832813639892984184333340410661165845680814797781407733818480353111600877451179519586772780545208342463223373484153452993855174874362576191626192190094571677957740964759903714939794853212846299006282077649983884072265227893860642945124454418132731942167942895019981847832336288393792972901767145283826467697542189057040613173576080656618965088142983301079467981108375207272362702885811575356507520613673694416804089844268628659963751060835642532424595676063911209186367242943000795081471259487031270281402255206444640067061986087716177483937924158114894489085532368794856432034291577686776029542103045055138529681669448418418859764176972211825799981208831249535324538863902095321087283412021668715571111707369210920262175107203004734401640181941609957057602654364596979166340447586643391918614024494770151377775205574310268195944886442515295302108659280039908457635081612210040284143962560547483692138450618674578564124406692813751713533778718885773922518072227026532409509380043420357798754160616785848719579796014051969335160818852376420303881121429237022347997116084314007794536542432129631338284566454260158384989582636267104296475046635169844902796779247399224352225909423128314268343145060034095284320211525302873715339613359005529254151910454355377984355741334566062218954760719502231632103743817578055332475182050987383047125762419688467891513008512769258792387619047015290377027700890925493935936377891655648353784375981880543446004588388301073818163697548360096446452868715323390587824882741112494398839555653860274076665282864966000579887547194086545323895012263049613416974342211080094776564718934341327228308186110762072903854977636619793406759484103710354531651386448987973196507387563104183745930980522410632208260447423230389174219570376617014547561387392577085055818050332674074131473205685139397285094612306113077355295722353192440419644832089663917248970332492797759665167658380186963887981503420029481966175025473717821702051172815562200653529339490328539961981273644738704543708961610777344896512300434341850517477842730349384017024161100548189172599706156794656126937368353338725414923602414644958276127025196687218084555551600836487067453889319795645855999295596951076783429023691734072734132376433519284167840720751754990972359824996110838526037817638310634961167556160195192315757658917057580696622319077637796162477601360265425064842244435473446790616322118532149253166999884571135790447350876014978305719970305055887869088010994392079204501269511022317193497021119879689032245478821824221321303153673617895042276841131261078808938098911139911397854468086615359489069996357689205675191374201169465814998840586298615566827924464974534403833652465452598036052968866365312254182393434819636977374868108881292950119166787000337950888324201759037266400484225401919737768677715802910379362810272466145555204017390353482588711409310865579574514674271511297847028857799102988588197893510007522210138130931090698521798468688772666122769024141687836140437558739856516690831681569701057373143696988881986521677052184689810799979877040001020080335009601621795531307228377100859429452767536906401387895055157552145489858526136238980264491342514134526374292139325959858211305185034136848369826004701904992038210171084734623800877592461440211043743146424193600008666741640123872289033401187800178846768516341605322734205930384728325521080623915932988178154995311952815104234213831695885081910585063234184759898717811683776855007009659594898981809750019441844841275697594157814374314304569471824547595781931731750782136860862548338678452369206974911327552814754665315074590387012243157625420543060652214060668843000067166013089441008920825346833222175765668867873777098838989300552311924773651000086807803446314341749583664683805985473735850996843276271773752037630770751305522992783028583556590851812879942610286469486157361456038021398552074295541506690508399936703845587011552569798366394232514944560003974851716866419721288239785692396975024444309315587471291374244799850839949221978676125164217240152029086219823365324259474584408508274225194067283539390629188947930501466205560477832650249981617161773866723618753784269048473943165862707134160557417001371252461485119498592858265124259409265947276585803721360782884954140791932910178611790442397608532165125011364075833110564865337515408697201134010358510289832216237594809959650507266324166937259006146498315792626947093905764921819137864138018660106665288720306856887242566110543055021790587447653530343186787930329509723267799417170854888758333694083809065817519517485436862684358504040178749237915588903771650665940605836084106303244884357623093943926949577194822254159693119122582594388858796823970164110889088875766563680294566984218393007845728523851164143264045368297096142327074454833809754064554660043449503777130691432980096979046129877006425662917711153281485755062591711537134350645302342996787988695419819743330679823760286806164171056997591024988481977496924103012433986029964678155715165234731235673158641599431180069167078213229283355167411212846975175107004274049947362698596453310497030869159865686805070503995463350135893026566979158180780003037237720192635263370558597118734906915293851045007240061584095493954359837160908540225820440397636306693994477080321162902528542149284250476102439038004250123428407110573230974247737430615155619346695384486169654222148269560801743948510878601186415854289878714895155715430931403553436706592216240075750225130428407419190858059135124618558347357455220229256546325075860657941911319117251768204682538840292365640965072325392143812743758825013416704752029756544462179910251916722610866922338477855588817742366311505210537791799823403025756853425823145143105072476582290806368782785778715273932818064212379188916496615013942473349008927188002930746734554392318761284914998632053511107423729416460287617851322558559524047352693478073183023582073085013220997264826721346361330205986738531714112556884458960260188422063849365902840354270941373416068570464664862843410569265362806724379479087654275489986848318184555345668319763013584474230536342066630147485991275796538496458259974975473423610935577909000299026831507181675980346604624906053880208799920031882051506700987737672853310962187167580185250193139053394533863400906540311475894395049911994805037901225891094069046346070364921373841801212003486482552353357470035812358745753301656449165170857248465530297821157569640982930614489508249251065115032042811810398201691994500448755018191826788582786384746880672634470060175439177061429429076582611776764002283342202324596747274212203912281505556764266077639426060389750512562893607252047867524244797119823346611349172389279320972410892208750939407048847230605163048274826056007383640477126271432279157463407660337518409376207275203250510267030874032740443509577032684716152216761899426397689860915105393154168242506894388990261631177462478165103618464619922349244676519919319699104772573217265009995727369731812523353529795554895920745921795991388112926258706961685561605527015038029588633076310491661740594350289262488898015046018547776769884438394794420631698173302852429654016900522533233343239415293106801703113291600540858294193178112258678088124126526403026706736750247640021055781841542619909985863725409780953519991574766950392570319519290504916479472427155016148425795645301808465780258911478717767304336678659230612120452090313599675611597477867029999462608635609418743909982487158312026414554469019527824077146757054151325943878992947766211107070109802865488685467760666101612754353237702389770441160658907515423750094627102370027888192822524838194814952435741956365744211505377666054919718718475186496293978046167298389156854884523668712895414280428130792256940378929647690508106756982126249926533237479407363949391028174014532411561424039407680798475133969603917698276221955038125426373099794396098376397855737669141740067193481984665614527840289857556837338213701389715091247278863415860649365056015395465646011042565417349396657438174055105383910157095671773485290725882127071087231753749390549608143988518199414635347946722725721857779700928045366078492548502653639785972014390840631611421471521668606558271953398797973603004252287606091721490128200780525494459187547787493235940886352974925115694525057735434586351094125910427671507207242320487464667880202370888360424968573123870965742915296603265838123320067340626969995714100193198239469509972558862909326087473620356915788175396953620032198504982244508158036373301232779813966666925322193898040514274676108584128233232619737509492183647124198153787630930510380466866326729839508120636914147457514573648026878825452332102102842565952556850020350000770793545608493361738566647448131813611911697492349821731964310367773991891320296564620223047661673551563513261957182125419954919853114334961883660198121880865923354533669151803680892892316251374860288213484704843487587506371650096312055207935368372375742923859829950521254783991170055073308801245963334688352129456941349993496276941992267979944888699920251920331783905917144753317628161047329810777044430872802281268909620232372286411349627837086782233511115572356533973802049090384912291525986466560325731533654151552634591374009376178926760266746208515867027412843740356158036541540970581058485575681012263605700567491357785137626748523258314925286135283618935147392210852213491304608091363133256587383148210781759898923620724203735500740421139924569753344966427934945759264059122722256559334353397179922430455500678764634851683764220673860704356919996299197667225189401150334420595065803816600876138444861010606867145745324347820976980486435899483297437344399349982751804580793752945671902309579130612551683040370606877210445503675861963614835804338418128474462794749312108617263034654397872779994632314197662367023334304549691736035371033071589196290219933372561735021298758930940930019568689297932573599108271048783713971957431671401764925191862631571256538197363285880556427317725406847353859966241103938354857489935509411845332403651135718692246766116459142395432310225744997935249884046848703077427932439459800383993804600731590101961479818877448354302454101962155518448210864623834351890013151858016151553076256658025184750437346042845688207060980490109734236604240273090917256952808970796417762269905396938979392361656821457150380084487328159799477647824888387513593241352936795838692007324706915666256325411855453443190603811762724182449878747262734899571346245508331563204887725852183699793938171678680292097503572758147424465573298054889559945012369676463537692116170049786986116586589863941449821033690168916098005087474028570643776242740006845873450497343393892056278045580135913341036861020217480163200944570193375864035155916248861370575708402141376299618464887037594302754505323874164305723706751749089017623300362012906319343876447296539024402501921988848280325088438180847174020156471880266001664846411388360268082458768724595066015979878296971456039826861065707156011234890106230297582386378987205946980749795843041163813468196217007207978555266605853749495450681209372745120273273148915250998774154415213570746473901487912574748818559640464861841140581037355578245283472495366337831195190259281342772453936908752772682280512774840839830300988763470341553692302385755838079568284795542663736720362518982849822120989963393773433689100168734143902306332069413689657217390698476846817778340740516013300129236465145506819712709554048943488542085031044744648556788189933811397492526745347707098398263022303639743661560986873477894016113603118641389051248052913718959276714438685939935321001356197579164227985257475264417878523329572028227096883257391093068156610480137248626819549091414851519931417786472189677899164067257631425283823163897925362425405097627003681481448946878119573761930034683795923931117952752403175936760693693978220508585905825123789172021252736938769885590041359129625514885292702311878542105177587064759272665169716334446204916376600056489180425990391031737451425189801885071345276704182378681268874270128901969121451355651494917027312282150782679912828862927383449470853318842122910000945562202684645609183597263755876826754769212450587608629997443902955662680809263622625034986508037667993990787768625328306448397671127178002311529814169755302659172904524937397731878718994392251323077584137474691617817759745762176832121289488911948659151915459112096053686158755375636559906352841136098618680288243806201006376511988754268811582958181591383987600782205465528796665759734954456242108571646442548928409848035719307266414716123865370061625470448644493072715432838980893225769813702467029199439227691779883211536660382869547138947411970823336059033238984898490512081687662678343663498077173618077456325702937933838292364033623342689494653661177673863038975676356959734265496812599305688576962895973349834773716702444537970141081632728761634841351296995719764336890196621247566772698855922346105488998681894297032408382494870067197577358056742202184428605463375667026764082120853829965053662157564763801570072006214158539744870024721230349231691524959228185736287003065210674225407983642388743196431066951830635444437991667057689277522574295028903386750801676576822979050025531772157034454577920847578196069482124442772972560595092720849217472387486575138248367070931660600794592653861079584042610325417352065468320713938697271906001301250175287684029157256267849710219013267125785122246832678335578280087176031174522952423878562937670510115341471136714127830025793503516726198807238662443177683289389788524332941006312244184581858950407754914316265662329833007508640717186958513699528822484168603713896617692615989667439651057271501243478969296169330488512532999114320883756433571438968959305652325190572957668903124356362572864764011751472686479598100690055217542770445364935257311624948829525605828531282422534638315847248343509078366756983629666852305599475503389480914188140293067566795393230611090510480763403984797356695395789755546194450378608855299680496414529395539903814590213243904359997952459544075104348866270803318583141288715506908382427870248014224254715390790333350137000294569973833624719099099929215842744156172524087341086675912810273987634791828259201853388995921319238937233998388379276359829261412449261722400004523363694930782587320547816461250710587234339711268144898638931477221299897452654388210669829752295666222782891790765754832169105202663636658502747450429607606451943717001483671148621212146340705115939174610059607631100022177763604916457399074239853097294208650745197090507750793254427057324548630324900878438254704119361893609540222800838936566014270213328253421225986819500799526159979536322047820612283186006909711712509699364028854464439839738490305756603489056299446989117341809763489365796905605534681387921843968214700521216401318574164892401253476886385788315415656680346398313779828789790089766617366591922696462918970624096915335028268618088258367763193248866946201297245145736758715731141536053903664177679067029000853692612336613834826613732280860108472049657816976853455208234759724741977785007406252455811502161735236091828049778083674623878977019563255786586483273989214365019864223370059437280978733022308373167445471062177679069848425904126971543491851799686213180000528586540624576646603694858380111082528726245436239042452020216426693809455884800147975298927668529499236782251563492936164369958415514419627711479465374343971397589107775762574017087043319222189357358580341603861233530478300241555086179949749285911610646643956941113359795356286094412352805113390943994540832508619848652542550018043319143719304570306651280789363166301922847400294148005432396300003568940653092681173019900028362634837422631735903963972974462034527756118853498709697915694027311463996500424902085849073236256295269696342004216305136604325979471128067203113251816910703934856200179077961952994846438948033326541293479822545304752139136397654905677929904349547801965336308883553701162376040682118795546172731532663884343398204446437495262539204975384353788270880323277064172791750637370140216255391860819732298299605632355928081018580233174878457671548295669650089935177246718074794371274028797264000657597018020338928130173497036333427058396222661144165021138067202912027155518537646546972796225979342766083180624816603953328091558356947617126152719134019380065811666525982298208535653458194178470176944815295637288918334107122933716416579757508608845626444305916798049597082197792783071025523569654930575628247838627922911772578834348022814718420850221367051961582214273046786564794928001004759852930433384308971639263422879027724702826697433204842679968856594392247057951402856722154381422821354282725186657094863260803403668365142875456636168114868316543323813313221978002018348502864892816520968633054216210138214232157325983781752740326415575252490043958899718952984163692845690654067136672631257939406849875447656024816216584606060132722857173826417842677156944858492231823723304920523803494712223083471154353883047093937355204758874958961205607139928074248149546246245775148980143117626061510805788851176646995557514900570601301769939128404683180334230100819331255500720766969060719522322410824646347559447857785925180198000697503256833012670124809948241499832181696430894364856319032893240100316513346250484863410260568484195088358286966115818812898838834234561257963249282347444263162194410316204268552305606365930888737657415940006761738408735111025851255249888232056657753515760274324909493182791041059447510987229874221271005355086725274029224241018476506641725271191820849723677931992374580740212299139662905832159643645438964653867301139878296453351345620277263651850426249941672934265598004853039816236735559679078903571420234490515338194843743449820367901821654792887634650690097330966444873796640965388289336782016410863879888645416353185739046638473925216391161746738759714614753229501172018028172557166415887268203748917019518483509678438443545410297239283403745397044048619407689502957713827650127851073635021254426839641318504390454995140816093796296476053731404985726154150765671635324421971785746664667117430663036572309941988102487902761591756024424548014613697162461388510793494492609290605306173715728886110691371229951373266732658439369479630186864538281312007644917711295504687302890981122413369721737979480835704114532146948381878815212023747196088388513552748429518186385996407268092635449870930977899236376274938415182493271202142899649972064496651681782158707357295642744673962855298035499554306563392890109912726526895744070987121284594823865150651035277179639781229597864095431016781168950273810140110127935502240977813836615806666848101549564813005708641503872386172542703797786474768352573510617801013798828603076749458450749695180841483212599514314511421505198509770281980333448409959648875473702603865895043613584855736485066583773448660693883965642981612559603966989045953842745700087172003808726059410539604970557475312609409289975930345373032199491780173215463301121202209523970899074792475887235698733914076354927158561695213896675119024214025690891722501164069876055501778290281896045722600187721363816895045412914614140943346954671965888709930390839520063823580882137220513088148872970291929106159093752016383828754162105291210889565254535976859080303046826747746826993057662008682577453341857276108069046716071963863962034225265498821012523563302760030717795449749670365088103487909526752011446389936219641537887736457347631494149766310968598507611404662014530452633717195534993446001312495198755396594599310126665822971776257067069228829742588443622776267912296714519719368690690865667779979990228334279457668692488809284582648910387682647892132054391665995869757082371663259100717320470739792702058250396613287228213337565013536893265272487950329111370550402641773285863152085398731530377822156870397277193128044573450490428837678419440471248869574199020425822430647124977470276223411119475645223021468743746268731418642573504951006419497264841044898040557214862327532848288374032339903236388919802162297118456078277935447136830791387732898206071681679469375840764210101395614462440811459338224110263988584223233462553573880371994813741492890201028559350991967250250038230350046045237847973962153854604555706341436080905924642264270715378155876364957862041728541336217424067904433619421998597932261328901610891868158492799201186948709535237911017676909043263935555340926266172972613209425666817439534254922895177509731033479034920974307146927350704273969063935727543588980996365041671690721102795731264335494292735110501196029485680094226077589071894849121814851362481541458763909337962213772741093499892533997123775840023734959897712831842286603511109246322232888424400295185943467345553108977553434990671596169417247614554681835938948685513951305746209098229580511104140540711575451059476223864173580819211229611587951809595625373916273969458098423852723553413158161105685243227756149211255498131710847738153510248931461317026917281746151099194208399267204245377058876452178316116557566553855147751707216127928394477974366395846327671742852662083974901211832532221064783985018051418395077456600127947626203395018916502312621739722973506290572036206857410551821645293696182988552156994462044700445693806832613937310471770005448070312309755595886234199415642759318110671935671304480055010573689403824683283041983888691302686283591731516735497489286225686210856988600566229065470606061160462579733158006836266050613470264273974256555672542624481343520826101620607684754937732163009657443212887501986770381910274814292420947230707620369101470042065386962173256085136504149159585195672000837276606261821185024807001256189460830202990001961594279149170768549496912766007844828118453363618470767605477338524701991540173613479810033847318951292690280261619440652835582171968044815996377054166254228293904260132514903792723966324563906147051077863683090152546920258339162899661483656192019571530031831680795783287574818057724718887583193219818040779568729052753387965237218130925760094993704987371119512530838048544234301286358035438100818841122166287891202059506648852923296907318626511928024994885742852289439170112826701664368219473556886892862751081469033667028205232322907378548409047694579728272412030936156899331250955292803419055765502864799003714915848715067169557021767746503220974660328011865365266304106443117729143603378061728021093135637005957307872090655277904022456124423135400746266733969025777347045717452110089971556445629359191904969363504370594086530994478025397738769867718548680161904190271917909542803811059804434684591059371767293229318760860806030344264868211120355986646464869675543756178758874632588524497690649265721145718676107485752342683395313940723238016482454672321201059925780550297066417643939662169663029468294873031643963110516094409342681014318432163777980967091156679319743131052203881621391325539363459483674889907888158230093761239636093339257138579479933381700636006298471442827145327517716111537963355062169104508043644597897301811510771605933790047301837819800724106252971603931432904989367167418240461497693688158052432099155106883638918132976785129394239320059853756018697691228335928556164624316003776245590262360990793423784697750409814900105876399869907262382092189230542767610829614698327467174774660545276814158462394437542939679511309938421279820360624601801839096054791777536216852128665282084585375390836514469465409278019172291915764348099867795271877036655350076345737060977064519254760298067670471920253839446511440799072790379772246812978385668756010788938568187784611222695494626017150759432404118100710395104093078628837783122954806834361777657796541669351614529170101939076365609653954758073074716397349698238250246570952888237022141312212888349866657283770906732638110074027557363960974273555207507355136450753125887265657098575170741113244400473259156955287925882735025611199224028417249143546769932491142030674865062931530324967996672852166000248058432075758124311619360224412584589606541465897310956740497079506048623128441301251860751459460717841711029851061346077335390178650275775325111099434413184680006990189537849117203126179255232872317672618993667794506315035840721817262788051249045070041484296991941646865425421879329429211689471964006199284366956561956261067570706796210049548204697794886133185384954478367623983272943190416764492185133629747776090452966928099344622730278400577419486888101319193210539246392654053430281316202005225314886095296279257343948503688491859828840274585691965098442049565524449051992460844227973679634530478768442492097015773358045306491036323507053597755343004835661886895667343710477641340555388861673377190627310198479152998532794138186024746769483111716456270004997689378342139978758047815095294157106827662771493007249199436688660900866016809536660921452010973413174762851297846229863721248620451107933194564668155169635209763257119410956407523532167421774821444143463029118154582278571387439495248542845143430132034759287999305599071507411603956378991212947386154591430577870575626044595691453568580072891634410929337333189183881272803313603208338507617706939468512080856684653552469614439208264464994132266548871728076324879088389578151827668785985959744200166229869025359230307867756342631929419897717412840306062247727587303935197345422869424425002383573397998239231512306673900132817077371543766484199430042964983861853767636669459930083439122898578443695514513014646103969139173456929960738735634754453639757670101943077104983195930560752098382057425487009918098705163263495418565264356798168364036042536579812796949996198138916481575420375484431437752262946577699655717769559854664179393205964359515452832852804290985899384612672338399248502078151826611080794542589744686993833509319535477516877020600777772853537495913578308136630461109353816869303584314336436705650136922862275156346328990817340026444981640183941738150514486417804205644142023735752590019818228675317807700960390260322428591874263839982751269286470967733217258350488951721185073197355855240198016946397782738065155029551016199167480845609450139705408677111511616232904347870627749319360896925275697735274325790118893104817792028120290775894151690639538815448348637222628268524128678474871395183326619168778743874704694996391016326033430177932162210346775201879141902117288001072919224288232520016860442054280418344621069393400319476445138847951240791981739735921810353000388303499604946854721922885279887183672921753088564514838151090056593065972682389881259221631006377233702568159605042169045371346225044636646545019692403833912942303031325550970187446530204229413384980896073948921771094146536943909409568414754437625568903116985862942084026730587216709788963449824169583736698237352675263729820242110188721533279347497753439499454787190705615906194489543816137990672706241420117874310923443264499390793820516355786704424030486201928780963569559342757058637149877992225431907554327984278253525136577601496571216865293230796995652373656226755656698819784662376760902842615934645787608791262294868604258207438270114092854746378386228623723436652426819393321923791579008818140504142173994599741639181636623047602987256013770909623713419741066970574491559534013985160143230196646642770231158475361414503190221700817541474983791333801535135578941294505175263751822771293494399176038958450374705042688120006535853615312689085171965024886917111207387276587122420213425567308798675542127406764695898161595717940143764634182464289557743172044855011168238932553685418656050607405394910197754707924184586307147068380112990223111511559175247537591691072911077006410398521974478970315333769583383790907272119139944187559251610304995577204131142006069213210654003515180658385861366269649934604295740886813077171877274553403722593688441071868347299862815360462802164564402458677514722764145566528726465773670458960500363605644025487240219266742409664388268271014682843486878822720447080718640182308018675893720179769699760660380025097795178610851707554395662383846744160442923195013864606302486173858328724091546667771902680691374458575458695885820328043763208842082987273492560064132398723193317560037146786117900626609519293750498171707137239706532214276109534008546805502777721868648013758721203902942383671618723762638512850702475825829925024181871513572880643311651786275491991676209616646461260400175690834093163387414626609896731460330917999478862107514258609983331141555207582606224623995536187247280304182911575755952497346530406734833208213343752944430867390006772447921484618933288086903936131526957227801963329134693495323645303368131530616508255602426653616503271179223383903850612237179271952242953600049133883081015759976992574292898538903448795595716302538381599288121056805824093589841109524335373716520103141008548833653388701423562164074501754254696101649288004316491726277708832412825437100480664734641676930155428539272386425766887054006283773677101302861676063723710634911227874934790213818677971596934890295686961164249483076031651881485040140012433777434741861464102048166307615736225126931793279748967676532635404669535706116814225368348010292169015199363706293809250137203562615982786180239527982077883808151275239359084103209202363539212604619526010735071647598352868638350237776273210417586928895687549750834573021946091193542573536073113353437110336191836040702434761528551726637348045943768709498455517002320186008744234977752281317154506274891729214021955970246350257105232867608578565711396914720048045228573407728134652428283773058571127494648335239872725002834098762258785977237115594464522560807068370370915714153706887971411285333488177233851389553075184807904851764294886543191468790179474964900670879569737685866915650986403873156627054121584939002252015452273497304089304428046768609601237309562959904573460310408429490222471515344105853823187047755089627032966021570663756923243435331358046453290246728408387427488812629466152773122087273805877047761842446251648775547475687051917686477815357527329044022952475007969939808341911648796181132261062725571274895624732885811810500580185535196458638119593609841418000703956162303999733352469377167928113198576752751548801568566181290080114653459555586611535420574513560593887799360139075086625457044217723157453045678604922627043487200411127785679353958394130905055078418257493132636732703787366217906384840188312570829907675329406431321910311148294753775360655883421775241228023840634730208933611770815121327707473793834727129431158015038185601276276675298710860633868483847635814559064880620061994782656721927046981702504906590632210872442202546463312168285871939123231505291191964859550317032754068836165756427796062606005568696586663701446710037855398493832504153230012937866375935107935296053216534865466419880758624950466338112816272625999326470225624241536724206632126909401814716137089305186536889745584044214117806880571996764373343280267154133289633151699051235921610363317122739430532075487033409484854050160116325891403604753144284369742006809752668133181351175794754655002694894907934424667893438475810001590479089731203625711014369303415710235406570943833216384799364155257325533148350587273608104983057972707335724149467330341088173907514059000980478246670624859571234706156384970670496242900175222598051345388245739213935021538050414812245990621430554291424396680676549880137888441961105522009354765635639342117763099600446283784954231485612143389564354656060416171770126652772053372671405881946994939717400726025471362355609819346126518763133495396974630739133261747144771998061159505887323350320029317347744296550209983997894184887049903810152553414557903071714595825950810418639865086569851027039891701830297631855726019541648865989700067531552273521757930887660505250966877458357107268722879697785954833571414765036249412536695501035064822447150914923008171155013018549568322068351413096029956384181781693608700817247627055003057068292325145126769282255562353090357147846166765791138727203954433771686457743369068425139395386153613883157573357006240072602317163952486731621039086720648238282164278022763568844485057065098155582122380853690438609913124850809262365352371429288172737327022895208365155483596249393619025219429303876670733327005975357198018032939483564973329124891402092079544136547315632801003351850451723120370209613209483120876540114746959578357397260082877463726072303194789108033031392673530007341374655026024268041007218236476490871665398308210902132352308803483269723381971753625441317887966025856535708121579538981870950434087875409807961812178121145494686743976262254879513141505263178402893608732055833425063724472507476329873881947991143937745599641525073009142953944005538530954373868013839025402748511484764742421403107451712446060306620953755218855008333298454220939094911011696929927254626287867734497155382295172185002977630325344282098259015680430110740761793259514786378226920055211826861565383959239576808578983692357520637983248488805994125447573268355581867633503183456185178061492199575478314225103299302898020829448780098031922660505618224539615616516543842192672634701349012664341633193170761667753504703248809971629818897519538748976604725126545346316273263726727856960196672684301453396547504089376650684720831225465372338861375573799543486343171403272573566034445533285857106677915546871013404591035736788587370363941690170402191264394259924235794913069108954529170290077334972597622624950880631263555939159116329715360925853139721060365712352358449107486502815157921530356858335884585494623331375955119096313061764882921563687071786044985243645958455030664900266863328518262260982997855567409378507941093041519312815533804541818127155144821702387682277792291310945189582837913196959749882175486427472889909935248108887904817084718467800932176404211093115681859486939414885599405387267946903937117760780660145306543353694384651021575180456098887355073107646804022029896375221328751643975960026904727510858978012424152240415777856177332792085375175884880015090896793698625055755812207898883365696300484926544570659152883685471717517015545168121758620210295770403671445723610596384782645589442965119952379979002290020629266307569970757457379457320140102353327258485999283274492987502137101759383036897295943795051680047595909634968805029025495714829134870942414165946014087740649942020312811002112585015875700357953838182545648474263572844747766264194679838112006006652224922636675441134966996280388878754792871056108421768321654762218776984053144703898171894210891235326485293642400708700780405654276939242318307863219057568266423072009916208333195691080415156394560576399387588090846551421127425703004169312120017595895744393842143516147742345064976955277889763699957332031525788499322301737626792501397532290142836675248778984225392052950125797596930138535842495187147533906475341190526437397765399212776821392648711694788596604473151546351818288656621598048249316326160258719367011227578190442746563516877140235497999143481251996436784981610211174869713926836185985443740430855280828185348818675028571619284263882130900282459155298496313185100748986170975915277965382131617631113074916454926791041682007177205036138953283725264306056033516777669379901757647126454836967984467753762267906082510344734410184177424325990611244640546558231868876361360122535719700414337524306021064102062336840097399037368537337896920872071817269033438507674720202680733561059022254203578256899353023616829543216851851488766688377859475352390843779788817003044106902036323767815003697451843220229533786585239225115632761876993624797587886683637175741219517951390253442185878770164030142469577123955689738661373190493732996701508787785957066469290344328814559770939925014083032136343858988031762532777854687966983226294756159760260727479443122544809078950467104412328713342091236264294741784013594324613744620052453223558311033368949513243044642168093224174880009820421782109035364133567219783192322092488269944761539558827745349724685294042977304382286016515844188563687644052431193383016304492594098920785858071764040101014903615078895066978878175697654998712870329906104730717491722456556460710278672645921096396005748578810525617968505356479586685032096050009693753527727827660842143737853712372331922743054489131275338458625392083705964131678430229644115291341617566953637709074257525746796188839134189536831484585223806071284950358491957914072725868128970282011850091863938285520762552113402321326906465761673369795222201904110210777991547841028596036283461767208776316418910970237808233457432809322502811531536857878946206220699562284234558783692120377236835909993000663942953946699535010789506416472860035956269791261377461188149189941810786814406410004810329179017005226300786078910944084753232756837293654549940977520397498709433532138333353079630153038453149684993579166244759871681901914642891015410628941144344120918553582930833629119039441018512856139740444238871404318208292162594772543289378177034278639233176605140331959959386753880185142768068114521322577555594751225278507658122508282233804942459096189265394795868727871428760666085413429176078778071314621805538664025311990572513165692178289325417372614757700623890013112869314557278075583341169885155778151167346096353466881878540972021941815149670040819414922864312576523523338651894591594515025248147233752672151950761246354573159308123630219671294470815554154952059441822148250397946942254340433458770859591681726479634946956824331687576268499921785884005022314531021022948661107926633366055984753539013637441330854021870987713622959517198657291596628066717531367122134328909098445382475563442495350679885277448731201683859290511710601537325113892327613565232777738303334620493657821906291310012412260831774373974831682732729687327202290736591818289020425634917651341033944690249699145809861390116774630426459468361568548524776910154993690493776517578613322451666812448645138418657949192764438815411954081614233179324588766967011054256313190255885163216065284074021226115107294560834836383731688475132712928219542282445984911643299051500266136130874330914273195309051333391383511099956804891061188280252142833852050335616904967711187191042758362495436495781852614033322677682385116301200157669574946284358257077448963689988155607624013526284164345421483793309461060837427366000329570862119042140689996734350502202626143017412210468831139409446081100652335990312560197099243600034178615645788441323297714342564858897620682982072342967333346822461519700213672388052128758873360009079255357441585445992985006152420961830747214556379806442859296295600379953396905555939964751166738834340267794776600655576117584968279624850567940295144410389076126319150955992565047347240039851553149983496399766490972976044390928211599800247052683033706257127386595254862429514976494983216002311305825182118839380360709509678325445584293303800112923036165778208408818345173957367932933108102501414224342872459860211840935952375464039027079905648396385612964515277835759772647650984226956477238294867406237642005603650945022264748190549212972484432848635884057616765789506482581786784656247278738149565826215444399518010153470607620089430603457978818839557128190998204880646634834869368857887211346686974191681800474650074905889661385607563039890337703922103224989141369794491977552086319434216799105049695400368451700331565043092357965643267808862496929412395253971751315430032983920457292150722402971493206817381348393896706927168026196167590298487051510890840514075616339445032511375335065099849173997479385192999904034714520248443517545749782297126059796833645356662597479740446128157311089587087350473624732379566005738165837091867698617915194782951803821717512096840166090852643980785106683320257143647115638088276585311270964970728892788943220233427917382204398159004986353356050092234608928127870668395664490300201250322768075761764506651627875074006413053753615506504608972466744495918856219597685545513570948387579546387194839731269865096097195410904048195831411107782506908282415104624381049605514304517263626987551629774030791544390027595734607982965133021562415621126109694705472730104274706512443628562109988522304424233050845204081365975314044567467870216246568866050666942399041105294191082363684138271064925539620240734579591349812317729328685222202366002033057280667204455933265523403574341779542315995744497671164231866448344157155097988740109823575866954485597440087217983481080449173804154763864132155667518892704686481970180436165519654576937315880608046259765260372956571415763705936426624444055532495002533862783615109795650762970409343600086895576171216030264798522118675296436536263231945103861195419224963544434848790705315237707983367871591637859389971444708007321008396810748628936130427583783228246865900970575404023128220182987423483706437342086327267670066402513876517956073487519203308837111159078221115869463904747429597382131414492798306543110565952922498810911589871672790933903187124297756236253643598552411643861052725661623713156395332796143911350824185558337496224546052761883937704598416675267391541250301143241680773449144752555519098112191891264382962857030017889855875861792212700773301145393226994013307930020765245806791694743257931906112219703614718459102673466881962302469606913869409311502936154345571110636479679111934318174740716247650906821801662561079980334648325842030646656384671229387636813453079429295687012987490694854436160759991543347757649735702537926007599968420921470406350818602838137298321826415034386162768626561108791477957619048544201191983968527638125221485101699975052020957121037202714894147025106828689402084500524766432097950582006116217771894240578724114088738057996751595174698968985594947892822534525826924427836995414268696064636892725216546242895679054965012768069353360975649993788384625612748067012779337901923657278199272017029956199654491261920207006747440271603987818556845221927397663023694214697822408716387154147131801165778284078842911280219147258270293078807835141915704300208369541765188120533509208665751026082159240771486577544087802517827290329727299149226001418551019550374561589182195599004284842696665423530466673043728082114383406691095729421182580575055553909882661930041609688714996053991402357179033298138037361853655011893566573943337456774581311241894199145640592775748463063590409842068166287122226113853071086881615348597865272598921166334941054133211344868362948523759742013845233791266107208855175371746529769352537796842941239234191121137714819361827884032346162430431364671689900599150794963749746019473470591954025925538477291587023459690227371160584611352648027454160354349869721295371299350844954789639771391735583160643803990385431172038765236333243326490007157350413393992600448735664666402778540601905478795624708674732749973517093448632721211779695496045920701621865511889384741999990553092997145786684269937595689094461890321940904711244512458719013159119074709886253844045403634748722282620909769676378708166130487965189374866103664451984468190598977539380344869335676096340724292833920331256312382984574775701044333628043296225353643573062906697805511934778693762846482048417095675946706235182433617104258216445064321679475457432778930093016156287345967059409523824511956342620093411239092034056603920888883470110184625563281588614907162402947429629596333641965822215288047387599025014302579762150820763742794504785187495224409592091250917000295395829367782158244358030579884252563697042866944881569688132377909404552048830167117432790342187973202171079789627910898005765300197221641203009517552857779769825003601741957323134339344967709562510219833372345681736469524354068715498810038579522207568408184198259031755426084363013772805836069593154237813769491780212063454218763510669271281391836842628533792896998490042793078673450109942818494570838570143348362124985460828796932735886496843094884408482324184985824423736129705874186759900285416378779144008456022778302425420652997647376508160092825019996233910866431889298099820350250731763748700662366787613637899265805025376187430476356642775816900314827942168683574079542958678569502375132843447428753153228566203380426244723844910055737612846454541629644421781270261925631592353973615573309468886549027770628487469486627739401263212716691827792066232613545402808087844699267908414418564984828677707260490175871010495158835466031850304684009312433140083189333146043345901193230406334445167456023201441672875023190167599644226889225515037318435156618180180388608247395835730619433209869943101681713858001523400691739777099812827758829308066037795420085743493954533884702813890607861333747937416363478665678783127457042855725953300771614586269090087601410314508789607775103186127815945021404387387547513961026921443227568407734034129514467757969335567820726142803564876110814654052385321072751938350955395652205467882704318438568268931618276135818502506259685421924449742486712911281557879250891897731913520662897144490979741519143890892369752474409404041699182357704056004665870961965225668993157339739816788870427578921926629878673355697056470374498904139173217213583730533997077614934247630963005521669900227154837475584344084731293946095336869067905222425749609501655052950583447422305082467956510738102898735718103716751056560992225833473227620045491113084325486266857248972383956134143401702470817683887808564039930298614474001611978392677104001272945209242200974575927450021913329338377434108963385944578710765164037997070013909184037316401620249930800524894129051523383918610440553333606774857185494415817049815233303434755582472650155893938857758155136040097628766926708325886988055101952833541348848632618258523353343817712084912671043704459759348890872305695130143844843362642079714029600773576830224385092030500592503648169804171110841315009496111532423909321230736348693256917603180856865021623198675893344877404670525833321190325632233179784830795835732624770921024434121758615277031527137598714168568861105764366287636213220930377988342985549188893964458252283951465832203539669130524349746730942731793522017851212014733668010326301448141337722244618632836159190659797219138445860290237475828357787056863667584985201514897889590643914339196918069894793845295971262150659095357750552997023394395553545720055636881717264349368664001327617364119292461566749168230351334397206940634928163538370157037004418650930537643703888294047859561614825574538541781823596041192660267753757471454408257260757182606781441045972892760276853166297758921913892620687662054620094234742658915883808006142428140302149623921345532089308344461282370905571264194180621652924641769406337780496689939949546673678573888861904704910068319774645604984338249647194883320232781397242998583297166948328104543253025971999337782286896446006391098911308387389590054099465980307317244698596584824374716017326462098270115670526307818048707155088820461989259627770168396475298826496073349066491986832063844587381214914696052588923146566300670078287759140130920356899378273556409805389984459878504708798246421069187652883016372589319041540163523011265068753857938089831469976586644028086135879597441950459749428263356299604088724521691715467352934368523946241069012855824301185206204154426334346597986995669545704076885646369149055638538094052162483727027181925038433748216361691622840093965471988816221038896801909698882310378660700135152577874854113713501138284660543708094161057181819134796481619556791537331728527189959838605253322180213717647966145961155915604832172098258135975454167479368721305830803396389056045168151759004391797916851472746707412361837194194637280164085613043414088556503287653718632190728968429127150809591918708006598589285579813249726816762677181663518485191333938898103753901393312951608494457464789306642283415305288951718875089463962347806546353484027305402197405926254893478872868567471554623195875509958958312038213313215147091342516167004014629082809091789896899754304240070176598114402910084643301989995220388595371320243340200535658398799283858940637399362270732050370472876385906652411472691670268607946960021665951614267262243740845817895501783921704124268794421865078541655141633601580689811723304226577814323156744155924585451828334837010262355229771492677211292246027436471030386440935931160103820340157045115038793922026788717965661760636697301911044938221759310823668888440339631911214784787493821917588629248724963832989649731797303674081711657929835718397624592661626782391655588119487034191341521998042466780160002297401990517989850315098452389906170715491580581636994658529806108145684110203819822291993705928062288327097597230786030600355858654907301452918620906196464772255832360233069771196821032724282995006035564020867987704713782593973631074361515136203074777662626848920830275291351271595866844398883543720532814764309506914077896454160881063433749834814724498805279617985864479288728175264987691199230011240827862132528531052689375129855095705979933628707027651920077991109379291081778685979125976743059874581068589716328918489361896392864642036701827287605982591542786044528003537906097435843158207811312851291312638515595203617183390008073375714508904976336278166761305004700863587167693163509981936078925036699397125445225958148576778864858506249013043995589377627062596831340108281088087621873506470849877958209125835963785434454292758454076750984218350830021909392444346342815441431863412355479055186416768891961675318257868425394521224222916440766278890773555845190835146209829983769433375354423466571160343780215296971539257842747013409210530143891158468291617702811854100394242659538914323917604864690650098390344959915563123934678403200693847297348076508705723312167203389546727826019816203582271084065082156013742828381981547494251376800359507501586828147098839984429464185122089070547429526367591296815637879700991387933490242174386709443093505379423706739729671859164140565200028183364248638828253622579188702320795391754673626889993822609403903974196587288546896565856669649519662733884099565632189770004645163240260587038839047832198629336799343808016858059402491616682504083165293335794422344480532040050938145529561869850622333408243398131598957220493821809816913756521644803747600245377748657313828971250423119243742589334919772830738978688176775021645336512373272247420433377514215487187468227100634856185055365686428246528840114467147646715650629572628553012148748999646417525168988296326967895378868199745723001474216623540156053087224784518648095147497798851047677406284294123970887998914507057971104064058316717495604005314587421350905021971701329735836730712512297107605715996161346350315820271506362996846959776701546562194725675706668636275080250537861756500044422516933448003631741567056149124914362684372615513477943161669936064405588004174171114735611645572095092265504298868961383001849543347665191137747741133990633844549065983859019844675658380323570684991525081248708714271977113204756088277275075676699374746325610063302768270210541071397927686388319239520251158457101092586519700264768115711443074909372235845076647060719871287647039152937231768628985564033790462505967469055137807325092434200277334200428611345800103148499416771776777725489842324590909988892493432457591145580032092626359045588115854499381472830352174025153835408683600638539918874107650219563804315741748220509974046190715631641621981865902793723127944860133683184736837839887345198103617689764113953979228962041211280161211162589621554528337717047312850526855712309530427251820618726814380283733063561208522099609427491228380787622988065623350379274789996840116419612994040848307762245773749726804567819708464289225434297778443127282486957653676798485290802865174465445361843848747502373503708696625406985188605951962796832281945309362564921256048780751836624462685288598341879883215786404787478331438482180456452269119102771515380475152142371675285219142277051952322027490051095783599766298190263733523601998895960473850445917175254105000261094029548089315628713211474888861934475589285215232039740624523990143583070476394745433603051164611202512652918447439107681980796860068642510843665994096794632919690386852176553478155683303622698902796473123330600740155558456566147969727833469246905076828890718076471499535831473138280581814350437930000909910233596125419123435166590277417121861913235897874044653506684197204992786571886972143273661443537630281587262862127399701153606053015513262466198062478457906516625572862766393674219614948857279146874700151179313952531697861508837046151775361914894812958827354177040507006660746246737319482478741543037054674567812629532498520713403637602798862471970445986593711842273727578802600173390979306506532938747270296678102558464203488720110883246214857199425489832712245773822044296069270868360460570729937195636416836084033360980241819498086364033186995141087955406122957070637106554575575274837996825619805227168370623769045648877547839368607192545473449930863411840890482819880819823799319178689274576663346962819646893872561564379881863958022652282598837937513978654698584587868708580033738039724692637846234544028007359427503706172042914728244364303054486162517586234849068946235811285807866387781629545472371867482263862429662610373731955744149276931786737564939453148242421765049302213563367389523065882284365276606778190189852507503451908922719885203557537434389591078866592741901722147067868781287624638644480342300045557609718296891193607033196878177649301645930916621099801051684225150403369935544620047063998076707126595305175527842395806868347106777778755889121541350755905809425234654734472779707223342366565374249014028516888566709664904013327757482667157245091545631657374865020918033625195123300405835361943575643766822908955433457433152688649665230668971681979326904859748216816874818977400350442710183265037326108838756987153823768461877771090881269314553477790839237200033013713055106710717392464656124538963778008808055293532010209397936375479320993849271353747176922883028442303198017704640986745487509222972509050958575860156848468003537640451921868743138811531330680232973872450270180368942390211198750677123529795420514743513314500883595783869020401149947846573758883082637340329849382629714818900941738808048495388742373599755746110170312623027132504563901385641761045637227748583206080302290996692908929730468654340739710329675561787853168572383977457981375012498460415680921741124872917172010943697681906177149196070232279820356622723526645512149839980048025487989320643890140780271459987356813059103990610814859982814783089853562942779430538825926459648744384269703184059698374654712738636309528996776588809243984453168577586152545220369203199855362580923079832999197105714900552929165771250517727119088200323261795562320707507251021338669500362625654992416034526796478592676890380505770116163788973520164090722478858554317463479758000702828165586572362742498251719789025520693393020210490337506261394422651076051795481253277775907588747978909505139213923790556406173078086504917688666752937656968421145622106817474566622585340667071358824370858182835866718014698892985031226585367944960770735720522957675780257366137104757069330328552606389258084175714224821199241130693923142276235524536506920612581694118416444528199044651197755243897270406313925691936184500432964213679492956601167387062357365746554176649886710261975176722464935237875029003841324821924641910475981297872904934958986802782544344947052915582698699636386290269809159555158747095803375533330941832189234160695513619147244182088617090394701831948133485378515105541019279453460467709838980329953280509321421911994239103936173458088972007843285280398194160918592137159913357847603055713578668986307835862517646975796192730639981411511029631888573700532388260318469692891544316275181686372703004342989817930985039022145890121257722359533414396632964223407313143712283882225814879443238541474915541821829280186930482023329044893868586939822262079560839186625133950384841961873207116588915080726985500985654131255997842224977507611917735245917626174999073825014334561532729940800217384906797526417568839371002708561526656321105685619521324806592334738723942321293491280967739556828501597272957095031415195701658977581281288424845406472306731540342664669073207681265017819827470756729879138786769556178066150210108860645935032891391013397539318631246756256780800542983078386946415128903899244000993963999716678411712825326866544443373776101419646962069624481227811376908166224632035025209106988987009819619891935547654374431495037253053768517478314521794140782999211904697570553955768858180485975334543529473730467507459454257970896743940035154171147802679017729306420727228027915131828493879517296663447397230774267813292789918377593467664265793579977268080821157284110473722545100704622979603630375150038868616979733145664757187654476765555015333459682015037721673407527167295038265612337331722456702478805777042766513149152472494180974868222031087246822062921036741603294132409869135994890498199426707780691211673412014153030554947642432156912619619452666598424827177184319477957304481667446394079710700244893103273322739266651055426997254567612748806633968768161972647562954125007572859527777751035982767628907121629149429053899992428418311303111794706239569400583027926148040682239480002384351501906202215166688086343378782391553078560654162140824057847576397029188552319456531976694595802767524439528819408603777801123740736472526945077483880836889270274571863677978933501724574741116727499148775388719494337139332592448313772039065268092913731603533704629690800124094456961093517069221215260592402261545692370469972768841709445988711527606756715653852552422103345915789167079650645084441148508052755716687137931435599160749302571566187660311155689297299762750994475362475963384464373421115272503125219025299661379262859636178611155368608130841291657251970649166257674299639863538978467110566524998442875014380815821626023036499135861617572454703117183146381780384792735689023990071781593705583570251486438066713058590762938423792653935773988075859300446053806311418719649543407007328775924760497100351653901633033745169437293787482402029986611625243288339111449495466811913795520024806478089132347054698307723241483174116011006554305647970184499636597402092739512310588607627574014946203588010492198714601321292375279102469127611118851642905299274823759910198187811906669792366164428589949173557982382047245614668536665866670733301988058778897910971215702533558092181739938022067660052534937079734126164654880797105497263542942617827263622848895211635902180291443150058975319157904595797646033085617406701009523808668461004348405849307242030727148771280438938421988430776080933003469608909305016168209805407054064657630468161220847662748335649266849655780488056066340512328030406880962251787288908659321225708734211376364479083644008972766363392075386953602150233765329583860011156405856219552677543050932127867435282091954952616481225691398131533458768740768873222111228039401078041969021476151079825589113032747433422858466053552323451323530968606778801493415254384255329148620989975985315726972778674706829281577170598275095104160157910560750053569606943698810754991750378437127957300212533831876188433753367637900225220796925878256404447514857256931969945855443179073570676848293245607111540334489196419849909232737234636178775172223376056304849248669766539418951745684999858133074426500139384425398086643134297387196532972652315979208313889063202401194040544197908091863657267057814313470181773125708157727628383676312200044023037719501766740356102558527907288032519253124448601585590441517396396375735548941145350362009626040717011956238547014219390791680496971179951220188099637025947030394284499326792500513362154819707142893972644564377341493932407096747068163098728437565446008822481271035363108184196484140345722269347762551472863390566643070964824654243931002780800855751234806641127302814459622392514095298812015968764652481910716143127501341196402206009606278768126100118084789040810854380670665048885285220366677211237182389449267737377041196827731281490771558068624966480547662130550564973761259482826817994181322850184146416363784989077262364359436069952823887400587501982282480444734712853090547410010042661674505194596386930010446094204841451770955255034478673329204758979072580339844783153365094557241111665004831363513513669594190427467673035394588191240219765789265453086791513114663507808611726784594176328296617335944834177772732612484642304450316608031558280830045097590224412845387980719610123891905363908980459346204884535431970266632067960610774191742233334067296805038064386925902913571407903361501140528146836431394623149304385226368269161846280362053913799903357314795141387815028952617139352117262281761485489727135414318610827875774533688329190235141290580542540290188349002939403744481700781927144038335926197718596874681265399350066688063261735087569653156531219497581992055776124369702218567890535713589090391214032444754869438923396811846269115090465045585972149722396745800142682625516844557458568428566497344232209260433728516598391261656349255674188194313038036575072781477243759103472093579333074058223853393528983511047278058199351871656993418046462218098045192642468128630485412231560070483331162270099963156435356614609588016058685794870273843288896371605779171072131277332569096315820127849292347557158070355653433152100243441023096421159165946261698258465957623334592607781899634890313533890192474094022613902476465769894845455016832945069629552378310855108795169048970718782234958983125110150327281913751627314723891622003915951448336777317194391290041449940422432359010588662843814838021587176485696294703646765082764433160664878665886221051271309133202045363410910109253952301784450284022268213742316686243018550975063171736666240427051677471708313678178062931066729437669635064011952869414931539214328325925576964051530015884236739533458366339408445527134849694137075194850431089700729424338506541486974288225675278018263945659251370023850116392076573006623249725108460345553110818095272257810417905385351760111298093627224054839352685278496549250633449967614351591121472045901507227214018852843531479132572200202308573959690167518372625486157096430425998756319784152888310158865887464788345483692801302538398365621734077614515250647858069093012139929331238113322669354510366434635669729867328066732350063691930427315629115739528922231803494056880477914599138235363460077706360465653296595091724669235413116897472994114178411280443853122878338819666492092487902446813642998354745875758344827158894315155501478984040722158772046434161827533598100037036481606982834917535683172456474315363438919800764237418188281761759963930545547659770160604956704502520615716902865998787921704882028202997598308080754194247545517126102032691479194421746226316024701744622399504842714968445543232631619557151998379253265155519551499199657965963466496223936045971555010460023310178282932814614496972975461669008633575276561247178961920210581785219464263272382411161030853375945673485543679192916284188196954068459523748866385751142468613557623141732455999039813177556514909798653612925447603100820390552621903702779061200739549333167634110738560111665450249672247545454476478850640481776287599653749122690895638476850634052483624404274127975766147787354124981306244583707168424820278351619716504952680123773017108934110691934891611435860733062977579862206007753594161348861804797598679494728756763617796457945786485801015220559210474195640570865318003465061179521145928054612411938878638295878959805931230558238753483018309385810875551736365211982444400940275531212894318285048617210102075617456117492595836950770060487530843356481927159858365676175743369655026057171252540406790247835372212560007900526377982785971268735371756115453145358398230057940426327392050675167527723301399426702679231513623934944544042212657674435289293161223189451470218028211794268010404642390781020655089858593821232269368993421826682961879666251129822342392512795474220117170232460197708624457496056770862412635420967244909624377833364463817868814344622589222649853240829001959344288808793257682339800953307680313720104283203674184091869684213555027742433704966336602369096939733105369860934494304464585423653663762439687050729247539987216826734026621388320601552302698997967670272202984267683731370111283584123927812706223291222611482329848243070927606056834366906497224120745870030150358652507860945575835154527119948211065222307845273621123900970175894639144537535944177526626081150701591123551720231516820049248583652902288980546138608606563632342502539366545136579269184320240938252748576060648152339659121047605642808055092709116231771627074946348699191821756931171311421149700886094039170356022095457982216901061554280114619421585667142860967812931091020373463342221094628293550664205226386853855614212750936854444937663179807943852866893486502386277674879281897085019611520218234980977781274300849378810021819449880467227616518859632760460114934732971086006702345540004691832282421049487329559408746753411568491095451221670288838106522252467229301864792635435060054961333328428051644684034913371667502465609231853992721705115674424848126304414122458416725444098922700011625785549589119628115322315361649851641282118550123704361740133556258136759887471893172305851562505111236178622823006542739416357302624801257046109354250408447473770065873356572451711836348896286921916778969291831522307258118691660290650733094433302398053432802601873298853409135984408040696911547380707129047054760337239651816410294414713967627178048434291554734534238078772664170593671153999208372987866777755554784423338055722212427197601495383637849534248873449981420771474711479763471098619369839839677912508908079508511819433940088745137360767243519130638723830315151355762090582554468188663563806609952978523286037760011224092124375833473440187457356092417013030750146853244713581979294076852617727440575603734175985692017506370191738136303579505308808641673163049765498680152154973783153875746502525855328902056679728331207594286356849461596225527337144105908105184288723148858770031653119811233283343182094553569174034329642468647217629431885766432303904752438567622521322039093308613458791904056442528625892586651436942011101907580419292928727988761073081869343841394523771713917085672453933785526926914100607080881077125907780937202696227623281140025406441063573653463514861839271837174680272779790158334249998928020487787153790302298522596513815595790973244840432439841722663413193591819353072779213298379559760356436314525954703443087253291307674101332021606894781119020664699017275803842804449271606646591279757003321615515095926956496934685688955383479894354552838099593394183417978119416038642261918834459083158827747528036027212488442635607382767714998638042223377966388975931831947082447268753683269716840849766306462074221371518011713426573618457911357790163016854236627892875175451297058279258320310236087654233803889108688318674306961621629082213139033789350851954583105577061312592455964554885134840119517932578017571150026314698513860277002160569581294698236630874162173252083537517740817023158466667865900946330274560849855068026666163628425805584988294351179557213139609667251523825147681856246095120097345328381583959575638827329042536911435489195669090095638364057623018320175898990319234393769551504268256640094238067626406471626223792293866723522207814384457523804045258718732343994166110276249392797251829871071167558521915592912569409144928267134088319826118441626682581696916790399080226706803595181458167999505601335056006107110330759275353427600735772529980808069453826206019166886399477169034856416247566743594535053070804855339797126127854209491088942421568028724860340111203959415084574671417792935702838698772107500254435483506710300796165119537310185142933199368651259205689313733811213622935616772979486964823426168307990943453436588772533197094228391644653657848000407642281991767516006722888171662945310085360180479914551634083855697364488224452606642251102214702337581685346072782892631736331644223990534326788183905718246900797061156120855510153310110912430260835420307606686908770780692683632815164531921914606190270126449685684882911941279638867123917522849818729042622044602009369023144328608289426565732511273250111741569430813794212584970277306784690121945430669409732099698181289224016194030793892643187572065716611611994621162067065226955136162837045105317056065510043653633897806143782601256211568205535974673957189231949125004189525190887320115019324648970100131661604550774915444310603601036910516654435557007918283192261400144863619029658836942299541659825308333323367457796223719305463136543280265344197772678228769174175173834673251119127551051861268607988055340776227299875872881609915543577311547673108883595860258105259868098885971599565108516449023086226328297224075581071948899722719647805620781529231381276109805364207384523330792227128557523649074476950787438708735793043139358087426623576423915557954961659158150288941267980345048840791056665892385070353299185111141437054184484771671793722204914987263933268612207922327180248521938560783773486562877695177320391054096162730469321759309252655097533378104038629636444566769837133816251151305938221600044755525187373270357455037641977743208266040996411010560776357245801187796964445080382744950372785848800691354748241706654535318044368272778228786029534972570327692483751483843934099220411790310609633756673496263007913710854131081633841375392175689343145933609356374878968348255639044734941411941964731008353547685856196847461183032482549105349947603246158738002194047316294828534172471784759500205202008415032169548852973618603633746611420509441989934114053293633266083718481406579404296540219720036547117743644128434884681368729873608038102771978739682123242798143510999365268901027752929720865427325309634263313547195030142050515310280259922530416472640561269796647079445284708043208209169141784609016440861846688793552504213267599485284914154703915346167721539451680442054400798080759031457511040996156657852288802293159106270453212852002724116146652945927160809081254221512121070797473523787655991019181953507910467817269644442156510409980594697808388578117375600851929640459061793220333745478960219864968518181099882937600233750915747720449556675234560457220313840106302425571510674099397780193683944967229264866576542870653530034273426067947427449157066436753835905018323107187892694468662319166033661682177084318551287464204408241428681294147886330613811268481434781607881497291469371764120962495865197917473163915564567147561473616797292276260406948680785915334925842111233354652119058695623865769598862987756515346469483755362363779414919386023231684227630715527338097970685041249897608428775790665063693159880812643060176409278805405689226293553665771470194670058050431497787274282621171178496136709216886650977617906518322862163703273380645354937783008919653254789320750969941189058443696733302625928622499766172596234627592675278361293438783302963751978742317752718137116627636679802922156445892847683562243599529345097143392846418251678523294470624717652461603884959976259585154714405485755481403565398260543153444972391909883704338156795367044139760597834366066804863137955207916621725590086061831746271528324509919604198328569326656580469840478779258766714844835912947238654547081822490995349526932619051987795243059364990448047532272413457155273393883921541919495331334180647443937601044971604103191741544847213337369824394310991967333597066283542685293146974278801539837301129428537321713767896869611320634173264574321900411582504249435793196404564534301005665107591618784020550486059295642707034369357113940095854735144615625761957170197247481080263475377913052484829581474209063227599958537006847131166983864267950852652502143416863861911600698965163578595512447757953183813020278491774484606520917977596988040773936657941819900272708302259539245701630564016623235671200964775364265317756818197078553190406668259745382792138156207849659162423934249712050560094648274958848019773275749895090946387571532899814122708733320642705032279954410007876094587300551208232795074951410166122678365689696970605639269417436630355907386909285044530925769661047956861986592994993620582440678612554780321348513736700150458192701877788338457412813410430153736118580497570361370808090915095034988976684433802955944302358861141703672874490605562266762791162403114696035683507969142918992603862213710563984957285841680815484254025773643624716669212921806072627920019145553232694579230013531290720995716989030014038639888299375578168662363139818789808049508245255123244883481668905512673461966869887528808849844483835431660306046988428075242122413979968234811475368036155139092130589831166201747910821165818225394973246685497608870004901708284388682583918777375688352179285655937447923539223012365392330400069366590229159656552421456404633553993543090655854875058919512568585360249524282946727256356431148421288988657037189533341494959470600168688258835085321807338349238985521993350392308646909497509448824790767600491836597004219353789249301889535105897066471421238263497356539520662754034682706966922648949111723197615108693646745185652992667087424318388284105650712235398612431145127658325785046742462411696838369987231430894492570773914403504817254879632516227357887935966878469656689421428132198826780735793758672160462553938142800426059781752969974622469540491168921512814874838449440016138072598027876457008266813088516551921142277307259738166704179954153156479545755603300587559534639753309727888934043038999857214988089482286022824515832883308156213191349514068468965462225753556901181701874255174244408306050072553203549794546223579305218996604243873163111034787921444572573099219415024587979581843652153573610637836278013494870194571376028254524756169737930770306191305372764501141272703451818253730086784192163619416708758922447338008734354825348657810661427522823411517639364555690212233875570249445626958918295449399510205038070567629705785175796002834743685407359200001035448618384294673955875589549256662876413403281040610892596767736926050802050681524146809671246476825383243483177264917039522169619822556963582391713229206740497317759267920069413459329097887135504732326221644291193342995222292916007665075640064678889942541796005383826288670058824552847570630208763886793941809633231329445844853072685080526709441947283184584851360789970381150034606917211890128822933428827374895738001638606330979969045071198961458308673893030889600918788518538616108914401530307694060174456113623835331749989449982328234213787691442286004997842222730001788371776762319334151504610378429134173723983380424571897754108109797261468734521835668946280930257425140649472105856590690381217920379969614781134396731196005527533999195014344198253339715335518845969780906617673609304380334934090874853049523850368719847333096355434276023174751678239332512724408968790331315288153748298770053172142091907711118063342104407314508972947767210157660014560654704630308975456596912545625016079457474290936235520598212834783230087547702057859102807532446288962510004751789340327370467313013490861284710516928937718257151216177281590606830751691193812439715466216470486722054207266294495172838649848782408437463137235636181720152741491176779031709223458644835612084425306656942211893112734396631651885433946926175626060492521614135989267481557589777447165125422214127356920654812248418263764862510987936235671597555674361203182099805225160256261233014150205276453013943505139065499456240173090543484103893791293770191747683739827432520703148064607722885419625785415364089522930818755680485221587046070217689424690384639780264030034325508213655274633748070028655024886315516235873011186230571779280826059789687463271081019197881582235210281293827552555349164158835531279542870607708533770791148990246899923423004453914771876725564078855118572107417778305867309229424459009841895109436923971691022514301205427631218246838419233361281545195212779041683696882620371112018096074270279725160028484035153104285403040003146160750477737816202129982103013908758910121440331549331202426310373617777123719312135233996689915967424808515343230297657816455160253872416048244887317929459997088347069336493000566316889029469465956198672503023864951779570435553979928542830321011805211957033699005877421020010408092518084591014053742389027463582034704956076024445167616287322201696475918302461402567291485228896891076848369189614337987600329860313356725311441229744980459908357462006103759931919007744718817257487763845119648449963359429858743235630949468659759982818017984042790932483605463048317300400595492227857492967912018645010846538731082983074097402026610325086605031887180211960524837516071641602772570817665844576078411103677874585282532072588014094197756316852442405120755659142959028947983159844170799553709380989689758903009391670537136990523922117396107450074069264699977389454449567074885780162924325674138896602768866104630934284225600593976083608227933490792470198853987472263427441319607309759109085979360421574139057192104533548799105412570559870071897311525843200707113355747289213152269298550026244580411983175772693462182677474994355161379977159134315033893926283437382374161494598971337944135359429759501434492204205103041438316909146283913023306490662499575132090645179217522016722470271167677977970627075201968917674965125466964507568782714214015413613102389226563705425951331050220272422229019718280945967394897147296641164358765627705990684695636195349894410234757739496156353711947653674959676981544408632347779849834318168505908339143064390216545399895411163960763439172441692620555089792905827531698077797575655969464289373088373798294723792014454152061798247440982024806708730608435060161583741783148259316967752683942298467696370307851523579337689716986241595793116866088070491957869458520142331798852969809136169870720555211017010284610141351154977166895987089035479525332921441127131907630485130348903413410826766221789873790478036521084909858040595368555884875907798087835650410564920288639031020541646705712574526571123502915312775825276674593522575845443433325259055509318818693270121101384837666936697551711696675418060259408436603712893399774998490663012511282555724533339989235210635773172804418662865608371700554796861449612745918552856585306917383932454812108520064982850663383335433571513138551926871361022136975422694857184118845898784570911653121714955283794998578474071820991887265232896510369432208137580397800356658838919053682427862282700090751248120213016960333603411375771283291988668652319494701504678020988884654660268009827956142717176120471643399640053376102700685969349421437825927388029532519276933851794535642049738638463292424774401787509792532259367883524321236902031804262739026627009818819570193405265374674156819821764275902286151694014157861369480130015672405462455421038823288082263212455527087911684507353701918054339789871629101225670957976192544792481162466562624199635313300719393366896674948863694062758737234862610887080667305304329654199917327220669163696221818781830649254840488508121705908412054972589204630617240773511159282061973880590234158614863807464379022696681575764718564078962806795911251631186799219722458901289654402097926951605742251875169454680714996761446673262780422445483582016831333244386516975095203077431305840770517339336992151747692466342139536132044213746000925769284025347115566262095329427807976256473660901236596240830947280445655399049096701310094376300830299170089440816606656897344267132143653441877646597858126397866993237153116202987946209654817601058648871152905241004238635129608673102152706171480161596592272726016454701028042281499735792193761805250435660336959800526190346800852016491989318485842835108502638976969934327085030409580678388771092777409129938449706600372129694353699988202043453611249827896827008368488920727321994419947926371902624257488050837529017284234497522221453236091698864461466154703788302169714442983665688586844481802176650229520144176525008625248491219604897139562231239532735515537580173591545139408173531233722198641260723354447933010506904408244024822509042937501129508092482902969302468176670360313546410987853462370811166818603867579455103395515689402515451044241430332802256265635067965998062781774124718106780763607731312906907197449029696276708189340495098290300504476072888587587072003678489655356778336683981550948730566485187149499075002860523442020557998628759841623893218148651787860278273886830395759852398890003569897062709233198527086151236844841562802940540435998481491077265923045570259854429723370945679648702420503028223210356869459422393917153282382766052771609096413312891813486289263948400024000831672627756701181012104301720518519862824552384765637248152480692135809243855975479931253021462745281285204606780268483898616700221159177839860587876973373163159112954462423943297601465859437932535339945324617037604491663622906585752359920658098569187031733395002117585210930330190660693819685130506464799349413080787713316168218230551571771553808451296851711204615561719884509039040261373973242134425431524757656826863714773329281328945997521370595404765740789502506362965180459776197974128889288398529913089998991075133584886382670653773169609264191162190691756369057498046092115482469422809660401453846909254968573306012838944128101730254025726918451395114497088315577397716951826858293952402962504065956543725872518481153958138280399716045430806163778181803308680028859435528874043378983459212370425487411319531248574221361101541531265454224149940325500608565297586211819210646440341730040149260893552126377704343000976735128172982345791059074215439475071859204119444177227322841487801578304908233802607189898193576001825006145357753234708053398744786610098834833401495605782842244636850808398031629603014439923872500438152368932709898221117889720867268189810334556160578126430146993147186593573475285414691462250373076801219280837232730533624885535967592906467169421661374062304828179413567128305399092226127623046999659855657122613580151337178533434908738143709865225918448155101994896928201471596224413755017883389820283989141043586832543303794877961456105128154038092508435986704532002306994550052027161357955756879306446301635198663707667760716741078647802720156725422421029845863015881154796398551886143799101158930182625049847860456153224802480685326000147925211236934966174684428975840893413466243827607585303743188866034249662897649723190893172288736051627428662630624058941419920990275292735506074595018647106116024564053485535525900673306033886242260061798633110400873284729988064837710494060441914366425934341396365686289555125108501362352679280055010144350094927482103096437704463727193086477257226496707857859398604315464107943891734601437745278058743318499814637528780498432220244237734242871629098283447983781893982593845966770648211788823543530414372623255197958822779519650285436829618018543779796680013406980109299776816818582635388855217578309114419715578598253295230218345505280914942402333387037010002709882240691974918375900294185874545326521582230389185054167028184734981561556195200842244188515542263752893250065473797235788491955449066835793701439472537763155613461431013294472540039312727275237193763461324283004719067511867854631188088750460672000438758203592958615586887368304519200033765589818104277997487098429399629596035807712309547449874825043218634402309931326843111517718520703092168551853103769441237433561867818508985947577770628037975155090402661768704043851360934724426860129675468440490449831841283986413701315384874187362312360319281212458689731096494911243828606874686171477524756503745872579921609164703330777902507268387803851299438306162071788740565882360657044436348853670259745679553687182136824598480370296764753701014357793649769858226280025457171291557210593206071560230099500201439659523899594183704687894771055563134238311886514403863456833719888230570858136651712270739177656214648316402299641355828685081308742094774649996855698532053201827406640202092401395041813468723796722735407451389904391098134912990746553591096039496429672781132168937113603649601061794665883608241251938737596484052279230936192332367637263787609013261102001299244670182129395715657902919230981066626781084364843651593177939020182204685124080406237582724509669162088908645950896703708539687802137469983070349709932119650393703233015812848734864583468899737686916859133343480688897410468993365224714860172839614652083737511043543135082253039129283820336649882055163435247214848732966042048136772858108773666112981557772068525797681449257291377520870506297935037728137221567095803823673757435832852821886669200523293516405478840784452486171591913492664884995752855413095099797873420397642145133678875496455715268599141106865284907023749019380831120810315023109570832181722692179838211484374168628075232327602679483954822774978887559040387052610023517070933170028679835860695792968969930154039039950544416032241357506356382220722274818788157927303656912437965542851127675856466003821811133795257276631975607534759697080538891139094990594349582152421353327861308994149099228801015774504320261251137769221523660535583690483930814539798751179692588544764478269662302908868095721173516601161567506608751618935487698291174353254555654099002169089466889532610303392509515461374156766981257775506543155035973226051359187743915468694413577373085413890344183423963580613149185699191767137361607902091067216507559978597488515050051875917446636458546090637363758545482450231522707351225817298580115068188780817859662128285837258113260100539749414718818792214796914152919220835811785199375688036749582787735221505970583697319993401972985509967600745968433610898163248570069167839713526946895367651780409438414017429549909830970141205325596630403776099844339090720367261304234015962544138062250352337273191946857961915531901536584550137542905240620922379381230462731353987573844318245025928251201168312209377401714501303178016525398025303541683162459712494150552778613008054899069111871285268566357448283281161154977971437400031674106033551858984256795105526024664295590646549549959260201263129428502778183011387469251438190273883237127001880454439314200092826042149515210810397985284045151618613179417813434043827660437369327771900947958423242667571457969730128780224383177097110993009891634927067959187321474174008447138477502541513172010935140312736025883646730838422749040865704946831930975543966279703690985256777022869118690064455350147948238500969778754167630058295028391113719075373134393363902410568440634579110338505711961015867415558375475358705832462585949974759977643286544943008356948201691280861172603805752381158509853267891549057749815394877214582601597095041918990580957540251652624677578202150192741154535207770820957763505283248742094131899317251307067300365321846241182840492592558928403516506374515956087076991859493112636469473266996894790561671689924723430773233226209937061449225326084879148207167162486072043258742758194913885328439544655438482349482937503273985774717013955219416258768830275491598503562762363788477061843468366684034419777730238370792573064332712173202418819834582309006918960263215420967993066606494821682163680994416393232822613788869179264699300437957863268668970208526817241540089413827186688175749434538036976368348912295908221716164659754014562751061379104708410856174242884838992502546009423116283268738594782541764488631535604133540265576053048442527485846481086488891541199887997069682946880633798729396063213571350169476229640155168541727678328492075201206229684947724119609865910228680607653747474212066565846210234849745047232701439756700605807122943580712564139964502342552654981286773231198133975552999104559516083880447843931921081303189471985331777125818576175368882076219087773640996926309822400465894323835810929438749932535139408787812610104688913898821538517955977132193014564014197866924126857770987843651322078235403626660930098949939294951140694199211011641518478818538781920720082045238519687287789067965992745081053860929107049789191537577540522775096655380924640760757154130542598794469907487402372908335917438090383301501190389581620705755630745749297333317692322156158375540748516832368248919341562536896826388980266452109612815396881440705506870575202243344639023912874402558435353578562792309013529219824804242724445651954157926158780931241748344175249893554087284680987190344527885413389006809744125218387726155437541158295641519088154138544435529522016113447569674296477107179051956156132019723348425410540717382836172638751929354432938546769479310144913678004870050508387517979360513552973773387755619819092342808504119356843511085851636763380187461808316678066848356463197653452278815443184215605428167936687117177972473680442559828504746768775924625444876718913328970781395720113787532598262219270009139369206616658578477318917953472119666845056860968817976559300878404578003134154967898753220824780860883676598063029114423580344462089067903346964420669815684740461590337126903118207749205022925322095787695565342709881890332726935803371127089835266584535368719394128484643064241968172175447167108224585845156127357601281340226705054686024718786917706535090388095552966392356085163227058619482753909671121219102152689505001549841854322326734964389696435911543118654866431604174278960617543354035764444229326544119611630124159977847564789034664917318949229506328408094921634659983420854184028194467688713219379139482223776164947704748460973307952887003778956679126256546265921451220313371137835415862633147605477987125802816896677735377447261731577535083482421968538980283058764280640143894876217587705349690749731043771944589280905331032795493197551164430027538720304601801921222401306870377071718077467328834615802865198455931044695523964897146582500360335422025074641372828817818558020362004334999170826293874690850332629762486775075565782619561237479488020085295988275478716879124428729016455680242266744586125195939117630225432883004949857828127972162068500625470197990127377551693974376825033110858492923627640814008194331124538600589006448529162627016779171547830328701818343555522224076682158105460751393697555855577412935768592464778887554121983858047638480658671962364818658187496318907429581996270119951586413530607592896370977217744290358350527321127619190892767103001829535235156811517620232580029458540505125182752326488849168450001610436767712083159010094327604327712193656977596937731065429254822981087095307812074123241464972509820523998237355624369317897573549339396088497754389081735311111911531206382188682887560698438452403276092367047999681786237966914700339876277606657183184701332458207157869453137055128675482881496537748615955535688107146194207344377057804222941396828531687683567797417607969118143921486940585914821200432058012200365767013207932606468991314775783609957352248392144919142017588144341350078486431083651886228452298651339512932411867008135085773726819313321401291202105646460477922449853016526551972350749086663009925787915866334888037741320687982583076492744094978691315310407765112076720043783428185012710362321051329635879277036059014125115145854821459404272632670208641745081913066824414021510677523771372770920794241759204214201179781083301345631202009564102107733645528330901703663572182230525680247009718540789381185702408467096850540055737994921388375834715772588861803189563124870718547205367905721496611363368031474461331077364473869168492778508036499776533133406708961141057825280119829636619782633627270382835696113477518654181440128831800553156708374467318302244181625864501812343019616970693108887237082562847490050664309344881021029520717514309601537478293732776633008301387037365959124257811460976005623587511162086596834823746093012504535712815380163417949614214036144279845537671428682710057843739238775818420789030918936902661436531442697872330370887267807610945286573413541436391276750199584006605683835798617873058328251233715825234008063351320723362047073318090554835537006898050879979220473058877530482250893323173294138651243172150902771140202223569012455503190208856683456103741817988515125523115790852334288713810741707880229727489172015013847195346753747089942960229399968100430354637308597212779988184050237659785743500308055227567455604377917570907198494155106688317601785807659837293686985074970692867360700426157245693342324760384480507187104472057453240098632550402823292273001821991093398299755590442868926101282910701115535699752214626286561817452278795832560635986237105256428649135854803671757826882586010436953779611455630330140898062243936930909947458501225439815199073431998704014676930531259838161167133728975505967651651496607455036241814958517354987775247775865935439441840063966555550333279945026505989512422058624926137239070917761788176199521519982521133634678111238388375777992884874898160329543425638716738645559320316390571951526753768793580792290518080150265471717782680808472332896573098585722379220941104131996034256118501835784361157651416918667488099328759566407100941284716178215936967881631017473580470397512234663407550252193569816297599767759598024610326502938458252599491686670493124909319937129958600405357434778413520035678776709503881188702384365184148818620245841758833151828390970999490383046117805436716570188810110146238322092008950123746454177546094138621678396573417927301460844011096860034990042215710410164721832819031491466934572195687319545705614194246476171198257308187616841035779666297940474767661994947815054735678213651190635038098061469033729453531809586130540753913548842839299461722999877016676748471199953947626796538752948562634536313372478435122775111663258807271441541304254634617651288883123284468142642772382194114022992286683502907077578294533606611627070991247196628794800792816213258265135563063928600644255877064005631981816121983712065398985290919012603441013682595825043296045022241497172769146351521190626783102826633228993953646650134064496484970863083794450387086932463636074640581702996559486701484831773524094556195522764304443521592666341027563408854604785853150463037431728520754717195778217543509127178464643184942164243391045964705803420764184225929424475719434469854666086811129593889711046396938178532756533476178173620050535422958102960019494508768884991369360298595874746575822311415398453186840142993287102531204298869915848957607625963062845292401692392732261409895882506003569606261118943930284759348712867497685109873031790176580311464220072965704165656628398004110846220461072861489906603709236652285747782235486354692986384310226797168589230999517368589585238495103569763014591066378682148613990091019490244480965703189898303486460468769754377821114247377763993398189987186969388328172703913959434880402821091458972314921710673966751840899735089687183936825071585815259805554766979262097218262107602443756398503584256743265246503096844942162806188339885842426936896303644924263764331172907135487250210817456046850206131803710749955961794987433750943678631542164054912403301844179939735336179216966379953397162449059657811190395597824366333753656631505934420013115519498521822818679422828439847060945424660679773970489110157264529805763546177500023630707258831430883568017700648543335491405345339151171880426696970209704052680028866943482469724140979716174142952230668412015053243387988093290837746373432009026169808530753424184553674688010533134665180255982239913435578835634957636502223053594754910952424478696918317036556615446204390892519256544891162121440324428029057449834545193713309674445067726463927362690243685987826941069157545634018781609351842947160130728644493062101164300954031901539033240493360290722899890073170908279618968577337445011843268119316898873386908804399631735458277241006564877010654855608672473815465117762391048468710977754447438915803875332492880172400757952327339632500029640893835771362378322969562860426468598285403782627008265957574776231669994823054052772794931682253648057597235512507579980025982799100482543607572600323025670955939025310619903696238898529190702176055203191209993285179639201539694079668384060379739972861144700882671829461811697567444449922991293441628275553951255780142299407469803324572789223102164703846851403276552276171980722866009238299892867333140518152488071102107435870841926444936349268489870986155044516798032327295917931442358946520081037247142376144834491417748522325096598805048697295351138125648753439069404637939047748971670552707523438752842794014925846776283125195938794082405788568875923056147794303703507258872691749129788138603906376735928460031378014034575242747986073706259731775263784672325116668355919077873426223435069311395429941130358192759691057891749186739645677209657300568047956381702030114893559446252356238920306855201914833624316531696180390993009366661810876877510123749373054004578605937568959904162929140504846387597359603877060188990471097394786711886913454239932694508555887856446863955215866240777931010465174878843497633542846426758681567566443609970993229370814009664470637731300969893739360466908666530602624741772820994879836652091129160522233773988250649563504336491941129688906615752005113564501074287221228000008989887836551459203664797526595130551374910029542298507253315386642550290322440468494286458165740100746181339228504010642072168899688969803390994347225691359821573406830096637518299440436183532930208197002342283350129761320128498488444539863100549267403361535284586865832276862591592466773066084906883160528798707698186031505576221889233901782368618862522130326662591341139863564989426372016425669150910685605206551818375328195096684134241159920336193744166217184235468773494437079510264113883781647761985639310337901773551942351728650071921451257117274328192869318849444771910743972037374795978965260752123978728037609289804994007050681650712191168298042593218736567804813727427393951914790826868241436829490058154305085974938795880920679433142491020554470428141999534848544610302823923470344798261573284379264475193881707084747571247117068202510725896074442181076912068696347724531357643858108106600182573283028882056404210643383879444100027918537713012450577949262713618406865625815164480682894057467067977435104926326314557366304109845459450335674537443460720653365293909026413948028947281185750113913035432586305761275706074846060405541684065412687894897395987974628578813266413028402558177006556356283711883917459697183463488831652746211241415040821056577539776187360550422947998412329438470976838571722537786811706755678594271371586895207337529955761744047770109126277051505792813793805656969288423990689533497237279223260057710429502064235832427503227727765498415732002920783448366952825166979024901778207774703259431724706209425680295890334313761284406033137539447662794911465894827239962007193211422811828126649367456861714712495681011843430077865667676357615939557595690238290415994737755076800759099177752667053916315896540119281735054253181211617366693077370933258495233125103630767927749606748106296841380368508033980653259467738607489263621268123444295085673697139127870937797963152836236697344203070131160548994508247730475348301623947127493407885971616903296287662340969391098029780819542072947876040949190978327487944377839738577214291207953146388437184435469948456620404034249082663327353161904473191587066718502762499446037057819972863998041235591319037773480421943482809422818000087588346930404544599751576705470033967453311012910623076152652365577900152596196582960249836182221285372266898131363395383254946636539741474280249822897493753527309699562728161832366693037505010353297330646109578160218974422533986874789031395009645240697737850140661873747499561055275512709536190669178516279458515702649582008344395780913322490708213983117721409159772321112766352374572910177060116150223606249691051578284310211657145831971576757958517066101734855259811337463902281341042879443107933278319368961722916135569044029089568464218918061697371394412478442954988816230165535995242727446965252566876990690369121081188291885736608317849664827810836547471531410398635321246719348772117363903764074651893391286645021293019447959723537001998914627335682688726696125458680562858620409554059896442192879708744182166953879742311895252556263044667059282541555994820887626476084469328795451674797334506642964016416178043431651078516388468882400970325178193507305498491591156269721463398310861799388786840932819137375555543558014312432632123903376091905883888613860734005379649205708875925239763600267945811248976113328068488508506928317695695021968799860250290924904960226817627426352082748790023766775647838955859952718863126412615878713913199933053452781455404696560035836343129561174830721546277338390331207268650079810804075090478620193010908971828315351065797601564046758733876081971637564304001087416423900770967060779930639370120033171637622101721581483039491438642644193419958935711727841975177661542988742173143532725763944681086295002188295852791165546889445940993275675252027567335335496750055786699714311603854041830992739056851032173112128231864496124172130628114708378137487939924751817611825938967371318958020162718676249809548163863813741350224044196417701107292015314914005452119472992315639992659028731800703810907027786831819813664924512008501453251684122426677537469453175901626327694087006611287380068607766932453239525456252008324326122282559525079097966118230745364699117350414527476141255202435468250059610590867974589801439316823116342736314396652726407669942329994239649337613874748348716893473241353396673480553751374213299552892957928928823203461687785682987151538188449399805473738270947967472128051036802704100645513166137221551235060983969995197213842217778451294931616393824782361181300811743033369088842180368137671061723663493461004878468861406981227392409532845491079002477925972337694257508375631211768125961744493609659298414849449296763448534873750546840875958058699786718970733199704680657597551285925016219028702815322638110040148095252291221040988054929284000676101892390039081019456150970785430202907182374579677572152624686719553602008840621458888701513160516716867053593392958113127846441892997916864290214961462961020747376186453959100121396035148974992977988247293028332681149986577577030995790255623375487476601797825905621230591850802838113289427387232917689408902831320246822106252953320053041205229394611985391776918853535304606275725085397924848451179324136298633260309495443392825745863542202411890684779721416352140052513375390649583731161721046079717715435418186866230794058828604523004229992091735375574501393912751622575012152172577403243393756828979442376546895339081277811289873095569055528129560590404328837729663555170941285896138344789617156601158478552778639487755750590666408482729181103685784044031067255552060480335588923759065415856659692808505325977178551094906417420804808587182577136249698118654967728959823097092114072359941174184025873995893510496879097106745510677131937726029176682596514809895764841761237057936843963371338906267971115378904912802321965052967377250528174442497190697689594680480063521884992557974067159738811962346642043545404428765355349452985833157695610874618032538019442050066580963287695897084551795586471122952517113655135799171047760649752948267046944055334247984209231948541366164784128778349974427155785526205742199042300241932816986171309233629575865304586434570205889156686870541035807194431294381935137375402038910619806733807887607503667710832203441864033757940862670808532201412241232788449776018172323152646581563231516644486898943738652655476436021348841354564066186230257558385526412385670563190852930061564479909414585072023088769389722685935177999892384956134450108567653056237602993259031767876977505205382165299069833114540295201130601003283261159010813522345021548842289456606139284217943038616836614319883416680074808260699693008694225095067206996445412922082916454920138092654123279893373391237416534134008574368089267584902776711433632657676607136014043513498641409297641513421628819322563525793199387436903835626236809436107736986438006331208911436826560751610282726097534824208298302620369365200614116816803754166847803753216320704119322430404241145492503197174152024228461451475197566710177848053961425185062014300034131599608367021642690793470678610374484123445965364348220717243594668398975789973542450803386291867693603860329258926506093638791621984467009734644904868919275976295406879588205821887867060768425677186771453486874372370158354121459778953993504007006974981081493078682977812664120192375333772039402123790223203274577059874762387603693066084703352937555993846977996458537936153818938086137243813807575410092313213325993975511345980386953987064985968753198629096030043012995454820712876298307296660558885431092263095135216110690404040868397002449874223268066829190493831187512810498744964077267397049973375850539424144639763539458923526275862043278206937662785900149989416745731180484734405402008649709042582876960052042333279253266152941375055405530683842771134519826220412152354197639093311791986344045181754882218145810271562166417400055127174286895826290029140734946539290175711507408369129471602154304209744808128513770189246849729190184209095457285025343008173867991988274409609798432989480065455500318991449134324675293817115616168844098766873124536644798878709961651346571432666135604208388208683145512427014212248480816199968804655056786311447796337098917962954303003810999580891315125755214075615374609238369650473024985927231536430904610871094894790599636232056895919223337251446976000673138187601302803082138982839236089191471109420307282494567079073603919356791216935251978053757291017686345761763197884186631334896044110965844741804323025112306771180322456729170871263010966236880089893541136148199118721664070519373472196346802798818149654042709959980361610085083615569334837966249112394683800570476237572666819391718631697272317618632890890681545826238724345880405763907957779068272392212005741809593304825462983591364010291951759005441005459900159419591019938023693203798776251342094831212663940458583146172007383495695409150431455154122446388570770612833047019658832584157700189668366504307050809366237347904897008889826810409810190027832671016369802359317664808487518923997149801707102894708117332659316945992703530740359832579569756657892210190295692745768563602430778808363076422390326901760881234462435415375386836003688351072482700222627084022954505838439428201057347994351336676879854792985137809895716267920318690605674250768459218131314832577121457330160169560629726551731441858100209905462035018869701594867284713980332246587872757298493776228693346751847388377837184406495030292638307679445006658279047743961819247083964364272155569392808536044489484755811975256173024889494506262052918290245649122971747905044782500105495879992269832483174155432538164186775447260129898261014828720257508012078920354532686744066426644925084409474674545185341117728841329111664774289772886444758627975949036557572240437845012544536613494924901718756520859933831867819844105640845865330034240204506711478551949096299069847678016451861829689163448775487072637742393136440218360234887696024194747186025813132295119534077014226212750069005386446363670514387886265576228004757751330079432136769522535583011109068575945902770709131489995422548967254639391676951091407472252270508602359415328100000324083394305888783568611080407665040913108648719343527439314086486835547846254152596404723905317832822537952175279623661310876358010322487539851246317703494037920009607156074226663044610993585364998137307614073238968695179307700947636929387217036746756610410442640388769345686105582142832676971023262056448244050486503797531996042230398981635096448037835797319715336324485674506545263917457310463242977639052550194464121855041418740525541788404251067038154190644423406211311972182270194972253009976164260217568529756341807955209395740468186584166508467557734468651497580523137985227231615282946295113356404635607525135496815206185434390515004654425058837555990994686122288001245929127250215777282802888977180929618103309051289780590187260459243915879113916391804004217613825619257162961701049610848123358786612921177401912581833506612341531654187367212206952866475927478299946921927546944998919557993154276289885961082328624749980671204827696984811229480465944018953145860752574012026056526144636100343616200858312804957710303896205229839474510046828568805029978931401464003469109108944153607424257337893005403042440598093660841517953351867535720461450041646161213517072666640305795216087820524997263885868569797784803455249138871929480484778615985299849971613151183032409066289179525602383424327778358292218831368735427255177433451761590343463934550400617106915973914534145901473267379508538140151046449202180411281841491595394235544913276343056628258940437331456324206296204619802309274336116853929788019214075127807110729315845883810685902894518231574656080232898046934846609519993939915490565445390465957963886097268818557014442566474554924192767350149171312244349055069296419988339419945107625067397501555503958061395806615874040602091783653014988777389746362516919821148687753959650038256822748898860048659521526232075521379293175648234394204590740215609227985954362425012305776873628648462654102254873786817581102012112582115332042165037572956712633023500579016232927749428525484094863877670321866318910869290145416611463172658684954740153581663208312341859173278324461031002972009935575054771958089202029225006702866672033415216202872776527002036068855495386560153138695393537488797225820782061667533376758919420609263594341269071282587577130710405134627912357982502496294689606677356365973967844583121695506216741557292248463928421923494829129103270480598501876402401791870504064210808324041775287190497915225477455976909053260748723123118304677406799038115145184090319838238450255255716021412201866807871816161033371488095544068073170043618871815149011362373536560261522671570039810427393181634596743068384862473857605077493023751851571185268930071520028452026695454515178506879887922698911070987924108101791285664718417328007429899097499723749651142473683925311827396026928139221817618577301199905824681928014894661987700934768984336052793765122669973278745824988981682701976989911675040973782454734104850677743270403493161937326092693588084617211906139638079985037938699842870862494328161417968149965442161638421805449116595988872530859992667485339706298214275717153236761826235955154531530773673906584381080882079486404111160573692790728424872147842928853400496877515628313601628118559411226580057506852199813133574496141222210147709398855623752722593917390969476282472373513662766349386177736001641304428342700941593316843284504934910912058657968281894901930539970571203989030475426500034356001530270389951130449905051226054362564909757374010153577208948380018208316534966552504393352634810062963504093865844432536395606393997902975827096643044828356325416953650174892763502756406908840695254205908345861452493046684536353753484376407570630203616317135737618730251904079510435101554452817385119554264029450647831971005283596108140343878589606064872608525568934780014405959400889282383049246803528279311555457301874314721371666456450667350648091252269779866164731180626290528093970154527246663722142029433289569280070683276081008119185859191344122201280653910438662712119400329670698583954559733144363975888659189670746052765109525959494636099494953916800288862727013344470328550198135551486236175052621439583416750993756121091090037532972396453938956814731630778275234654151725756965168499131706733566587840823610975807426615272595422733659005653157710496660051042450141466462614794334459133845510958118733600094220409059719577304615251691715113136923970794970159724893149047003442367986883091422649893342641098538473425893905648968138827457577637326998746489918132735227883499242726744435895997896846626265634041011606861227342919739545854443400640287301867600397177102903688539907390879975191207655809117808274782557489303070389619077587837365008560775913279508547686107668360560246570358243864467436140437423403575201058695663112968530187923445343792328759573558447255293285379358313461878573517710002082254801551797503842671233074850085297792453475006882314716787551191558258528347355177682836479061931507118330706778093304772301214440358619924240595775015033675057352766702116977109366052564391285818681692082701671080517514078612863964017126921938856246723747354545608053639699338475107262316196227477452289054662529038136522938663397559674311729127201569864412669782107476979233219276137399806496878514646127252134468682235103817867645484055151003703562289580549910017002446173967434927168099144865548636566903041052076752922696550547139108273215655771760099649982114623994263543128416089054975299617436024351463893311095948394162397069629458993857715548969804689323757334110186573498204992387275955527752093063678907186117407203782292736091645741650930927996406848549921544422730816640847332082441482251140313782622379633432413638280926781112368231097788073978428568452968020504195686260470368577531512005930837887507766941497484260172009898098731064784659044763132448335092128689382560396068803907647556895674194975245810320973204736408629303618616443543267407137963509112786417641873765321213876013648992378994170865032933780924785441880862382579217175808914231480666700115163323106426825756234442845715578472700608728763375875921549540302743815846375876274823458803482056479857936658819605808056107565676657104323136459998172967285791808403856536349037958354018144928931873658800932763980762601377337415131882656273084729306123801234553306282227826700327963340403010762761243019531601224660610400122224793261600829388808306567048224398621338283688346234509219535823990307234756155183089662668856167841885230576723140161968972634581219732539940145744944128130090348304318307941852879186825391459202594702556295848669338987247757090075215624341568268584515630674995717870685123105250615018794647980903376797607556325532453264554749084222896091523105945323213775314457444593202189401773362347854610430108307933401094594911073705019719299397204440494363762110060444017445050012406491492471276413318309428728052471156785104913952924529916831343047809218299219276279934664819348451179459539965167329489331228635698494416250695015727055066742274041571087963200955542266688576351367027470535695686385649190494933895027537896769142653835292836804712753081293071390870132521391168984578171484844493769339205524559203050186562195261467019697006653443630654895253849088095598809737440123872385674046698051185422548504044465675871148980921633109755100063288182528927325894217031647111606747338161879492859279202853895688126179102546517745132509842681081029590229982913634189361491134930238651349569498360081273622959303082592056384967789596957646851230571687782728183031824388875445122966200995925329546535293778390571909232774686772655970011629164119324694529209936953945547896165697075354271847406438791406496112333047865218263462752195396311866594415137140811535812409158182813095238803654934041110570193691149972390159980740103634431036954187878234683127768649887247030690003542737185254062575365819630141265057502481130831645889644000241839885437310172949827966089198887862680381518922426923440750621304866047147580587156340045466105160259430960486884067826281551681552934437497476070191890732774896286277902409118172867932487206634847998013241691597838882438019047172463933103401363308455935681422332502819302828272550854598986858581029928087412649331956965351363879263325901887359048114295970271965136209271836823556592489747433371776066589256984099202514830625433276238197972716612657047210076581771828026115573318557325761521506810285370714437211243824175574810351173863410423256253122167540203989966266638953044502155099485103822449095249527273977104846733803187666154658764188916249191141400914024742033248087227011747989392306255293599478959467899839323178301860090009803366908788704142151677708602640955633434110545391986406291569340320263422835848424358123583561045529746147163354331187374976981393740686904238173940512146185297030836347576365201896045118578577005817330302600252521380092518866123557619457876993511687232255875153843232567175825943055001376965629620518619068528998215287800003743126543101061006830920368934982793654186016817088896406139143535469752985457787750498139744107125123848353431935494610454228452099605811899718845268980029899413265044763368552091137461676851243834180869861016019979615341610523214354500700133741227705872671742393281622883269207040883917677995315296959939688190503677908424601825911376397512764742944173018387205396898178605026890704849413460332430348988438547377761582586744598783941620303699669300101938773046276662940306836312940998116459270748957387002661358961023319185857723326088627491129814593572123453835751856394446074384317700527697218638382602771616400342729093763295030924538044725719591174480851254777308929804034396160274452423996637050699324668377858008629143243801974643523514086229561261490018950363380012679773922560530412874057317498973372833953060989801866969626356475229177439227736507748840578494114449032523886530917571526321714904129977204541548312722854781746483955876020331560651482706785974409054168095821661458589911686003765700704484822321362025660769392769142311168087623547088150375893243200904779763100464700371300606253731220007338714014992328279129006832077050394955510955618315789710854180950454422822857297684852266027033593070529459107010852925715311991909901282108179502168135186290352183035543232259388506478430596702031484673580716896607063427531958591030581048357409087805354512240023217809274620293620264938783419387716107400442192555560255754880629969781989156396811786274023032747349524595633435851962984872512473467068304672370780120340012634718581696720652434698043044696747781149354150511936203301358676120044743532529939723869794062329075451353637213148262181702399036584114842202279241524900420522430600534018887199442587672651006880691429353169172302147666452865811358125526836589824634650113525940399527287133531928456152422003574504050899101329715819811359134851823279081448711754182721075217215967134653574090423978343260659021357716227933621015660965016933356937399882318987244606922625033942806210417925307218876604733592040237147907132579489548654174487283652089696026361743170922608773722195017089780013269303758525526299873176554748097475414171019044705660605582805231902436315278907013289101597727337247364699345224328673340546549611128940326380897722099153854812350129569286944940491624704404832090400234939678371585575862237961586374631309701463465716563309836310680601530343207572695663189974734792097213344538236631705371997425957705597890691031992934674822209025080203152880504820222742771444841406391136803928217375252382135497427551218801270089824588743879211020272523331571376318693339662582041762186217869393976172218148147455058303285550952625159109309695203262774717067264707310486199805353637515704043171079147570078861444778654213039017719397196292322154571553528970811412588513828065858948387061925932811291087804660212218166359403424843590970314938582966637830808763534637566168244501200707541901147879774579060759469317120612249840352587941865456562687124905765485079118371423960619124367081364222957556167127563751517823048247597089905677221512311184726233108899851416988518273354576060973773228497226014994043908246219019292505906179856529327990640953122202477257016718703277465492125886128523575585344403264327308046479532624814980426819981733863451112470925319674439674102597908067871837453957989398631416226008315076543844988282793473809833610613683365828384758863571022201281823989641002543478555857515886397181296466146183999357229414182025952103203930152494179552687545386471359617525265096709140973918464315691710513944051726831043218218111643361764387392298400662034314184449552102749830915849976041284629647081516332797328263148263451661977921215831899462295355706341447082445462497079498476595638614376038459771152761308140088614860157157005116312965448863248778814545096766808692656017492095831186991607991039426064739378427452510131105954305985584093166562202376543324139893880776310257749648288449199042924136623233660377434122657645016433290819116456324554533088541533905722481510098748536450106161628000169684213447918288628812494260261117054255804589523938483280661848870343579552683715237013638059468876725527209146194630741307725241950259653920142940884368952185691424952781993066436049456409098316009637018616707182167597060304966876930739588519728561697035529821645242543004350697678312226480131912605065714247302773639614400347524268184659987316827924725382353035893819309551392328531809459762097572639085886061952415925711073760426808469383849987378871527339533856459533633996693431452224743168690328050410709833101981263266737111171571581045717325845875301340842866733384467762527425313226105601069840621905675330310979944878703205405505898003276743326020621955320456943052704545324861853803125955278969709869534476623299443235816368518580068365593500651943123736472619344891231366283880599317191675407110613653159874731679189915445280953044432330972268626735750116630257784010588049751931131017803393983585217225705862568101273631549800754684915788451024642630372884861495668656428531882581148304435382069359420932008464679310129128860798481532209582196560230575016816617204733151959303344482699244394172792703155166042032376608612662382035908507802182990665789209625784970178114145021829016531461687994017157860787590087905266106175726638146736335816591956361477641231998637035759125625325852509920919963163724575746485918445397704388101570599838867246372611585403943264326965472598418566242933030126623024313512702800780875992927782782269029238800698011803018356091809794635740772016513014023424035002370105494467666078583534610463496106052505354917254043407110944324673041945139190876045277066143470869552982794697320126724988873029993767165921364132374987187073667592475007050224852971502961962595635616038378313809628401622773220280656770797821527994026575050199935700179772257927576690127811668500305923908615012110370187681839846226626261804130797863434588024842225622069404792122874080869939143006188350848858455276430641891795341812221154486658635103610466159935879835244188133535945291849002643192243666731906135396909584655231401272142229206865345304119941444576602369283642664241349034019377495330064217651858817384581711234541616850005248408291153358486302607052408048455493150211212472542148190922984230831311242427932925613672659144318286480782456746814268770961026404235682730335342760929040082883724024296216768630443019799309141652813330908000002318214126619230144718553923674746294706960145464403974892484184148226293069294348611972601477807373627293744861190284876564531689438770766129412767375628555748400645690613847278554340567058603137905456739975478950120839876339864820589853208211087074208070914974186288007470018873045468494123785091263347439410357289246688655047691768109204094498160265031931921265389594464351897082117162793792072722321955094394809496490503330561941190722511586846143240595367000280125230594151215868109566620966478501102493625034691944919130977226425539462037990415934011576781916048039556837191527951567545965921132598623976156879490920367137979827430995599510666529638186179375682300418797178821075743626607550621910604505463357282450750326323109324012462463620840224359245081626733507785534145508650435883464977630917807074459335422577980020560026506040870266856152037248680988949792008415652766450992487244847117492331112668013050297928128533515018160968663152864820084785984768331149198750601695193272945322033277112222128571435937610128853194930698924022625154792191030669191432037516103875921072461932106942579499053568119520759621055264758888348612148873759220789882690052305590795586131834089924303273290545641478223179955529087164971022813167021060123910382592890554058288616131532187176134616907250323477522509893817245991853615036341284811204461177081861928133772573874938480701801118486469220721251457320810713994419125029465254376975994225732332310802563420593222530168615951982892202056432642215194951673796713901036005730662228727185014108490803566785551283214860523773722346756579023660905403373544970753639322118907130402284135303786698104218946606455401810318210950529531360557286767896189286077406154140946981629189063028553605348094946684576433506727838668408617652843464713736608381005717747297861570643015969277308569784993183847840749297391575745765229114317214833289021148376506877896947482245484225529766832491853826285377863774441224434213056736150413056676624951128984464533797221864261797761754432116287847327081991269305589722899448691293827203067208226675626310004771606611271239672428852687007618437957201871885072100244871194328131948007240504371349178287023950416104188694194492491662943257741668270067524496348644315398762377680678395710996027496329194494377544419586075831538884818909377309937400913544812833568006354137272461110055968277134405865771194278556446879495865605547346243702030731025716565311543471253801615206462350641074354230940273502805681580635617463781356251710110082566384374782052238625893465567527083812144312908187130904094096070921054935257064454471540404507929972293932524799191425947054985020291580521148186877986519949316727453109161197330036634589093483655935060994049749301215022633000242944582100672699685613174231785686668072489934069809003189082036480353102669443498545251167202607767153391488948046479091596350329158541757766273477677825219467471476150782482614954011663957513847387761777202477519056187631371949457180194179775917388859424986606494329831266844855835467241607010440595245070064761741924896279829051958696624490434057594327314964942626599794891364754268752186926928779543492670303876215908043098885205729501515446955912514989167064755724206113661171258128121880103862172781421061822422905526898856125667658351110582917078596447653299845498163268382592054729327565402342826511743408152414903649290101948630389290712635344510329261710793363179622471276672499781614421692729873179185354754718955142356999522604675614212978122080987240477288894438761134295001111059881939652993639860337320123302687527227777624283277383164562332446116662246188174740276510568440698086166041307295092925050489609200503559580951406038174084875392704751006406613140691748228653116827276316462678438182486102405041624700958411822457734706449739850234207657074830160632396642496020497019770036404297869689147093815014341041349189137934264504190783356994561744439207201351926631857733208983722339670721107145184668198058709815149952668801874903820531272684757297047472195144743772636152333179092638819174093811104488572070152007724739344823247485751766584831577236510007404698355983459250836111632783465488303562772416864545587287514581916611474308366631193966131870778722340236775473087633533258590679918749205927345289480282807939699947223601097875362451120426510671495133415020760089631670703225746989541925624723680759173403417569900988791447629028886737727583455958010845522772806351525494408429339142580481217648240167501554543478945689765312325549375210953202639854041003396397135446708297971851948335762569324200759324358032815001206431402555315014376043548544615138575476447795512968503146130868958545263082743900439184956630418377273298749083785755089289889383998586782550754054985998998632516228372067052234328173193102096385745709006367523532112349770396309165082411685202535343281821420626105792827599062446330783696882252792929083563527498434433007856384902754209503004272187540642656951231266336103575908802645761460980178006212767651080645854382094211645307606907809419600427288635640962629142728922546079984989068511147375644964972042987621613241475227393639427625844034166484543306971215086751520865627203121551140491961266167271867656131213325312005672815585671820142867408009336580723943322599271594868905393361112671964903612411764629213085520998695432948593562303151818958763350786788814867335948790881765057840844065192784855375440811075539645257605645761909242626294491149963376283893987324244521552327571438628682779457887232194850312099278930902354288955020592540704014697293633988645588591195747260376009787646714475975922312460042451391857613511002399904209203540089500949200179940286391086923855568133522476291427601040633522904323697720149953637581519198588927504829885744076021100786899751987824873554549921678585195396456896103982877439072943853334867779009795653935955342264802969223527077659529827755726416942484726986213946641402834213559476146323819165600045413885622337910232833508129072525798123419320540511164357667499359933339396855963262310420140241449903110668618344046865250663416644623796391470330857777152166982169943432087426459486044994811282670745768585879819108483703152562569369657518370143823275789173627552053040564191726688521119203849463943814147631733075375645417341407823332185399671355723548810921915783965464593386018032215252239308820693591754319486150094806156574368882686060483190542412946232203943224376179246494491169713480954696192893028314474322754974761635640810778024159621831494654897419303624604091074640218858407969851089046996070292056552863069075835261475855257773320661365914771121561554646664917008908827961603148771579123745328727651232151538612377882293507391235490923587423160157734972100603620280075140932188264184015471287939765994867110446307069231434327953444260240742859681779969687665965620134499332871470460301401648145544633640917291379576062220133358769613724051431102738571394096428961944296457435849806699871964699318450291971548167488814165648799013977574219290965948495588067021828753602007953567829516690112283482062673775870990896631096237189112593388234292025262105245656024115736418402206676736457671995058565168334865428983883275056748687228057574957235463709895470703514491391181559540613871177700562747220679120639546399765443805421686389314436169405565725018917712060452546578197065904162133223921027277846180533992650053229986938068264238699999015851278556329112909422476201444943947117851609493953658128556218784048481507970041920398303644981490981307811944570225947880466815342768728196133599515095436901620035514440638184932429657525731596620294197824746670580962011532913763101953402121322240137210018848262766257932054365525127892364906021712769753204060180496898182896151120257171242358549797898637234926236777789505459439764545534394689616331424830912230436224736504630232840053198923054953553634979874765594129115589643098777537674277859622827986056345931574418959220771206265691633203165075502555215310090526211596421622875355148397689746065911620739500552471704421655101416494291446066865724923720335119170958237908250742282808157128363654192333029054376673671330405133570491415493666648406596514281012599291454066424268077131596227457479756723332186126399736033199159107348496764993989424761163822698314911583120872173911409277924571263259178007352426211591400326317478297683948739183260795907232442701907466065903809653469013372013865686583268859977117764189046651163573848793103546476537353303510454250010478756455474308603812628307933693838600844984581721562219980884294418889658034532348989743810408295891986459394729707123843258597018792222878786595662043279758796813752193127257378359858463191846273619114822320675874459295113228158195920354627575399394026506492745746110782501760905544155730288091737626588045375195617805349128279887563678683993614458870263520057518019508846699679438929061089799141179339647635475387020748819696444511106755002952788640810734317344852554374343207200366278051208034923807325787941389449160632010051127412324026850595639242698923163201184158518091658404043351492127735648653691722320167151632248902050158108541814735324316570473625429526959052252865644818579366135811424281728200664068293789572116155147857883153220305211395060428906413506497290015478550932390940152632337422621452513104745924288965103585085468422692402357648461547529562183059613555567418839930212651929480238746273754605363131122813738402737615039981025352916148314692562029776746287045649700841339526463894073449891669294236596931281833319277505342174492582694184850064058599663890443917244616817116569236532415922256045934254372476345467549892129321830194824781241156249248489249488273552503760509502134787406248108498709930828810306045255104771944573856952461190110757178724727277905816531398316510350680569375325764019743634632673221760480769178400995345652237040687357539724652051107262935818827976971428673247067821580355971969377161353449930864815358850806327174704228130657718533949500589684481087504837001063839460993479567619891592923692170944977266009800415141089472379252842264150594077868247289785784699382771201685702313390042795793953492158892495771079848179008249390173354708722028812371990217134054246787059247104080808531770761600254211663193685299762521145010980186687869922398851990153646679152176012414025439220827335726937764794330761136131236657598445376398602720299703911199689943691827295917456526807518846060819671783661758886367123281272541169547500072710403450980679632211292128015559524179664262609502888560624114784642154178907265508719472032242696868257253527896507661894820842672700036027174335708963498972786068560116546952673010919683483338198423016669800307326701411835259952023799380566621499291413218305144086856434725423543514039291650080673379908365295973700644564465078262592114031765305907112904823275977130324403311226043068586854100655043917675424666697239448862468672329946047210752865065027354565119891004350305829654619794328976133158875172885726778497733883253413551446234952812984857549654520313870100329590664056184227213208621587657180041293425400489886992456559428159295852568881921646844344995891714357612916456143825649421755295259760767624199024562422452275012519157641528038044055411536584237217770555587745241422150072498935359740807582009246129020262048174192120671691545392862425606262414681784246433544828062046131750893559783104089299401149900511366804039195554058730431997429868930985458757296899451167637979112917151461809051071062639623067748112146503884458901316369512847092829244378279412191233758917564878307211043084198644597903384815007101276092304454703894374952081528146358963973283992394689170295244238207457490408314531679742131052747198795007166027335070944943333393670899449278840775457428212774217669653757759370196478033429071084383273875288972040281223693802456164505952998077567618425243326998712521044702452970355099713785977060244743539981478355826597662612034285701339046636182489923019899632794162501130963068379644659689662435004088758539266441081710037184989948215663511826239551641941291601055362677812804574419582320906785531982751402082521717117151226198896011328227891920472506749408164004367956184221236594672651386511518204139297178286359823374228333894737159433152496221525705814321363538136436122007348586170760896339957904052805395362027859439928609355568146791280737744004698961225113685332906602087937478176674365722535974711727886647641955682105244962978416366711910509472290641985093523268997023601261159005719239235304293043249028027477609164112711549243385724901373241125580924830672266932460700280131800272451622351316188452214091832261968260239991589791243493101635250592227154764555787991807425775324070186519773996343567454862857933047899839090304621434039635913986046491882053585274250794568163636498975446784969412355217410243793409205981056386722646698461879687638620453781515841361028855705725803867043635138719167936911340076605355325815942213596513170112701946703236547781231491390067659972588500968130013407121370797739851613788838746258502932386328136022373752498326543887855462636159334831841443514482215457730433479461975637144213604353263452754576259964089636942013732172942111296698147991033084119998351873833701178973161152238580418766399938932390373233722615033277759517419846226741374224828271334743330442353736366175703918503067776535860941303313201458858312184556570056743355475646156543006030420720543957720562633547054713317667172663603261095323809150628937738055493457158429300345220739341480099433385798874792742354904613735970840506673556074419535581156105522370959756690476514439865871082636442232158095737821778567496415826312842895609961667576276168132332088446855210002397485744309723283255323193968541113452233917947839729923752760110559078399828763347598290241612751648133260065253416377020546631230013139647238717577296248052823768036164167025616016479679979776678694351286203776728044779392783968713364922458597732935728027259947771671725541822431467991986490612630939877487848032643937571587189321956981246752119907579664229177632317971536878221747682447476165951813487483699836668392677728002541592345557195729056141034955416020180309373512496031792208592658966592677121587737425881069815368258316053504534714475630611148604346576532644637284614406004428438752446104132424879346038506884870363290264672288225226705292210792547551009336764559178418268385244548851700289830948874279178651522619427993478474501449270836269457232964686734045055661638826702670205922570437071556178489481969685605894138215047604388789563274528593236627368157775779429768268945612572729326148827678539935669967169054965252210384582647232127431660799792125839921389898733838110562385525010380578267990934511631109285526005464582870640473445591749440302762576457116940484571709976846067439091384102002488266140864134108384665760396160893777420217034474723749620332178830899986372228397246341381341246715220454573388408316519358208348709030050062082868479007426198738512728950566877140633305132557575526278363576881617981804745723728008083521160308867199886988627651959646979823612461886926114318635108258896822642994703661157694337808140846677675694970652511574609770014947962171188041753694309815398236361314155453977272366011861392311748011949214727845823290862364673273499449851320993093515822797212062312895701256334842951468383945196840481392689403019678738005524160504751800459765676631772769153369999015357581298854271092907617222621186996853746759324270975174603190928382388834238177398225513362921420470321593192859249104931538970742365612281862445978149875631642906477070828254901353496466341991812200611788645430208740557188597214418420844492368238954664483241797221916046798787841454532561140563003007996410197415030384413543657660596353727335068383019299892537374925286659438536480742483466672451281017622287597231911765363767592788430263067321699248757682293407342399198264117428896851157913127283952443253101621094302015955026874934896124820266795829403319932362388948395469200122679622761797811290652059615064451838929493688864148937900007380570488489738770335339311899854071076481598446643022315234055760317949958472855680373252808405565609963956283830557228207188721388386216954441122929672641462377537997300956042352785340554268569759839769635541866964706322697598448630229740120396509489224364595998415423705488944526796600452864868345636254706797503003423235910584052470112116625353887655969946893378456686685680060688215792888991984856007521591884148450891114861666950933964296760785147416417017782558042282348441367395117190047398074909046681713499366346456225657396932604077987576869028204918298332289565590709509983593844464909187641136843450978196898457658200457298975656704075135124593336438027041216415142655795671244546746534799555975427468537212978952184131794057820856870106651881571497981139935743159598944223123300523613870239730747372515472311657025626656629683597144446692832922419539814190414823846162094070816670737872773812823638525903111780195577648409267842796601834720786934353927578983063942190238260820537483976248771448808650715608835628386184228137000866850966412350302665051338060474182428005538280308751056674329769681092296967450567539209778020935059422091552335335969163442671851639283181724066135131992054534000419083401503417355199499114421598078288334771772511148924496706331414786750340217879700730952583923255491464521671515859565960871448524542840216703779598763739970610007838693154607097376059313253945017135178708064822961704845566873327421430410066342428782294482289450246354095200712617588895674141348745871565185095427974530271875469867323266930730210943437046585463500616223816706862558494708527869019138712041951012025295848498690102690102787864184243071326056133937775533548743936620538069740972882641229967250357997586616242361440381518973429062178333051165402968205036619779283719221956417512625171416459456468735841448132819115426888255826430097747353266695866605468376222399056969265834708958064692881666652472043258012890617856928869652797038476368311140679373142608598220439258320262708985648303962530639188097799204220768067144059771406268926213259295811264668113612693084037093909304008070816437866606354813797500190445608719082659954536779461754320050957679204936023216173514719595314364347947243819113254945818603819584580231313555029500199753249052771727296866773913740281743480161207661529582521458785668809535831498563240007746211264695160016123653362247241694424704364205336175351837425319642236674250141490716290218802547839615578078566261791204003594961223190717618204588312563478993564750767306050204675053881191833135554950139734269599554143537512003243193278182023913591494763224359802205218859435971106153863941559082605279519775484340106064322113938166153430852924270913229511741048513855957197642353552605762655131203849929837203576220334493317270927617347614099941691299237708912696400247580697718056707610517336939762449670065907357354310778452881826664623635718151405009441782252672216597130167942876050499567339857254965125707019335136061950665412558361281967232489187344099996878624450666412995752979711295223058655706327547569466478695968488194168111540075826400781860039257241131383870101927923785277514241844838617222493741423706794569224550456373775267153031974988659756851259810439222647888650194700902903039623992175216834244349911739855438261261820850233780811326624931544653412710058364565108203520810726320429561388018831310883826914665600309960439353199725850865859094230052376137048001453002779189187594281064097510991415670598883472918286248347714306107210700181511584039335551680608222206878549660242709060028524629681166627617532634469108980632902626459978577448320660352565338745461317471372984903649078162028923779238663102690592814990849640558553830795636275405175536705828056609448230363651971340653009434758232062890026280560328695248586983218939175113707950424960996608615216008951602967421759525180007290984572141305642757821647050004236135260942807072815882488535511768775226907522557856010708172762645009398175850569993739222320214536578732578732403376931602495814968583092122789923929872375701538194128945659321123637290173538821692464527550997186975420120432075113913767823687842717832791621285037246014943455978986259042718780803280953345703778064940479678735120462832089481937707436244645964152502773712248544810493895100575912953432399206623599784506932322827906855530599362074533995578531436034314946239034350326607321395729419850110279791015662373861932157164454290925294141790679420846677045589254322967779956846569280674731391576417586907855601372794091169467280723956377622849678000488262758826887655339999454130435110423971238499867256781857046533103241773227868983531932281313490926766467503840642312287365128400242018447068022066443059846623463938215473431585058710140640701105956971963215815503695558004697051741994643050160242021736483861209901649384217511198357163445735192065287492622784627114719089228438802412992610448746413504488649393878948900776797466569258489853824897594229847339467342629114094271389388171219558822011874130607774803659496891937436652253885465275015276279542989023490213525842341767910161049397485877693639440774146713475439772264338818121462032057845334473505362101896801845211030508712806764533096805737456092212146258302767609184612404983066494271877641201828615551540664112117521272520854892452729996270334295491917540169557774419024811148029435930987312701122866889518497871644864692173028712620784584710912556029276975433477075396908163902886508637139081448255949986187872621601954963937203126664284018412960104462493639399533841442839759124209796200627818374263341204579841416691703938876721407653749109826197303684251000312398695976505782726197794111993433998255806128440444909758474058207468675828764524569570744439285055271904287394372861279636784048660963365218089581451075605643395178503591063812327600461758574761843711196153237980121099746589022367671635341931408643415577267535414271804741877831107239927880030152163222542327400986383691587778670391977522873068537955745383900476081581435702239083027175109239673893756785717844123010965232498728993857460951345404333551471358377991100260618610010166128537993104255528245948446661051946324295330217286873751765263336683229993624515135283088874144551991845911996791516878256243044240517035760071437741853689325335907329107235213777668245039134407093118667749316727549027823647409786916328396195485600117836248157366677812337908038464906899602384191711551435912642180854171171703033323562152830271170404969819370404595134764567015492815662019701215769360860400358926257292881937123035548476586455719719256877513860208406493942266903538155691519154863899060592547510473308133630222088857537824392753096128113559871233357293839970624253028602960817623397884373224321040817516887570633405893011444997864028016196852498134509852478057589117558275596297269085365610619654210831466776096322570534862358543518562645781915341424453661107396963042914735992855281449837090337314393345185777198838559343201065387789504471179570354428973222907130406865446336304182017804046723122284804754501613447721483315794634922337559097226737452218915141096373360224803869512108826987598021381237606995540947937734284907229604082241256806087475512500889187295399423155797755338327623249469607984133012278910695887903501476434986213587903231066782738391171315447026758337762799341259823972608938516474290447331269258417876934383467319680362711621143191732920516266809523147808802520807759166130181013307551324876044945009463594663512819184828622321679070589684344024350101310005400053375950056875592597171161617553660093952117801414732708278783544198057220131233069226084103423142692473250213190746416970122490179164913057533897004464098823412614864720306637026756029011486978053008272796081642967391302058250907813175105863380210481505719388037742624183239257211737865082830003316331855498981018000071903336302566862559131597862025901539467850889876131223220181372091153079652405014751791827502383337012170704820544953943897413170930237197497556046582110326722319120426656266634883231279706675135138110542437611393847183691019453939011804932803127133449901647009363292114197810014011849433870814593243128669815129066055155439217190400393777954120026799668429018579176584323154011846344112702531818618918253474221838934664631455208144017549572625924155989216224357384358402490228724921695785221680255100040302767540558373272143559724168835805376207202609759162688445421761178818717602234734647856387082957029271752342250674464058018919428743320139115738503868695402024254254522987279474467745693354305560234096502139369862202093519246148286598612297904395651902245066365347907813858467331756632719684712583239946654319670383466610594015331301103202277740971742470607834551183140109485664362812565813175224549751812708922046909122562632944195734169262185843026487854940468305219331238946045950722765898220627825270874561058639917509347089522769605890581765324644078041414960257100084698152584526439699341187791232776497212252867415562750111160375747117241273449865692965445332387440675201050519729303232058772210532533885115629516742457333882013168109756202890730704449577136356602035752678524165264302765088320036767183811412226943170045273211293586286779653002139991664583695757488074548119277273992691070203642627001076879809262314148467860903370790008937359581951204098515258918601018875508193081243633894661860412763675803096484296964215206805146860585491460717540749177815556884405265494307693121527920698831698198026006301919718129771235831867983334414741929745003300745460129351374835801571079857047890574433406295979665382524787076695596731664780940737605976643462596295926527022099238069569079406394689825739611982793072494696123123654474898954586485020345212662787014219407806071400805975551480653082776537369493557046824638547846202816494248639830855380030206341875616444582747217152660447962268158372069386870657525966568730672405018203101084634283072892426016421638776613149102999406179331865725182539595037231990235478180412085547658821874436229564846157909045375372221045013071650116555252193108871872735258069437263460964499412131225986146708956185460176731923597827221783833845050021122754362357370373047247716799530786876671668735222629822004468593460305777395410956107195923822176056690426202509231618577168251662722477257691969559032768378270124680297074900699927010401540969093119695170617609946597423472992577209245306405838223476817528649303121833527754517867488774216619384065416490309610057121674606761837585558821183333555818726361212254107769812714158181249164434323233385397566486874498259341828313357551781814280900293709340212824617550042399930294614657298395855640316640119991138141522992072457727533265779509157780624989132235576824212463008294708365802679171175321126941862429191890799298545416294742946638473569909488588365498386468707677137311445578289416110526574232279490021593962506003574794097281444445214982215890367434030028804870745332889528665608749241366475985486208834026314862447483221010010378347204805115127473450120498410215044809498746656267547463397601940001462280864639793485026392886569789286336640270831780267278909125657531685989328030562639533600374928115307773144932545870241783420470453405882930778159894373582247518285136326157202599631744629546120711752372378506223071589778337467358039880889408668355918123924040246745385143954057865803919969691894954854199099018805441854209709608241770192462948054212383088128407334082922996239226258517830278854213735615183305857941983098900592025925396231650248015824449019305023053386372575739589396057584865633637066425129458462375174170746058479926393694678779055463702080934351982994616698099061573915855715119022886864122145335504427033503574403954114343236685891232130197473791047718143965024205030509473224239992887590699638362198136022508996948928609762530311879578106935947874581012394141171130226413538879926731403816019119611340797089804940153099438833195118404236478719225296491679981967845408474341158540839898456024633510273490242489056115813448812772459556520246328808683789748806430370955358923240248286571087730270488221587972802647489379601989097781271084554279289264399177543809057120215418391532928194928508608640538913703726352345182515782059395440276771208708600468742849545862421230647535520637170549301577066515725303854481461987759969158110110408311586786916758326443080657270000323149797244372032604640145002426743926965685768515664365259091485912569701369704273748408727403888100126090723354994507034472428772565166641144053489383146570950634531097081063598678517734938741247767458160572796722319940769258677475844468971982365726716300948160587196218500430157206374558244534108483507208099379938392128076115812025605167707159337030556299815903012634921026264802156949472435217007185712547440854472488264860016889882743001486247022830427164653837519142690017992938213789807588787200508606371987315524128207200629546623007773010612057084908013564767132112156044876446380804560613957278339524786521404942915599794065926003900618855305276420322081271236148306403033357959006216887846626613362313566961156276455883260702681152106562361335216370623026607372245368687785077127818194807220530467137618398413662357767664397802361995926836353066890946217690488921183640948436554760911352246055808741752065466197908279433066408529702145215782228667140193399501106534476964594469513868275419847180911106274837908996074969814986810903054180981813098946798062125650514084193055897530983124658343799709103952929178922406950211175670752436631491205509695572927499085356676488931105927212822200539429108137439257869478239566812871019284190757751128809414257024008346973929574079787452120152551371280289058037305238836337357450790860293604956746501262132929465068385030805181851933962108608743801484962847347174350912957549464605588810241020664695660676351827838955028603201852145483165231785954105214414261116051938170100786639017333408731212316988322557997501633912270653674211671156220451839738896158564403700132169059803091278520964922308719885379100380051544652713609953223456466879935315490557577269253982021750756330504583947695733251780095898145658717704879278398668903157550273195575425746334512452319486757498579283501411773255425487344828092455507928723605958161631999585249824977023740898290738142557557679949330732981567533304657466050346576289212596168651982268847655796171673388350867346205408856234219470447940344056261264715890156980368145969290644553289265197421653821498707674962025297803711794263241987248158681669490461764546806711962918087067739558146861922581533790436938509277045482870388106160853687077086134218092063655188639897842096354287187925661140763568009827131474936100798958028579091761163808323547966575734521170002087986959301522970742422274993413984831464924452768221425404490581515732948803223833014491620117479000091264128663288752172959989791036180864539031083096812564248505721603279067054697172610822780892566800373438690793006609384748029114033067670119961425706254604330972018180575279850598355765296449817593449109313311960293032153077675929115083970867034241142424782030079375538566112291878417586311201235733917932787395895518123476613761032532895261080594271785169119566933451885199594958516338881413374134875180320915878164172626462717028019301354622460026629548908078296842150313397212455926894871709173420840598013126768879334964932034205847586458804254872621543562446696565712671660416802255553988825223086793910056246582313815317705495693868741045983349192434372264783586278203340256483614991930103922782143217374305258965785884047922790579396718274617853681463154435226121052801600782116115126646530643812237289250344720535638345587627584005713909444888719409803768570019600769498547409780860605045993733916132075185961602972537159916445666268152205500327451805461741548755100179916194783367741249437797759560785689116682971365777275126177241747999170201255271241115846434717719648498135789384987550227801135315481231267760687611525293640188260957678972669629785109211174754545363434123581210379808680225297611732230759375560421088232663685232412276439181288315035502697178431250380379464303155462275075297449984492598965932920242551197548609211345578157663991794365266168353769165528807467875211133652184558000325895064214122156474107920049237770799002334906975704798537288766054003618695226460087968706648067413466527928678373941664585868393669360486263276050182845299247959686592612594299731470434814571979519544884497087054839581289497903535843021921956084326206069976497871526909007957989739295913012575477131238638950033867690456854806032811619278239334233925247607180559128849850858551437387840312163952451780306319100884557699744125816740581997291472811572575808371758985254775818648040833882277818538470480252795120996364699770754147600053586870886989779731106731333178378995309696793321461090140271862146081901644988749584552558466575436675440911699233430979879589828033770095688692501230831964844750282339007743303204832096830645008075485056518494872617449632709435928937068929187871605586220519279399333747796498970679942368061798714052628579858439793728332991967673427928689338495092713625808171339372456745331188922277070328013089816627299312968067355680653703062806670782736450662393062408837354715131376806797012010230444435468172012318489754184018708620282230332435258365967276276746535542163415494234076549854843116346714140811174600750575475461565967083555140158038820726607946183967058543185976660701942446908865406314781192163302739264387317387634376380199301180241252815280575420016173515487372312296086049690841041797313883194555472817973709087460688757714293111986583801436934879172206521161539781546827569607612494798118449368666893478463781170558681539760940243717834171876533798135185632886560920278036861087531259903580394165608405265358213957981743732465539087159077226590076453303874761761877070558774410709482001413202898640657288747256088289698041519638489247140845981092200946196944481570303750967583931525851788627465872161130704655172898818151208743617480534713016998278380942101797814513844299519153424937892959966369534465877538880246293923746333312077461104447038961571437977971378726293078280485538324786420864853682994356825864146706002592259143736502307345581500285697434954307113284775657437921997135991262123498282258995031987860407879903925178608474549487101314889095039839701703590422823371732085739401079534870180797652471901962776448226727097939261522272186345086360585541977167146976784155045636766136871346625466184799366294406934707721769007455131780525808818066272659639659757892514487683567919527419282316412895228939012871887836921285264540784600569405139594005918471891109010075215831787999838964920783339197496996243069792765668336472782254950938860681761285170324840476834367839786884599873454332464517729574648230714178149684340671915776105811831850696711359656677241169500434182045636590995216585570884857460847831835373578596791192724898507566231240230831580328919250511319500334095347000016846842647365224221542289626819244732140538080479643031736527529127072775832506579540857701259361371219829602031406154127653417934645963239809013899640733351064753154306860918841022964775674265844448330485167023264784633347653551501066015438558312662476299187193930119449330864766012103947015941651679422773384516005513059047402324212466329358129093703008547148050972489795598436019625135719961672153597257092724083511669915181278486361981740777965609829323268515194775213331714627813067571253902733878519677434316982977331605163292633639786719967872522823283294859368713118283918091578101843607661174161851789999041358001631928110604791347710047647063306734352862746068651529037468474022849284506610801937179186318185091459548520996936754428358901772078632593904524073331650210852184494674569193770762531032102109373228017102070307155412859232895045969723229272366026670064670194880865195459085940552280342672282233240786669117328870982042404325701639203269939162425802411317049597176976810756496534710196126515574794638634342168428828250776044250680617503856688974009468219555955285004914569121875225063068739199880675197974517037420670815055168494076020305628073019754466211994901878317532316796742270764053827264504121999395853192901024809542747812034695786782746560899608020200866856379342586851258835866645394779882458912555753416098913198186373383429229352002173379743856770688616618823258870332274158750179218609051177009850713032077594823075764133255644981613154651102905466051489717834365957330333150559506492343866543291026915742535536283419230582446441624132114128625202411153438499828933398058643821462393747310856420395212706015947074955115174170476661449664382213148824477504441005021998542904415364817429476831062551142596728327180815039527672861613122289707179690345128767815487560271202708058140950360213027367875323714913439796442400095780419028478695023828621070126595524791128905469476013704362617627509850146945433974125700629771385000838611388707968064404330068422404058326454952172860035267949577994659059010823499503426156465493404266146061799414972010680498857657880807178450400957915729176441980449485629317054008153169619807951493845081226117032290856983226190602214541090865800727896845876553935301499760794321069030983025038451782591863375502781264001701865470743521092708019924242498041763795511479944368728347542491236569301931184629787157975109400812548721112778859688842759265407025733473990673390610313646147793671000576845126591564332244103144616138834342247774059982071935683683138921552310795812780367356551277929166354318921240489739201954942034097276163480042363723458328072955764241980720070403881819455582835892463873328335423872598661286104094502290463924474829326230138317493358150591622092391800671931640366858499113723732335729609761501047980045275336676910465002128816168171199718643817635813672823487807815693830091285292975742577164341759822139484625232283922521970467303398117458927225091083395144994920247111457759369714922838334581487125001333821707209998471073272466707930391086723722058068603250521104662333260964594154611657939984232738230918240808831005435231433535787809599143958283206114558023440486438792258184573245796306092253152697528591042832226872591960970717692044506319565979837596404819411895528764590300651482902913979655036489334968999105287004695688745364487622370393279029949189233111075141896431748209356130306388183931175288502639509072315766481422675673838351433213539552581307669408792721123240131052224982914776032689201171504809042149035889220382044217574601659038590103717808567991963866533676452927661463459812827767155308947282436979031981040313211901094203799022353865800269906115948237172301584722045139165146168623068603077666591883020221609271092025401958700404535553712065902881543778093133227854797783854661672718728674182717664751059922602395089986870079201852507756905268477134619478286645019920602774407392215568959600226753300906204199561656241067354592032520381525733289842762856095854839773282952880641835323588387901485756378811237444459236461371990683039104019901253563456963368602667708480240914387488466168340955769492611596283150285627257948374211133692218765106136277679987223877086219553378773278066302284164267857523982274438638855217303222393601284565413761372534505997288270530189853402090165139522900325088288988561819456685403930907571860553732971406566649403394482569910563513552689323923674759634499575165162644046161310533982571201723696268667996059874908534980155363662575558143757742170511988499342281565345311219772249087660924350618642650596789102083864684603830382884855523539050047084490101309068211821613079625804015492245184901973000443748652060942666061124836297623116361788481906515413123988102472156859929717461942253222896100366541564211795753885195219256404737592683274448255270840445048430922908310405735429452729493628304398997404023410682355507243649326199603370564491024186314537115098234979654113561439381564633813035671990549590181931931626955505044916995999868275326349318071041109665552730368675331812132728826282331962566383724312386577684191126259363850882185766917238407610319924644961255220942587077609367565572488447814717204384037824390087411395690458521354583667668763524857516002583710485828638105910668750821191919826851234579467563148808969879547957672712211346111412554822221203063765240305205389451964004146901012581210115390546792246353347553757515590605149415429599559053079181292028476162934202394698481426666747010326550474299699938060407331046104543045102665424673419110526822946463551622812855231147756668187139159710201782463509000183175054463990755990603311961728015776602707054832489870500450363566548522808399571867418829160167090164311934202382282841621830811602239355865861147530568437705409064280233964227916010623533675340832578304651956864557674980377670865888652149858912106380870947251111307989918102449725768170032114466081447104567951454160572174158686883274126827531666766404811753031094698779617513057937904712631736642116659729488330464017039837930516334701667545899480014168003129368404343165975400815215759514656939142054988435712631729884202420687406803303949327571331746458726659148955062002428491894679814489222939463948570808020342500034036971853246547316700741137186577508661287513433884775333249474436535142515173152311309540978179479140420712093126825443452657944548552974379190297141943117059914264013389186290027425958835295015649182538874093774436460300499679737085906480249555188853259750677648689287700092248241055942545566612758225736119574109064555826132370064467742653772898976292334835400294002847222188628522285552422873593185663191028475659968706208850351636988194723157311406527399154484775314652309692129526225418518371522860461811102846765843098581419888474838063225990921943851403485832795320912908824180008203394603043607744963176796434193979582397738068087018044869879580451155017763465117117785457269578136452750202677117406790911731950542502462343121332217127978963287280267450561191311980337852979553789123747607756735300466658713493564003703595675244563014674465109920007216547247352255207660990109932119974905029692650963550771547107819751436362871540174949016379728667909272805895846550116501931326606691996061478043389862135132295500618127986391650446188832069894955749354858246117146828293189957804791816718459155584668980689941747710319059435251105630246707063840166555138528628942034606416735745888147247476389569728363700796972753618661652146238784646008882161462015107068565808093926871551024522441604637366701222117758877517382171883603136805253625197111996550140290197403130015472832723700182321420276485021979377378958366168682159101572495822035897579610509075314268241540000724073799360697573207901872063700839254888038774252734705669538068221491101714983040123648669734622814351218209225203224297360439982647814697485237232449386082435246908594580945754924522803133102268881514500641429031039615958123433237201634476466799488137254404000895123753264152429853400407169437978983163329252564850841894687198930355746801357107380428356812950025123060964564876942147668184570138037325729908487124110461920857994541156066104878768850355458304490976448489461569475966900578339705509647332471111615101312490159104812465908661087986496799498747250730511380835928795347711071524584890202579691053952069936284069033831613772859632484239944022392634578112915184961948390774257124824650654092017173406369539237797829002733172716948179417678783560448876653538122520067510306493485848079680186053079340627818175141673980434729038355843189816087477191955535642707493484069846528790865541766853072374091390648443431055382486212654801809619643291362552631305775218295482268695150034756389801914059726493871085941616566205875379276707985401555048499710412409953164670921318362490507132255246952338084111706659977844488060755030101865287643553346107672164303087073729702353690710718529337179869987540628249592669456982924996314863271787437186496180969791517607739679043031125098339163175059350885288055178002766837204518658599351760734225142611135308550115717887496890636715636224074679435753719013863458671642995474365266470622058707595250485299987877791226759958106026744587314461174949982155455542853601084462412746256973426914001113447885646854723408410464623446113735998741933433148954496044416689492017706015252418507008709124827984785649746430138275819923128271470260026530025232773862383699099513854921303502020781525442235402001173552616532193414524827195944711708950186225526572428523731095762981482931278754465227566818138197175380253272035980952460779690415886897457907101320122802453973982366370193940858144781860857888247923095422314171299975089456969513487977146346051543553788421838607696883043815364504909826353740431497627329196891498721024933958250919456789035363509608521969289381525145890283258310049110319742599738809823880705548678662125159081663754546090476647332268178780629277699873554093989201278552846210176227532998646423433740764601412538183610348564248609825943831000062025764486310598027699863353884312438040193752884318877268873284426099989497131078058972798709440600455580462723894406482094985917044664355236320361828283788006341515880953190723995070965644926478645163807285038141498160721199177120096920142154588927558923009949515106090327715499016464043280888607087901760360567740929518269668779121700109180745256829930552759434630268103640489515840080547759018750951837714672412894383405192207139727100955741566352910615235656070832740488974562354582127288986550356278291523537538062087177871831767067895037715850032561293026923895877981155849288385537236310748418359689421445608155070710243044614375549878959712206929484262864273260030413225887528921170587224556194861473804281859157534929795273937070662160095105642518953183626816142034772017938036587207217274451874811823367233770405404385247018671517973787360111500274019301488681130728635766010709335408142535323430716801758166658097364157408586316952236381156854898491094099507226576673424056941696337054916480919052213149042890638146067853381054725275228537788838244882046528584677240198639181635339734373749605219557249483009270278656742792078018313941587915301719198976026515841135544053582581164380244610882393580856538758930090222324883201712561975618517388537135831729659288922743107261599992380384731121644543952678675380531121979260798939170398684981103474790811917747797614074817497413829556704599246495748914746203191208670245995324587310333385513458946870619121657203981178554058155867585739165831420831026362226552365865675432284915952366724717827101217474921178863788579047527328835495330832659732020707561787968485603375488002566776312239202881329087376597834431874954157433921202497645415538546932158246275341049104630066497184335828132926270793422382893607551691872017844782106433728441866980239468451987839447134060027687205897605976890380258394063819719548517632630115765437026494399484535874584601946841343807872230527165605865925984072848686082285335806009000485423131945377227720137531306854128117304004008302895436366298669489766331825362136737882922213824464962898922266670318735971176989073642118273192220012430209451328612355589155338257548421942566085233755588812919785955633505012612554483507709149980608631918317658782784404678804037842750243494585707917386624175388356817303542465244714425087390214873049397845811857527461037305644731678765034486180033105666543725862155922568319111164121324059072743644568692920945819883209567070364941618748261172458422359866465445715620318155883344906632644275120159896500801684676798620216321033631748520602583753428431150811669125829960258762222906068839617000348879917975691884737321200518483862453272322327891760964119933692990759408492430849227704106127545854465218664679091782354175617801376409279638433033528144929319279471978842525301072958960771038427604145275844142513472750471011349680646559873526652919618677529102400527242792916265876902305273642866779759017975603418082432168921101437772113859347896232927794519195401684779129465644192098593801591919793268988879237282139802383177778933720227025274892297363354013965235973589915513689028839892175292803262213831274348844130722326247504933662700504447680248726063797053450128484109161650242689364857942153525003024068634047272815902632838214809053095981311794581341500243848815522056075963090746793667482512942459544747429609341780021871883138698118772734274500269617099359976080898342554208867219257233979058292598186908620481373709400659136133211061526064454190728443922140438142428141816723098582371315443299221561546345659378029389509294680065487059164824616199592055603214735992587225622997016718366851421080309065756471413220167356595233415507606884329229976697030227133990224064643706988607632715488179178420401670079361623229506748295632672859732402230100071217549797564247581876329955468063885662971179677939574483060618772231624081427856552274888277590935822636842325312179144018704712228459835637995966827225157161892630104459647588780623937970444847071442047992043350984505554644270311014485400798935647665186097429944276048217938157505767169904453648509666273577761210837076058679041037337102932704751271759460050123510483221803933501033101628784966718576761557143213544661566663201939983284233793854918911583245576588320421833786971155343819041021318773763186660438749152960949570346821364228620478529990078433987739295524317123368977096650725528310391815510071792982201401691821042742022402178258652076376836626373001579160551369326388459473900738912074285007941187057390227350197543582897500885309373255637487059340603768694280095849826647934529480971717729615243503246600391498030462757265825705977714122715917975408374767070579589709004215422913569960343498311400127834378887146160166337269753045735688637094349874854031349824268401906775015685939980994687124613875381009765049379946153411322190658568737032499828409672592489904419814998875622314594661971806018330678847733623122717563791070682466604685280766193572542305678794628981639604248996530200731252246448681529312802023238993469343895250677179453960027784048510210722168568994429895567294648431727159885290319307120251202706008372506977232870188349935195988237337170326455253943889580260855082503380148463956383798088854374959399559442616773468170087031189356188049093111010133365335245018949269420565955239695381720669118695417847054445066217457913916456707531875986312301381022424132314532295164179846830228121435037433797216261798298639261835218150752592617755788887688346113684532683408167268185343578747633465240830634145648975059727455945140378488775592345106802991807341490432762770128560182146287886507983986003704971221195755721045298550543377708509798530572157573385137579517131709344091281304647124263592966489460204820350172366117158602305687832438974691624921939852172229923238719828745415394694086389600755677611897832087411089258752651425179285576693432848886951783781783698499643791858474735499501478518824505863788440808642370987345122032642997735160864959468444842044747516247803512083873531814285931802344242465163484103647134925378455007587025234980058255889020061338417742748287155549305792864906594913111941616733920337328083512911458669502472713011062831651611480575197100250542459444441585067021656667241376400355479659710636029448276987833346519780244707586925738543908149814545108440077078330858249081128125734284978593639376052314073048150993357438768983295150609736936064637355957444536153820812932124657447208525409783421132410668562683209465176113060873033899000715548322140561670747802837626529861308333066589736499922991837775847322272037713978676053275195050994033377839709061238013003199427829757766384902442306690126192094146284515090817297611880742905015969554465330806824322795136421032198448080260841020360558963052593210189968238101163817126731045451572733436164773265226513106363187881750981667020658079942778592208743088304441253410312888211631207498473163220655597080877215437746825782130081821678921464039850345066780125338472286291440515189962830504392216244799639460201977685310056743990979714068766479544651495870823838009216758185083025033923597693306898191556713637065737997895088846634763985461142805640609483415276432084419470142831473209055762350809163542354053769083268764689367424247067656604307512488574368982701091751429601800200885218515053259778312433690886207034056797085256071862879156783997327428192495440057588293735375758802845722966040964965949163078680563574134761337391623350379713469586426452082685655913067045201166914407990716336849269310743400400560061179631583661206756057085283447549703433812339013798793689759128781665535832103989510707499525484189503595616402552297308264590038296985983097798220489407760769187301141977085800032759129196545456715948608904877030789855156310997700913687949500443066441395138656471290671369485007593015258760413783981801173266654817088267410463629483786250403526575648044722342601521707711673808598626890917720163398444333877320038730268848238213245488223527713437078341507186806249255512983036373758839063201748319816898336999539601070977543791247839462116464946311669451047425066576344190860322057165267600787654235868501433782328130026288590734845049464848426706920099240333264796794173919524474807803967570266009218015542923491754121239965925691594894739014641719225355899658875600754553313527302884820426507161333493645146092038169142997406911911769289382343346938325923418142648501392915500325536426408323023157557636247312597567852013400152974529689520904096493865540213129747669918272680825036431107532402975526174139041527395207498640857341492075873638558924202553028321670978414329472147598962625753661519527025695047772587925336136675899301139781625815885347587375706467542275277546064484724959263626554227419569181275234615581799336787128671630748029108642625408371714333306102038479652474027380596938272309723639210847305517681852543461487434661028372620616779790041347496858216718121391846851979873283986442768668681869145856465859753093509302424190171802106084687063947928536015748045447894824530708373249548153497444780483468264607172223679861213651651942239381939784900862208093664388326776014191376574954712635066845831204020654313578496302217036955417079382069605784373939450994018258757440767269195313288509442932149992040573517709064158000840363057168792884964726729887704031822468531111041745662394445912129212122884657934578841272175571394448887206090528705976294890801554564731326455509869860422990119017512895363828629707804243486759079042720880545742990256670334220113716173676107220169524218683416225864283350218563887329632479399696437374449706242988100954599918134282957310469015737897299135128215351883057476104996948040847222091216864448177772355790439270822556593244632735179904183600733150882745037937483485393071501010612918840499807501464924757201345419350118729678653393525415706888260152974055353534987062220523796671988840653280472204148298281138064985294595193017676019432512426129713739698971111546397891566186566481758121897418102592179242463945466537848099099717908666559697009017133323460362128902480892238622696737815798763692354503390106457816861526433676287294478318775174800559292134475846465932619931712545904013177073858551687168007916712342865821667275586072450417981908296257472020679826038179051857734670751371091176364907081189170244785024300937161151930020777639412831998118886754763562504481618393220380956141731062409202573581949402010270526614560474412520018588558129212313172255471831808849300602515250097007037149250401963646730393574754039206236659134630975958370286751727123779012375327289416225611660393703867040430281237422569150455321323149463579667807296716945264489000402240182134881936206720337986221697365107954764526253027102402699854592193276016093799821165552789863465382650762572627042527138530481241287142003414979732080782461786404876601990527903306607175186318018243511959997758732730139675121676093538382255226908910063643136697376198277451894808700653029100763362017422044148904004774221749691316460578665388443465390184265281827665723888906256545006236220892136840437094648771758219983407499742000148804049280546590588062076695298840646909377788967986723706462466548914636246805527980813531952771577832803214881659257429513872784394319579025210940782134631157446856889756587443705984225653645971359772839042736831206503527118406264606087396503782774638255554138363618134687104509962940925764669184571554404352275404846600719394455935136768309225091997196859579725256783317708300879492739027729918680276963960722750765547795408814472773882579269193003201853104873691593856785996612425217398667896442645001074697961411332707259444380704240299929140465558431770509552464482438836563968491442947350713100141603895073416682237628379261911896406736563459347076547104642824387726317640054840694684278330869477171734816363241420855401998905787676767175487304330964881039276250251878371236076546337961769235978388231823354857714013485038835826437180600156181980590055031135739779438197977350014886040624971446366984380202618755784954171692985012046779090887587080637430715493460809582046544951829247166207605816576723436251539731645475474739402624989797493934116363713182291353352924285224443434849393386513097197061925676362694131803445260668558056436272133806950638296615850928049714029936636635453949919606135004459959390176434701207972274915739421870532359715860935136359792709532668638360064553573423827947513052449199768615648141894379691933337325400407092309461813346369721525549867694955779756115138071946707710360335890489400963843503292652361603270173905281469028248624600629284129704380514039549479049876452827846343179367773239046870880537027596594035823811033465714749850850813058483236221138780705183698599201806577290974514870077967191726892372676369087542866773864901762050205164466025113081684452586796588045594313636643574797775299430977837966621900233545379721531573629115931717969358474034082774886958565518283597019738104444924860314739693453305718042209286319512816007757971272985652472819398068663495916228116538974685433513412574580228712257394673194010625560204099352407078862324674702468681791104658168687005234120862017258406769977681332766193866871538466686086679101235799542409073995412315686018269310999811187513562462809788586761421347116214628329251374011601171749161722175281126903489798405365412124784035226709113953571599513465749261941255896475573981577324447874168686032210128416383650114027505810875427214600274918983753528345735791336535987820829742497899844292866926528711203897646032470609715818865692212041573573136672774248664240796631937224515715559013564627752441125148608792446452704432651383156624956868976473084194899687556354172621776011241479279864679538717440202580801484575587622831555023661705894578117946437276089644013835006940178310703113239862658910482261140560658375657578958113586711306169291367369298892561807075274522431904087947334475141667205888552211152242981522051304030019644607461899913130519075957063817913404476750428339015965569364295773947804301574448452496233725159062855948785316968030182648847193261327601963784086781017357365920625467932586975163434850669210729474652841959687283879130467701216565303690375723471310309985054488677103112371956048839294140154458539919405902316085352437225387681608552607024942869387121729106480739838468434254149642519541995079219937819165482464363889244582683950539750248682141012208239168779985142823288872884222261963546544366871500947771329636611233838316853484413986367534966382357256214649137364121137507397174157987053745467309123615573720434292030514515744234317411559614069773136149530410861877201807165347724690254756711903030325065184310087072791821048951968693463776219556770009910701205090094081977510022496563564953759780357900591296085220713576071303884440865273802624776389948585558874610141107358086461612924414304871367154057456074271525347588262960364745211357440770697023394363270958212690340452265233651810492674260792775976825428368319562297970441128454485638446131974444420985713942772196605866527677459208617452935112256264732039579134470207113226152465224678470512611364205811697898831931158126363942064891351219304395571909292239685059553374090721466017378006906910292791726645888928984591422553394834501495812809740901374495582848987021439911089944818707040255524290887436483071237496492218190941411971772899606211540569831323110747029902796380327031525669903290820236510099036283771093745417480186669552109022835950502295608542129012786305991845022716856017837310138609878817651071952373401792436842236621986879866086137997256390770219991555015713903957827163000687042690903024645775266248025299936873824054709472348573261095242536925308930471559619613805053162657465439189496240387773359241370273751306480368981819962768247739832281068357776750771825756007396671015398305411788236370510362480676042603391844868126065569307000793923833900358095199065723537809726010307009855303187551669319042454906930596768074590291139648756496037507067888885950825657756577180524195998511316636332939096680905382583086585749694015748603215657313251498018034346811134890830853727939038621580103951802026093738747828736116249965146317045013694898368773311865061816426869167533499888924795800804954954666109621326348613671673255594346040409914252358505109984085153068117214656761732577440886231533640208331881401180127314898279347031097615704608461497013502178414857524088699063821022086222348396438998052114956779157073337899584534452576022299577106914687784450080196682231707189339255600775615117756858857312991325512385981270581514840399449138771625338595942524396315584833891651789876178683940155687640917036782478362946462173739329783190646848321456915908264794436206528521412271000865202705901707280330305806508713442212774422063774227352388456135922012627143625624307721150754217167547145603328312852122066423818982400689057491658681525859933686898852719063268407635782899214221216461606970719977007338143025934652137290756398316783219243446590196474783299986560400133731934004810620408773298828342558562584396708014280521877947449858576561246873295523132988957652127238969946549358996861343697069853195860548243746504109728713874568560270241290131314366026517015535602226879953951451011327369057149913761859050817354795887598408667780666818111636702254833362010539914638993532918988578293820818489790981239321289024829438338494129835526539831040071874637486888498995032326644307936078512373829373702854016627939958263060380306040888453348149818232971901042594878737299831279229792487072137621950275570666945653507361579361963778652496583993158933220823900681979789206713374942450819524629960421869098860305058156128760594198725166403655213674313783550262664582260679525277321331022758116749698240099172200837359461709282301472820220443842437650906788877341186980509145123670954432665562381554430248968461799041540820183728438763326715194216322282951153939054132285955963715357584602283931965373469640246845733018907787966669530968957790216932624929127221947003869251594061662786721351398544142536370206441367116561505400141533771235676611263225217367957136901810991715927279194262274617089603993686483222317255327901697251553872124226980677747031820341071111439263674770115183174422809449094118357975779212896091186824979631764586281148990007214914792268865234663511622654769601823176877577722007412229670566353428154233860421736830386858093531550790625946052005143689664626261056661453523444636796172407358386528148069588948008503662620075812776181050170529228185167647679006519926954665767664668802991406406663792461050775421466558154564496380083354884985683288137786034474572301688409507087459300273226869363609903297687373540015895840017676970943586582831053671225552924311425658797796835449863007815310266595386203072212954659353025820261406123954644539467327130898827497198574022013751864261617805237298267848166388347896024088329668759133422325786047098132374240111903153583139139500576664602979784766297697526040492973316822336281937530751144800669307598157479585775564406141304011589823669125034251854793909696127165026640740712458393336675607369612569183961700233866724158884584785351694128238207065701233226515738157376779103135327608048570301075275525379432915644086399999880019124799946021079342592294882735766885193760936408161413184980169876630724249986065419282783015916464569746827680267470756438356544855514776157978002506644864788773212936234111761668249107462206822338810441020000891382700881479086991261091180449433406147313075577492759997126406476862884561079629571598393556692241847312461303959904160608862026173537715533991793330697124243434809110143644979470707393888288059283335397913150206846165140107312211777889670187948243337046076428212099178595612937116437891785385366795556227958121137830612211888614105358262834570113825171031545067123343260678867457613194559490311207840484471117298553601441477699091913334313040828114699320050264759994184789442991412348561456904875065325890902592592668660877970549609907460704438861211549515795771870687884745589501146350836503662151663708553682199780115883501686248196637655392736530702869001727995070566528839665318255590096234742360713074833590384252246238742639016881530627601614622189947148889322584733709794873432916694050262528350950129197395288170115648626713536803542272163197739310926234484058303510785721274694100777699474858903416985837550311107411816275076060391726740126023008698492008253542602413287973617350975013224271128340990899484807480455179078116576721466504502638853027714766324280405987844227940818022161194586488401370913832348909944450087554228637921794395790771128450214068745583030210793775478119918629919087127891012512580457599577287813896986986498740611960831008779988618625972429281580256256361910966859729357042200980057925834747776222404373262315710705892010392685672729156342535313933866124450114122289161120198007664944310019354534792865470932639819855830855612355903751408250307779103441975318036827350615086108593883823847862820802252174786338085440106164615022933805015869778165830044309061086452904199166842509811745224000819953725317353505636210123675276318947379002066800893436421811742726795620694860194959273995053270853948465631403932620288028883838824603264457468321080830459636040673110169018494829133652231175001797412912451052143873584540302852325637540320471952528214619436914015956875282064438761672622467314599466589787092976482697673072639580725344226090629431845391604010021679818825889300545140281372604103681048152831192726439127742066787327352230668650536247692596179898987725622448098310414638210082359964083957614127027565466343443552980587012035189428570328868210714722241236678325478822018431593894334768608062721445518470328895949741505011094937844505641710719328466160958119489888980754526764390714882041017558932133585416849242062137838385907214190409167413353109861114771391354678639566110315367081975934578624121902755424409779667230615831287232446465828332196086633233406018761522965159957316889764234582458255160624561909726393235402388491965792766021948291910069045417510982558454797438426679166620626622051425898030948597573620503664033321304577258517361758448126426436206490445100217163839403980486679950779170987984105742540882925243384661409799506250518509775459687207002815300094874924999159269707979938276388298683296695560066925876927361666993723693091265300335123127673019687120479527813461336212952613923757993018394906147417107850598372377770538447044901360788931390877551926714321711024366183982901792950168528224106060545803009936911630028313984457460589887747960976730201180736611714977615979075158300522468817021994588621595465605482670698696365395143050763563807186160666320887350140933197012522149257724002805146311971183924282901017236521764212108156673477078225249337656340788906955924679136738772145332650366413252963776347600594922215542133488560999671831731796602124420598186957142408731019755617243331069775521182873136106589394502378509254859141667154036412250809135832058802270739253047392492145781564754801652550878477571665713475682156144952662517588959289823683442786322847034470965100798638489158561349698066826337107186721905172679625707110255878358786785701444579875381865341264651457371606654678808191722093279724201349269006457492098318152136814597684768463359229718643243693571261308507701815069745619449609870434797407403751746103930874215439870900897199889840108163778126603088954780596183629121592855401494821958990526243285561135551161473623488853797878201537583317328346543019202604266165006410231519575635909298616161701153729572599797820794715457506459041897260079508725499062390133247725529623166185080201547755733859242166534412204996778850872160307852331923766094168029875009130177317883958586606858466566501869786452729334581327717205835428020962215832915450243111832423102100236145244424078211142928053914457392033886244572032597726375811538241647643612487926236786918995203727504832124450164280864885433277280437448515930699538464477194987773912038432507319758336397817992167062908501513739871523003904269293179097487313844616622143023935793942995847615687025895591532481208729113493598884000919661517642571651762382433226579064933257659459063194237919145672644575167367778586885655225165981608211021027491112505271681325329203914550888364165635604272926798601425943498272809154653359397142153685196574250551880482165601745920164057328761978609796148909678855655843659062635623161243941179069702314306713254668208909599934898815121017812375518306612319696708191530750575748988394035673625335694243363459824212613446828661441715177298467545969134272144877130634588879177463785723501613357258721861833252334546870142573590681163458996538385801723234249902286176682634759952817639797082016457396912897850227932586317802226002304156391520187390433731474244100794809051547547982653312127943270472473448020561997309296953400985303797040568905770885407478093068818836143157249510480247502501404608228990878283155289065077726466191746600922361252959974359288022051008881807152733570417765754515743339479713251477890057497627191844735561968759442423706166998233953675596557990049510648472436227706120377916598264613498592634826948687625960232288827007360468201518173215092268788457385849109794922746366818860704684843932992797709766382519821910250666330205147462186421672349416819000833307295696038052131036038111727294508797643277930742622394932959167589268100464621259990930199060500967002820364853366584791101287026172430237577040352308484588468356994068528599469256498890444961424344476493342285939441972086453694718801655378663705399122610954679581941122051713182511052037530639848019701995670865383434413866511706073760216489997844109854559711005347805872679288809932095538504710017810773448997584690761098185619440633163286583799104052030894296608666583437636145470965909250227100845932416400747574021282155732062363698597288132060770448280060550215445664647971378815798910192711258775476283248935422330396189850973594894941340539097254250934860373627653647566972167892760433205687334161884141733407089956471906349273783692481779737642804958944687276254827056415273227678362016943515313952652986583890915119449922694109455089547915685496770925607268274624921797642992942181091888764465278225386288077419848782364929535447603686945689542433758536785803535889180553537373889674683074462320016137025526082204156521164998772722960120696879526181576650773721531820455488335601541564335600128179729554710247868223173646567017521691105482961879374258494984241020465720455944575886949792518623198021605227408741037032420790147457121582732922596165914670653951512985644225107675338954621981842160422605018616270131443166288504979436755760818590874001917906768165761125384542648409494153322908774875602061098496129375749904649201406429074300191963666242054473992811368152011182975821400060587190224928791363965613348554880547022696818779655090549149964632578249919652850269715119765457344121551122332699359413166645788185322427816057386738876270272751943959862819867862830919033982009119732650942851964101092839260595762071927038147990059346735126587183889127965293328898557407664615746052002722082197726121364835320163135811762609523909607622499566263027357901914954848219715133938530022397413604912723788509667683251087614293640922225363112847217361773680798640441460754333045766516964816676925235321649126419477136965827395372774287812280769106150993520927986761046367245855043305255490595776481252716239774393009588139213798591507804611843947623426345861268486380642897605139477089016621802835237718751724700575475746777257287057538395050350498225087786649637286652103891485698295651104210889208681980328747614322768235197506174876606056137105491917448286175380331340153852845333464557324600971340013572352835040538215629019627785343656190297306629781571926904707436209755412763321047204842498154778210007731636096724092907085492856758625931076772379678384339963819426364488885825622271967159867899812697438762699445677804217900843454934870716950365278696524105781845936696526122390252441437487832232343203571185507380914127982660476653804267103894554046412354952695437639488373442924559996321163298431602597727403996000191449856738402134924771646464344918922141150807981125690462201615426930199626258922764227882205763425336117273759991666662330924387120812707231216955619568269869736282346137424774430804076439012948801717252038009966479717306564517703115181320822169918550590644196887546150952302820748657676515861823959623992008016500034758084250953503843185985571887895941509192728150855145624894128992959570927064291103322019452551998841326497584694286649693794847518989267810465525336681889151814485049171478407510434918933024488672588260350056654786848904934877784056949238078835590931681293594362345056453839709961065457705296031884283301838981234255560134447665303222907187537224822711565120785270980338429954010760591836426706839834265638604777673403990161178526162087689539945113321361556676542336261290351015688982213974504208430918626950830158312247668844573148935959259970685612277725605110286262559855247464154032504729286224816430589047021370181553500539268610040117536600502587209074277531073471751679670925936901169012866185506116219276203186338213750633488205781806238016992929463683644084122856763477712110896551453353153294138449982892688579682973351224611937902972716742094575999645020871649976390632294268459469241917118594196764246790825598006929304810947227685000641292034680209186847907994046888662697003004368116680055123122949330359087600185384355210554342096556976536587671254004754147348237292861572535731339379905270524413316475565363747221576790456271513969976439113750000919493861846377315458744516826095524340422487459102886722017188956668333803592618860498232930713792604838240378960062482563403035457394609422693806422367704199485799891448429918438312110345038659456956854748886112148765950807671903397715651678088574794091144988574438217302454354148985643568418782757283668281742890873417898166913972876477139262894080662676905200816765427357625886767802506458976729510475327701092571972686364088486625010027758088472420260756324033537173352449141549366587611605410535237142347366975857297425697315840427669345069935781223463935884366253024207372234216141458637514563867138856100830304292177450223482109594209744055652950059141019119234607753831780891512175702134729459312984161318689963186072575350822008321591263180117936780253577441386449776680056646260510731293564109448928899882071881980804108977368108915445005681980706110943336493454906382751145896492344520330817942291418036814730886940869259042314323558321680167563984920222949114240739300372008332863449185329177784253732437067216030105141838729145901339992348305619333301977591152064330013971950918058522692564925441094276844311419810894512669033679681470102443588313950982790248789087106236600822235018551502824597724159063118942128501177845882468296071409046798317705956045544388038443866240472904375006124716828229832469986325890598311793011692262221090870755394245115443319915707229918724473089854991848547302081702590595852141899639969914295751942469227223651356732407990855109255460266438703315584838592167904411747854043685162944224363328799540851270650602650959107800634253714748413694566565125658287854593821106341527470753104808531206860305693727366860361053517744261692379747162763538951307849226213001814357867711096324110011272599434783917674197102315502367939656473981388272441451527036384081807573984162881599902505358548254635754820033263706589545468815561296260502004733340627577408879526104252315223217563902033762631533644335966564854739119915740824274983225913658185027071886374205761644797148925353128370079112991162309653088830379390384168705612106477923566268349028796102408958097781052878361929759761143210885412348494177636776021185961396392336180159082578108824315738164411633066754661386336885438937377454874708823887766312888147773060169179315696929214164521887440781172006453436918249402929813670673330678978722093084522642533282906588197223437089886453265172726442218185362855523008731011331061302617013080367306953008074315274846064486963083141087628783430383194418902431711039439981803270960982924524160006030676447976853273035784412671849463039915383866799375493298352853784067050368221118673217365387713330969192326514242138749624809013001656199620009891310433574714700201287036358897178950340475883718348595268985943403201050429941533896502074694440241029862305338085947455208673242213127148257442428052826857361390119279719849975543062379096665499458045058672555569484399513711729953937545614779607521171182850229257119304618422966366566507399433990513095317091545828976802016556795133278398577875144007119413705111258779826040537377590529589998267936849639904544490134459392907986082401456978558896058748333823847124750652632514508333229996258358919528666054774784564448256464518680079619432211396265163294979146936552307492806511781005372360057032299418641598231236794896603248190862188007071136057953642181707494549764489610770266746495343282010826350932187624230237208069558624854879197480023644076032969963090521731685168484935987474066000778192151798425819386771671765430133861265510806262504452158278692337834972734154516929085956654247321637691252712003822519541694095754034042587135133161543102669176249216470267836612634187069478648138788158158118124503936990812477708566570858365775412717320431154478033178383522078036944956158883135262062024208428888853922597253317948646005589630137983850326896632765273965374527598412496697140145427890831668643671279783941964105165467102103413971823241770609413931278853372555595941821253585786227143711013513589490386721114098272183880130491627779043107071151467629654322499647244555502786645360193963189526932320942431986489636360089903600231606742478391680324236109118871187118102249647729508938290480572133601838920386431949524636055456279245786582926554679965567574893473951234220462925272174338950160720772552400067545882629880925174088228216946352975969706012118465638569069648146460844290045630712755618189747546694078864076061895205523560536166839365032184349932588882488845409214996015205409392292033170039185522466806102227443889137148430422234567989199325187179712247826239751338665979650858429457395345014195351627569308392268986745893440286188638201190055623561429007636306194514185773445089192048299701513910625906240067992561761906232565241575037502318023802276250577845924760308958508954038067709501857391598827404968430720839783498435746098260752537021582502658293898065278922990221961370351311115497063640805237986790907216092042208361520209137278583755878078823033460319653192008038412565688278277092150106021188930553986695324124999026325265280002661256490002521840515465770705226323655761817648481281924770190397935252896387119335915342319749823137950537740149616045145667707776012302093318793793504359026483801237272567907772623758051072983539582814586991937459523081651421857697066745218580044355848565439452454966680546391373944768106490163653554340257702205521938393744907574366128545505447285867381838957832077106900722332938714927030794468281858401361972711591826998402662592457040567798361259874263620068426975210682680888076486053540114764171594014067323904762832649362194352582788876520257168553955666600022828573571931402083919507104003042099344694431154577463814983868524583201824688896726481194642113600867712084456744928728318962040602786531812787349828659454008966227165389674935508297768798592362245310181343204911693893625125473423190144313180316317617926461540064033136877575431085416780404217016533775917599487822881536757103366934461950958560024806993695378833451491328186116370202868924752125620172696161861593047581531356707634787320023007981134603873470145540148503826998758984667618788498783220245079889861317551808594132322445312323939246278157653096808095127468158178013714480739900485908645573252572776927653049942915571431493639556819035811564062079781605633010246480251538400962517852655599859961146901186275495633866966542840160358110783535559128151886968764777933468950458594000165048226768604151496225013832193689015180743586873918100985605281934278070383334710100325229423148646285414891960258914064292915115357734445746640874599604146097211445442325629602455560153729073291427769513029513240209688552420117231475514149127812052597838844350778378686613633447568867938201442283059023770309869052145018425804784540403834225209486826257719613005084649176836544632210819443718649896009005113013106676941655693081643103794462387293096646369474024648827086668092936958704886609330246107213405336527132709940356661338647957405539204010484106412454259599349753820421537395411420701773002015457184641266078006411360182535771094107735320166192443093379677158838266042572183298023090413889778370474841059860993087404739102328438930337458969005452626540589820324804188741874975199829313812479538259548198564110332924055791947760552868558741043213154342465648893913675116699626419483936980012147395724081460684490302553635011248690836573423824067191769280067298534861822944051256763323395529489838301971016977467314245410401396844831121730821437284018489566571370029630965784798412676654291821225128155244832796618517838080014796249588602328115174527189745953033639577964920708302859835581251111500235817548940556684481885852502009600805899880522025826899233688084332052787453937904359454810587434372382254204385768670311988301719713913624188935424188275719542965094544709430692674547330099152265485474369297186590540706804552753859870439410576653320914635085253385928680047933974877612923450225176517960996198990967673416187684344564861093299394571334844223574173281101592683921362340371832925543227285876213688132967116124634196991206876260102218018946285868753315155813076613166353531253435958781931393233541444371874801565000408284699280736463041495134247752497892072906084032907819904532447814195557348051712369959743911762231426376828443308682755283991487979943443563876379225816832272301852917085736515200483681776366122565387221710231667650294523372009589975637722868486820312037178989084891168395927636053160752360253069023537270819005373652332695049316056210137332159114787472556989296225268909390997973872830668119171005466262605106842615742093782368636753052970703492184394027654549337112929945688249009746717877006736045032778503688372154606452758168798699753224371743292794638178455941429807670629539049003241018110525077605796388049026132647404467600855967003582872470874246691676172772797513450176471617678215379373050707758334945473464852588350762493885178766416955903775534349652506441900697108379159155899671704637559690022429416866578094591564217552975212437215452280325187705867020702069616039747152545626393244457532272329269697817982243618240312081137945854120481087129756801328992836870730513410216691900477415309860022916083057452578713578810942825417434239837513478368024728205326760769894723221952809293614205899808448151739405970184758012278735903108408250385438286437369373625830556403031873782315069341127745255287613843267664238337829936458592115020071991102051438417763150014121272371476903434489017623264058564133291841118876000953292817977296946884936519417578802247184271329078811338931583783165178425574823674037853839747847693173728103279788395379817803975416594224042815801870276825464113610120648456740967901463912171009399955139271533780129948011695194513777174569783597639983948613727914117270524728836165381160293698708300762336812069357659935222406233106649714211028683309875138445696097033762749823205213503826406585496053024913918292615526504901869255620478675333839695435091308187588596120095315842007032338886218841062631280487009589073574433800642449709846262569107328118613429287570702760291729027899802684660183323029829164764181760294038836463513442379582424124053177298162140255306063326499112526756187471923376746159480164267043361598903298543790506944783729086957897887595831461822665399932830618480795387034217972412884100846885884443736259341875312346709448137558964940626186826007704152204394712023912550414615714189042114009744570583490631271086147551103544169940763240814549608608361898902956947371385367106811231432898105773477972079243954393914500116185359572495525951211445560518728270044670189979448755318396255320258772854184684495358473489881223334664087575983189073049265191058867078053743106441824770595023488811380939789916357884419901640734863963522280397312517893205443478957194218003317011061274433380092856871115505910558912481794861813185778438420655157451059978181177277459157885845333965327059561996621065335930189409948578095859990628091359352512839451446753318695477688365224200321286494392497091655720869966107023798945029341304920089442118628623101170410453224455568717618236105174784373391524775417134481309820451466997998055770651726445761301263360064862124861296045113636772808546769728103492483289727172821464054638209457389178774601408606623883130153276634188704364013346200454605349843934915589965477645967287284948632603388565559953087798941296318751112415444366832757383850261462685223369661637605468774741049125239978388019724242026122336217470680815099284729348295032603457357889385874014381382301765448692324244253675703499499363699843663797475103062697042088901003739666731495522930477090468671662896456772141692416763730092730355215741060423441685905981946765980566545296264938349893084919331274324903177448954246382280437847780176208867056448134106777731704060494794356385084498470349419071997944947781873646270152638452335402544005999504289751289033348341039406647889533268053516030728568934085478842487836269701524383581553142852877535399496779626557431423628511709177584914948488546670099931328024448798409052895467521010031942370652227729293120590076166256634583581237434146465055786738883243475206160342454417536581861254903426373372586325430287771811017495008073812268603205751009454868418219440426649920794477644011411719898480222564288337203017623054162881381225439101437880457086686769248923105970400913649904854555671412884573936995268436385587880410387008888208927527191171176151618687513992086896351937292100095905340457821580326651107167729221363200551459080947475298421640455046627093353668973811028848356945685581466167763932954719672544075957500029073034778690445884415120220155061033026345347721193872188746488333189708723685542324304263875260245734384365715176926989191065708052428302865980600934336623630661401000665410402676857618967206052083465677812821250489629373469093813897522365722850709624379845632828230242494504518170345927636071292635305234119536446856440987960145696487729660723714833996061150090645603379013431467958132072018925841733871555777500237211477098449129268676290768996228288420651769568812126363080034219269502737247997228817831916687869107302394220102844063741035489573319856984879666272123583849091331678638215487899930924139612094764711945260500769173067480090974731101118993090343285785255195989770953173425747984845290351621709708086449031090066875383402343474599902138200746049379094768020156035775081103047635480875897568204424294527362744799025422758138153901965403104694610053137429260524849469119560892634644667493039811861424255954204539412193118344513033380586987629743709728999723618289682343586559468024067707647628295384188048179101534929258417942472634854376772964729529554056552851213971555970203956137106806274070165420707495036162226922718060834175315885796713764634298031495330697305539240435219980324405360810920944138871338478923503184890706986570214337385642901625049918377583686681449305385109852442970044803602116595758119369908179821712623815328475637313004004787579313820204113044081218172177902419534762237684269141919959720584726850988271874698709096271704612445594233008444444455196333004433798308456262866651447407172697581069626569564785295827727787743915154435957872620403498735194957704666144530140002845940467562605834523109291214713805080607067948123986443868860055023765334986825027929668512120636984345647599433743139294202397885348219601335395730381642774211992658420346536970000585414486785993201299817254684586761744628112838337786289238247176929604838103350025598166798834822107379812066630725444250655100921314441167883363330108748425960867874257590655561622761559573893481148624792614154024780069154335446034181042524842276343908935673600536930980570165184057355854332815438745560762797643649282143312515842703274024346158317675406865904444026814444537688661503004170669752308166689569168333334653273458464416921871840228218121245804725812455848389557232754836549701411486493536438761034442872208723420631314252890422264617932771890279544349224764674454264256202191033892862665346190656795846007326616330570511423419629390203249775942909162157405628727392202161382799067276188877137604353748983141331105256651173579370244732846010839336913446716040296773887508952411746796204067238962755702985450961738831605362743716596040434257434123620617053689112424218086740326402051743428656800198559865864372315023251134911456412679410326813127402495226816926407410435630122900104299272860066889762013232597638375003150112136630177714710671842656353718416048883199948382352555892761393042618645332794528585597684010937760002303267334576675805851347776718207384125857720121831773025489286603074971764805862838159233277697016355617622582815464073204484518426459216795117082298790907811234612961240188988350882346900864931419139708947767986922440943451718183952102089303427966554763009544450389301228191014996283002444068862968187024079441420785375209183594938956016548277173601596647302252582443425631587732810259959024156376350085359068989633887768263605432620990561416917954436076382772242582203319259667671280614420104146016486173531812305731778386832444456813170409646461738597934484354171561376972705456794028668597034758970891837529481826003301805824369451017216433607630933684624227658235080729194507361632240466721678797082355778597995343335605686926176810914221952831725158356265542717731838766743592487633351656727393745230861769258537062619756861640141990556436924887356440560080170539021828774993988785885414146432595080148287302562342723653007765118104586152084433108172956467336434297754359385343291082903237397791179721915011221579358926098717120436285965269044509327088877694458484901064040931269819681577572008207467992635700807897108683451542802048168143903046963985680515592322942753068126287991927332784442778571365978418715733962489256651229173576964485268898447907717450445896800313772106648609076568090585106319257557325970543148713937291748598497470426515039997456320533784396260234521932348104974938898735207858556715572189180017132895295923970947297971997080695576452519879167390715806988336958014155562280020405454204855852851759289989814744509772145437334869018105143852711257957817117009719774400515826291273869296783814638577824617094529179407503699499111323973758139531117018689666145818961955140159060318989507515158313088522659797659400375199826522361512784549563018223049154105881965882288099044609615924348629197043914830481257059805881992850293191542641452272012093370125325181350659797526302888652659980883623800963924361749741484807906412223859071189965790288731183888824404743003785802231880016547626739126749487725253532446961553949224171778116097823489732997895402987920247160091002098395741311333911229770818116043341781286209831243674359543518141613575462477987999065286284530336884907787935242140987470688081756977631774013134462251269345779555675034787068101659324799917601218975144597433557841877140724178417128916816114374848515117707421533436807561684592937517969257281203280197847662006776724156543573938294149513622984400023969690262873553790323967524786046450231707768540254920576621251841428482269511234952692651801352190383754525903520980907817197293809034801147363228028189512602653398757427457872057693299205441003348937566723232427972353351346018104126229416820850593625243489553383800486914075755585467160868074943258655389316501938750417577248608344357482091803443051680210916946612418320664126952242999314087304797029451643623501739559583095162330055504340332568163274283080079875868669105664042393722821035243844787490602031650804379777827139912741157828939656672454138472490433334429782734570888010624100469521119502810310420218339990776316917258720721069787279088847102062995210793071091107395626341322653013421464498238284624321363413160095706160252698330294792535895302733969954618954547498902871596560045961269987455377814635044737723053670858259114141855039414994812357055047525048391949480243985953710598707754312963260349106514456082880619756356623535096486931165170803147845297334118120439846222191199222470157991244232299164966712729128081491201261773381828372970269424932964590400478341710700320042933059307024423245661770687409861520093243986959395536336984584154045419665071249675427701011233219639080911894573303000070403037665108018935529253206701250633116252293081644033785778114671080469356586599279761367601099578056636011886128535125208893231723567451799076117164207956053462966349182213500065677476349668417561740467899670316296848719410844731850508416766024100826536283102094796906761703173855469570056545709077096064449970424051485145433086497581879064460670134985263284848398299730872112253772648345991484180762253020494218947847914845784345120309596800724144963122151663496243378632801246398722858112622369478053551548162595097703537676858901853958140866785386404159951054146779263052603111536159983888876488303844784546304770001957791158021383942189324319659510714291078788369827619626661738671665820196090728242351343823019941843075364614600608763594863812227196058053381741872168227463465331660282087955294685452903242431530564709035605312271318316753185418516636897025684484552882448672158674201652763714836609722062143634281361772310685138746385252157004283370086801244220849324238667950150355928705098852987866905600571091402841171896573755389430953358147947334690204637594261205011218431142269453544738444533239047545036383349038714247764656742796025578467996582961900368668317704383871890847749733332633329530304527496783069657958577297327163274188098292127825523225886951338199169764111079880534545499350541917876221033603839170337365603329433019620194363879155399038497520116593456233828378089321488066888367037055768902181789155456124669867684331277565146569092451011271851634534591474995584597675994184730747803159521172336574136995781440498710616989556714582745721494031421219375185256114756770277922753513501369340831767109578195328236955714308019373387241259550230869764446402478091009627633242090416562856615899036287195555316365157497370823808007500321145189274942456542858199714446305713806644573847718736876043099812233668817604031646434661662918731290467664633758362269103476080387494180543652145870222388320021904154487621988424915121070642822844678059806500840879912524070844105221574977802802166525641562457617574351776491441324736911537098379814898190433964045550902950570161084136451060742835477676515585319987874589201336879641495958002194483357032940717782280082753900430091674133120152422947131360925118865138643838086266627858864300313194672022154597096811814428382816300586568617778741118912280883852074939378675180389561504273130782735736015807097567413520805971998456561670189055115547844621746896719805511120712191975751598987578055330543782652188096262036779983761873867567664217655382158014847545928782564209536006171078614439221752675661597621503037810454144013508373089838856129390213909428050899565750957620560139682461699807618380303409917920122056015613792703318122382058096042157326375784106930114301112763768186239102139940651313904685517244797000863686346404778177650315457327969353818442257770800003320076378419630243736770369550808459492414707006818919153293848407007500666439353625399964748037672528064482690062991931812359447743857427632789592216745379656749084657065366464950660199299565004089532929719918965761818055060266503455427852626188041911043590612395170762176279736238467347410107066687251525125987389852131242644553184433494236783405068721789207167267102275118050256246191779991595407788473714868692433354815084849446211300158885701321176395353654633606174359115704984360245172352256489424144233089636069699282200141482518063951313861324038696010384432141064708730401841892297476296781090343163890029878938676821866629377498084274461664668688576057292095624338232189091147511807174785933552414500004589990481416255818326586783175480520874713737381000667234174368077066818855353937802737272672220415697914635507372582270038831182687887672512789566184025371384891796029479381426568218717980457619624914051705403715101390078858156824426073520041119090601426484905405223439593447659775080605144760915016254132397339203369683837291812372043776027394840864183218927447159983355312692508119164475570890606513663530144538802113151465819007258002574875221505671483338523543153323093477504933153196689230962347215810438318074168043343862138161276959664155664174087727428700148775247156119690569874194438858541943345939120976495743036433338893464878420118228339998789726137944648426571261085993871889612453566470248933353804634891138838529664450073487512838666028412172941644565941667820682763990458780660795865896122279506513962430860609118440551742885747406054936715833425945745999559509544756151758746535460315649782392384081008283773697317338167903907637381989946628029080301011368484248360469868319443294203570292993078517950646632620661713598551956559237253975980770770578623823523522039077116234892590483069821074148582404550928857725790158377132806118487563485397401795249054822011093227109741470306142107642694675994880069794036549608095800739223203500142919301859973911320904124596645948943624888376214341940967192885636302819383590012610595039942286719226932005181344017939799529483800672963970018121444081674097832484208926958668028818647874717188723383831034810892763860684879823544960994036943863543168966460725583387886817805176462240787883631908921664406373279046988358938301499669963666594468505789314522331466927861177917754121716711149173427548562848852313993886959065288062754950271382144359494226242093073898497421136097579946521501337133949826533385425265625056976270041849593881363583213655220962219794914924771640767020297220868005979878249976981860447039035949373715552338971528487054694721263966990500118360616906612547126886799735090020186136824837885438794930788065548165848623531055263932210172399945398562491514098998921970845782959581134943121895195922167679653587248409935445668138292860552429555049921760496550739844204698295397023852247528378655024948162580160593813194593394728952760359401603068192875810758214058664376965097373428606036211454231257778114863346436428414181413038879353665952339075192652960588173234645030137217460204836215515148157806500036493092813006737203816786369426429747137724830122435370064136437517294408337844721472275911405956061343757462671399692338923298297203977130220513636598631330631700978655188628329596438984212779437938089208890737005305420763288110461423195103293685111215838672867843809944467222232182822141314061560217350381103489006333309627238447531690922705804453574246911710696742678300842251660088207635209717006755064223528984751110291843337566380436746594445419066049339761205686762549294792149304017162569510729848183126914981939066119472941108016313923385494899711465861999834964284994046831025060435054099265499232223478983318633219301679173969061741874026074308342860671952224129484441470957948284150347374418715960738882468048686216649863911803857643890635130885340403618044249089760029754071556299031465215641076515029995347097364436248918233759440113319524585508504360781486137020739886295232859072883515873665753810146888199266175530060693637765306382290382784873663692400757581760179506718240281807605466666433685899203424902640705472722910253198009275772406437068643738954304093254388429172075948782710510602455957993485812784405372461113577836094384987327890396349509208081472901243469150068225312112541528577153719754934048091813274811592761399990305593976854789110530527013080680291541660868738297997442449639143378033371752078806729591773338219274162708521688848247923517556179573581403828698250813201172823185342567787614177780382870108388494121810484798118489294119450486926943855890020708330907363948822038908819056904879323054230031232185094868784466408722990267238738888719080149224277924581097694015497586261380168295607589560537867301250706045567098867622968515257347580834969306292620056405632262115988415388255284047849734385302471290349656029028416502362422426723063595328236442739099043200944580287214308223428277175898210203787117047067903471127911636457031980994864376617823733555114942709977678639379899986257249245327330010500025084545765611679501132406379456533384423969896790832168141502566353759741529719623249887649425002023380397516639098444815878281769846264260496216654042700186962371135892303640937781079768099804270292812359351489674101299288810551918597562937794416346012611314056465684211577648663900449572339527949323020117124095866290234857212124354652147146597397149980164568957789757349618689907247138926837581764712053695415263249434419215608734745837414151720314806074032895073288892034404105104932292207018476568373238225431341290346958098898764259017012573327038002583324856111850671242531245742762586064717921617236611376858009669019740340255748016916140644765623146557831558250365182906046733280701121116564682182437130851057113738375299351715224362641498748690194882981836119171098893228573641841994311128747545066156535454844599002085181953593810942947438144639600705127055954172295729546763309047101592476044790614732499710911101669361023298971097448209662673924396330852113432638312424603305403733888026576806522326296090599739151588030692529725147058427940769579748345674944577262181502054894285077777935690958765867382230281660373665479082635244079728167795887706789778668016048253723071196465780041731186789298497643125690336730246055447702737269911306852718319333282188095321736957519749631067223874304043097524001129617599822022008377899063155161616606469510029510818841412058636105089007578166139485194543666982670211212502658798335292028965577144396759039916269845959858150936679893058698348382420862599193532765787877324074751693563346726050091934998030583642046022775181342592660789161539425238803537632873598468882958440201500994725008561332717764024114533486579643042851478643559746240093467872158808809568469504606234415787343664143431952225029133820342629484759558873944420965132821054012769438268159232351602681192280115141941304045982637942515906936072800732937005162387376596835414466075554521126151050323923392375771447016400053507258361465985678563504588870678495038230022906591219607201848588648290691552211848875087037947394351194853463003577801423517326928931706352683110895710502011172246298055259736133573983363256131866259937297668379075476331447681152128710079563337829727226150950320901123029084574786358518699306735429094324936274256030194391187059910691408150720098120071059184089773527853162523652558233558855778377870249418988858943394556261859153965481127558687384072040520934496196148824949036702771826532533106834579713494603856176733606082667747484645642547284150368986803193257777679049701227001178507879001676934667783639541961116416919547065270556617202008627236868641126288769524756264013829843694462756547171690915732828828044224977513889193828961491027267657609424828472271527474974107251606489952923436524533584174963588175320775522953185851719492281594508406797415580980165568760874670019280949965559010585116629593442170101682679299918555068681528722418518229154549469604408394272765145127229392903202852955871744654585721393983675605231204781964910492753180472360110455894923882373384875746901020753952784002626293311962981756511687205282037344742738221055513323844478142303479636992751422795948310278807104148232549848994266545715482367005930239178535032115511376262250957816096478505284281042695566812947439179840886961142790492795304510237503342924208094249363804912436915340367744681671160130697643581710367955514814986042905915774070162741187909388787713629358915196728886158268565357889951768275011849704198070855986013700985377122644475370295935830469564405025916146183784625544567841084346376964397298363205935003556570460026830531554391436733556418610848311940510431991459783796930219431424947799111661720296174323442017210108521897664500116170182309537657789319466039834166567571783305831922937161914536176943846670554567054538794307294950398521519179636692547223643752847478453653886626534668710572383526862021684416639108613608009315532584844713349741893384263797879599545987205258879117034863684544205248173401307249207487686575515518126991614248785090795968233100950044632784137206310727285794756865107111714090949316095360273052665201683291231998783919705904495352291984272861811026000333873543724585081767950370735465008877453414049402258946059525005130648071048104239526656034000500345922945352798428805681878657966180039095020461711579988444574805996655517199676103632693964121393518483818233088409339701399155398816909706914308264829458280519612397286171348515484511098688820543065501210872075134510890418645154710395501958205416723517303824207163580586152581190386284681925318876959487276232077937167594698629898933391053919225606584055644809698068554303313717994419837047102300512799711730698649869050143481566067723667983640848792221972514818420032711105207767843898791710524036142325806966075590870947242019977094055856002526003203264322425672745775317429748254022662726390020374871234549129509877853422863068156283705855653803487320948710211153202333686396303638183207149374331317964639474514760848989006998625365996642660507596447849417153282529705535593504485866431915889991686806424955924038408397921336314627726045806748209011429104666310719519823836614480698573084072943372667665771881267186398801695265199393930363220399729823380275493422883119158076841637936079196239399164142317469293143602429261773529350347202270468559522200284688459351199092851623806570095814216358912288222722867574756951893960709008974283952894200270090680398969265046365815837434304928779547876135145573659619022475238345324719442928127998512026566529212749869317814928298687153560555288281378212275902524865995715418877030633196005205900625033038755448256725208086949999170746845305241775712529088036188824358010407925596103366108219121650209407694843917792266819119959738106442168650820244169638025925713038714877915935971888976506426912245787917572399472866465590037886557043884718349547870011545190714901205785803282682771926535009014491321384813286213765732883425270878451504839246254696643277158511337421846591919758764014064557654138239825507535475425883211040004095489995023333946898077608824720193298358543459360558617561045455315730375360872402686710827220460187952566847329667165870770687505997310671337785787098651485192952494767386474204067677808636617308409110084532060758991338893720066610251727009179905047523700536527745455216099004139674044246895125045908571753158858966031773491662010354111180661230962818827630574704990700775302851618502306043811047639735702403003139673489501777527854675848465926065499848616353952240441914455946581651617506292677004173575358511606453488546877804928871829012914569243581851923118424319680491512477861993732029194957329369181010824402150291811225556872846116405664490363767887399726932856085012593959724630564452045234340354013798659392620598225059579810874729409085430567804776102656823739311775205776652154095676553535225817523731309264801821691569970320591082715626768182368422842553195666350165719092162015697584803991037121386649858793971935008592152131659809629592069138416969907606258038535794855002907446251844378949191209320165588827828063151836383258384227485486824113975884969163305323203460695385651102188466171596000288209059702226042026829124144727008982064063135138871335617850305647576242333375596978420642658523626508816584692500802252822044919148920876633739607340776335099872581319515823061429892531570232210229107850051546858699378142214272918781873587128161021885648695494110293354444767008052236543045796328936224028617390934821530987886539229480965664880847208446294957190807631398150086036003181109578600500564233502824045906582412020400525023614965892572424417022577719182654382977207290382938600984243292118281649633605879591037095012812783713474608202224570799834233080900306103351021944346593800382423784882545089591546667796047640816363549241848944149288416458788718961126198300613752780835024615844883896558565261910533034126497209298607256576908611415000795529028221608143067324953740334427047571796679117706724760500029599229038927082022943547210563750141257093889454244743043312206697901112934235465225297820059366434112862459228454045027748643546226228636935528580991960458248962797683168159739163268393787944577994062105676876905077791691047580931955100266627967263884945239226929408054342387275906167470541024213558763037648158890969349500234156700795224033554365032633035749840697946166758056039435417830777961250408464261346633473093067743128944380377988333962521226715567628441755664065290300605354683080509539562983930266933773573028966873765976872143189741436349446262572910999093930391458118406074495198594782799622701542584587441620467527310130124077176304180590759553323407067296554627490821536744107939912065831226604448333413026295117433533017843216030217277793690189529780565617872281055235751712482030225588680766419060512611649714150124661453555594401465405462239394689652958401747424826085623105746149447831759925092439830302861188182590540940207197903446452843533746025223407563273430567599849402286964546745144231881308129440278654284091378354701034588651381366178747017532262447916925495984415883308137972202735855395653936335044535807473083581556154651640421445988701554056650744852733918665177927965732206781204585623674319218940234173864812786391831261559673485902060221766197448393805010157874698145704696258840785382764330483537907050337292240854722214403588897320147038238277754293018636324482465114706386094766928053035608836943460968790269185848111918139836524012612101009089702307188922650661155300400627279778766364659858024056841694158315387598091311019947088283248428176354231372649030191531005827606034775220685249696278707061347321279608916977056786074062838735087735001919251043162829553209601526598312992116362313324658330605530302456918447798719574750144256128939295345893744716887890966345242382870944987838277593262877269022201059750313300443325944184999538452904795435108192531441347684322724255817757433601731064428163152357378659843925415032858111757785569470166472086804625474764887097694992104681570664441148981538329129193705060984906514231372041588728927939754873465294303480910217780432666048679044559900432479686825659259903590759991179650867093510259600079700946694225815098676334601516032629513046104180835085514312527722910348110990237292215865341713584188496716753312844409026033721733582525236713385734756162799468568956270824792058214617589209032365377401195974525070652660266671746729835992544841748576688624884814437438674903122430538757326193785926689277993362419236531902058759339426251195811804225555988018856068195595711565784730402322435548034760986908405075484587884979621583709922186945849177827452177540482295119937844671246786038809187436275176396126775005345906669285846465048422508416819876217929499173742882277502991960031514686772898918953275591418912137016765103194992303000988999631648744589252083820913310284017518949524018746154608803673978872154773299307582438536422318630648128237433131800443846526664467145646562537305396815739237189957416243961887922480794164603130992590936605706882661648014583479096031808345472387100708169234198601062088580959999210806826178579256903739779224413700549995742403237344996323072775397121943083973535101598858634777709796088430713072743625498422144655609597006607812002052045742014816828683403828857654509040625043968375228156180878776904752855277003899097367316676854656703900560279165390574910196885850754030893313888994043886445333099863813055963977895594923678842436992033993393305680910688773718184935846650345056773027889372881649913937522916106987511833492016275968366319843639982908279303363546542150680769278652857754158150276251717406355585835782763869689864972800225386249207376641666752121507338928682018533125971876576747954560832867158530061998721050762700115653233564912126348460327741187801578495501843391914399902198343975936464973814700292743656187420450156713054885136714873521964565955890886245615081659370895222389268709366859266017328394639387788597138333987381010543310700350106306098774337134513080760239577224552070597852651597260144169516241271636249585697148741830226365367682667585286169594291024237482053942190511048725828786961714715690183017453751324467345804502547521663344986775233769815472666031791282416511598626044705419624032462347457371880228448693206022225191408236478828152544515113176041873383882278668214894385927219001488020224583855792844256096242664887410388686059952390051432765800544614461873339525788080330501776044707629916156685464756382818444411267034769399649246733812934429900820263958983972250874939899295363746550312871479322667898198061266388591004605948728101200153085265927563892078642081285669692775114695903524125602914016313060355799400719103036475838772370967133106920579597350363725898457190869888457601134808263795640913143600300080747919295776808136934544154127360107637140615724268229165151883011015022586570546990809686108276100018393472193303738696500515333539799061965882110072993571545349704677224239634813865389571479150999276625769749138083332615620671627794385144517823471107112058383527362937596827460933374062496843938806675521349428252821718558744573685715689012118889025964533554578610091500946719742510531546881111134507183468572814716793624647778549439009627032241736708541720488673905760041929327337201709225959685379882273694809912125126435189821385748805707703855475604255333996927635107951514665564628719892678427998963823819426247623216353927613185371590051379963062911187140686762913592701460057910378685728315634620798165957365203440392294224122470561264688585425268018247553136456919113020284644533354268557407871228655763657654250773434670896471419797549927582479978329870100827320517993386258755754376562032624831358283404749681877070764509817731570389553160289656883699526608067985305275469139628465918191815507045118895390521429467538050093814240929728367249107337920211211236401910307737813266147548182778988206021351337661029493020388528337919655078397337243393798551603174082749329334832934013800875402475613698485832418949996195376607909692201621719194275675287159794846671984279668646415470825692935146827151608903675154791615952983244625259336509697982202859478442122951565133768685653780841655733985982274824319375109855328117463883511240810879295215726854013145405684449153064485976643630024373238852833372661275716134038390085284070170223729270174550672380322979190000307076620615431954090189960511306553359826753944989698885136690653911186294106622413254063556740749544917276960815641779086517298326551233227664661595113397404807947894672812033085067122713764101115317806400111391628466855749238516093939051861433890848057908847920655116088496233370821624698260714917757132939194703721663743727191273349353640805556393264598740552398986920371891799210685149386647657181144377775404220592685152197173842538551933985706827328239283915718293039849797665869855371942703809145912466436609607145921094068066637372632009820527216407227437134203206741853724531170538249169332838478274303147887745853088825234870979357699028871472022744586932970612724603054976968318497256197920269248818229826399983853675843767964004287821433807680466068270129574474356902083705878253463940983044840363796228170516379336480574716068346568384695832065606707293338640961726596198516530585129261351255156526762048760123318211591794523176823597615372670810247476690541309049643787566893250374147893980025895203098830432540535529959718832020184315434938289494779976310310844220215870916503669744939362326771489560822668036712706632457598833073467574861621270275962223126389084841180046066157871528279964564673155365087700866491868429430798483565953358632739416134826751701003748044197289340787021137674793846108011737065319005681602157652737756078862815649546667343125140841427682123812061245099610173528186639353088320341365528278089217387118824938886723075854549390688138350766429574946513887794400740724766390918789620147591742392499339757697117272839064874315092764200690937979377571519837908322021642781284083766161349158650275469982398417945819729681736433685869355069732019583465411644218673132000424878746857082079527137460206543620087820050725027623995889330077926136023864268842804550355757853737652959690344923571786263403623190499293952112541942316094380529209729730934709613598256578788587351200069953178571810049843395489692572175443944545230539099635769856440537451069406749305744269392935343240050503543333400450323794851901920765133887869698037139437074190915109991029470469924102698091260399338644964342392654119669328540404599068676275002448941638572669591010330947486261491143763492493157240473333172013269709315684648237078642808024778276859658045621022607041289545719853237929258020985720374917220086431400539526161476707630293642861529048913312335001173621655912132354167801740994973675126032353506872744890705810506075859631237094891599378848927377372731264847978908594337742517644640652054687485795557642638169454486581911668957838253223518360153453405055054500477226251374018488414847983563598579765990218916326342079688685784970936639023101065720751316570210291800456854530392841732675007519353866977158283067899446015105419946915360505686600414150752205650130321756065492819601143285851781543090781355172143132452515156194989700024964770684496430353631715523123671553599489475111484385869151648705324112550314138447213377456764014866531336561465869646000027337456631921106323456158752915479336664004602388144571291569299508851912030331574645190604289345526044911092486060699517923548767620464515808106506519494687873397849215462725263584992564597695553765151610977925059218569837601086758015682536905083953512312208896938512872752517289738938183735688939322086394549054210799938318219921951386834639629113081679764795845867587506869543907085496838243694536234547094510908709486831544748430463588565943789560141632861368974838410534782374025805513664220468483402987615934748037525613220164642382961513099444856600501776064491852870886512041954478556414345637235639569109523356482005085936216931440931389456864485681656243065644156356093549183575434389898557436538447645981526702050793684110895637106722840344573076371743906622562067107421539559351468402644555792091924475276521717941086609475034673101325527974752054729904063816368631920315288586322900914203538298823967617940609282278266639407626355088944403452191034330763520292303017119954051043713768318840709443288822780798036284150703034673465492813357599502577479671972079539196822457957694484774929054829044130526424400721761382457190190773177678269572394305486129579057354243713108534583877709256780049854199955860282771561062771940522442304883022478060645729920438657968478479037921035831538156520111772615108224794446233534686558273355144660568734188107021985545755285378808393553338616788413427462087084767829098813422413372095941905502978160643854161805893945168335500827797372255204369097903965293032244662434731832685456024738579314066919466308770987360593400184796222928591942266914490075613486811133157278385723103015276688173613473917854374425262432747801177296644878901939539520737574815121279369648807598335226120203509480726420393215119012446283998441829605438508378077710333744334672086192910637272390520121218395969299355548171546803554279425330910335841785749421829438671653191251934880017110783850306597734783126975817429770181065251573980388947792260515080767178927391601356258725343497812384747152907406485660761139394401733066687023404026928665256236438274581023798396875365222353535379263238691754027424561439692645231016757878545323307748504592204822195608304472510005729943906979376297709258809933380557107214075387642337858969822361030676064452765080466601645023509289423911174819192596056221398327656821192703388989851108201421070263823758379835276414216623973621657893947800657153069430452058256786480740905899661870449898302218860960080347680692809417001790056264243125100829097603678079573179001987410432418117777025388521474556742469422484070452672069236823620357203935471095561630610724599140862759992056673357402367033958146637540316442752250726122132902357185433140421152911697032137954033499137335793368267490557194244035714833296163973381843914496108570148536251931057496540980761929079350900187294556572521317849597256182943652795177120691795640733534606277914935521631010555389750604536098364733989136545817848189596015389480099897202346413718101034901103478841979479264165041815788177793416612674874929002584796325672272133873860864828563959813331821872493358783069931845606042434264663456370269511732208688183442834143550221000485118085727939246453770656940578423699194307135951886110931581973261102701689152625081441478248133588478923822621494586889202071779709568866737676205968701385653491252856989178465964294385738598982787290825630216977207733589728071581403582847734135639620471879560555836963588056156259490542556187697895035021807580951712739080246799498242175883756275963160436678332256041733049422791243717348150916599776718869723914235004639737855917867079900710868302888840607560433359804899247342486348964245228317642285535318958562936325180835143953956214299402661807203276942526033404086750869690257476770603985935690170182965243669991566763027759843136040293537675794980622718117959353677241992791871897619066740530941441507774287052719014075855836281793636386753878115567143776039053010439354625717893824645461483817172463598131755279301752200967824966698534999625403370838646305681861385379475827913776052092486447601695415394564099565071507807544691784445293126959121430422768718532454936763734976654334493469155416447573928590893096170086384727478932266408650284341172102619996531378976174538409592568220516837225037361126169044399217483483171301667200140623907899972988047918277311257095841988132969002313681579740647196922565615568906226815669123214386053697472789691691700160060591497123768954903740607620003980144595770323462095398964884854163243946509831747762003722488641619763393664561703736916540132210224588509209974818469732758719576724379176467492070606250864264001917320189877848381797340815951596153089867748955315066335974336553661722314397852670929000262354194520402352691052389582413756884992662955201352628074165112259930094248354553579473832611167260356508240148653906929870637440872618029515686780335230345732341845032367842928610722682793457131353909388968709274648800166270393501797231960354352456381464506433031852299711090143992527607331486193738397018768208158621219559832943333194673269952190200550439394502945606180272774096947328848365830983431480756145613213947309334867245434842363390664384986150076234671016481875135008268133246225863928091146732326932786071815718871876772725652887572483228955183494196330056485483265594950378046729183301049543812772004038585659683546790758245606822346042940234627644095925102385908703996993123144933582565891810713533551024923544060159153015376733463583244704516210885088452743811364824912787342510359471820367234665850652516788319141489811301079001763940233860544165829183262057309550600584396922684807516058892813166306564999342900454500669323723326605504523828420246807632141619554604643975802016102597048627779717262278107680021825147708080980658635613996079079172097102235292684523004767072471402867071055193418729431679534829616869271526098091261225997685935149476105025707974347156984531829334872535219527951889782981955602827955290979148318985716021986805745602763423460708949626544215245330830229106709549194554017621962502494784431553406081989668316317688367606550972718338104877127189237028537473091116139225381778043248546993164967098953610369863253641283582717635262396233374215249100790631855174152420745415278135084356494667736226363524803633017457309044485289447472665416860399014416697903257905512756118844196364336152030833123079608737004143674383510114715148411381725219908728822771278885896945396220087373104594900274647348149599189940820473980591381781060711532605134112855523795093885921220090731731060826825875581767565197507794913272763646557941832790259803981454416340219404647812891682595480092327324078069567248892006683850908536861747483553292422277827285206322767608705534602218661325659516796068219945226133533441469357945398929370398964415529797403986855782390919143169443264550310516233153389435147707848114553308215005432169712052222596895067813870729484600680161323505424198487032998723451727043259630672965912882008500285664125998664894213678587008899070741783472863880756631889690921692007697093116853150020918154921958654266731666867276553602343584171189164170357046754780735883397582908889744149944432759665013433565945110659319020033955338170649576381767292481947027582575367266320375937379757972606679267768607011162524968562023470286096356821996544551997155229099090736054289607592158755760087756931789261447182503682870414939202528685357891427164484740701763622580660384318085394155218133602420000794077667386666545682209363657162185647435938896532927904327796363186207881842962471938845451421133453930259596411215411554569178213334087555810291792750922235395127762928840305477497529436129543433919178929202421995437612390048187852452181956098777380639197399689091227888452631361880702974020474849299232137757417746626813135553844557600358413015192113229443998364095004233949929211028203679772508517768479040996174174097556980122510211704640909039444464334336239359040978147226193314400953633628676147227947716313794348874161168567901038411909779964669318874042469782952647497665021610804841593611927716237146772167692395448161960831249207708111723302209650044002192346699157097446572752689022573541100359567366303267380157016676745717750250967518285125188153124258570791569195077515269207887808479313475235473397043697290171834196109775317797389350663678950605973279410423945591095231465420684490119522618657650472323735823901997959471303435864731168775450315110558172644847453041280874077409563598646062133653949406023932937286976148298005358886630628089896707260033514361233647943789665616804383853242061275066986884085139513566789599204650370458128449735692353380350274231682308430851228765459328372184012772910809079180183764547424649214529649671126651760450764600341848776918447056106895958258313015583708270379005077883403337311897517936218416515173043315756811574202951948223252479717383626590080862868735825553971110580893089579321844346301177634043621736157720025053073332063283084875655258759760673527756676540756892984367498792695625925983020720669897992356743323221761256006470806583344130234449677336691576344971836032894161320549174862659778710456143591086475750507844566459789068163152403315929439991515262269507006794332912218902550302517660910414754547723274611876006365887807618816883211821168444154780355928470701868794174908164147027651685610994897510076961533106750994661553085488029626571400366576336243938554167050419984717797777815691638332770526119216403825820788874344961813956139657473448981670560693230132461622854624986299636012262359482278280070969079756778343383336568454088851350923305434003005631853775504256404995199785520530721546793500346648967289982304264948538336167163931936676056714547297908762620155585719497377646371935545110524192916878764954261616860337847029652160682219906048601840405322323788581136032641246931228161065237330006936360607437396395230328992610611191911699913163976314455333833961324290256336754252545984009658598901388907550607656207366589985072111520354642401006380539048912104459837621453829875046038311958124037687859907305445237565145927216012416001653050276178242412096161402035057957828036693383211242379182468914039991482892310978282224011898059229346107811072752034127393746454591142451144658248087658228913395158024179251484814064251875251444897487476789942954692695794531986068227366674997818463407128215966126633389618652770406909373323666433837503580441208961730016182999624732985360555974505569189655886627944354096434708627761846366162534951812623620738149557054974793526180066731021760754832108647098681466251227578740464558224140269828823171665838086215453232933730884572725668963445594255921013071244943276122420483435710151920508765690841538454341033027428511856818388083250883696854863870531578398004535591504100153967528052634835611751317370014847233872425249222325420698468153295245340782472803377047238885277612675470593053139392347220976569215117265465607689208033852982485166512174150845404116068458642023358161107011537038405152571157013409016725035894968290240330938169617261680185337299412529979646717600570729161565800325590696722038196893718948896200938705766504042111626759945841689828619816818464388628688027496523221947884484339779575116232586972784397508924600676873765005936698770066507110859896140859735652048587397324902710702847721694633787072092171119464167738296807456894342933015579541106495173840379125942524932167543909174710773939498786573953126791778499683933492647033915850018841569406382045437868127190619299439287388156770660774432497433832934153046834513794834785148603857647157709980517391489020163646574286548951719053250537543349488630802275406628910112858398317151447365167292661051551963151544033280099276269176232960129083913012859206877288805676982312159008681587443094242262860316907506998239164845103941482253567150366665350490494883899286277582104843152500264654834650807520076384216895681752245251480104518383246886103019682838808548690181794077890280050564859332962505017681912185987520157858884693031918928222498536964988243282896224310274785737336678866970718886863570245898789658934625591500648918631565058428107706027221668587623326971903069708321484295870085569584186596424986280172827348710652691186021487912252890247145274136798528110946745954062127353774368612397067979137922856820344511401022596370467143850568921143356040430712255244271023617120991245264532097337580511920205367294918290820781607233109448168213473316256772617986436030444425452323058901806122188603769200739217014722084934889021496217721681898264546521657680593936191671189874157878490857857172829761634778567999858550434961007026174430030835114141498025612473360937253537776652687261872005212134781600784209526287431671212185829213524049084232015534623446720488818189217210470253021641634539765867944812910875803469644271218532164776418411563090450776532538385233658005585730578578124222709393383068706601675651664058491191154172616040031782202465022968156231432211897987790763357912163621899251249844939763142273166884812806538598228117057874809020979568626779994658086522137468458823943270876522810419709023725518799787153583221034092861883868053203278108062011452257169667458623038765873497659093911709336717587506856190136580557133430102204763407907947249108980942579651953654288214117247724443960888219541598406182014702357248274756957238024506056037322659384990536911344366676549149867716005797722980952607436266830840849483501884997879924556470865208914089001675875224206506476700986962557162265206293942593390260447756625819908998684211131233301639650961228428290478868168852416182639487329112304923880969100445258312285669183152084560872144602401809789443087644550996966781408190313771857306381919905039530339464486135333752256743168670457338999048845156737732102457874615010760415679586100076666658007384895936006220628150708483766936137966699112345282423375887789116587503624285910446015401719975502497510733869211048167475255117190384894168058342985004748920887386405512930395150757144687766700103709974423620113269920123456306091358648819289928366255890706650502263761167616787984436600624524373492438090618525812692780309501756932545684245859862870488139282315250304508698406118714449467317427921373464144318990111554139813423673193173369329659993748327057301075773347592279277771169048001103191851210772022628409347461529851333778258226570164953337217595114069707604599705034663655302007606642658546998551205666080219757099436369632004782708972272770499868033255285146086704782700523807364831991487494463427207321854681084489061715697927320495444249288847947428078138384625691762171991658818117917302239470850824577670681430109615432475030081652381273844817159606749359702078847782090351797306224508802751909113842265820570567552548408732057727556990343985978248740628675849164559228417376090796427868871612727635060847702493646240833929155328090346042522810606046675498495285308949452810875095125831446405724560920902263681318561232368281318221779585274960660973782689322400025131698799578629791346091913409889894784852265946261677252114076412929296913135775125951217126264207354824573885185292036234475205904588024017519220628206997206373882948755603054914295693140151545342591923060906946215977674824704312203329494894896537133457876036411795533038917088090099357080282570213937823916892061679921039022904551035217616307567222165043798411990060167868948450075503452589885219968172450238057360780651693822007204553747230438150286962298789934305024179820262102512508141743887143917601618508122369731413746756765234643728224222610890907688140024881138325146652192228618449706183673606064584679050742636276311525734538482668068555100955948875953904689979822821542042436295534009121196768930098120009308828100143069331304053303170309578451304503896871582828876663448696288485872814094870982949382349002345217615144083513801525129668121006869032357374334886499000276861364901277889967554406320214185329492953819964972875445858056283188172696531670900936047294206455831761158366786647856504530780521053662185793476553067550822991654146492839905502725891887231185527036115117779596033001169598283324549873333048367229213638444803625914612118412269960387627496571034209776401218241189971932726474235356359221146436402657039348439103750976112222051218206453328310842168204537891071777070579819662337123485363653259724628875320937730819556192434327113280186966089608664248847015602799481900510351108091518648118849851815876746077912856646229023380624350504352335313881337400626388294524998832645892403204733370782360033738866963418742562175902058671990184498832000531767575006627352978461706580809889977491406515673731656876882968043369230791003786101623540438192243610110832151051547167627684574679688866370776727628810300428615877632368188463752728795621907168321952791509493990326182456829052535363444067238072683752497638687364255799895400102796790270207307525826545073005321528210442136381906945868121292564709891865125917011703466740440193346300354822845291164202187342997257623185588278788885174976461527361131533417438616857271413596699138886229123854476185801064265031077916575512965092735894195137743298812686727908036133455193534211270438061255240971209100205915664110639335271037436408122949550574389029134277947268571163339500521330209697991723269541307569186976995045848928985365161755293797352971922154683471589602664400606516282658576068769255770306418469219580765617311165805150018396447909434341510410786771264239600190763460056866561578499969254160170472684726121965174201856060179107328586018841899476982465416577764154600095330916563380454996432896741131507186943215102336661594925273163644216826079494449757377828344146042576529361203661251073714608307240188263403725624840458286876515169717580205632442902357748661930750907314739242122676479383867089570335093031086726083433888641357338896668757883419835945265130893885152938055754837801684727633652835326692714903841379727342854782723997624175555307078222738637900226912204391101133539978550037665616367619651803628198594729464048959184293264949323666797344950860746097143885228651545027659098836694355004183053904161930147868441483255906305706572244147867763763588799711408804890115380797643104674087462229253046672773074939697138956425434589437908938112756283583231094578899457513812276491099441052267606713547667044055787091328373690899839554298360740782235955646134205138212717309980291777112976606800046553279256066558052769158980057287299331597790772292909167657865947417283536091344741431119338742548442285271214607646180726424432602447058794022519840591756109230080805439363454336304678218544294807124867247584962023172684320775959311160836000777758222114099785244903071300041102345862724687733330492659543817527021274164304939564750392940810685274091970277990804676022429468017342998609418024569684643889551236414711192774072865459617638772277623784434139790003942519430420352012764400187288787110352565417284094572499666139439334773428783794519564339486298105196940560799416105593762800336842138912271373120611327443045816617177044139795175953329589167131044711913738049280424609458636789764587687517853285887743227782476344356017935208814794619323468045712485986209243793019511644690254187379768043844595901806400408685153977341982177572777355813482540788378668375750453419758530420553677847131711505929555819173346740264090918676219966238869799939938496657663819040008669323099556434067892374289396029776758168271837060054759864729911118619699875394214701501332840668106379251006067970647804909575887275588013860887936858149236073101057997196426851552827791979584170012470357822866821870465843341950650378278518300681681447256399385209224503235569083916075129387848786785222115149911589330175923824024745861731935807353713671909344749614044793321057596762950478392366234369129513672822289722713691965279729579142345075348247086785363600833953927570737837797138243041274535496920363443696052979616106745387944737058371653094434222202335697976952201678152717777623920070466259316014413626586294714615866380011331603155009514599714497514200188330977209462458222297209223764832863316646607147126205120704998741226899935266901456213583745105775481836542369842921211578697240091185667576685346788471548939664992264164930659044067102430753673589371505008616744150905063748876170129500891490429862546330153751864613621946122319465982499449709387017083796165615120032527203751732605900942515060968330482023668801073708592438941471298251233782542490702797380900246109489700464259718900881405941550149314673578397307831738371161257094333807183535962396217041245342532556796423626335765960143319538945194078400291667856385562212437417526336034119889640161602918219715791949190439684108306782996482096006085229221002863628080663580373389231512491940915348194451008961026960006335535852135633185254171267100228618075058599999600716465784972930734768185210394700029528654389243443836455938062924740294589585752625569966551811854847234052603772482850151141095716360433417053470399308185038361575187313075836756261751823407359005043101468984610781827087511883815598419172210233003248369026759894079713036089606777856424852988276151182903156348847756535060776545798904013317076557925456180134484965224806090230811290425359396728860140466321102863635796627621159505945142362221319271052349379034617336493306506486140879088592813434091035064340060787148589080707385867052917995241900401908091796073845143859283707400717524250602170724128247198312849219931763689678126224457121215511820280025989466699224353180835594099476568968186956619296616073571338831644006501980248884356260636942457612108374839698867370790692991330679543160367003746176966320188948837988142607518604815625689896408679152376278733887300598238753599638925590367622779476075397006755456079017643366680157141253081366967034396014062200491585332730258111447932816894832186746959070529956986983631646286873265250599916155834590680733130708867423364371513340406091083456794995368338755941427719714177401454779042778157861899598072620104053381580417954039003327595142126716666247190674689435576045594808455621278564785101267858863890366899141188778102584836010887240048120800959174854759699004379635296579863893742244281052949100663360839784283445272929853701549498936542162108529710066549940603947180150442612362088953154088324661008832568738374708027708799838724524027328730447841940828386287247395148281133853307838399458555691515013294724458134923179295988079190011342493398505477883099260958888714834479204827791438426691625365797755226147312666614260973167100879223976480674290021641059827794101048964945697643407098642194494264919773617250489354666953196092095397383144023670969399023531942615774196902851576773267596991671566257222504160894649906862759828113881329528138040037783404003149928576739705418548087421834956809228742550721337384193585263591253888719672730029894909788569229830171228980889895117514783044273834597294073971656804325308874898598819442108104493233161864894571254617270353966229675368670354785267405696663770468581488859656831580167540309729851789325370052072089982767427712667652362447382377524403801252531475436624989433635376955156653094944047337537545892217077690947531169330287762063618737335453646393222037758182667536074116872933287194270853347332146652068894122417528712882506758031708494955181858164532770907563772162716316892145617662173807531789627188613906652784193006600656216455833098621750640773088442188398929595594974145066295929437408780888431800556568959844377888282088254917349927855755898801809552986307008766794447809176143677033105225869657119155158929989074211706645813487310112568673292867222294464110129309691201829464580024059590755853869459839346990456417435274553570853621821452544745043366085361150415949401918243719277505081106057664639462906681623713544890737993470573056853292767438673759229456891402100121943947083266378751112272924573014092455733552165031596106252756864635228975040102772174828504701490103702141541153577012527806464593058899990640190965131550453289896096586714281742933004442144727659116105647563372228131574923777369503100832916707698133999089594718719884503164709773951324516256480884016118719543724789501164113529084642898790333272545896703991136599196477909447044991075661731833666590099786145283171133621248383832936780626455961011536751227490108050175552006949351255102826457133463181318338515393653652517089083965646677499129842972806991592650692321862143719697803185731830207056747187842352095764099869396045483872812262974789720833013975147990714987797391247553623253934147885920872099347043075401711414595718396926486496679096363945647661060663203628244612428363851650761177714203965346997345626061960476133392455029449160719739745845154027661761917744966462525747809927441221883164723080717310383314854185583635441777055920377272893025277132756670072060163549130172900608943846173558578505263390870732184191445484336315729816314031390250759124817725392028514628738781783201737634334528583645524558979535074606001708687517013147951514178795988300345917860915173052570868471456118991292479809469757820837423927947770937907196640882537600056876585456262194811742585327157501917304101605600034414859645129489253190108485688206590491411260231779232666035095261584735533188551485262260486290496370443874864604691789333932517243881613559192374850049394302344450882647138886345823919939317464571663447468941773324322920651551895238668664053285769933555228648141552021673787688256295617345727600045037407785131128937584667806137852464128038531243367370665094166095357322085751677635388256132406028887290571043600319626857260142581875599216839410375305277848177399384264659178318872545930794137342532452546450050251879893286613386458602613219740644190313145568240329603527778554525667239636842354011773924770525381609061086959491768527512729095183837155509653112249975325565810446468364810897399060395271937591837959600618556941746614254866020140906751707289139362246356413528286882649209130616247303001703410177204098265313665703497130694316690434613415058777261270299175849541389049404315576367423426111971795686053211048891246852341044723070937524368157260307839883189591805365548994578335677407514961026271119931620638687048046976572831046542101028834224946418461767191075070810284690448218225343323600132438966416366721695007197686092136451154667312571980068808404743136347839563783727273077824997229370050288202729068754166531435348868346942350666414718807487220890381776257624306909469723470977389573399559211175309007925606492573560225752710108690332202248465964083714161272344886492064955773216527872464004735203152381852728443724916161623068826916158029883852001430323489652892603253727161751614751535735925562910498762861681783720033120884527725955127324446410378662066794815238573275862611425451631592801864983093951796830327430954730148632960236198399373678129027944176146179385173822169626410910016190009582050106285986137088136704542595273736502587719366344379395617107214550937348230140177307754964786060278795097002310554574796843994339276880407807186969465184763001626873127988207669648534567625745455408013271662441410614450313060012341812739122270256632610368940283412419141006828854022876390744158612171116615940117052895112708810896289853784658821919754869789226800692231819229114604856257551424880174702453142248140661206163953533589316922181174948414530205806733347769462488346590693433490180670443474349553526842991520225288168703970150599515501523848918499089518907962455276882920357114023680883695599043373887478691473434715720167915460472729557860472995188259013921650654585176378159795266519394738653403451710732562274125471274214738636646831529075980517580409367649629318705247705216809078420751032292600935994476209428493922758750754529836547066241667560025336466652256066440992850346068924501427394871876300608775985770634777216294056712030034456689312825294688156159681826053957318489304481741338589709594076116102727880598983334251993024182149674265798893375448586874131772406191967473156492969873006809788528782413962878197293619151281012657595525477843767472812760741812743591120032386517563824995566639719055704129975125417987632614368008453821909192028415757298473650603844310218412143324015577881495175020649456090213249173566384730661962616753274591781994153192356711189453278605561864914462639197021710782977631862039507905729965518780140466719430082250238411652582049158426914779903925319358112746210191840959239609728373345457076297092054508819288247894569964456893584707845957403010213743568379216614380078700827157343168579292575206124815044194644694614625253008106220969682480232929587812267327230200789902871483618316786095846416450077486710852855288032164053996887525808162530644133047839834563747389700937337085875107875269508407020383863054875644942462688305761385749845777802566086443740172250788943778295944095227247368305373733449710882483832878451880273307451069290875550527882379013174486626487181977003637063606780502977388481755887024327233662991118294486774261781751337694223613559801888156322925318253776156813037523347819764709486005130644745101576292888726437353387637471434432768002439781836426988334442891176466214050413036762789479239460668809103622897366646896878214055378696827815345393166024910953867593335680310229560974292033283665629086993198662692877876320033085117038240351018127617611828330760446452852156450171586618028494541118603049843994724499677708889203922374194120386695662647256003870361297010876989404540422643250003596629213698373442481250563330653736738528658508502563092457394716419040673091669917714933977414635911320226586212759302838451593924709813842617266629992156251620994250072689324404686276947619117152457175823866103296535773668671482114867399487562379858563584239966891913972828076541234334345335354399824406527933047146439300938441543789348554521097499456772186975051505653433936378991183607438190698517860940602999521876036155322207414726972853331385687109439213347683641537989133973780562581768693758371735378980299501099935002515027584649181050574744165766819268504289625566307694575924939645640827310395695499688160875777613045249359804408724144709826043707779225789797851415863908146998939066789172471484490817977583045007762794062572288410184443268005789054676710231107657754145923810811390806440806796968088371916717600335807870132608486827807809474808270685282638207017166107270629077956177009378747129067628647696246979619839754894042363103885327856823441301365617271387944727743147987949053611452824016572523559699569613374027246924839691892001618627262879094670538099913705787667695199423876201383853540078899264941973429266404530165168419562727414837787597520240083861569168581506696956398045240996578054832913728218504135221256596155161997487750649242672313276579033252160704390219605071974699166615166649720610385919882424050155033783516221861754223081320289521810466348821461290278099884696747107782494684609814120071857079201139619299719673784025971404093989540382856363814786625066438824752144630321533465033614846748918028060408554642227620074732154003081044693593338273975404635207782558871690340238480891666535617804795305352073511137208532031995333304688530361046877619228020638385672395544618894504810979088110324049610738784509125160166703313349444627221749640588450255538001876350847657915715422053677482687865862091056305545848079857295876261581224568828188587534131513819120067238391439638867427653809004276865659313158959208468738867158325951853992279974126918123457246642906267649340324065611286544252341764818675499922475970894656275098247198454969164361186836687891337867226355271433593423454296858534654415431358847654090791819171082543860837711795809971451936876600588086223144233098208463754886639010285774993239937753031123386745951930151165789146879793480799056557711007322493683647503313221868565103911937952851015826042698202154424282217645373524025985801703866543209955941895082628419048681182929654022801606831433400426496691050391356044789787603482534753709752077924260760942375634301323999968157300895425952066256842533975413820293141283210185031110153604888915181747486181918739229700638753020017310588343494575225459487021760968723883176126550274364766833188465511780140545957523882963247890030553724994416686798950707889053881477958235781540680473478672228775158597496596543500311313993759860508683860366106335811013621310709397881211411184352340642083583285062548510232828636682817498315359074736729554865742358487729889755106247271511922300058797196464774903076239790879067243204358679269875337334013827887076265433959662361503245863504630506008128792585366433740886058856749978439993197110549077289249113612173963860175319736366061555305669802949665395494025362230038563160222820555696803593120530899400567195715723753361032569810321426318128115659741185481798400835087988230538853332358652112594854857247252416606148025303346873335220385154845649866113050006000570656138867014937172677286297741017157637106982655633062357881516284181423413181037818410052297946991230929704200302491487510669506885338278075401523630377695314239813812096828672916988690298713205570853740752378831004266372902671179790680709632281676204736643155288691827072221206162535931257432507280279902467732035808245036107790337581976784771476830934835007713156025972573619408836202065250373733930033500014753801557170597981089894726809325181136889883251888545658285483825219551648547774012277920344227790273874591355811918383159693997288073745757973673906510902308773612125837356335417653511586771474480455194190265866014485055663574670718651760329967264564813274435696015125241413201749770294311053634588900924559818310975091079233012843808934874249065471004297345354919434251971234829770783678417240854358466054482173603553750657379714791853603678693477245555497592984319001274633431041087946659761277448707893652789860839383142880633719247493317927931023313086373592521436951318720942540014242046821969198455772671993160612746724283895315849936985559374618793768847570526761987364398128826336402772307200760896557207996303880920111074932783697723781378559911341384986945085583368441407688866702524609057858677011599902795363600082270554053691213713412918789782575898290737597840631362622501828386911637221804075152303542926871309414872416397053478765994004381270640663209606565762735524240806188173541408494725193655642948362010061856939837961191750951298690437240442338143989850889018794024485297844556891720482435017075771549867710135853583648463417795036622718749632507045745464356044985683259469186161637030563095954590698270734605794949372962728737459049836955363107984138473496923298565719892155226075934806957545393393409856496902591330062397974933908131143550307816575437874700060462569357798711608087838407541487301256587035482360126575752094684587563651577766429604558640175167069974588724208269900490487902482321489438958930450876087783913926539584807573353891355826054595249950026295886458540568879545407323407777475920312796673532591007857824806216172181447994248141532059098663218643226821746190547668707341893052938169652030580493527971868202396942586655276528251346180170341058303076520032391628014552978774446480320228800317954542898823299327012986359148989826725409033150704925917378466850406556485442488221073185717948977229443541223431929140867770321970712474654740681348604586983294333291975355986177849092994512406062257282153242808332331469861851020853021336105496454974926231078596430665460634016370334385350223870333595949219473809500360601005220029733612937598763716248877796876507828536985769078937751204108417666659256018811455381341770420658080716695105620378350534552214264930175608146487544071973317345306460711103007403144368721714195559646409853234869297139027221669211412835680142174429541993529947589810833251683823242486222522469481885096305018459712884578067588418287041166626437265860580351998072490972694827959871567918722572430529777461338207154035591169746271791349433691915493041242106314252369487813478309153952826437264948142861726756374105923635416131722785992681653802947154464439812007737378131108487192018921911788148833548262168059108706137047797703833824499208285405686767419871583280742253472002930744228102959679923377282645572563519675926812226277675571747937301087785562403473595948430469778467288488710392996682960732681767115317924289387036465075764720159483091441845939266939480362160623936155590357993271085210337677605618383577625423461733974699804057436143817398369274130474453543388029654210956651813551330897225818544158788028287589919097279723266712637772040000500024470159332228907076747376589034408014038501475906622292806558389552094110350774841136021574747224688796301176530448620492939038728285633917470799518270500818823128738168781172942276879947371271439278197016942817860537740166736457603729531427977551220181375155235068448725331017111582938404949632321546826592038754650946830162325518894670477240570781182722069241349030417095100974796207614486301287518558886242309306440169910479123539889666270341939011886604564972522822017042622400215313871843740754636009475778425587972638130104889018363728641661877717164736575976269297332386951514223006673827291764027168220650410110284667099582033490777341068551575359649706192250407464292049330498685514592757009328224425081610953615939664794198964983215392992114085568470550440507457742898696160669593829278531558644259079362932742643321598710289649407557115150908547049343958313037463316509789338103117898984555064008888764630006531885187048708914059220638459091852147657270711172420182799824006775138013227574991230837261173567134830951882812373588294667940765665656426593842216425558861346650489147731196639817633892061412126441041922133709768457341960267620681936703270817607305561048163855803694280333750138902341737683303590389043760515873907146206497692610615878219768773788344013524188261541734571678130514213122786474004055952372825280053814731517999092048547743080403446878746456562998849223185158027171149559753590091560281284338015311106637211627490310125385557103284512774431359792082256849703019280094181858125058954843294119917679928042551633480401589736465052559830456655239045622780291923877759267884883729656298958195532577006250857892819312693332084599524620857803074461427063094068649269270476037434131971273483727252258215437047663081237974030844780823899802224499630314374331388820287782568736629287741379370196140695545332326900895678340719393797679519770011986460067667816479310433779242058509399203924649670453611395620639051258311933501378393927581078572427920170698334316966130058918943493643540721061831917465513677295537354140621160870607986196009821440143807651115941754826582434791251760635377102126328929628717905682753110845175715837139935637359016208109624628766207369978164521493625055969858859634727628910519620410597410122779257828656894271447342953678578807617969527767998724926157932725294215651974301363255816150449905974523102555701092205950026274739149080625051219732571620072470085735224076681993244970393134507595057541192360049781018449185472509046264272290251285931694139310048174942246669921919404528177578592650605441998947491770753290396243564849564019654892238255254319026289451429784408084597706426393347413230006174667848418871659876318649416532487872233593755083853190891260770764076030613270622416278921129168445127116114064646080148371257454013654886691877627973622986910114595208329071851490767008889619741490899491426593215090183249121520813379712794823757027570581845676492692968648247062073310809763154196859653688628403199370413392121160991471161248755871290367161570112874637499014294721672564384304985653461973705312180172636862589668594059155999709279278855043425601681915152467543077121340202630950729137482780389231498317154909671374941268188435323168868106317807843443305053419977436096951961602282973988342904709616381000869720613098114237837030554973186198828814232104215501703088812100911937190316666939092324162804973551742215522924166816414680860748976577420297913785383147424610526427033867647134329741663947706409189091731316220852816523416582766427187409628780771638729196845553224624466533805009194737774990385037930084081650662831328853999724755463917203147312898335637374740348290062915525980436025843738203744064403100717845979240855747902326600018574857845333877694730237848542423072989903764151913436015575536924002942103231139722075890132445415157166690388032016117203266187205442614427363030406659930642323251085645734321446690016440369318416329157092859591306218379949538239895235066546707966648194940232705385844430664959500527896655802577257196054265254305025906348578624426870404424875964313641018971447245901848722550167941170060212081122774644530436842642241315991355921751898406312719447601959038893255024772327995267043742732785196836084005627794872065702826167922252728238924777980714151763565128978233272543960111754492899722452759881460568152383054075143668674276308633760924478060640332701304025480656598160998893364154781534914647912639431774562858420900837986300088414074918091628296001414834042097505015352837209299588596225211530824403868700162609946097601563453418573718647843198070374024586337157856914524862930940401387949940836901462605575369359738476696192701948635729131677200647261633023676931833192181015903472114180632870260350316107714691368205883728775901731884867455587015406535671075512408026246049514291421201276569113059412689549144870371982312894827963925800524398915467702555731284116225162485644136783181444505974268813418180530959192194891891098595930117043180710372376903007346802816522820035380526853063674049269126629203173427926989294918914243859768198707554244921172270103230101580478037239323999467556680345592147699035077899493096105707888030877105625855387980192581880302757373590280075807563653551962541173485668866741901688572818481029636118084355708028170083829355314167590623934548137932375294244747377771593825785779621384014392083923917531318462773581709050480255180180003491299377467140431398651685317366688645001684810129345883239384828279318183900110321772981379101675180016493068684339944330351677509553685577062070925207814298729480735849507989110241705030657584276073359180799774985338513409648123509270066374520121690670856271920115272545332574633518341190947211789150997550064385573415701135144696456761084253802046494682454886886014585612600630835117826795465155791423157592223784968694694766916594375269921337362048019063082904535491268483574767945496513408400645415638275250550698110386932859456478329080161784654686547010461199743189424543759854936591411985038827252344451091691726857922912893695215666034856955582200755619500094504355467795464674357638596416825811325914104129764514628103071656459301140105465926159920633559371566844942348725226227265642958810025890460988770458584749242472253532893696026606598768004911593927886958165022923433285089205900009745124141849880394616226822266661170250713441412172612343160035462578967206880367399714988340669765213390342684701285940119722236723914222026169380765228338576303136272862547297567050973438321669994792253550704772502974545614040697093283558394023170847407933956254638826925181964661211973081298606269135260342780278745268089798862717112602158345695194048556270031203058623041909657397662404724112023849883195674084787524956074219386206605827094112808788260849814943834800139213966475927616543246169220859153930494094765065757098261661380481083866950541197873559431975476249633623313910691609120252910648721796525729307211127114350160820970256002062020802835815895192674729065877467153310491128219672401092305834488804310424563339424747855748376919571446701656636508859936766704688263244696009932409959917907966378257925373747617902191694091014590238371142919010766268039270579123219819886354973398649499730639827275695322818399192027461123337675947745753239660523573306269932633921432914835190966990122143959934550871261245683630452263911521049337163361383453553848000229284418987944946737010860455297911868282516811503926104798552369291911744956500602332192825104381688117700532250818550006141909003096760990309931185545932954085538384850724564562858888307378245372991711514016063335052130907037944301011044118087964008423705636887661697872998719150371077194418848233954915550997202075356096426282248930284028283017740368359844251189431934541414984615601308879801660778886623472382988975630468114539326322832124519728132297036926445387454083364898631177268859066739152325320699003385149295684165692520201403634375188471849594315439911242696610542320890417116741879533986784318637715891479252471787936252708802845600627451402270903402018804368310324234643142569146652646087198245662729545720774979045330858700993208775185862730894625409871471253898770707596525122427742015765578313807374077571724210104443151958348107452200097692891592809617115399194665080525999640792564721929269657873852577676891097570728696016393566011243633917294150880787263717905129161133368211232365611084473868772181218677360102970945439139715599815404962574071371995060949300690269322427830907310585432007957391921484492502406938745496050936170013387568363602012846153051593153962795506873309438284860394430360902455291716552679544737745942592011580070428728036242688646607094490154168226649732720642734595073101558466915057928973632878053039309719652935570930086230868389133315950679835450746411561148215688658342711369656918414050331685367842646067047906208551621122812637869383047305443254323918707718148131528269483138554946293846693371781307712516900339894745331552153801269360149335753286813601804561977793152199386815851893459424748184568479429409694623093093915714343844795902660710044612465004777085155175062679837404286447188487659975733388677047211149343431721063015121449704499844186075574575881032275771727595927785886290277253169414735974942251306629621077326262669936224238354300132535759927934800531306249425231949319107624460277914057730199572052952490637218140964614490997432071436033482269860004443594699024298892848904407778642496107081355537890356446687272914362781228211018342687348446734732010675051705766494167793238683079439448683503435994797805566099440017819075301104549210450467117034036322599135212612578986927852046096362578461835157152272408267421676954803817789439856590087974966845503962074680854286655980334996929548923571953133039130505101389828965150723518681111823456742618190828874161884586528018131455849939986592686953312435207100000745378766308265905193933502581383347351649337366706210907562545290713289175559076396036941736495371350159573677169147028172822346982756302959645282155993516535833743392946959233436350204150714947495127629279441979963114062999794472207691296848000069726478028959396479999513574017679185410892495073933203104905035898337516156898553978524593940752495930358478519549171513846016028531919516520739539114225087818305780016943448746105891707363849461185255195451223295394079018027094682281158591868917901138969971456915948434299490969896486665799395186190260809560524106908063171879538546238326682007385338548196213122955478771387429055363591778900896099609635778517604336230528978728804754879783396389867794562597345435978306581991383902709605582409450447698222759478862452261624406379020838198342295490121583889154236934749017572264783270212285264627852356774108288164336999599174072476229204980623001594780722141246303985362932959724329738899477454909223962565697596374793016885166674515287881221324308469231220093078324627409575028105250681262107730813833630931278805476718369276810224051608795061717691532196780335279127100854297648121253253527862960679031400352611250894213702205127804916239460068552349938268929005388429968870138471670929123817723510377942269667430593825628788477808014902653292881344090832928643996839668315895514561188607654550386343980438431757479000931363241151401500493005725169456301323191327103320713704748721738815010187952231983107126066930105928393254313320070123416024892410061352769768223036125245112836935862059013069749120308057042520232403627510436115771719449037709730920716359236981644369361022478010757804100614551001272064952042901649436813921700609700371886405185720802604768495696181709637932559934115087325779901234242541004500865478628349408786019677985806235012762648060187052625842480242324388342947193549939916167883912033723853226512673775034167358230513797902041273700912951349919865622614912560700156179225475095690765563015935271119095834143435436943568197086646771676227210232683459437219094624309511341030655382763718526721807372943361682045755509820414542530127697830965269222558053625519908999926434437141578455324061702020229229582071181999747298821994653238031415436565317079666109362593162972039219019312383196614903642367706727881850346372732471096957925744926794293519708378071166433042563292486337173547884754263149990048642294961720218814197285024702423589819731264695717808284921811624071177081780138227966972381587475145968139513318499526313340674622672822486146018235856657946838265745225879870441501489700595271233041159584191970319552823201653383676105799074558098099018148445751080172375408327776889536519233519397439548126360195228402315965893472570023094695106567086872202371824465203281541218809094896191660448875653620230586446070330887713402586660367351580101917271494894916404799691837470605443440524396164476863695847502707786121286565028741873927680798814468670285070247872039879414226033736531417341662467737848372397337417135916212717801201195574551493983054870265432898587142552200442665324945189037208990774267677107778745079263332612939982430388567078136550636158205395781860395543303479844311378601871131716602600677793077130741570415957835879910481545596721257899037620496537493338485426567900396108337704674716017488347170504880144437946736768888139443638957683620015158517655852188293682804784783737013811730829503364444557966284832309477946131301206828865554963343847491065368617157883716735868565500121391505019577212886080259895981936834963491491358182174604660982461395875821374806889508698827373380780190829182686177766411102168906263797985265454834237758742480933271938044084891517002363721945770794929847080223343187681018675970060221629674800792188635215119940075588997012470688254288150565504062647655665045900082031432067590555492374698164861012131880032752302146145145730030566853152438352282779370415915296372691962153303463632342091054196433482370670632926951109343801980228307882011751458923252351008187592163158622051842900103494441030742001948365132701159127480300053985804768716274416818870590004156419015978696111038252365820468240463206425617836102724291911166922917235599997589773904390163870784421200159038069257155545431779086289982932234937921099775119060744370603898076716502130642063041171794563660260246896097829555161672260938982934051720376641062619518169198535351152880090652578986195754209564274299030879219057674864203033818866956724659315323398501911923107614399989420600817757325638630587875952545322239166137757012904093241689719335841698406988297253761511858673308888067417966164931914038998125791322249547195749826987161545201360800118440678150191123872366814773787812335682024469237346882121679022444924327141344038344421431309083357583248229257085501202585502569208753571287710202736483548003506564371155173870364211606442848898001440698164038990453249900379063837166036466255459040926939399142792376308190205693612817690638422242132084711659586982351093718428752980354583521590350760455417317396177906585707492308989972895092643474973029144807817559701732200590698836447857101223317182983093445034470746342363175952160189943204252267105593241313383004897292611489269658416641885448472976896455509479413970654259935220267874627046092282266916779776298401506639132773558127513908705509266154879441045146460901756113442013484931823523892264096340178634840538795838805605789518562144497211832378600410727445096936170127460284638435661997836567580896750264176415052787919085547081361804663094141270201631267463025060219075595509464488622625835111024831519831069721229706445450403475127588828967379834030918858000663958397695037221824235672341618171953880579060578661928927736219991382979733513465915749265961310013490047333315329914567395166092099902270402038555606413868375329583464136777352507532644181574057198338921965789568377312188528746852552714906807974878605836949118534353563879265028279437893755094495959523656338564975929555693641290865283529681248112327939999919358262505032752542616772119178982531563385202132461218502043221959489201752706555399213363931289458233547284654609238167582101036897140866626876326013549276253181636814453703632333014257793253631534753788690155054836736784408143751579816808552327864807267639164448363369825939082350546645312314596516368603745786625504138407207720247168121649129650133224193139944464428304380433038600889602306062583009116903587606677610245501609698635038525420586600499287939633569140500510024540375631409046648271200121918250054517877587828929973676833854923198673146861359567791922161001150529375988301058011836881650912099642546982108870218793802477241612983457580334636642912002121034011265891236529950328992403330429307671972759042149128014079294203478259203228776905965071399855469619818011396999585909753825249940532344865147858964647496840717441434515154544090113599308720940899552396518598661450025556901166726568807135750500221945937926601863313185064028854441892576390769057249570138971077411547675463283629067607937964394794274865949404217088802770753904792332090184504007281224203743534827033293240288559922665408751212151547808360962587591774767524707645675346484496834094988972616724597939407345913407979920851509084922377586887965004618124400589864771343133442619732063848136918551969547113918656466346802535585336066265760489876968951231421900100898898414085869699048668446340761594907906470169840915592837876390579256149036847739297157148451991550292154896395054570785260613025059849175024618883911607096254108538705682323084488799168696741886674342784504623498519903180339023275091167303557325826547503818350637550892400229457761690174104967645641274891838116599576566449185467158005723571764135899046397009293087200052573410846357883183880395532363550059580303007996100215432675821477905811146076099824352126017543048806196276152868374791973028479321622480784556537866468454668630378528367611327231908832736333634277040514595809821921576358472947445362873805583442775870289254407601756105163643341651404495487158716560993064611047314753736015677849061530036871335472572612002991747405921482956628529516351277440161909516827689322801764852732247821187407167792838825585357027518741694723423538848138682045343120481098739519342832106046717269527051922353758692197473954443502489934853281271256544440557999253933290646516339768083151778972506548797530489417869626409045162167507667618141743953911615000217469565365254557628705462492346485246622557823842105441277367226333636665203114498255680911003859190585712707412360979317140746317408565262720725616867470265169095946808867472886978330573904231595095485089958311336978526080230726772237514626530050212095834179538931460098135222914493777473296016099930187472764028824620825793206883902074922266827303484631924480656917851482166648355430246310978029926941872364300790786479773114355486297449260699040809243051855270117496620988054289800190088282367323509070713557353744658091131849249438661783276467167053972672344679613745624223682738146479903934616205969276263073104557738122601829421657296427274507420800699318594918946730990631268443333610552820011671724850674321070378644651792255559780544299831931264152264980482049664191106597835048471220578551249492960622751958781595544356240104280224023985150662820902175966375904907351916479656405193544789980514755618901878135967003347711901276845664908130871239918606944068154044382810095537119508474477309260962445890816691512972213274361902037890337230220605997468238359209577935640951839701764755130121630431942146536298731276674332948318583982105755162854597954483635482904828953876027053933104027965838279556534485499111250659168349118260846040989446587956007845196386439374505847208965922473335222219667197003570094118029981426731929659066312783448581637767555874624183725709666194010716540393703646241492963114403494081258751506903405103918816472669180852051347862968254356512084900769260123051119551068904347776257899302097932050818398516115252702449410364301105973548480838190868403626550053584801648620284255811581411670210378012124215624439251338836900979040392399655319369134213851828975476303118306962240593769150084589695732379598077886768349524113384187668669590710277342101869590757720920590865454606543516185301357746023542521897670394646582392740170322989012014325113691832208935790291257662749997767893523572705489954717823412162771159065811946887111500556584378765798609292961130794214970716314449375722435751971837738391628061751773647856251174281852695145853393141946408452876753113567773496752636868408241546130725478283920847818121100006700814259287474136031631916910749012915455199881810798193746140593183077129457677553343993389421321822613638706231611951694546777225666955906888462458076177469192273910829330994737513527057134829827029642925726139393973102702247218988073383502228888657113901549500467768211548575712788229024868364749491993539059379646654474857493525521488458807378435930274713148329224695606931660039727357827937146485805399060299616245269271081557087472348931042837293695078590638282416210742944693387852247493461432561704188639219228353807292914229213901475027640608945367950654116965298704791187472741411692985810792669795661921581234397137779087262772062991561620251424378444638482473541085687570380094601079296134908545192357522725498575977904202397061872491984136269032237551233059386364430664983367260095468169944754289007964082779766483706284917738926942873178979086335779721401054609593181880625553262671129634014698106873558718025200925652577567769384979573629461828998678857339375459068368265917742108125420198122792646777963317883894582808441292899131946894491490819451665473688560599374209105651206984638115032195137197151393739338869256000010734216430504112718117530450675931995009690781813742787022883175562203753568908117615647462752135734914684687941895158441894528345149279999466030518207106161955388542087572243110083390738475530970345885176816739612685706967045095650967946791795728309848798519524951736751567068579021148702327761052485241193942120402013819599837056321627488173522182458147250211954136549428498241489145265939475415458576108868161276238652541419218424006922701827499661795541792502113536639613385670445502024991745703513611625773646129448352441142524070304163390244641365359393780151489213395237162973684899259822963048535141258612746063014082515422443354073070629604386746741925510720081699287600498805422897212766383698266113325526909872246522297470627783066170749032975524583238373179358626188367763913161277468816737390926672592735155558279882254914932808844088481382065935933945433451846607355568151176301509282656411803154420733562694751355056115802940184004366003640725759422440716619161130811346896334900615526463242569160126984106433392898831538424038023475689553248825057617703170724937208951384914771962703743697628258746571905083748384878778995347945744913893619619995644880814634296697012775976649552678458116619266773979872072174552518863198110671600828836542844828334787630867395537760461240065687569992781702960657827508531613219352841811738248583802393753312995314968934134255272435097710152214745208480781801340079118712114338026982295994853743362618250651988130581079713558138420748984050851394217331232412460355624880352968706928540528837465720794761877598221888592084541178958334337326956753474747444739212662003014053818526701368006424549782698137257118210395107784460498817007111479373479593151695394778409970398003472642081130842718501969499721933335288736119975057168261256079674691437552465368523479916699484717970409707225416202763978002189809222737288830999571456981029127444978169659165777351470978652244511686645446832877608195038640740591753221071854214670049477547517360906457447251062305313313159561442323252009569464502967436526522815991369051507874601906657469697570513460493077484993666687242524147706544793930798576535922608957647732843534412464850283315705261113307948319492905258885282405868235675417054491179870431816095804066287044960525556676462833629741287985522712307248178009865837329229925636079256649469537668418301945637374507616157843567883685161183303085365516989230569628385369500104548791868241392163383743807171813818233580043992100342091516131212908750271247012369855179232937631334174112577775753249658541478191888922004153854202166855509560069184923458839396135116540589034136654578214379372341980059999860887253187666824910412086375087426442219944831704584200705630820708225302271875773022776143930276934563786374080532409117345405539995347775556382357637182295709399283668781458865467289002495497020851690833290199662806499204764680642268176166110462572361305368819941418615611062632734656858293378071565859833040218559091726081241665669802171896592098770933197960791178996683682615610859282770576889652529112818597343768363393417927124884518258214805905060785804045928109067630266154522923775396125107887421904976014733858526491436670430928488519646939413607483154304625860554961884531407864701991383208263105909372233480269429472269184245206019282988368071352954045293583948837529378441862319881298389674347688873542152930144195603733326284155710402597463629623386991801831083739309364463798080190581759648738321762941784740313517835602216510371590283546194868145113637619165738327837206463432343746767105430228006059147749232150533483618311428370242238996416283628625567385442604587570442890364730165526194947841616681100753176110817336911601953481071176290590077646326906278709497569613185539022158721003549079092127704179410780171149001300568367257062652855585579041489024579416428603580930412188418090932993756564583445655003255069639101524251515487555550508161351897727897242663624954122794303947824804813182838937422974493693018986774725767143529697495288386912638817265289245775889709663593012127613755987473030982772410142734428802639203357197658873583250327937657820599072469969345805199677158464756111549306223256664310901660011673307000301761958046893764378074841730957445274282671286475788165160134390895187807575193812088860958765869090891237100476713502763344416373364062135672123097700847539114604139613623876844059741527789630456756866027132722357151166819839467597400556735942207421193616673062317026925945389999708566603243842492511889180351635624338315118286615476077201365034660161115375446070928006377084289110231974371596437418168855751969368593257716826894386486568789474001701047241492543630458613690724650177954389624740692976478262382607451175762897074953640867783698197876967200304690551576105044442299378309561692357945789465106390709979549932127956584914054350698370791158182244386996384810880694843332242387755691864914193188175718195643824330500483198919174974434371652178725697530286135862211873982903903711526231176087075741682050379107123975453257384744958635813783413267728360198822781493200614305340885448641487661389069435831084702492277825585148377622152761460811033349083488254989814533970164161601187708630751366033382921338317600913889561147833396748777968657617862170861009636467419428117283001388208310801607348678324320329317251483043821355370793121000151912484739210379403430153286869089366230791150964152365270360856153617037187261889066850211315534297367387571870640957583233435580753992118979224761815452838250234053026963406500319298594521683316232467179711151060181544908141379684839160340243630057615264906032037017627273385167670956780734027170424136043510823162184239540746361193434855519843095323234518825849235348121546059330584563347065160255010472290675409410625648397464331784408458302440908634461973412579793677452727283076363658537926344530576719681807350108594561724801746413439000218177403825302921400519815553917660148127088891200575847292860635326098503515876015824586303120267365392016425527074395850551993870260199223509133201445406665692075292232859090270567513247208314958433562836607598701245775758459159712568512936614656113481258235287517904167278804107312234560538270154458123322262745157511049145449990562104554660218175712476262064271756018131075355988943856931482404828218762739340534246375462342640324235124012743787345349805222349519822075274248206747456298064775890711386080172689286802905334664481734795916369996581549504204744390593394186746190281586643246505032289961368768204696942009553545307119984537903045974996966771195813965404798620705314674210881198025317708121337692340731236619868015919356266618600667660103038434083917791116685744774938375096572168536853427014856048795799260262506064900901453816698107105328420021585426194146963267235325944850619117284027651764548649195067474588583096696946220817021167565644820577947292022057226322404730755498128443038631904887702399763952577407858311165624387633740416947011346057040940740655379544480325831118403091118558823673752624972141639285053511259311371133539640921905128458983392911046765032222873725617565671885888884069309253530322900107576566314619629215969907580545496761033884333622171276447279239844186901694850363630481747334205769308857303627081200772545420368245297176750261744443886240623093083082654958671992438637032316492631662123421748977186439746374478646103320296216315437281243242719170314686787776175803292725544506310049690030960370226825523053669590692306456446069749688324481306166003698305826277437148873653414100343665303069583123093214964924685812811078052555471711460555111641359937542970888038824507029440518316749447976647040172675287776860816962535025879324213051546519118093109324657222868001309207140308681571190930816605406356357984013278971118960949630242866678524948313365986065218744884416213959441635849797142479158633870846981570096470208543883059318958623090009793862622449492281997870542470410279422990171626274740407043824739375517388234721752841520895915349084804837805949530147407641749085457908093921140312717429210711680529162892507306570220013402306166641583536002153196292691996559440765853907007747931656462687014494508496556748684806116841997295996623755993297410629803290112449282090563853774660462977460296321605969698733430588830280942951316668642593049832634873024882087056623872219895944796734891803331757092820605780400184796476224605132920070446244132923313959511043617076044967748565196224558631643409549887875899989749908216348990635444407323965132933610291546553566599037559821980836532064103476472548615537936797634309608939826774691098659225666175530374666998814886371821703657810092020018730472566540754995111760520907407578344085869425126075327189782178563809290968341453265998360850033716432576605724674658822173703382398028639637310993686991046403166970261715172778164523361800672196058263436743091110142338223338755184251147529201855192778953987976983745656998136423596252613463505819169874707655395407586275510488070692126999278676594810115737172513053959747551711393717652294794006045601358144755768663718301745080314250897826649742645769400406201278057635213267812442739330602628316427982636951160746206490574006705473382603269741565259125093540042438333545050478675379647666401375316775775082838140039781770423387779443843982848401438098897430418635160440033041822879257848310090058664080729992052653071965646217573845749371618963315330272559343538832243150225978416398434326749296355601954674581671713822459109773391818282012984281014833576800307681708620391233972932933643683726964019032747645582646971870040600412131707669382160989365707372169792346529876440419444791905271658074543658035166260055407478449662910032488776795819700169716234406383331925890624567359703853719168850976684028450341177685592514563804772457201636998200080411121803633692969467527689869001037686506724992846665287261470554599138309606724898168380430909882490171752759829255645692115437095966321436553662157701023725653685363503963593945070363682688179860944388854757878127485770212517164682116822414626544371501681869236944936933130564434067702279079565317089194672596830305975690135833417505188734332081877211263142189738173109333793171452287766813956980410497800694833935926943322152873183981563791600253585840336349475045163248825553860817935001148431651489314463105155623927676154100431480604906495503715273024941904779273655176644770928335278862910838183099564464873268992346076552845191761013096756165345396480617704062251174257786895984472044638822066173752847746923832965558929618882941330348094398527681121832082940242787151363754069927543391519513745484533229022056640039464490104837454524980632133668754340680795211071676226999445229831503799239960901325053248583420749191498488311855811788442692136742643925765616959632902928960586278320547838111699165813527774532903793120643384326080501490323085417650543755033054072818766916472800858906274762236211943565874174691144867314384126832771922074672485844435901980582604937039643946406105541265601554862361338626351022985277549819523845997798413465061400089127911225454936207626876491823698280614672865055543865446217932936280767557882482967348365030650137663963198872225592008680335684383134045860409460829946633451040599832941606679103493276825330488637861036816199547437477751984226298750228740425578420827199122304721809779341887401358256249834327829447497002264803356249776360014763645232657574508673907786796351366731474705157882065789811298779488103387417783130395151176733297474495812184791774476605692764417448196129595597470667074497639411963013272751459504543919197155270632182949830967655569528315074849649666197089758117597877860908902230935426792719150935746802353486440280121341133436918940845301625545313047321344325656324544768160208798518456514769198188209199746222120017572282042419497824707356647033781081683323407278917071579048002120852929610730118067243015377153692255831307261679019996377880647446211955540265215698188368056276371169435693573957853545504444055777227297215826692050362330945675064869386879668059825033762068394718288261549696941142144587778322282659674526901450975530680442719104629576239059718704276591482670529721048367131915391903509433535504738592308753739608162272599789534715611144080391582830221832131791412045645137063940323009474244342032428766282574284098257606385441802251749051262309087609544093312842673084884110150762828187030455224410278448382518152599233760233700028925251477556679547678831581059244637112085201637587512844237501395941734758515348940330542332192189193825643391527437573687613618903751665017756907750566521094887728055726759180001153236238930117660974777959900839661841457591829617081865855518658737234237832084294425225053884562285950627538712843865944619892182794461273259223427229175900244052403536596510587635308292695462502502441800524725828237436891702507356042231231867144459340851385151108727282137775799601473782418843022529003472372010982211260250130838109080310060204549548499423511530652636137244807249601860556916812663993646057494479980053719991574053303359377118309791272351030821096257808351706820605771750634658289409964174611678201899351552626905006804105913866145163943519483671798248901595196882453887875757617258218085568017212012154571179180293607370359675063841950055064182549471215964656160234207234057837444408213533947424348284349736271095387677968835969514471596291735633922700456407263241685439047379816654970636801273291346069148506854081878550374591899998061008246482168877057407198707305901151665944244692263002111869492769792254790000919824087839384269463166225836250744931412152739916120997683610661890219637228509036387482589409312745969337574543543763800703740624402735658728384534996027527880320041628323386449647363668656243025530756642323372835585673788389939434159543872576091758355994106611046290943088960255735296189806839920045799381652862170729682856745519522540975218487197764070083381096747760246327524636586245463916106242934854734452933475403173681055819617603003440781858358526940764511261538416100732040073140951740491865976780555628728539141028475026153364139395812575198716466260836849223434153429718753610136306476726417825596336203560373031864415918741332490097678912251158492900719393488991863008021413446284592032344970476394789107746587708878553674920903375678426575740349543485770132143662878427474653576842609143352879965369495282925555740928228115905893081912166498948590161942556829072911528641102559004507800654584630851320871349344965825414818117708722355081609069213641283104103689564758864165439664498841887818432879494658697094388169435676511064025703521458280113807640164318308798038241193352838878351006546399452787621044054890298221283437029239638966376313308603555675099148289653572189259972774251476104479768615707978689570490167962445302668323532564764385775618831573413490160145349830635708481297941254494710462557402218472231060825050444006150138552004715991687458760975233254241440031349073188737419729771558369449510918202050926716613941270392093071846297529371964632383768523994743403560478475471833503287617926543698421623621140938516924518655700259688914450481984847787089232627228915616920077289939179459737156588410174524664949778806232074353247005066533850031931294504018210240822374447208726464886275056464469955844902042326898250077359232606016871898040721304090283146512789880580994031371314766087149066855554747633301362754646883508454979639916761178633835600542236335155586258765783256985451800985649119036994378506996921435582958437696958213952082899230192012188791717620757096021764604590143794436725643858282439925192008580968654264808541066631685868001975445279159361401070112930966909354113157775964219739921006816533357705446925011085650019593970587311025709242812390222160712710551863814716340113435525734626584227600048385833522576648789038763698898427786475135970074723830290363869097325378307965891539446253882625451825430504100905520178862278113052949668239961688070100400630523104460942345776190873924019644827181368801304577607478332299499156168630659900882829899666100619612217825541554078845757531936117469995617911274020773975544705266442366709247434566496232545583818511044066228596898619464222625374414759336957906531830365101263267611666314584908272431098502129962207082723078385420933077581331444635654319584988774806145993683627333231272206964769651251840276806706811870119635377338698872559677409066085367896530302235022165025147821618594196700548121582501433872560844810180310296605692113443840637218296526400652333308372608088987393314384930322870106109496471179270893028397140788655914698187015530398633505431778405242825390833011086876364855017518307756741998292926437663674873536605675986799848697647680511890803763119496701636838015515635805376607480507190605946829105671220554169998593886739764837774308589571003181646581867586132441161163794307550381202171883858793019635892072733113335915135840154676943387067714586847570795733378044415925819797990503505916622483195035409459678178184576300644623636191736976705064362941765113386968042004982612833737121283485970613468176805185110974178027635041690125449312081455047588777491853470247110475542151542763017885416503001766722662561883883675759228001660563803273139908550765516957037671259092502500082384684702289145900281176663476539689676570943961269533329244971572966712226622828266315650963265152916219898248314021173480171296259197528990110170721167694432639287436324764929238155097752059681913599713836911317667603813652934500955114669584035536010632462033816968508761266665722162320461348229046438241964427200656011674171669383883495235959065976565494035328810724562544955983291809959019436467208018260936932422039786503187256962121139088534856986758588563210834478946943780478250636966225824021591396795885769040989145247513942020717733091762463816338913240098037233533821533568191234348081709530009127017374781155067496690638209424103922080266601621260178380278739898713768996368798829689018294615549032986818074742767008815359954713457990967505538159870686276703032449033161611575781452688918091035199252999526528231113985111852680186620587227684043315812380324275675722032628270173508752128602425660720941168837206788443374886371367430238844993054604801791987447023446015033272108754128843136795761192228959706643330385180916925015451055660377063530892178645414074912716697141786973577790708124074922200152744919682075522267518461952368174741689101947953937437782672337102239216400642104720087154685450776608886802129645428165122488448203993287150988030300152594614753944569580680579715370644879036828419842387243060364428380198765639955985101908218254806654633352291504555525714885925598494978859439208849912564172566610255434519906728516822773252799487028929731033926861957641889377730899968215417365259692024088674405005463141667492850316527222401577211084714087318427732406130729324507423326137599384511822659357497959169057932779064554830331418582712367719093172441321770563656164825242254089492298262351576759588089206026128959834125103384408422681758332394774606050870208404381766905273982412083347862144710658077495173792364963790663687642084129692432537841870010726015781997546496225448017157543783800009947194466985260817777786759523182768425871764209317263706427586864690978548080027970835657252201959124064640637888898514500087735840892663246825682200541761730765553522757356883024923224557779946262412982715555104939232073148617222948956737980696765004238000349834817281394821045839663485538708125059973714767631315511232345336142612911212867278647427507434135967025398715282539556299304815515667589486845033387676292427828431850595508517191734454279893381885009148855994991068961807729877225730125886332782414671702930023692057182979541214943599517524393691158908580436651159497983195999744695720958006810162560054105780440593123171304471626492946804871214196886313677756084788442167578905187900617288313769870786445726544572260000109153244299110973848412918553876381912970888074544535545484401456756001236749643379384027848654001712712817385218664990740097926396976858244105483632113214020898401249733610431192018600876074152807484289142172035790717143420256300666360265997360172258464812261702743313988759089642597474048654893333187312705883204766101304678613049737335139269097047223128923894492020343487944021891167262120893451151471649947342569430374900028691117843148368236269719606064824658046545345201894027863426975106529454325229059492431691273474762979652088152280308149869610728144053077430173931310053399296251982875741690510620537000548099500502302463530400504497967926786399405248681154071748318794483460154472193354772817815130993169692020103978507710021691029412377183798380115466481776294929643569438393120658387651757590594242945810131339099173762852479412667191906157167228117401331756197388861214579279419138195841633719575736825826736822009967993651560731539881760077201302887653614068637532041895636718376689428803611137779728113175782615611911806446234348503530383869490857332323737800337208649827998831126776069315534667902850827270201295703551200008606286613879907012031587253444264575087032711562229347083456312845057242659164150394108681504601688986975834252349859055836600024361609674502134751655712454926443123533627753400700692290718801497853058697576329758336474601590467688729072619888384867055150706260649567298272049284931857769143675917582888038040690890731592966322475527510702955296351161594557374917106837617378889978388511441966503318850737527242026367218092896078452834169822212149784633721662588799767800046672441655122583598979649123803324772558448691925857801957590381172959249858141250332343756801564893633161735058920358042285945698764874548928454391774905833398771762840227279744371566099044587470467373915615039596701200776601975510747172663017652814911374327635686698893986095095527131713202308872769721442782989521971751218309238481223327223982089340274085598622358155811006166304522445913578202967121825210327432396297771492437925886657981146501139753453607821621610452496265445374123068509172360369996273008228251597881782176792036684592919551198020165767149234137804037719648201242162726756467210314592416793577580195331518555899533838679906872814672439338951177426215273547807325987923580819547695298585347495429946977750851481973547045744615369029019987289475512292907590873652109108360153222148682208399804114269803099441917179528743612697937593353370673070715555148212795561716641903623620413243062216256712568151426333631052572552493604154726708759801616274254007522647695844852533817363242574023881624278612953033391580104264224907449127743345519107179968684527648072592159820293611042205450030738985980668979620514883077644871035711169974061081149231160152286491554961067404982183632255738189732160684553035433209355752692031432290886133066063432175698733980950421564949193486115752294250451935424341475818540860178981616283410142210450663733028296707959341678496544210378518658401392147603584101064349076789785120267010165419701620484184123418604216369498830528210154270417513046639676190697354895088235130796405994755712825560112027993060468951755650067512028560404748021336059544211183091283728324885404236005231517528174852042280554279520500198717009346983551793256374923492239180429734952735278892035598184939279109875864739411824640187604645178483209182176212107454352760059461082369178748272922482280043186228826869305123103561216396617922076540622158769736437657266009247228058961057159700569385519922958838476464259920782870619948079468948865160219469889226341193250934481287654345371908843007210111446454677115979179188450759397552631456583358633435975781973601073884023527586294652614161666499307581958712953351109871596945917621961772622122087093141035340954828410256547338282462360522400298598077365489768436327462430731140290547473764057131555433209839200603794952243714924532238554420395340665560592837264071629780690598499085987821109767745589787576089533288264962321853628644831794352174953212262031691971414340635739777764440984294202456109170780676901926250850682680293711225719437008823017656489636458124368825312312221144415446941367265886025165675231326879255781153321925394321339357466283343237045659847443787760107832839824185812795613711565499452334404232439491727682927297812544194665342206594154878350744772669673676538713494907436756777089311215626861180172852006249632789444770477305875071172860324142511653164169774050875112617842173225009171514415209745130118312586573220900741703977420297082535525026934172697715880831709948429217442447117166924296205209786391474634859230072832740154964664843083193238381815951114398931488287634157438581617743644793158776649394818427410308175361639966147660261958838546106252291504191831549919149651465487359388152927625804266897760721603905899797946523337753277954120610359368774988157102740838534979645451532557649917920953616443587047896343062798003809488380819830930488647332785170087731025133884857027979114548237759468701103329458475731704609950180003334187724185005140311200350518790093107690219493220702621144975249666362631210831120078616249986973319487499005711236358982921930919332599549262967649981274727961658275068281144892335798956327457375756731303141757987272647008310595616715288714650362234275481803524658790082128223437757998374758991896410894582812543039509719695278182367286108307141310971795517296534742304229477638777168508103059146241537619131439278822326674283298900780744031696557441580923090072253970871470914532875980797460775780890621022165660491386951567754662137483667321889986480452603969515335561946822343310165948827703526297334113757647932926603114567943250977653094508280191604166546211318787803019553885734935916992067095953323601269645353954455037106289777441420362965529819000483040214200531894474460414999508430511981250414228190899666868759920209084971393547261592569498664033511409124389959245308795637594296257857160717525961736994072361040892186062864842414178539294753541500641408514439652855791756050760031690735194081932544899430699752229179771658795118076592103664299896776640970841305719057085804303636273403749755715245799719333546557759064235068454801015447899982256713480382382699998549073265245295210996605878691446492098592157646515074258331906578427115375565930908033483265108929233168781068498521740759182415588342681318483429159261413472238192847370823885196217336026179380353413992290645329430671895267829189947650523626101308337728871368828263464870073709232486668044157444655802913047962443542986876798593499379575360186987311487399494885897275829087574665271737142620217804685401769503123758680213543193199807525949397732525007757067684043242776985746264559384646538757444899562061632727517655344359678500281986471702803755629129040724061185294330885303552697881059042161663015498008040066160643112641870931022137688502739513276473404004024312124432014229824098627915532791619580776810055150139688751566769017568822933507891473629544400647223150963073022541890920297674355174934582330873544228685378262402321069962740808536737021213316065059873037912627005373709057553720866418186001247573425619784417296900686185670757252992526696379478439004370320799507831156095533368989398978257984819275821040077877847928531123118264236323847975812327465313089275137289099729208060970902451348429149777089598787730698543713000304932859508636378566219075120552560735156113862335057926149958070577113413516093630609625098243798142404835155577363317497172970841811047325329649663637653573554964994597289323437920847397778173531673030129505656620409117207597344693376122251425544336361663366472504942179702864305025315776863159940897304268984665957967845476865065812162855101336772674305238923835632182725444444480165085727212586032494195786909281717437264342059991618987654294148062553074520512347179015946220204423159153747844384006975059516182442770934375488368242133698459240945487739325603020032963789952615772116713974348828711282289134181507829302461236181298905040225680160157616956757446900507373947107324627167833925150962692945880606224345287481328658821639406879047021283939574831326670577596845024889524272850155146069135869569631467119743423098181575713996179429550464769284610742200507880224986415916044948495549850849703175748448772252494302412658979599092556487274719392317749647976172319796165491088056879277197978696181799463026963003661948344016098178098982326883513986290321316377497059454886766326987352230134546038806553100565801937782434357315429487646302792556220017468864029738156997326129286309119838026862168140461063234872565666057340898744732452767858709234004444327281088991686026916529543456393316718540338892135903806458681136900506874656199680135366116958733828181542500982718564240718491555182032432429307002035583694188494803991799214463969994221943955191708119645401486347963923367329631315806431688346351835486254933863214135087785250082007080516839909257969705584788112310956093289354550176998277405726263307028103480247578472126993747264567337324182155796885773597326126637409388543424506860246330805664994472332241240363705318752212284687253163715992221881143713490950598136041773800288806929019493447680367040836717789170662845156695174336665593807354294280121697113887344282825391279216431970652773901362533316840422656659559765136699599884445511058320210900465054698991709109699469961259778277825783351530387912031809762903673986617941376789931909135313852556664691930526699751016937297460339732166427218950408196082983508433373281964525910125007262723413145359094378185986763818729159870537898998511889001199478644474067941794355105078413721455333305046510778271944314293181794361295874783187530779979197763214804920776070590325998198216922115427622527713620527835325549921356831509136387163919336123475674223248647219478149739117345278974222153925442036836713154903147263447862673333045141542426390161945630497320290611262301249940358412999918884740385825134785285023065175700785850570293037561412661501235587463845500256976258469596769949976475634273202101075926900417642870793822153319792183376216896810591349406189031919637482870886048389966223639654059834477563085015970056292896245856331921736304108181012469386067912784852408004082431864565047473715316709243329383467604245629187368955470614779474315567681188459743483422662794154235684537068171851029713452800897273113804134532632195805709487726808688929614991656578799882239544757543768238254703094919761644077810454710564735336317916872859528538238889287053903404119692947655709493820990010396934842478628714882848552229718506821055688904649580144000712099545919889841060596437196473460760261970240202012424668574952830445522175206047364967028857189061253996985038272061525175770586427574674192196465967461004510120790953362320174603884045309218679789545735597650537818656647551296340164132139391984738718244431471893511620466031465418172512866510578064735382990865317764412947543409468068445733438567282360425383446054059220218807961478257491561982289797126740447000150441038272180311420996935541058220211165601993114523005862925000432725988712043173713668712939353458696857542210826711907438696426481048569057270056073462876032723590982765439703598660690532931917346269381805549096271229339624238506600287525844594056295062505020005446771761077162107541023592353580338511483176556498390299732999763129508934311401207959627191863980550644706461469320126986351337379455604145575812687370772766574977610597574051594220902696347695253754940229239402552414023823126603437842227338042510433391926416516836240213683251122143308549998495698899532783457848016615618338667362717812083804597742384155121223822108708383571648058803133415207144425974181858873697516174778023145280307503715028628895855488713031769465214751099810755492585048951010124769935178340113268872195138459270844862468422063812042167617250732213209142014837037635349666949866071386981861429939102066263710436578777054091610023533189604053051671047389068409849951998951749824188334791472797177505339787321340620990049538438519623114016219345767997145612294094587901339747392076262178686420024868312230910420400273265448443221398868832306282406961898218986536641728635127114927978697126189939189194972549381099635509745983632164916453501961306028393380234228298067711796403863624071060462409205031799814829876335155059684524133085970576053643892323046082914425952991584092944725125019890555380241004814244363341433486814619093534417636122949771531534788690875039954394758964245537874841781850904549523541257396202811578374316399518255698656692637330065690515400045888902482786419752554821646984039051894968454815496932544814442877399548713906397715106484535093896544331508096616314639608499391904416861365197393538098518085672370844041550561948967793278862683212790824901944692867767876681980008460460513346991205714696684874362331837449262191086687754888168767407033780404737624354121141805168096730113588562825263410682557449479438021584059351497918457178054074548261793870137330287608518297285366300089713098348191856229006522102604176310627110841633823185294669352014890084570269266550758206311507948847003033170464395713678714675418671556387132781957083821009250722082136061453312233834955196211959274028567523811157724091024965596694853289331519267909102104932048149132292600106016093295451943902637644101918166700750267943678074062564685649108030995686583414647989984793088306043670846722999774017589987033602375506704469844118266800438921074286253628745632654000396717695476223314913564502022049487806285474900710067418148689611358681004907299686709885493474278599484304070085496091672205421520363730486248807783242803096576191494119244440161861525670379136513939914696091085738025373411626506982722915315257110229866428401401893660577101417749195923053062536294114016570074945835642354146347389319473199052650932749820311915575259156948089848120951352318148189761213830710458320861918414600366614652694336381883119579202226889218379266626073457808297047215255133766040958920883303451025719831195637406606041662046381011159730983553366835033152610629328948779198920644736764440390736567185612789868948407347915342246383241997047796084391050997861575029940020398593134489161370558082911376254962652289137630326405626718932403804510830862830302729006665449567782536306356660877933873149354262883273058122803723287440649155070541568331194974013772167444966826824924064585199875421389760141348887036145991118385322796742823844427888677885574310671722476014915564738478262856464795673041472532414966341454043256841503419934799973472489984782269806635504345657715207167228172240132007022421556272965356400981759547167376428558266973007790126334546493365468393806611241464728815531344913157907077160116690277347098185646048490754393949075731205494609573972222660545430244140206166668586809203780962229378185596384642875452436251646140205417140773402344509585989843845427164221864983852272012256440438715788820424875899621281506870161356336680907403487148784924497282159889891979970882644759167006698014716349089676119306301490237283420172693708253265987023120782788206419694019147950517626004782676052429013861413090751500329482439178257059053769349657789050648475484638338039319156654585947301827693706934197386312383225907443635913854238561040352643044104748919908994468545684281367377909238810985185668990194422507468018414584198153983340706676236030562274110838757650342165132112598551339449462076334496249495682465815522423084381615464931691088152555911022647341376300726917591107869041431344578450560724735189805398439692184377414646586366005520094075933094339941669545157170679687344755376204807834977081557472627327962104464516684467026976238517737369796411089772762064846055497095275217611779318214053339982132575907181415460367853402930833410108680054207011178547134278899700635020569288363892456161911435738030697597706230715992515779503213362585666170335497391717485057907154094793793089522854849217776155275070382899261486903075624886586998164079293160847512671014907350185704681269771649402810064056579442548167684963323870725028552526226512489013376994890301340680668832789990100005807993844102194532763604193610749200296143627050419136999000679058806619295305994962160996107640510420169527615439333569236510657675029041731099124870594012969107720057898130675559675735114954621438566156968016598963604960528316953500987072495245090401437767839352723922331205317445349735625966810407652268414003679442475422142020609624084711242633743525103499199713879990939357663611348917059257565227242488138546546740082323856002824740531157411502951798748174830321688533594904183908833380752715808590512124418683510757382290930626807805483721656553716572998008278000226389993716187202142449864377437837092168982789850110718698032049150703182984699959004448851883651552039767421833572372509584435258815293428617690604620843703464757411961208621978293000501786321563528034787853187089247401855961782487213209341561695884832165081639498721157009643167494404156569265620442548138328112255685302882914394227634032387987365882470252542167898448841821395630758647120699091744255003002553998724669027931407359704086690668021888034290565967296693000438270956661529808292382836251894530632029272002237662177367278310586702806521745778719308325706670600045752383199184492316657035407734800471849526714140990244403037969701824254977235365390034690009674504474274994981328950817009259444348859842181860320744259976571219355621813579818926149138908824834404787954803951701939129160887209021532144728474009306877333002841100248541744899872590264009687553081727262063693268955260938579239855857523586658357313243247461219992629087668858018303325961330256793926477518694324847081691867103627965758194678470837944590629119680980072796291725479825124504667991863991163881560918840416901400938552830542464196330980848960193383298707455143091146191239958670633472350253211136721759142244966683444646757138068140576246376709907445105499226837042996813398095584386416194789149807480734243770288750992520017182524263527175184369041621103527008231401923120526633003389825958423835491479635058971774814334942589947380472624235194356262272591710989211162573040508640914653879227000721776190919688811809896892382861150242494676890934588443583260380234837633558272981421246949988235990381412205857863361736111777864788504264764830028776875031961004784947882266840058254388082324604269731856158455377655722596969349989002793956807126772701566741222891831685639057040019827965198571097399146547345547749725162535038350975678453602842020804054019135268695990252360443253836178199400364466582244820950038066876215896863680757926872912385737286567963880690912846603443629849804088427549528706758261109973375498400310267186574882658225107825310194305572763866840051501589858995475172093926030450071761152941535373374146493780356074750867649585981432180422019286848923383302465326405611129467697513755265576782615146582505018711235415847199494548091216246964702699835510651328357774401017769769216405684577441135449372096091686717123593273220637421593809292983667616097721628074814383856529528294900462595123190543531422523767215973118889919160509082766692663711578393813795608495624961179790489140870049168858871476225103282688011635136759446384411537992078560875763063132393217851740788768192859322926871075632383485381845745544311921157031205652093456287611329533853634206764279299334346528792397010645155638093008053333115254077150519457934065618160076675432340944047130899921346974300260978008851378353948950617588085783978160069508788585115650718572728730973697882373946562286237508110049074982725495247137853128769436490703153536797276340208116870738948601744692789420629550716424398668141785573789834190048590629494450551953463428128080541857927454218592590464136534522005445540439696518548698255603180157238610790727187302701521951713230705625443885200903582721157158028284597325644139278949064180629813593983224401158610005394510134730986908808089030591906586559200216774275571682568557976126182768776957030897648942436594886349036333550879136698104972356785420107236378049847308193245017130487908317473439260240803153028838239058772552176271030696842502232296469055717674337322719432579256570275024107222675037935472236819555856575570787215481154136977917197028292776454061983007810834105571002888547839733144681693388962414569629554718443067887395613598705650430724698728971677193386095908259385375668764472064500030869308570925851805254706972171845108273737144740659402593500616845519469100147216024553088568697343278383364978648263882004957908829939226113311781085375375465453613982014366184496571018396980581134040569224158712117625414329353255604854916377389723847691547455112418289601457829696689726635384919190275278969549600790896235725318802537921144100778968538831827642201075461647051733452195052431994697652191251499838223094366522289303864135068069813864443565941571875081651411189887846668645683000083301874137602964226599196069981288259023908401844938582537975258287084675331094730677813648668616499839095483316454191740754476035549061765069581889289211525840099211740568139716663432771554915650334841287154882156310063059416278015602305403101998372413033350497894459273402893817017882679672614966351077792964303030009804735590159969949608475273776612511404710141918842420132810082197056298377882284906090283961382116407160966050683365240488403868039571089640169146222111114991502287220079114552310673510175338299853171963015629112859357681671071334329156992842592074825292919725438234053756433754614442577117581622517233230692778254703025843901582408495269729999058272427217500880811279816289027016945003041977292294460906972355529237912718302921473885830371314319078980135778941198736906349140022365099907136905484221052759193545996889721283294844575542626034945391891832212932341538004735444554968735407194825776908364668365059946564634072541716703733860039974639235837887731634892314323475561003679069421724474158327118139218354093787988714522537368931452175413943084965402050711201329010664005879503208650161281616224324606052365549667002540220919953111258485825018947165484209893483105686818566733605943729040801171513262351146920815901161379620870288367488168721921374102985602019359638061365960451547645836707106683150546097551687335487288781305478968548585812676258547503792885958434866895802366727685419826509484579234545201129402259281993847913160333003203162457881076776073566201825411998915166077375074579021291096244046160486143109834765644800511926864408448812030420458771311189898410893102891725438861741123490172323501583682451655850794029530754834872713582082748849737295477919705000376487215623970848865134193131918447220098417961695152924367404496921781885183023545977864665424777860280671449320529328443893313484375835724699910605703576999720269067799938280367585056425819928561315407543012624906434298564690379609683592068430484376383785140876128510685489759448249267293244927290468871598896289969577120326597118831015138697648875272152021824188132280033363404353380104189463792544318505427171801901532414902386436570429249612680404734687949836773876237738005735466691859510571248407532038434694904695600663226373665607947022099516039290846727465171054228775675822817189212755303516546466367302759111841579136894516844781308202482442847398839296267393246168716340046108876930099021389278884982877858997857422403616224188293339788027138003044009003892671301165298336550783651262615773184829745724598435635176327560571708458333953021797879846833799738849375943334360035800722971754494023519641021552735601893827570684984315230485456694998982495110774416818745960453349371293913857018432656951506194139884808156533829391319075900955545420023306618863160730045033338920264940466512682272006056957398506103373781969131125486335770620605297355682073807120140777330250320935700002125321739685929644378042134957068221801987426738982164038372416052486655773507186810639107213952869728769960346506093156240427051603987797075185236971220242056421269597993851158922654827278258461716220273258979710011411475182739443673045421252823369213362624263017147592953942612053514155837819932156819137031206048972127923501053207013218887768882621381992057523858302715691583441033931378125221607011126342251860246075415578450166001573597012860932172154439528085749281326448257046694503258141569258347190585519752459031181635039930014031681819042222918311476476528020046224641829883228006800944583563481608623358208249109620396147356196506971826784059151707477794949923574791586301454332408678958512812093175567426179965453788475873773503530665078422535664796695638180995979831551662625077341558472888646202844228299280059806505555607864347008100953554367933464376434966603515503041104006882879432149921346539985292690366382094801414215538677492642321288332435331542986190800414343802897543528876243470980140746591975833101761506819413517318673549229755054312066124756809480357562683746369913143017998446159909529538010718407016684037965271234642677212989770449473009343709671740208410573383452626902481901510485495915018309079366045640811249538740259353087097933643298968086779722670600342993680927797549333825939178073027377508648425587165168253472606183353874398078987733006051915913842616591774437500067477394579582225209139528915754152321652362210653156584874994967367586235024905614157353109284552506202921015905135050087698545090627150224091900179103122170057492450508974435648996534608469789122618763109766382319894751402602327121874304954202921576526998156743869659170429328892400401740112392710213563672236515195025898990706306367350506290687096416774745514745238267553602650223978559125823662918083657472049124477146869642127022569419247753773498073022233307872875960455505899806806977337711031883579621502395813669505208893422229018060943368596873524180239800449713487754520190737729822135890900651463147672501746945234869638607693717234054293462971315148638750444359006046798360727740880563070404909058794318292947066945350811909390057547463722769291874554799335079955288699213548691460030351420688650086848969993119871130131540255260711537084885190780905667948771286596402873086336576482751460962499218693243930738955502279686956999016668472456975890154787400480519034359573460975104299149029143760678898704029731854195736799881451194614916053750303050231140491050010464121308359069303116418209222840196557220418047410019479714162946380773298922449269296528711129065432809490809720121102376966248712073133910470349745239605445669793762783699640416606951539480886476731237144361860973584874172944789834061722357565222745015128390620814080313064147141928534067976984739988480678589672069650056599059089540179925216120999622822854175991373981948652776881337741896938919001852255763517393753921120360828371682189911223831693656316799109915229068497091769428073279442194204490553165442017234879169281709432983812965308555436666925972841087472136339043032669390282069413708857470379276944815469980074458130981913666786947132957680236742631199227690735910724093238106725123786701115348108414400162880241651773742656790425296744871567382915916594571447657585140614732416881288028486265896206464545110141317948095219409313521297569384681764135099310300933179952416653389780124506285977702999348872136101824422366206512747917762896487499298704520359972187455744667855257491321807131828578700501154145957795886288556674372470410204720873882589805834811499881851928689705942297351558289815529947964161006090336582063160435572723255672153747757149043918003329964557033798038204373955468120465733374089763148456104169743162313295255836619019466124400736807996934133103387185922309569840979725791738055976948541810579942189947885692126616394172553093985536276911625388365703245613475325663442978806785935498970787658374530097614810020036882848196009817811529455630254780954937126569057499802801902168801908349749821836160588517758009866428273104787181527291945709202109430664939424985981186308425699100688461834187406847436103136407494471680623781625255773425909710362524430196934530981634403589690385872893493863706750621423501665340732332793640263416466610377688549072954454785030129110240595504612867260311388088816310050440448124010427984531747168389394964994031580438297834836089885684123325909552564797672815063584190467260216460423363743302561292538125736956949461451449858347907102879177530217558665134113816532939233580477202761186718776719828073868739146761733290564752020972112530280427496554648742280695060595204214820028197180249651358045407420718785759737950739548471371919257406798193204193879972211281610215721583528044856282198721786290408943199197482009183490840648234544762165917201056518989550887721502339183147122980474690644742592903684913922275335795865574223092534055484278973048151417838773094056140415299144943780101361956966024493999164526905298207175781721451744263873454171843973621050218272237399700602828833251580719160752173806559611385067050763429365640644000113719530494368608398436220935762767623751383771310574247950107840599582282241352660906889884793247221283787359599171654343393654704033508063712622579556646128654031261668305382856770615620619583138039830820394376113108986320662362463016896514337921777478426884580835011311340639076664626845532426857657483728864046308456074188497528085984248169091148118231356202830672740157562891656155659288190956394130225638019620318398430291084199720140145208653985924828775858108270651545920192405141507900822876564955953338872338538336052502108890921538103952499784257631192440084488309519725643867459088861336761156363352820514575861863723246047035766972671614841277943235110057020207510018979344215089631609468403982406025609072150473844873467666643353020475401528679020021611785845779871132283303612881280023212737848424616630179856424095951593781156130843904560159116379135848659923609071817737627286733710291109080320912735436318483618251099237152470498121290338777561785514812826623724970087769867157742589308614645626234670355506729102674805556533242077993870015156203590353197306207164198066613492738239662798703007276634834638091279314450207539805129342940797614682223580447315034902614297745502473770950974247353240008014019370220204985732198130627220318702228501513341303809202582728297981752431901529080559716323879853015485558633168843365411252231884755767423039061247032020454322138278816978374894797046837968001703063736611242704455996015674005653786833357953539878135441690689392437643691498275258330116554552041867740352888400728032549566887390164693973019590703387107382832505669443370798448233622980996248166711630174390576108995087437674528571164566513428484127629044224924110076942294587557491293532027282567862461885588275226122342370423206824199209398736865883995095630651973428718706523849094845397781219657076092002271646103388727546558379711161706390306641447096704966206141740504847508750418253615298354923091997951158429125149173774782163276641769799817103479887690642393059099289732726174145958767392095157680415312353588825118322957040973707892851684853127219866783323584312582195610164491623112693994667920917828540245438856860436173007274556638296061122999877655169670316771149461522609629790589258519810990325460415705910109845504100563629336666294853377400931112835941898672860736634176337781902063181449249834535710766574411103887312165382870271716581569179694819283679211620049459948766346046563827902915892452653168734303131735046915806762410315082385925971651465255580829357207284159695104367680487388788240477992834744354231243274727926024525411447551155757886922637799401466744653364668100820897070407613650614915328592504289681945875716172098574834610254033959842030947792385085453630738463015284450413885645879076831349327259481531743001613820146149326061860475791056827548545369802568018628931408119329583441220804996903965436872544253302694619282074137073617257425820589015416662744333886592956484618063298842236005168504330287560072046402642591408779428069951778332781528276655862106069421998249422374752571307582307687213005465633000348064864487822793518828080563930945491404063382623364938498286221128753158515448020102358354170110664775243971435787611272234737225884008741977387725021135223349674676870251326750469620819883208561008919175221917977344551135062892793080541112810859088404109718508598252238133707999902966050178437779811516440956951571914852168214242096792268170841672392367725087154777265146379026062377764406476910787121965678262664099875913116880417364677462671701194371479110672889749097629213039910669293884240966461877356418424681419640254463200706026570946152186981532161211589890557919622842540420488193252077693639655909765179501796310026964785388144598675536115291446949933744524992318826500635772599254769256455687552173322792689848863807351395253762464958102302839505511901448815932947793581156508908175729891300116979218478189191878742687398858453097829986674783462609444024538017454681825514086839367671333758854538036601630983972908552985678176997777777367062411114050022743009105463570511608007616055997704078710322299851345825527413064595552672711489429669256502190332597579392019710328572183685179576278301439271012244093586874473583362176595891665517491788515060018680037358798248968853062430601936911878603186926487170900247103500594084068936506014504856151411532587319331028165194861604686404051157784713238329100913490130955720979796496137437195507532518983534710383320097129990472206796699718418805502971479488695772583808395114971030897511830950771203699026690110389865558392749642818932068547557201374612833262450184669630359018407718379834697474743212765074655290632879965841749711065729365984827990016130635153936548801421731676206353449274900215105126665233961738585097974353505232311147850041657579279451773230431370389637476280643453004491758323718921978856233024585551334911071179224175847218798494269857875225341555354987212235449390336050945293275533867137246739288425919498890585794053194264783406458844677245069313193910146714022305363832611597272395733344054299859260601916307223324530636455183239100671959502260336069744416899988068389941753580507211321600358619071182847648270782784294225419008289578367370716532904733062131479589899732812126870972142653775202194787608627048353505564057805668906822295892642384549455969649515527079488956622625322496179080476820193136592176774387547629266800695886543764630696598358632763267929485280521877888562765762009764995712816578866603779144808788320209507670206665845632664624376022256151079445080428144878024882607679974411648919580791302357374987281005664638096225896798075920828926301613321365521545415939348363705401245491057015569285991638495707179823930539385845738669809149068628402247947462722569618735454358626573047431832875071153554122416045901028112009681074703981633430955005115898910472084834700169738517966903121399995336531635922206068761109529745017807442863829954642285778891512005990443370254099008842632473159432126827702094073169857101860463154697345189912794273981930225338352882799561438905793955644862690673912968114387274759669643587890643259619151773058517952978865869734245340519738625103468302051114667549490252117120602547214035951870880326909807113423944606351548342802654792321553662097400240401912120260024458653701355440706216642633415180430898574922732419245549045163873133338140745857218259773121567596138947807215092183628053584493278505820708780236366219642453822403596479782775758414869399415024862523783629682603674481635894592839508211361365294897952082227064104516154307253317291687240987792509405670495391738865126044280700623919472588161376994085030098268088341564543543292932720786805193613401050468806112272190133773505396177965330525408019277238603913174546241148613860393236342808288649338603618547859664042613177191352336379160997491448310869100205035000158601981129147614738915806510076978447560887634553515149945879486036492117910715540196092285833330516697994817689665040282826464757670434599045801812031652263784312701801132408438867980185042605035188092133299435631650655770759553732160504093062972340090951703302923292345392517484170545729562718744665116167505244282640642402057886983483593856947147418625048505275392449878753176702995164230233152543435590513065727836085986934474077371059570627654705474316028561009385286638595519099730548992115998677212005023664803384369625630140421181440379720257944316553892805655992490190909647634728619477091471068436524445423764872817834664335731867810325100677727119322979010160760213640739185169965090834108059905932841250873169264488776985293861088083507129570069121541379051616230214658404604728599144053063662298134140002493196763429172528376626306767287409208076633779055011527565028873295627049746603158349592401767318985885163920999415987910219269647934455887158499197866580365650657859655330578352295753742493074774510521996225560427134392969277695125133277208991132759964306881065626103957366193783212967378696202452216038998880427554072101052576791672561620060378496687261712698576751318769596176649707514649835279397173013464496938374752279645671789914840236765147226753485636435910239850299494550745881667456336143982433707504140229825188623055412977590755296943814861741093818897155724944396651780537929186826040205998338008266270071837587057100213682264258077260522106845959554078710757976298769683917763613037276323081306228482889605952026719337368278518944960245455503835218241318214154007846482781088437490521750178425803187340141186158401931694803717767859557501306538963019199778368606492559979956909980127761509629796721398469179025430297308211236985815047521703554707807576189943357885121982717596456572694278152010617619595131966217307367180899544377833009487095763843992230158644733645650909411196462766570994742977018157612388962380471651911070391822527757854119553790152620510343597434136768912468591678538060394923450243424260362536423459498739530545317836559290640378331921420993316698701313191771454380441750935786535708814453714158580152479978103029607066154678436933074403035261300891018259918884757335236578502822685250609743944136467892925659507408526059875453784085649336393629062736409005612947751418759885025478753344148223478696548339428241240640618098703675910860056276797361815613998249483571419158576975657304692611095268659081656836292903100964301676282007241623956425268118591666342203351631129902148589542804681489219594771683644299172046066970853189751297006844843779164008971233687169951254609001747889627070883835484787350910135946354603502121613741585490387446599779467138576556714978909218656636881462158539725308689413151012311943928184177757610848605055364531464004981199601697192103777029161130367331531630653403142642198553913350383959307975424772242642028667252958893334394492402459503395705948440546862686156264503331674298277260146296810001220966283624684156661680313473377570086286856529789009736781113962680438412767172305966441630158554955256247059315979617996155076848557005041118638631538037102891010007874353053489823386991349837954215167134013033469104976856719315549974243074342894611769727683276786620873836987117280992464159128459561161049802289677231904745361935021794272810911325371721193671715145685144639385084503845297841193303881816931010183427515247935659440172378806220192782842498536486779612787166640907078396882881135530194044419106878117379763772363643500398873546671372784749985333729463450694246951861521508181600402491354461108246907005670268435245400893751032168894765939419308619117178149876451760008581909462303120046384845709864727024692622115809049035620389528876761411505880605412268825215783461960092942137043204094231352046230381205833217950846954849476818659320459519101475271049972623899507276811168686566287080485509076372982158032882502059331902969241069964281180661040751183869297391592391250057083050348376636476254810053474335212860383243582796486829473689119920829408800451352224292484998229595368178467328221232621866186811303767401098958187985447895310489215713163850116381364085653024079231960568107900267181000451543596712194785943518658916230809615898880308249548657588413092276288490574688518757684978477623813542862269650814937784198403160551674363819798936836411419593379408721654215141936671138632307393233853762621458942078191228103867614919058422289166388407340516307953352206797888289799783551473437568940528445319598491348183184054488143942870995276202792021332671667342450276819921076054155311668274517362203048346975960092664544311647954352382380863012691372416933587728104110071555545378833174259945171719180605399467876801369588108684298386778446041225460240748197771709203523235712885146849239818487114355637590146562606000958564428612575274079888707772260478539910928259079174554048100630163424654030041920018293050975062328751545579076111763997359784281757353525859913429124967405901878582498866851065772883175088346863278662719086044044032949702117847520459036336531012319544411945051142010333002338354662676128536103945312489282280704673283760626036960045717003656650358079370683677927643426449822472759183241472907652827526897061675670652888924498077656281940934106682398636065784554749134365824745513104403473734798543098059673862506513683668179075158599424421250115206754247218313420971402429167632837800089098850441974185709637414335934475358015888045286030197064409959885030249588467724133489443620866495000329878056122029049931603524312141824874150514145613565786939464655803462322765610146501588081680733543941064018740367005924265856104247467077875488817303652308024113859576129917772022958709075597768037500410704035328231176792960627028158689320467728863138095208457789077644684912182733085327882624392074864493403067914431824994780491043498350972041234506983472552033171350133444812622526299358258175978621530930479151653001867575979865662405670851690836391673003913661056113965885297814594408078130777935291160997658841147387446246381918299728776669952238690764030190133798132043841484873900826630552544752218731422797576537482457030483791631542131523636521130949824697174031759848035474079625557506718129658089942760900474363978245056460087300161520412365518485633044591600821365076503751713772482019446062801173913111590973033837929525438290666418392459691605969284291595010426723516120732703486966982168970020148048442318239168711832773633928100981094914680219599675194956699173895915010417523380713024052580691219403002265002534954275449155885359127951152243737680804351211626893490126980661136181690438460853596130575123446012765774397687338113257144600253457795800300129528608122652111597119821963727755833360233427567617192625717479088821205595195707875658750828991902146984298615585874280217142313085461681799053616668101397697518974202150268190973992009533785429762917276517378797488848734870188273858708618669665679165493543630490184552898814850789402129541996540729200248557979663972173752925106005566971021650272350500427393551056278831313951792771588560310908170354800984539872283859616055334465838346310739497490421729400538240615989947610317418282092608114335899112850886681672182322125441123965704234539725797540622746293922469081914996052304535137399415749830623370096770984857779427210398850451302680219009555645653618818917380676769842496322951822104247106521223025827272828536228227924073292894371837735221200872032387078801015238987904553948789046145293185023012660012603554390612573343839730247583998036545631338835354021423240316195369763837147520723371115497632109013534197742669574796597009634181106975194745440136314339385121077989487754394440319987096183244366652064931416367842978648547247350578928531953452670941448913082713822789705397220778121331459712304132862965049734772505496544101292029778717376095648226245017055026190522594575336608192894212327620079768409442701076265299647739457018329752695230754057999922072601718168261100549167509928126132091025209984240091014590337412096580873333227331584819620553865366177633638544434719224741287699014386888006426739008746950161490196246326336759738326937288083845678879361500978699206102084630225862977106306996368383658960110449846276325988437769814966596810539247402988686110520498327466392527429059294464836760581295834410378952877053364910413202383855859010399087489040605030537903284063035221522285676949640602932893596235763450322237768583086519850341701245869810131766295388553738620639688954214009356229409072633757520485270726979039132751378329250345402773646861225754980357650342808445057281972533446250088529728595087269383382294038300712561661110222030013649246066342341114018978281489534186072511425753156645239414836829260645355154314696926531587200218806262100761720719075349566342351043124147073162124644358247543298615423156344505023886874461849662183893977761121198184082449994552750464145785361030054195336644891146020714311449600355264221797894006855231633917923045972287895290438394223966181604996298033044871926749410981391679758583094310817997605463058294134552070839559833020540770622513189434813394193436665083837108750249438395473447305255278077759121174452774013092064849691599274448634879887858961932901310338977403805005998303426156466750955463884073252890516470961132591631926311738820974864538317658865312441077290784287596947282083553196993626249144778724159911725705340124752303157233044397187536751927539517565239168092334685120483307779942655240655842088754319457658876605758929395171731807984341422803944188198957000111193818940425325916154449413360430143032583482947278987162639745754587755174944696796390532646379131592687530699386382672862169288583642557762396679560640860014323459911771835473030205404991788645540261720278707570150609888278456564478292580344154390052406743813572848476216016185024918491496953530249483192320910197275688639937443381020829710653075961796240552748856771751739460396236074659153570598553843532283574411616791182720996946568333910504411804461848485717028652751351964550187253699897810551653478747048085990985559809500853363093052661856407912294199629324816740233900771346279518613770958651464851112691437674730825730405341119039632961081361795676390128487401100210985473669936633667449028470841909728188088560843795665769116807603901235474138714689188333515419882640334103443009562281751686328975189544656488186372863646952699005610997777541358218162898854957335805905820572319642336894869111653501049410531449739240002054137113496982988175296303204472332939200641470661773604916955687498810995763336094208122719317729532490881463404327869724388434677360433610485090613894485238723622548806173241292936444951303959084509790766934321380401589071471014321914310094109502609200747357399482476145842353148785024310779737820364017833631537524803818755022592777031912238786595544877087700213185757442341771029496927157598322006039811455545309514638513136813004298141849373762671284949334151398387645113871244652454280317826007152967170286558519759228956338948300379548529740064329280943194661870003751112620203953200310750039045563053913738910134262645715618620782127604965097723469183386564402708003198296940749429844566277169715638315718629013664577188255359721346629669184474347875149703523403382284515686100335929588603975476668957964008522989616480221986876423905957489757131419633322802652713312647621127556213578344244795819232966180642554691636013815821732918459782086410975464673346024605360963342856447614969448958002964265269431875423866417490494597079879047905903493238192505748618280906786654371247491714517463871993672027723485917530828156029952060135048014288281432099222966123558655454025178717879783591866560071470274201739858869201320591757051334939380238343279471500941926442789358625175664867108256944054726338360064808832177394624259954689105913384063500824622717743230010885639327505363829911390595520960806943371248982021112813013212861238999706767508265876462206100125876117256591268996898139500671746646988044322133829072104246977516362081162620869615480279441036172116035346305766372038592704777798890458097820165187159967116145181647308483337462019339427543869793521191593749334314807140122455717263962588830097777858911615564698587550794206204744287272744990612682740437307434324695550708821894987726370575803450795398089568493894553298344696645025188304603596873486528288195364314080290642905523998569393850773149419170203591298567549819131171315663425161662391616328168451111808673270828474064271710690458026343338956143396023962893987141786120712818610510501714493425571440019506453720597893153133233360866879950252945213563403772776049172662068901210656612728328360746959159254653351452880073887555323091316210757739448780663650293127315694317343156039155647243881259568404478225126273612772907388573147016775953932942444481650695346503393132889815815169292272358204583607284395438026695238139000717745505236640469065935081697754652031938181325967672177163264358587839904916271929970386062119232927527051211257006257867931149007316984307542458067832195894821717245431729078825192276712841332481041030004399855834329764605742731761091925429650764644469847924617637236145358570470749550512205603202768316479376181802121259532439027099688443514655234746208942076099885120601687855328866700557178245239070941853764987360528352274795508412120206855650246708224735533364201590853810135532078106574067581922748371915801800322952078154625555503619344334001029228001697321858516989243418859767844357841058213682329799362487551435511682888670539304858491778003714806218467131007178009337403965959407467728346513847943874951285794326635187810422985907511333761062113022738290751388328072375563704706441552686986448694286814962656161083456829070661859064517911232591723410576077528500771628349441743695854757571097138995717318208480083597898069537040403934229622258701552416397390836733548341550422003637993367402520040021532894988564321501365839515888265642432101214633087820225112727089205591019268542774730449022529491289423669899789615775662156617230720927476898443555445516350455929990541730105043635371698384975635671369138886227531251444757041151956848875450716671353467190603275931406155711418252594536857989023836167590731682822604949545064036805281652277764048347585072672422976243927910898066566391681638177806688293798686420672947372834731252036703560498875916866660402016048401134974761825924576134225402468417848568767779219608875153718545817594509999245786460989375213711815214422567499575663122278990596202463551996825910474633263884639417724788000917490061754512953086460090966721146339354172410229850037601986509933275920398616513605909398285819673270463817364838255139607019634006608557271545866068591987118726492538898846542512521156911919293243991949689206473464509519898608177849019882592114517324265469944822128432682754442519507356109311588516011314455675684361554616007848957925190660402772729163798729560431215633812056997454237318205472528332142221269674929438571635216117033554789040439658477291035491615607049522345775481165308087996710765132332599922015861809679377780692495642125370312475533126834008206679623600364626556428357413314761085550779265941268020252165719491611564937931578811259974517032274399725342471949135360014638017521765820355580662114782632481857735000399633903172666669817307964765285104225727177386604374324477651078309415283848148604462459553492108197078958418675367382759704200914456685951468377790292761943028617488921549908994158730648708520610284570907415644825221535322278739649194560487814034760696159284320006717047182506906495167682893647993339509183933952478089223658802371453284633983778146925856419280224177682872181427231854572627194007294296396753859731519154516194256261208536376522968484395565054432721155165387800593801084533850669543910931397548602400549552810816018634242947066729985467417115812447941254708664937266730810685478275766788252928830679389117359480315171540579704978624145615902225129686233758971755764817785774808806629631375537296047850262498774337282023305809531575946412536764736012562822598068695673293134105943243682575661466074511575620169949074310438408543461881299527654080955577616949455318182851072984154212224409749125717230977732402302308909381659095147614123200635227406629286811796692339380483572433307115199031771335962041715865444144595381689982517526975086349471980364125478822538138415808076598062075131134777057480360822796547216729753618828944101197322095534172801974766424541597888897486133485361407906519714970535669652024543937532810781922249362864472538768021418313896140190258883355677342942685060548438171955900537539339233364376643540342268462718224495564662699523154307114047853076552668053842208038767231836095154469628185025722159746073960363228429031470968798920063774229472011066714858338611226563117825212236993019460880993450486833445862861947946276389504525154976367758485050429554088434785206281372747422513271338742957010100013709279108967264460187717826473668424298329953147505487914466402525453360230716417614075514732443048806731820469474021971654103220658074873091583496922235051133979016834526630123465016385156174262833241028527056028973715687814832571154663722838088526020694456739945870671385169496415365963130324979902046183910686668804227645988066314004084932982280278017210899227028320087323453441568363791488532622407634272922883570278903578009534335986174457141458757857089391684960610047282656154000753705076241057893713032491864734676998508713277062771144266690574480807932857763094110375307737182842531622147910419278836271874221326491048026675313285808173386002906465161246937975753022014679177374989923285223957530597503326886526679019980206561966018274602365466992548930379533607183912904704280607240417840597621584807135234623070978217961128313371592556108071565117532237133462684026461867398692002424219138500472545110754230018915602416479819051725897985172071060469830407398899894076326328148814405270671009604475845905469769938769113070783282836703586736839924196026786595866545231507354158802772570746499653061435884643351658378897489612556524559898096061287071272692344949555666189917655857670361558563196830959535542944310668133117224023445518498168447892977627314334792177144625847590369530812294514793884713830246095250822155399341934961100066735722531465923526413734872950831702935686011788083589890290728294670219524292057793236521290595080200511235918144876814099178150172350234167483776469272753164845293303208008096510987284308098177645929736864543611005539433634204292636117025703510902958924192663153512924687228182271830009579355105771937616654395455788786261743276947509953044840891973822823527156946412896723991867649351782769938830971827990264318494841312308204571124826637490821193979834362053230742572672592728029086551588000530211624233523282512306922986106246111554960904355708745033655461913953725797099234606086330225864504145263687751748807731268554721423937298853474410514303505953026139184413129341351453060283033836889470031997931460685974624117946169216946974619876291169138702995195023945681672273961521099497400373743031627247197731951056208543305375052782741778363112278596519744111801008781660983392195623438847677755928380177958838984406471089516216466390546100349822408261841514353421015072117786065609062255497787567488952221721891638971723640516836219914589896962613753690320747909196507888880649760679371910151324918285201108838168420718539108681610880900206804500140254132787750637647690618316551390302067097958055822973462484734232548811498183087408598286920185909490024707782529464052106402772893421931433721633699799176377083739608016556782643555873061529009971612982491685752263080752154545802387498262665964066391594350002559319004475142583170369683433472731459262009422947229617538854517683775575547375521022689373399799312788582319217283164153712476640805643443553270456566243046494436180065350035798202580276797251459046345051141832518421024817911079390471500399321463182640459490369837686656259321920885341522024477877254770681940883195966067206488566059217306625000770176431160879338626987250513997288984891996296076536176669423962786821691220805854228194153122773698453364048918775471750113666206320668607342378901756680251026265615141748353941932139808030273062036719692994615937565185716396622005418423246268658165103250721785254953171258437700201887720433547035420635577568289850038308143543501059717573214904859175170973402437679080999897441924668264700774565287477431991558400012734673106786607443966753651693927348371284551427836175143420237258997610778285006404113692568820957748220905235237686498433601168912299817191332989438527306609466409892867495978833361478567686341856316997402156904213694929680590235752742165295331961425570342356787339538880341212149235635586296307372912644227589613699125337035212739867900444117115286750072538316978109916352188421952345797136985951699607148377116192126093012772731480936888184807015029330712118927681031834646590881157263927107792145964673519254173701513275073903903027017730931397987544886678844839981245769359949343358571685227987597630245621701824890624280363461179076297167214803989798390100704425933475640332115117319991419762831849988676973059363914244434391393796122058412485511481113158416272449519255886112276263021248174580587450476325450888078154133946313297714683445426619304607850220590528541333786776380948382688856280863336663968058404439066001169371150076655401454531394696042631684390095829688929197361248199787006513612839563459633189517278124929651135925157680143030013305597011225206766354411652001100221240036187946914190696313037595519642753069401614222636743382127356829997317828842748737310148670261589600904842101469938690312464180849713539941817334694531061400880765501526700961926827630071291005111421476281715309998938362706334743548609296825378007694931268829504729785615161337811305736869697681629789506795826172178629411881019168425582314362222585768700980766633374790708456787332708256268416227002379945318854295607013109116971467683878892701363563955589426728910205751637491212331102606291487641687777420240303618844593430269504855179019972344627904546828171283404195639873880893102728822652093233289878278640505013497222575503844782279038037037685859981116044206012897334230436926826892704386391091715153418470790582566981433832414267221670487720571637318900979725751149970787431491686520248029661062180968465220347026334967187682632735156989810606812382336447355361666013287566308890026337307769298654675119342246175871347213268443940805330946681377696381068512198220537048657129967958590295124110931075071977690099693023244102000058737523818728052566976049770790768138565679951893756746851235976386036802168655164322380805559139427940338903226574484707053622188753317387953499146793232580911868412070004009118350624898372500928948485698843448076856455138291228463599193120950109289397485949736108353879354298319242807833356956064050845032079025786309919316346496900211219473122276535116247841568623411878280434759985912602254566351148107056279944718720771373965240398189586612217260747063873270222772967917923558894587312143003363911001737753800824982411792515962330467554152967665090292502226625688079164655199264930498786975519383053633754563331437489424401357914705185781577522050761966731587297326716298898119882814491828772916027600463351959993636217599541970458113149412333255710737619630271852718148865376946274790908099837976486431081940342088679459001398708293074361838328812631296804063021249256750122662461323901014638415840943866988752004322513954696901113075684096500043183961261750277359613670488856928998182582125721863817359467421192183268981411948579584585027973218240628914271449703508838610009481850141850990236371860233298590293033555783080719019032703815372337586415074032231572078358970109374950995045736016770758511729495975848782286847989220762552195735099006725168218310743371287000894242642517608325455364237990336764564369095685751131052237724502885962291045197477879440576350916282444236201511341397586039478667748361842000577875389249859270464296071700084098620548620409297081853561501588287958266924776120927923201730718498862675667828148980141619874068182299911112765757422162161784601839563771126355025509905485959034243143587175991525158869109044912101573901529180672384087573421111475738739950980941009989471925564064461985288196716634650512572895134448003033218041931027582313565739115800163090978893587169744999454513280293347848387417590432413779934676755163052200062350019842927067307056632533188080716884423997694820258032078566808586985418667140001413756494130760705093437719128447675450541500399773788346032599006570447262757364651343790350491996278744467950001856253837990147592084416381931827785873721087134191383556142921763239540970836094180711518548002380053478301878608743719533340908967234968030927634354458112783549397255515381993352740662497773646226283150846335814953448755017743072868204976775751226765534010192828892941350215522726700063612549201704809392414436187787186574641396378667992353464285404597156674272828736638283527175031334357374071587603660117839588426337822689301673203039237933870217916492782393023296286782333541205272307910100128149364673707057561965457068756404763658269160302081459345067263200648745458645643055217388412332974199776237689311759766581485380955211114299477855706244030638989006543803483280290207410791507222533394438988847452657961228833845662482303648390729058435036281880610872183810214772650963510994045442783582503231609819444830290350715771767014035540380774753100558313190036356574548212951053796578146690061493432712939350946437899610172516297803270474608399727165308147163880605784634911930800206126610021447178791280582112736026813357773487609549784811499496113032941183064753307179227101602422605525828968246168337095375303118586190061774084343905284822056390584898800099617997237301584505102910169124988875890737456612287697351362288407048089267357520362060770916418943241119087042309076917039116043863472485459848413059444830830644166599759116008732300899378303705266879955583949517576138792279598283984427033418610014155453602907174479076782218597142528259226512007522683037667731976131843497336464940874563968995887872387177472575563101135583434112211031331234877155081551695880267872008016646553316419061368330641653940477250946827748665279896585783404691850409923195995690383511354529289819795397373145077616523420790647360344650491515361580469845274725172951583050419758782784431421362359822426216956953703337981720179127140634177349512624780969824960333353671453839645710197278397832892100577708100011336683333133874824856301463151228473652365271743218157463689553245724985237050122594644337499180211757203948619510406645975674899620937743209315421236674272745367932325966666038484508178968660371712346665646678792033198386881995328372264496394998874886190692068004226769947750650812852959682913745568016871104042115520779031123175832151879931143982790691458904465445267562364943055218215411837748439661150927367522140004511783001486229795077464500545087768047989620209633749676134499427400023173384784136681913210382815672497239898726406771604640943292438857603552061502137825812180914074722015201555567250903600996111507749134442699377814911714623479531484748349282460590341148377449532628776185881279809077347850123719849211141383156647472075999026309563767859148741291904339263732833070461844070514230082292318880036359748175081638702420039721150630524438764551993727651692970736826976087348107087248561830117130247486641353295967315977693900724703533343431559646202228639333153740594130317124570224303570850440708225717455186178227445418549600178000162050655863135218130896830026165816295881743269319731999503704758477587154198720866661498668797949177881069221784531294413819570268589404410699487607276530308835475446387736782443622513588649676910915277977203929509779083750625293673772049821825464827343197948771386970391445644113677559863067210014030616546683955691614954749797069112703496157973354595392826671797324706909688460507744568857798918119229624441699522729542584861724494302433063374555118558733903252871285684392874002877925907061551128313793071108973988096953830118899889346781652911034050448674639577466775228799516861720359651177903712658341646913591131960738475542088871177877350527869673364901486407419269575841626575900489517551430303893669959643271252372388378638920785815333197795132508379871520218879078706956197306782880802020073111491629393214858679470682922466147194457667929873421224699025028220130488787282236454485050335157032155357968188703396526338476076119722901570937876405282179386582872121322382033973806149309902746833194207977567104343041027554828038776095477915485658461714278616953207526083094715422898889077043377669217882800198129387793920722508951203338299811590693867544117910623702496594084280542620262709926783503589596716395651038450943636959660927363892648151321702611687251295270730671660062739457518544708117391504044548919372418432238712413902009125199589855751465475541760730414940164225122216469341977517919906733926681612955917474643368998648675596727739249045288816158375010298323968995860085218719477127858766017774464195552738000493223649351073196054093226284648115303882401970526247022739694247325750219988953553412503149976392276497740560267465480122066590936549762323567466510590996265068681557277027661586926034864801730453280488652006830680998454857127479733434156155344891808262591698823630723284532466472961065982256869717718379551699838319956136583797997667325055879100890765551977146472343134531192647067425809974748891093179789454526011878492191091326341513546892267754973107769786838762994240235032748087387979764993722483501168339951161599970685033684817329177062159319411323671613777702547398079917772170960869167356319976912768793533883189692118295809855824207970182318270913512029062881609377902718895676397140418396576583895218830349754259603149835982264379091132693148382640141760041572897684535341383628690475674426286936586872195902776825821255609145021465516510683106121544045764292830872382730491635738434361546765139378766203907940946814683316292184586418991174561620029366585133933090843297990348213046698692485353231214149979332297230572112557790608247096980398160703179911097406348594309358134844690611605851502193873407006610822788860258053552887387248580135415945250544163324247426943561192552407952047068293868538680370630839204515474635820275223802580712245785502761883899667918453321016728145238787830579467006164148851559303556647988253648639764500116418824066987077061008861647267309061631178654645848383269141231673993464976588798200335855627529390572784652489641526927023545335090655301413884018657884134458994656640625652914951192545761610711528325343570973295973138761257731200366645240393277469848398142594068586174190322407340524691933856356924992086661617091942486059649761181077373155442827590708870104391270270468618036602993178977762413575687863005599012170986998834966473958081294950918624705338358025057640381871904953549520477390362438874448206374182744660843338024912631604266157412923684562085697858217206339112561941078803491135471750625740170467332185047029136378245304212194965238596901752317620430814847619181307858699397966711403860123758566960543950358081181447405237876550322267598840519871690039907702044018750495536867085302061483274545048725450332784436999074673869172400295716433185501902190633953344298402604578688931943743696927682765545311396727720406572897752030334001029707509779075390629088034258004276893049141193880913346980938790312937227266356035904699926726608931737733826392453589740839324194538217100039883690692009916578412322557154204417481937610436872348534398317010315742458822607263082074281252331314031869922565887922245672490743081823166751616843450481702567905350041798352843461444675616639719521899028247667077249781611087004944732004383803300219983796647234691353852577987149639895251097964333172343017117028146504402878501358959698569982101183522075393790945560761785197322840844674090097665108719264639507076485329552762202333320455022758045793686042272067662287668055299508561236933565174441462572734713183814732734748772684139707474559997033649866281624631498529269696658461943150771111176670864312319339447257541146092866090525917133936726693928056941658680558607634705400546269097312136389254342176476014350348078504423870516316888442312506195712638455631726098226539344888038455956124270049708349206160354935864449966393770044217004346156045238406744310142985810036662172804361657137939754482467986327394786862133222059973863257863573305401679039952283135163207599061569948595917268695751546080035137600105285294771582920947309111793511871117297116956896217251993305232084455785532416430631299032021242615097499388777225689929715131214499031383629143961326497456455305361823932193646532508168586317010745657248551486811936537856427295050912589964510184338030830122282227270983342850172070351415067781605514218449785698613098682041359498427067531227665512418803182732397987084628908939047262378358901515525029077649470812937051895917655127762345157668315747162580061899002575124924875073271994883378308484396017031898499088977012196944024469902674638867582308285468907145549333463223017058904957297507259693034247431035997903770542374608437730301898355019393225750594677427024256710218766858542871087907656983256568870984531804187557156472617253041473122182151832662214510571082418908536421623610135657769924177682755650777138027838697848385631043715116522546760943289416439839881300953338657501228495397032003815798247501866988705066880583228244991688789751702282682624590670724096883572005343170708802998499630555524643315241789567112156645031496932345617707389281731058429244186149687823677447209372611988982039130635509710902128783867297409348150960147055673695989679356495748795668493819087136377615546656554395146754592467368711479543318576109263261057206689507547835922065918324214159368955030079057869554139818717593556211003609732413642248818038379308156610377138381940895128216764910286641520799736501736634813786387780892707789606685317123808142188185719993079301088778162491370939481985514161158440383879694225211509467889463759475982504267753087328648937230272880479282482050154115785477662926007859022142534685809761535330937712849027765289738326203083588832954166664885749833442374959454343857579536169408638462533132158209623900174353771076540310393558127316741110044842023781672140711639559748888384019671401871001825184927693970115177766722093323691263745967172213657184985147482234026192201992018087427071800909476766000765506085275104277742232057303888412319868038531545574610748603714193752875691757165213499963275243708796596151846526803493152172859499412718329132886163600582922770559381884618271010584326825547124963266803255208627621370264725734365187892015876569752088001921373836158886897757410872380501778787697055283077982321261652655043033843010925207075160565229379677768985236788109561270697554169821713791035411997546246563205916401325665849578244755054516603903790582213924501602282967974811450821682458800367389399468863198583111760271731881894311696020272413175419398406023957914455059816240811579084491437130642356448307674725497618652577007312750529801891790094622831044142615316198709598716077108780263779361464004136939344213101044448877014340223844164513308437348909566009082878336516111097317850099545202852185519047535231569195025219993013020879606847664893141549996736463980552208514505196654716091097680461510789220476869977834779148561942359578019471664357136300564270149001581488975082853380431115980995359326000171443933690158965763227083256284212605647541267864587989811646599585094527879674688480508598544405925483862877681187831416751630284177220888033785963872696930410692755271426616968123858298142444792619775970950255437380870640046848636502789879690241861325296698117841958420467363973962237350065019467740971690794356584355157971178525659519369236757021903021253682156172055270627642556281935004402324415818997199379967492356260614856542429896916886269178361682798213277134199184837591690964598663813878410885475777687404734262652055607275396047831336424567405238636109518876775017712222668865926241438741469982883251145020418963534374743358612077100383249776242737682516752460021293932111572761028900672313268786191122830701196403200425484320520226088337424990362938995386403444306103304750443546916872872045785010773575061927890008516795034790479805227764064658611730601591286133769703913894510115236174596839147211055646473921244355060123620662827470260274377395620760416210584905217283588794892715558599583638591632907331207995757928623429214861091578242670468323037901684292281372731320415847186350875492762860077511777013341211395925534563659298266151495186703075308502165583995065822361106352065918051679600037299441875180813871163279026754719684565202259701573603396436418779847681625161734631410353236844792311486643233261410665491725876371806312241243013454789378079545880040184459170068571253536970050627319796883670832834076357663978321474910317772748378714274296214214290516041489319684850822005605169594972399916194218154849320498530585626716491176466398564003957524370065005361612305769472189866668581072702595131337599609997959717520152428564288337289670325299294872307409122461266389227523110891531642824705401385333142776312601639695581205295285082149189704405522075197670704268199361485299154209399926518878837618734931745301907797717490050745399464767137674864804201024855521683387074457870027321549228046860597278417974042594331089515158081034217770830825970531053502166031785012305378482327025515930921569264462114045931453980459461422178982242127259972565457866387527094605218567184406950596859091567930768506412132783864313150171820746488017644974807940930628719738712352680457597760255810392872917595706315157899900952009944394911054540959032670537264659958662926450374109999866765649409165943580791310527149857277639697202962947013178932956772007378941621681534693860078790169262738539282896173341895565427079927384562861708067392793896269250379942487792352422381757182823724004828545015472703753496346434412347492033956131080975982210016470728364979257377771445808142517562380228727061699604708526684295480672594435234794919939676429182174138983354369964102078541914723436325117891758077685475989772259402299182323390081184847848486714827960403540152985460900685401273363915741565965437695429107875178646709298231528527047580584521123786384630412458498415151664952838618251220215883058200794869818867195586297687304700432693728851042035041456131404380185695125736105456200881590653650179804058697213547496918381946820095367737147369248585421745111866762226947449024963638802878316288813578220439373301434782301644240168029254385993171696491620376297067462089045015565956341167781985576812950061577702080066689698018897609144252123398598243937820741162877171840863023917272138744766797661208881769830995102855755044957625056340237623927192503105357797175946070624459454890408293960489103386572274737875138192346607889393631119067252187027899703464011225212577599364798622711394790468939576506648381249635488815039490867505989185841872094842271986323915326909049508745266027563138422862749007185924064310029148026700342629091191369869808285103353094670444249976877019571941273141384954608068485691127925215763953916890100042986313148500828283151096917946775933230317978894198176252783670434231260006044919265568494105818292407666910626827725782829153763023462910388434587368406522837407471082594351023990225247985900876953949833288901558429198399661762296087805492114999795365470315804804455156818361981030189646481050600895553934379241234177031496188087320555862781178196493572107555576640734904150493291249129618503794776699024185021512471535431339546208490557771896590723061262634688024760929990084305359888930233441487461946944151675134879089440269149288453145434785743655714392886328268787623377571661432641237191877803434014221836247635585162752275905991737923077849688340077025635819984079278200447530833747862974295503000416764260287722745880693375032409114208393189557484666128652640098287343444905956217753617981995490823752087012597912389740963787073253935955255699032948848295006513251494911196479048354894672506670622488042361907214837326014954406200172714592400081666977748730045428103221668813529454265595603669297907476478875953004479359979263558199863347935371907477028146333692638245544432403403154623262419097205216034239382508711586425707598286840201165655743382717580865730656776687129356695063261834864076257031670490839778772829280953630312333758134571299375552025438384152902772964687653855435199043436286607492518120260106104148532655383635091715896280713232041873714827168294628809573654669786683986883542711683136140533550355756566465825449620270785570300076446941190324523556428024360192339009525869257673688282078397985530730560357504719195704369803435065317570207056596947467306575224525686244724679888188232892703068846292695041133360638485900066628668883175878448969017891124071476882318411240474697184401786349745390841080835422214534952157960801925869305919080770066932208670425932897006017101527677728705094255079748525388867083509383338094428072813519841715888472639319336870527338237036119269640840792805534364209163907911485004524699261443070595612770477408845616581351120990452966764701661188021743053268795332227975029792418894541445956208563649845438737899348204524162413274042742468166190766362306797363848036972969501922321422398815311636485294127854865369907417824712071218765133676629754221984297513303816516242962571231098914281439365726590732534726983770528384801647408095084496604176587556470179470844528107190165371042154948000778755028931437217879999113091809454561920190254023404801185701969203426940057315600911310224114303941726495858190475347463787680334792065362330300814471738024874347580941330878142953008295712354117108234613668742707547374903029693164727243383119627497961579819901199972030787003234275366349868820916141960508270372633424483624550680390765677229598716749921246669581605456732942559406686330386874781786587764312110228775275838190511347394502517724959749488162158644995765664447727580332971076882786851064519076792256549384389999754059698543425867049826281942884056366923650799328834482047032177180963223546147591981259829506178528731807230125090716155111278124846605335982831719162343033779910126252688028994418250170098484031464933464959957447936526112743538042841256106834473486701946641248052682971926781057739497932887423456363086170630994929715043536120683108048430002929735303503957561530186062608929649422068197379276940213799423267265532452657039782259674961108135101941290462379623498117652262212058139143432130176533587282372514206916102414075463033447715532918365080542937964693266310237578145277002512780720875286853620600224052289897620571430736240160466393351677674133569773869371057234707827837959606320162569781738660773328503958140700818516068484223782359496016802331186315865148543420905126164673711570097249335779981275607690611721894562207226038823984532993334658075441112308819817300886702839165205682525116146639127982329955725099752803343409781236051240071155908033325140578775740642224529542302516066089689496013828806815200092710385260752029285226631719989886384290234337687808193566111518819964653736297874907903420205055472523929355306166792142179051989212035000090931962862818649870029074944644014480864317215880676109680613312369337912831544775123913946251280283476304203434267977470589320967747565568378078341233973832156372338195491044308438783730403021451686411556067349918151720937285590476728726904393985811022789892391142896115719735283547609138730049302282358637089424266131707243117712604662305295481018169231166153811975663419434008741307971667041452223565630182828981594225513053184865502260185015955957522619348270254847004645662390051570272821076758952519366709386037870951075646460430055006729977111202449291263339793721917200301525021878292247602456401049270897691070142020149819602380980174499321045568651730788340958315632274147159916494774797659440649101702065702809944493802575267960903194250015038671557243176458901016933653558677568633181815727753765294305462060382608269787549626545156013997637279000265969428419192063866770748304560430179038453809287031695848342652049052433091555152403920453620068186470207918396399840950886332120122417713799500531185260743826014494154324757103207047395495689014779479097075848572601288208594043093114783934107555490620466215956453033454042894973444439454793416256602545087680821630186164312350518375204136282299309327329226858024881190003400568925924592415487563841527276747647138593907392270393354038702416372416661076206647741390884692761435559097192713683235154951097165899809554566559798594907278584772700552726819428802065606663170634581780672856440617929818198078710236041579693214251520742140194915489781097010117203858098510152350679076296254240736814519350653192844360423899231171716503361598707074904945627015751426382410752818383499915565440316752819168329821455160797171574601319762152599333497476152652684539147253820316228817932959611653304317650932759844730777907486039419620299155916957420851076376212793218204052658473968330000611108123401486448203148698850490615704958574091160883655393342889675050534092303690561710685146359871110410064713719478626613867621983987755947902936435034674668828489463153547992335394363076455487479997639860982426603998943770783578274510397424035757507108267096402124853652173139136028105783370909379285894296425947453272982239203138058761774664410819025835417653087703103663748326438419899927558827566715540124695276672322469399029749316557603519796493071946850427513662311466878271792356230687408305863589714594351047679264054567078120088341491781449322131721047152396225592439412320181238737611076689301294911300576292087241524736747458667270641747535822194823114124751045620261066621227599654627506741023105664043193899619567191400120117805000394045469106570529885759172279935247607979069262077218455564269428673136522098721664182017654603319988967999710282344467072835834855613957064273653970972902937171075722170414203307569558962571738217666861612568007036628306995428791660399412478119679434162727428282123108139804110759497186627811565863563337544876823949543670725015130643358772032634451204987790325579144008984616711217809254334959911704417225607394491991393817000349131177293253038472485839329239471046855301005791819118703641435680271822472926209342870518004687271562886805526793680601131611518724053135505987423931220106639508754137318049734394518644447446840836320820886763197701113131271731091402225812363482105723198432041062013973851091776514671289475102309941577497274877914694434574650232529152672900344165549237022909905544823285505708718414810232148955043173647211486329666601513367567232252922953051373637441932980722142731395876628377101735056783398306728076182600254707896090900281416711405089723228313047147103835481445325516344446412490004334914557293458163763244445828559362967739509541801147440813164076594932925755431636550811799464531370135156924295230502465170154383271710637371901173804737447964867739456432386810652016270351955367941068831676950183279385692909993394144513714227118834105107890375287659571327903206638656837745462584280721162260778642321001966825449705202597178674359795960732567971707920700506492465295462676389694148639983165273902380687914370748973040561797271207171598503997599707995839745062422770520410122102262468503032011390196848484247326713191156842421977429935612209958155450590331750964337386320634943050668011297315057624095666025088751493134772067944425904695576623089110202957927400681951328928353013751838940343967591700985982630352540430311249690751319137398596109598771446289757796163675258501233464710994040508793229384023817724033575904324121564182721118557632813511912399849238675721072799059142965687395275062036617876384451923437579235994288134791237485008419417649305728615120636709414971030081711328958118844033941131179128005843592566547363065745706436579494530504404891084580486558253373580779930810260383580115005550302311463905465847596892297078847833153844953635788046370453247694933143737986799879001077017335925832406484618514020383747408066400194798664054006962263812910052470579997070385804031974648271165107131760998626909888020312232417038855370363256803658248272244774900964861494549308773347819072178485362592905559376302093111851538145668018837052005975163911864833885954754206519950780853131798651726694212250746472247324854167471324549465150305103751691906884678840255059517809675839732138133738696384576713421656155967638463022019154462643687893419020530653124390709932043162056370805605836437615597798801371601768432581872000481851022224885240063288808552948319106467963049225784194544081231441487875798004479247901429921980860030979533103887242986417431718409636884820777846414648612057127948491121117725355549112978040070911995345410743489581408869190565670402843170061073396020182200408415127538299102322838652369066323957930669513347479948298796232892393095956704377976150895927801116281175507571746614660387596848071422428742900477251963479212164426871714412721579551832142169858796139685285577624393090331603316162467578246953688885077670665336866242098418341598415639600868256377994555173430592502928141300772914697310226142944448876987192908020399076282029051456642880768000269555209804195651619496095952056281164064571779742627100787979057209276600570224558437809246796266379056695703534773944670639252375620329466750365558186957513148765550356440500364009830799635788471679182648673977286636771557608790008404830414919092760673798086292626356365232783592408998403401278544479978935982849126239723160933897286547018027144583161007665273089809486879666840036738339438137432381099867247650377920097275208863730498481739398512181645938249106351972276774650506279578971699326452181869835554566229778631110291483643292044384132327997308283565358539055864479913117300494625171739643192290728759370733107867412295232154117693933190608593591435687911416360587254074920845885528942375356813548618442585302899833230909410448831953250970488315272199264948253311921924933832754757765238771195468165098065497238679239119747807258535106058803359087024599549940600527676029442955551055748791745824290011677438763011612078038154168520880000443266309514448907512033718910227060084295389031505120761797700895476246247709322440657909215897663740857883401733566043890740966480695154697247271279942204868866172008528369104945308439452117025694954496540864648622114093267369954980217597475193204755904841340705469200635642794601944388861687650480651765628801267300518395803666275196478086585451201179990639481550675240515085023968251264657910852180823696206674491530505423378100806863823028698623034960945644367147323297785497918382863610036533668696070093711659972801061761064569153169144614702604977892350135184135984070721935052700858461572738528743029171848923075987617130066005066291271909732145748942616633981067680163467683881178701458853037035816186161808528501022981420942064611467678598501033488143863015438701259520925475521331770245582382240835541755813888023339439618436700801155736633648287000818788378280082783497069824746613865097057408830513405831882018292306731698072219770613125789177873290258524592175231817921404877539007491395530481441025376121928114878600590479620374418733872930786133209870267561951440505410272314429917348122311837587528696624796248310827349573226622357570776119601498031713806915846558776905777087762409433406759048379044162412514276881061245875387268252945883796028187153487853906946609576121158854713478170510816552463508055747567680019062053994679715246040526451594084375165000882292489093156458394216767066934939009376559279353913265702966840282418290451048760572606655385514112915601169296672767884345252093247739377139650172194450904747738139040111136877092440614216537922765663405315553131161373501193733614664893812898945366233061050886051647034459089413547153665910670606028476192004350937889780166252632835584177972350196861389511141720803379974248719878541341783073377238483085087514096527438044941703544099422742959831597593293249715920596389600932691035427583973047825307389719274979594429578983185617780740925738064163601901289218525066281737119362695751358614885310101873985060934955581089923259261640384023297839351775597558841750019790751841806890849512887631903360521038948254384186589533271735947203480161612730089552833106116026249879441153011985526697139486807736849842567862320849537242861218364783996721958855475419565763820193083412654975008265357159450686915367188830620028276994541387347372081052764187999073829596306556734743258195936573401100554666981864294250623091030021278868962742876790398020675503866075401998107366977191473535724867660083396735283226621852628899670619261792821749286446918233727009874594853537003444876303051607108304147477696149678417856297923776523815471625582683662096596972716021218158519550129071901957149286642721808381674323058068074888741296991181942926372082864921952109619519209962603221320912675355220441633275925458700081926738043321482646587027457638412265862029926313186195016144077350433036903146949969626832200800015551292511913077538641299973962728654737023303134678199791933848099208507670163734193399718152475759794760315318640130949146290841850178350798291355221594903493892840528256488044787533660688246991874317411058598131432241464492860010524092234907056907901504294463973445637618877679848998421072473074772938878553696221123123049944548066824551058617990003720664530609182557460572396132634283791168246705411758026731846743932080372714271530203527422975739277871320612565783418847892603704193336791578422295262408781251244869389637478205141102906752657134470238022789174583802651075920781413646330305922323943688065314278457613667120934736071347044430626778651118772584935093304258396320280232112371011763985881159482531566210487976517969720142582860944249707772002345500970495834148814801559527479530238461152338082452563438158900157423658460571285223149582336729572626090595680385979988689878124001748263165706442990318471430467619618050301027272580143529848948937309846483753356856712130758384560400938285016059668192694517910990136146423648393084127964014578160571895067206343426887700258347514896286728019794107798446398458205264540143957635835396210136522240027700537434540249837445263846173055998394572528265625611786918820447855595769721179197309031484348401179766695505852528687666980064306306814549143008450669951112057691567925466723750946059087546139415769453373459631805523280645821535258758576083613522679698002683529549233116080712664680574573759179949818054536333385139497950693561401442841243298488950958724034616999715374771776880434690329164362926640406041100261696283189089373134178102683927518727288461111189351995089362650250424894036992684321616110975234773387485064193452455859479021739309321034455769793783455681265993561304555035547018125459421740986967673403046132146860072627897009465638769722727775402558994656716182118552916176599418051541600866998331818908677176532239759544643482883297329530007198712071117777860498487910039956714087002900512113938186319765198451418706666700272058667298001986645245523748042697821594211405579850755165281585936782758412380176993586333872128182654965920201338865074439431278491069632473663809069066262117872549768933746798640158899164418216012514967600238972756817940910492825286437342251842398382492931813087649503659536991717421237589136708421381079352112540006260949910717141035718469187867494437507458576147610386857057159056708244794732691157493257252394407095993122800483686527630387539071199849278532727226048734237832515989336604132489472724324748483699577525397533771838868849798568989429500324921740596195955893202229026943588041828681102180260045941289578486622847816939725806220662464163400706492325013059771468884240947246795825025825763073178335392108539018663435740523047537963376788876485786805424255975167151075981445563626164242759264769932744916027180265522611386548029639904982466198338727251085938517260427999841096098834622781356275137858535640088901248549266596757354219642632716056128682186926245496696262140413829122666061018475018113485632931866603470976322012974058757064678568256411528653411229387880393370166753983180225107667801156096563649461716649002279163380020043519147669720713971339311590929325395144190204416023104786389499322778444204670968344376195235558377276620528921556865166849389853188154048510470451159752838050271264199903278475425811649339832701253815737050664695829976010207526941802250900204778799252449148685330349833860009546407194403177239772776058872984594037440053324211950544399079442273282270386831581563599202114383819168590057584654974847725658169190162656068464952441798452290738132568844634149900270985178681134327572674312224054879160473786582835362686781203106939303314270705181418620778676800190107718979911043055451834548820102012417331220007107862225604985755292013543930190849943572224723165427686919423315612910974494974367461533645982675853550944966867180436683171002714000288586114978273760578483185871381391356068721181877951068196485944744506210396472760867493039418332454413627642257070099362175912946192986883903917497289076067735369408164822997220036640131043446694453008291449495326882950102476061773426272540663317133258880670136441788860355076856394392672929572517581894355219417999907284373453139971247583203413130987434271006695349074142626532615289996707397908039573571553744201641866330598600137439503320535643467410068505058829374739325247276510867289241137995365466373816116556982457016174505565528953676109905769692516984603441848490950403228838954573603166029812379374838893796276008267867157742078539645961995181612602600822017887185405695123210036315358636504774567466264479497496665484972088079314879189479121839014624653524429578835502934860309495873188077887468932524729371735417488021546688671294458260547090065040620546688990108975712492821045614118016744748106524698487006910145124575608737354100817795800789253169583020070874452603534290168981528216684579329757549506299990167953647410877680926323540260800890898858573348457024931399428229456628614532717528050920399961434953121609438198920386139659397456699922373244904101808384174462654368309922821602699670727210339460550108053212838185153002556847574716473056838410892655717628983813212381411518868124780094570106564944009285900953423315054993153082079060505792684834134401774461057798635066075253185106063715195448176115831102716481035352920636267040126887770332527124599685987085583930646392461889977452119257041038895733846668483453747837330576806625017856548194711104826349070775115776703922389981710357699382327261737252420016993132357799895581810560414160073660415097617264296894513010865450761141765481499906823773417627103350767811830321672391226497268513095299431325236112022040033901833569181225302393141222908894460171667144918190234403374927517135839772501797312129118193915276804707679185869237671946614410718543758769479093813920871651316055694775987742893854125551613547810374312237279988077621041813951764742697554537434103830382171142118015441341129074209718302714754086998240518392068584566462541005836619905399628354186430419447058147554826078640994265301707809354891209794669694900589383759962659154417973725856886272414987457479098158935182801285422809623365752293574699969634335292679832653077504301222506817122189052353339617834299133650260242546717019331697013183426852299919611629232510981753200825206215711001347907392906491095996865815840809878870337276080142451819374320123052151106775677551097537627286604885509175593644590750212660016248015777323531221495323962792352992702458331412179466911187491734919487832308715857274074223190784786344249679906866988331220948165138473884756493488229036366048864957554093764328066535271539448858262658797735162243369354573965503167829864801006973669625858100888620559855210851969316602997263435924934255047050287661593210778039154243872261109622015976177737216913103416863320304906734592945437784590010954291514691357475792107859916717904183439971242372499419606184980629149750126394009570390299312134485059091729924011976185279164657485687723405096481410100420601013583092264433893446691191504801554271497407476171036036314811951753822848726197054839874552010260680205558000123626649692500853587647927852611879335418922777397974249009363217947438934159861187597268724911634588987823096675082235322651784274242750061385142993241230568147856421740285932665272515968471614230416364675473961956922357186943253123709047960648510723527236841639788236374424602639686432509474497683170322656698260306350106913145669991548050251436808913757623533951622492339894644965987405224650662845976756166859233304990598937356323277424952145373003890067957743519336956412767218957792805439316962605259766856975666324473659394150918217263669498814704312642505376404930282090984945563970752737246192962028002093783336389617618942935966131015376304800781698864980624743920621461972317413248774838856666123264613781662140909320637114851513495511844513545085980642646337535133728933784152745363416498823193026923218479235436347704059069803220459657807021294735706737435125777485551611127157352472432495489207716249428539098360252448806284029988702046914384612734090065638385915574969687668340255839854335622228011994897380227723967289540775408928606004737162887343840805389908259957879549162753723537254120805199090034275233248542014096294766123443447593174160213514209109129975852839851722551885053287035673139047188517248921776125000897105774591088827406295517173574841528901093981606940324164691935111274092999301045792585020960019804993951359081251129359151136144065184152805250872730397037254369805462211531301677755726787319142342815612059028535773996356853021077596985804768479686071718979395030921797835818899681681210131308614143086005628823454841838462137990925509832556580676402347499395443788644667588524014067156546098615741709462209547960393538208052146636104782249439513474121688504201166127217430534025410975532863724569282467362694953728455561204954915600115993385343626119224715507350220529402309480767400592708060010923604309655705432356597099102126403957623959912905801629103458142791602062430719481424393581427117978113434395919367003072515174654251760963736419334917838275536584497725895895167769047883674770262944105367986749375025350896518395367755119262981507988405982989881085203068910293464335003573359499581794355521673528535332689538550242413373455692235133770606331135545846906167495524938563792003737165634672579781120030511342075947928019985819576877976736563113257216656844593981920567987175563159845245201580156593631937785236091521589843652774025838188644662007035997445447544369125372823733346825343297185077469956243831237608841744669508689107386597433816657640352309572788097278119200660665181779888653066873297246049930207333614738735344978174545513980435215383083978512580251753527099997804263299975368941249475057226378783280359094269759706966829047527032049054064176890125125718639344458424286591628652404189672783838068756133707904147108571000498062962783630585443563579356749391416774650027492409277614841225156670796753440773347124790218783096778027615932627684876253870133120035619316720656629873449923507508214179302012612561858598565944219716260870857981015806016476322378283381578415132794926756188734316758257086771533308761124866671402522070632025196100472391936336996136736711123262200258109249179459905144801627779314935360931698168291996002405399302432688492056417321481591118478783250272525331102274173799006759197652320567668095130340380471886831310385819240104324752488276744971556025657280473273204438166924705540419543053337303444259776203913267194597087976420717064309262903048209784062951084528970364342234826417353056222555872992418246062271987357805475454604192748517716278925829180853947287641361033956255118847022412556399390939035735935800691280323995433009577011172554845065524229836552276769530433281453305616403958154958487691342387011657105648179083931220823973984552956473325841647654328854195832864244430622547471904456590231000863419190323750015343333528522508278848305413275869588485977580239712082355923246743657457462496959392991310152204367392814612856372507055375892638187534038588624931406071625138328483738759225490814887162566921041869654985101505411557768055425495334815091828247626343473002458787542551071883075526189423170991107911878748454363566688787567265412195806879189428847522633454068915653111838367933298738961193050019291112317534341481808421476341344365460014717797909971540601869480234481057341446090808268235828165130894047688875352687272492830536762035304772918400679852158102304730950074242375701788552737492195112893381529485684654844452253294078338760517485752974368321324167408416850742402401197741770043487966749139285638188080078207770934120613586720770434756531473423722234573817627269377926846340361163798573496316699419428558950467933800938337811840308589342855355525813517389598752933202142408745214812444164307047305701652114799052523094683458902683168530145525582712021669589946799573137160934104591725580989672159848389966356734593140726454427925342372271230396022661051786967117965230358392447877691194617249916455652425184374425796709342493054359095416813706070911646927462698875826342799184638810970747237611853858701676315753642078547124254908779408990185418488111432007368668761464135674912831326231001261192867825661868402713426932202645990516742238258849647129877811211354884140281035746870487638167758654164287790908625393273959333992417116512661738086561452242761783227832578615351661135511772404117595507848289833114550862441027462938393631698666321506435495718445538966894045614535920071376515428133998574945788754922479376112336074455915827380911260034877852217055537550827370919943075134154325997652418501964412093604549641772338560087240180980976453371566579044282680645424072361180554919673581238528747916236939481355230847909750960574790007120964852992197417871054123079282496957653061446844939617309677846959894889508521474172641323269999865032465590805776760144625666354228404184917571403745319966001380998896748285376624355324285952972813693618338772444679950946115909810777706364389650172038987025850179006742738359305132905580641967472727401267309549754210286401471524151768764207257939145125205570670258873120918591967829827496909132479242182755268644744124793594621484992972871539999093716844206859310284359647315130448572360099632428225214808506608457310634701837634023610277129444796791096981664807176406500077306623110888343259337767723128293606636570169735120792387753902845487276349885772512226015487206824539759965555382901573474382496685171164400081258022162995011738373427641941475167611938057730837150217086351526393283655797984654182943945647748699484537204524923774608797906155228457057988564314903758622962127363578494590598830129479618755924796907926099532017770791505505359509613364497117737185511815337157818699754181365236425822940368029345842159497134759890709392365404354351027023126178190090779680210584109818508572237499884446083521203138843092125261737927659979691860352271675290633074663984970950391861684137710530873062721946012116700785222712991578421220591721519562544552680066275833475420484376077733408543836228780522977906108105176265123725849914288666570235132667698387582625400763226812394495302357469130281080365428651287529483305960733866724880716039116784046571839567208026950946971928778792863197673792289999362752723906442958220747818380419443749691850571815720746195831942949777549193056408795919629346038038076718624214565537228188558129408251827405302959618896664117818263235155186187534529419322595539864170255422237247678505513241577099489467270495079683263287469261104760530473274681261234587545268268054832336082335236316975739372400288764479438269323227160211503486775849183636441900192958848925114776768694947372689671978657619851666771907966704099002862806589319685238040692254766501378659214718981860431888623925330423437128280093010050045572925706750660104658875354999013936021881239400398727414046921195559924215465928361225810239700306762597220218385848076912362123047672858985615905735031187537545575049244187828529113940787783426439469718458119817174732050182262517520815368489393621475016725381973989735670648675679474197162689697421163280630117306158725570006527419737579252987383872860717170111465823114591158291959571094507934681168339121760319283027547824119581427918536850784478134312972813585772672017207638563257571027663072773611412370576489597527566357672896292522399190768379936725148303322932712769336100706717203334708951786710060107023962264525114026745239846394169902798023561634161378888531993380998518557189079567093762450024724431658118505611685751301510667735925270496175573098106399782274600381834904245801911020703728951419336352035495159768900509549106124307247425063647815303802865335608960043854187410483620853776688828860177222880990454370198098786005603857489910331048002405867968378792294484977703696947641603878494531264876173320728758284774555958154603887649980217419842875338915956736670567276561056930822049896692522673375720143627435191877173033019785897666524936924062332711210887249528879652775196283758439820852564765587096149597909562375695949191219752109269753125336869538020057013218732019579155166493724952056682507848308464767693478683172214993606434710120808334013870076228679790024344948962128789517088295158536674003637842188628667208449968919727942161300008689388683597745049398831668477555233190384471947358120528578978021997787151713112841362068647638758580527231089067607114933194010320786981453969297320250749750647766364721057953734895439077212375819076306162988816977976153149370304448363345463523986832888426535027603000098996464528637218211782727011142322060812306851793404234409698974961445589892286295827774880440065715534342923874556348028994556596054736378847509382976355601756348282471598176972163427524020638204207949975726290779963475486670625746849036598274239993630051291819552171466579834923465234629048686658405673197298271124711534665819713196765117509949248596552705115939964283449970792696638610673423971648688240232368911037679970998777230131196294702142214107991670227926095408545612855801810574317306062272031169994647928135691686828434644241915777002393183110846005808391784107738792142544473037485010433877118577754410971451646634539189708653726968112867745844574884736526134548065996045004794988794041914072406613660555826394084565641912330769314715950343981146833399275525055601795664692934306282179723609537088384697393489073615103672995420039401107419652846913995098278312796185253831668520539339273781835288342946203559306893669608338234018351133890661720675473682201839605417809462939623163400928934585529128582183618971151841557050749009315073161973854658894858529987458221169098555354239886329065181892621630162911409443536250688352579959497164868793802639150502506164090684657464463367213260748189246325597755684435382038698856828858789825676805951633539254868680525152795370375132750659396450570787308890578919840157196834156823962751593447398519702097524557903317340330926937665484235052571698457513375097162063582701958962311198913727011225234534059058192592240873016222505439151912827078867691009207989737383809342700983487011008350696802598339839042827144202447615036261097174553507484344447878979667526462340060030967053414926281985688570496187919985693149927224965563666271852476801147215669159140510611955004846725358647355943660147769305870824177434286144136328577050056550819760073861797476133418303240968701560907545491602850786892611575371912637375681268523146758071101801420697725174797390278114703427397639894852167332281647782048352286834410162771784638358056874205902958924836953361647351141219513519144637258162643256686316924868715892628370121062654975960115117270063709459075847588150454417362665239804504303440643358550924004094675902294551862100217017833159047267125775156332768550065452781004163245655239924194120514455730208464423973987370042745576496481656403400043604694136411523588403065195241186160043131765722242742897230448182216908777535320036143722043784040181391771960293751820913512340118421672933367970085066489684613894508162511038084945325922876978781515665896387045521614531678418985848045247222468418904148252600086066893559351498216865488323026521303514274966144489566177038336883483640504193905300030420548681275241782757444185325602783162426766357677449778892490249117760800007014003056656735337203787863441860855892151785642588484927739145966806375280284964789078683704072073360074444597077051656389261558380515798495535771054024531963760869013026958044636435988439435603212812969436233086084759890163698887685408289136881926329167985418737576762314913309119111065360975293047467901062823631006213018285864495576721337684403539523255913249014821371843393676061573222856482942102706330771544622560882983031261905301992419262030313643907201249818274657323036748231691163772430116000193062827361381118042346188196560368959415597559064362373713333985043300222298090945523278349306833439044820175100203859373638890406837085683865146144167088400195740446821523413341101286374945157713436223426827673598197289514195971471970471385139744356303993174713911610041381655724663841988479106795122672875105345903210906065392155220717305665121587100128095755899916553030085819672735153091033073087131473281074280686668838564039370788774155781319929550285356155070449455856494551989641949971990025341516911806606841510768485095037565208351169640993928604851153431539960154658835524115971385977283742704322125404703542417167120065142745366370278977406040796506500782010015406214318524299279217188315998661675185218153690998892299055204429016634804682002751784575284564232153226817355964652285418371997741924606962688389562585056469432425132902068561547112174198300267911439189970081077543673525821445517273827272889981309915238283348678085063161471678825184259328484593074241460868067326714943164371344631417818790904467169826884561319214367010975324481518337028627539788067775249434080388223831766122516889765612294166739922349215108019504240680017555175377430438791404719871006490641942171403702275174774301956760653854974902393250763453323060002901558217126441117664117352953470622693498031687867678832652447973248869742996136542155379565835012728361554100737503663035833956092760703789690161611374305998131995036927783503630680347682635577810599834100612236706429442919783118032032131115800633514894448438223131141442817715105108538443478215245879182245945487059967758933409995553559516850950840761176525992545736997549580141712546632990752463229480182981789119322327676166050786035810784407459863984931423902063319399432833310768223522872778215287194633035742963498234105879514801257210200953097434839211316284187087666191409716752445855543582483004023484508334829280075854566864872634725781027950054662430822867659937860283932318394957777708343512448314348374991153710061922928460750700544329698490717081292190990741815499136437572118355764541404423786801660182870587084637468962630811635360139613082020789378857071066218756838479403533246760174765560241549586186774049501154583376680764612121539071214774304599137230175728799064835649601327801528055062627289156396595945890583977581177308099385599841419105221198330768769439203921100457728910515717703281590101689329239184931498966073214024644579726282206207613520481584000553245141815410576541533342941041684495732600603550572798940662196445341801119021271955772941182153170258949416525659098183048920707854311609774338153032006170266858079444295127748284607924628905838056643639056530969002223786622555860233778402767290668362797012438738314304137195070119828040023234835949667938010000547877810590560817527960048665597876384152611462993069723837169656212278671121187994521922231753571151560397765811184023293937990175344848825854496602674621904312046629178691960605881804821531040773555759124869445234657522820097168891619999390145880681335388649860269132761502683347451199450462180791641996729593000698010656756067572786475339629330080894988373419939605743139159559092982466119411182748664108088284674604597181299906694532076455282240788455841613012265191432649798060441126072128007050601434959071442660181568871666896160887475049434287147794477983078345814841003975369504756681022187342328119397740355808576423801174688603036637193407672099996057167129971706870961116652715793224589209840091199543049197112781070458947838259312870676057024310887413603966419700339197767733989025248974268351581743490735849789481271099841313200835531762585197213723186550427454379887948484452269187614809966874369966728451612161779249390395444945269650967564171361537370546726643837457570762771294920144500504682190240365252779235960987996556906546472643431339059869773302284446415366318478322089708791231117925323360802727708842967283876173494778967343082798870828254587492039872897216166228632110792624333272790479629748760958667821753815138971418822190189557568447051930510912803190059266380765569295514360149857388566295866537922215815204688594111278635354505026397889279343934338139994195148289011400173131396255165738661986792651911216080169993423147442594973645801137936576298265046101064441758837012832756751344529691427229388226609801580498210744401275418052167245354158307505557820149181353800236305814725026176261780146836659935525925735705749936217470834875535296556416891717775760747866650439180821704314708522058754015642037902143592556827812377117091386042011833310259009189702972887317267027272918787267476710784366808671711329361794602573084099611034589475176172815307351052788466068682329450860210371091208651204479625929169018502924422254284756553131372244293983886459176616593457395749439533625133464683705321025405986158043376466340951511198397896122759945650255551503536956332735835537634316674625359031937625684167594701685133079503609139688841866119689708621318106380802933603612034351956369606984407096130761496140177839311312245420003473071164780148003536748109553151645881086054730889668140500947169756028782882436824069272929383760313115848683172924433497163597804267496577652577387709532694979152905137445803567851666795155362792781603366818601805182933320642915671311198731919604690789794560803861251466949389208328194185713672911412159080607962480217221604202521695783714382690062281176758580526122032029886096605794790998534106224120851135408153086322648977495766722993706675969465742452400788037472796222553096230611526473475889733845407926613507791949063889095586057396511407959464136824919539477337014385077892481994601708214509044720239631994305415373847300872284565410981931770061001547358296730406487169262977970733895456723479051934714850356972044843456608034641076950874739864097472254974164111404251432027661083339499720622274670209684952454161658937712126737350673087354838005118445155986118734231853557625394964684749639071851103483159980141016023812275520396294677396715436862167434656745362897976570360265352784295388605394016037730948567375093056872544289565301924181621038794055390951552803033211945786090021879746979315836388244459020860760706094163649061014109701337878239444665188404129559180584945587273372750085573193660303922161615310794370732084920547100267702972835890677519949685765881585454831910337750611357751891123085988499740610510947759600329615696187184456317245363575258127911045772095914076161130733374462494433700630008521464352227432862135299777059997542353234753783957671794251643755156231183727709733245943760045642671305183695280611627862010376643778054293120594953109953720715480170727902321130396400294794183358181305264955855372387676466604053482430761555231272283730862671815218755665070269750159085083034637885140023483204292019760670569496808248309807342926434210944933085785242035958272292499298495311255303257915951926418473881473661640330501789514383824000565881913905502534421205764513687605419747604376033001464294679198264744954943230282089175594101892204266537782811823508600140122056375462395979940714533578353822503273933610774219042815373967531634568896707318229900817685440122186453729515719221113806947213431944720408434493420825562470273819106634685025672120625991064506169522270442700025832125943103879952880018719041911809016523757415961085090360272130809553247225914911862434849110616046299472933543914284169526212192710782948913919866478058937778524432016289239254995814275955494058667031077221715577025480123413308271511795129616808090901025440426105434471500645360310060173830406927643440767977809141639523011403086999475236981252450764309057750988682171279397826880631245155116290706936304375494096142762883335563382744859084454763142699967943246013321395616725372578893408892577888842090094985341593407125737976853286548764991746668189751806599305604074780340910675564847871512588262019052465050971464558567493378164787603773934166791881044406711820390480064034998619567235330951979498182063599050401221421695895841936968952430525439280361989639035973556607957511624075009822277800857129499148315329886411506505669799205722337684038460987674565906187573059700820780867513229832414247063722370376670436538206275748368146583969213449382798561404646757278417821543838760059908374822905014719527920142599469217007648321513659736743069321710680168668209486925802399687689548223106542784321240311536930907438686505936086095044436179474699449097973934707403458400430871516229336294892825355020907823260249070146836370721454838841015556835875111585544064051197908553256248305715606042671017010075146353941671515412281354894598840326316183780063795199817386388337272242444710986265093860239119713887123496030629865176362860175855051856733275055859724243081011176938439846276976639680876808243749662723655901836869402441261279790592556783176799843698962728619034309843486443612844172736242977790444999897454381092898022034598511960801455840960126617084897006526703664444962468516000137792342737720527704416125329547496758884060201926444550374220236331826703466374036991600471421923200152184587634265663494146864117112591999145953445585549182257898988879872208911596940872195593255688509834678951624742992448548704578153507489132030466062694115058920040193081155825859784072631806519735847604226555783141167681624436835575661412531089301443987511221410283185849692165151013626887656273316226842402129684431599001822932585118256504998036585673243286777174750192811363345236231041732893628501032202724360867680230475818286516521449973161292244554848705645750572042381793529713538857011148902375676200653208294526469747936942633005679833977741429939663029761670422858167720210821622151247466260673212873532365116308881519514050969353267970037128125370527309051075056712183498040099915432841730591477840184593541142458492151439903514648949637982491347535610151587886634605354770118134694924877087718758229660169121342209700163206478283340858644718384573053019552556494775749448193500026737816059672315842845896647086181689101898910718730072260766442514995606841546610310855955685184409550480068803758042684926314089769936871890054084382248173219308540080337798737170338490091910731024013024996970573162116791224862323162259750651129986536692976138602628656464352836546617252644906109604790266163965619169167285255194655317568549490905066764102533587228586586502995985963004627990376329982409329537289432680010373709220685277418340285433952883064230997149661337106152031575886744006897455115694468438527110605991680738787640192301058312736915856682769291351812247873898107735263922955608429665479517179784424258530925093128320198267362713006883035636874517340206417422558294634291430761855444510422732118337447447731396710678347614065035343809206705983653886967014474188157765052284741080224228963729729506447658403332692148914471485879445778877638953147066113661213717007439201322937359281914594670911141704740636198729106148761066406819855723566626807675729715025838494843026991260763115498977320027021864788656177775814751948806876969937557346913425409537998817653289369080172010991330377747105769329069328701984263872583415578450282591728213140456586049378160375810531618562282144275674104139653334153978489233646985081027067733581939031197099538137897117492202547534965342972891529403786196144067949394941301092042311680190468985525487837795484320026745715881102650929585979178919886596937422827553251343251226975144973557951448907643347823618012044273379660798768663678830926455048590523804454622154636420746162948894695083972977239633251746485688466992439964045647163026262022312629534403456763088109425858517040686855646905198897850495486719162068004595751046462158025340997557165783196629439588680285547869035864452627709234306886818167226622499650583312156471310594533996260167187868885371165500939731685733882207461599434357472532746986554627583659681463018231121076072597615742276324522342285679595068082945776428535817720793419211820972600880792680479611092853187674120210117425514232847904145978107168502548498173390887089346596374365933133716642243153877660012304080142326947106272418508753428870161022003449215211991751681457302918024013803838391373832016481134667983145506808199625017977650551571985478326179854908181413950577904517489687832702200809165208281468963799184728720285832834459729057954575845287580630318209364272643667162662747465936429505635188739396618513667354066445368699467571450108488005010025662869577323115355417512029563264970312401253674354089434120105323192803459648180275073748182183859600908001060759597930600285947344156946949323652991068567386516930559323663272854407727011140651826656646535295123895209924913166504262383649197022264466416169909497662604188572345295014517865812810614680849558283012165722119292524512353469885363294568368072438473852631541974106575505950976344499295576431564642122385875497801158757737646998512838672966222510963197373055361581984987735842973616405853619938875970739916437795118149769414937836891462867586302374368478035052782784421639062667065585063562493061688931308744734032897099416180527622052618349789179297291574186935683373993362735288334517051938612731003199055864010479746406473973487504712519425228303526530434599961008113106131557737649993487705673089927057470992311893196835112675433018117818804413413550957898806633988987359476249437565145738057718902555494126058829026985466582524706204641404164941967309435471177047823228587824228704202580612192896799056373114786977361045509893816633544259653425769271124926623279944293713440096954158923464238453893822043886761676134073032877377315889471026646906356043532270517891935107030127699222418398605743507047845994426265420484132497354068764481085286452115825074430410774920998316632492533023998631884805449029556143651152304834623575707965007269885151791286476511898946147093802190164152107908865802242303321367845385158259469467235726220277441263603221044068625677714860322274428886272108205794330200195630481113927774927976660457826640457520470829446324037968037796043206952796527612851697571403817802079967742851141258124017784923869145802981484905795006049757252298591040418598565867106869096938881056389201113284211011794686134926470876723917427685902410966657312285722471999125100641304310642010735173995649300454602254754182721618102546652844803238313775802438879098721037380458109125411762820244145711376655387856231377880426086203951638674912758025847396402398705962970623082284386840349456278285830839551474424899883440813685403267321000549533457280093996380141428975718064686189241748485279261807677455090431182665372051458269325542847925986587742048546254073695827907893384693331707617762390634701558508673267032752839384753044356994812576423081712053114067179022198559436849190507550457031237862426773618522213555769843940425462740129993097598104726819220310694404699242053730968935791234870682802314868400365206375924815069906348413824338516706557135634627452756157552689475218856846870554386262361688218088212272447685141564319324629918959355852919881387189518015125182054851137173803390149091200091908014916746447956627102975705988203186482282035219635244225006637545901133741881587280180503003862489649080974406077487054228567044872516088203502531822205252739449488856021390694149733122250477697626476613289054624951736117973560034840460188796584022967401593340000030652674312206476131978301392643793260185676288587041540271481214536059596630410043663126133261295833349773926876521358314478972139608799438043518243162454401392168393584732932087523990938027788368806066650550498071875374263335040594769823964266784422980376096980320928361886319776524964748519738218590558766084940275481772948849683211034202918822506856252658525835875061497380498144523758781178375937270480640886543909327515886490663216007426391661861007511642816666315480350330624621486192523564528404388179072767491365925943657110538241744404764130766829271459618101074277897899875087725191967159952979401833128256343123406742872298203092007998568428119678167148535486129572181245272212074644075183875899029161137248630689769110937757272295382798102092213864270232764508067514580351843990825959196257206806370776895086803193736280779527748841810639123211037132227887049054065003885880108683564361879307450157337122259969166744413248748942290477305455809623902460769878332545517887651248689624100017460530427071029481015285606321990982614709298702405710699175670275562316203807581458427491680177150166819905254848998161578780606051420175415614467949903386904866812547601658686820109964459266953357985430880769331533138639197138648754415943274570036303246038094706786298010951843087879396775722294129140103313313018719468809711023798504400011848252522444594035590463505255409943444854483744197779070930177900169704536817959674714913877880190215708742011275896231728509798410243441825607621049422383996698797581136204276509495915441432790439068388219413112665014210394729914207806076703128422586304234584945684341330954896665657756222204059327805822239274774707333263757876855357113504784901664560182468705452594257322272162948400339096991263165611753707057934508229850102050089620536456690209903686327943255681939207517434495583378236959774944919575958530073102323986683753570790125394986924701949895528820717297953038121544797890165206273356975563907125599250838812621464499545172220757249012146577645212465026460383235456703401559850786147659240821182581012394278787638284443240543005839053734389974802984297341869990398612769508899563968923383773896231332221817081368914388914024951004024364534509501046587521576830952567642122911629353698069954600874728365515270684684043068696723160904723722375131350392079532879990178621247168527864537527548050860722656473192099961392223974013733208693469439525993522031366281300394007270476841033344850282840061900875199341940405862294159867248741204468699346867268545698526854331714543236224652248423459618630403060420282268049711078695289503830898937622056974819278664125274814060648636844174335132150715842072078262773728212398528725374925630927818198955807667443682928576497073497680403396349395975858599045980005300073366002164417950228982469408317463659511527790509155429849061095037785900193423641605883372563944180141561231687361561044172584389057479438781673391892221114776636300980545494049856745522055041084278428710574238484242297783612125000544266179209864366844929313816372466890987767742924014225887812651996286230287290141115661044660787213458566421516306659726916770063252889850973240889129258773404601891737585287758236455466057418675558220646839267244869114253337920734690546167194767419431044390907296514302607239207331968241064724968599751381741535588471676458750251434248340425974284766327969202101240104299982184420504502953091421547850696819900695902823253921806094113751293189924859123130594614619349642109407464486631900522350001876110995675142181016527103677453606134991509626208583895888038519917015555232029605281537121765247196835297036850699743144511499707325983549635533753829202183216929461449990847006146248488581687487381900305202724453523554479096663563032848621938946518776698568545430958119811809487746437786327678545015144321729055517914187436850051637131855729837019382772391121799119514014215827019162192994952067069801772095933675267404411277191666603137397930004680103778453723507805742456230627525200482455502376622913841892743906836579427973457765852660988157719390403020303954075574994351673561168143402046803991504016221899104892746401868673800887490647968350024445074417889596514641638530065328506709823014859274133726741083125566116498581196375675464763414022398869807429337843818441462643480248717747518502316407527733751485151075000699630296361896326909856120256003338410980489097611148692580057965308463940896068614823379383544833252036664768255754747164697531597494395418094095841417580048887493042429204752614466583456256492925916790310907124177502215464204768798627575117046752805582141804856938981160635360541075050426094846321206512922471412861456197245364604342532934945529921080905504741881898064130770424829325260894346245730068071372644112457776179955578199011566607204496942911525732940955073640156704892637991287552467652406032861386623924283978449009289848644917979055214406441964826056253596722652761501312327364339960108348017912943941844885044069125741493561417743127441849517306016557621032595221773686952340158450383517348639633874418232211342481318202033256397778992285907797751738260274939855329685893800196320810826756257887304180718659599997761783825317617422225538718477182645217083054566249467083085190980795127111118159891807667797803360193585422274756060780001891711830832584156199565674412838998452279380657483906961881027086988625211683516813259260827480303447885482711643365776717278381929823443648651792489588779176276149134924119923088791351808363113185960756861316521823887852394797059548426448022732409985379922009088076539921610563146337612290320741587820555179894568529362532948414330896256781646858139128609864998989667132434338204056795509237025591149840668472894433756065500836432610828213147417178547709109928165134102650773118540516327588615624241589402527664297352672096194685500525417475262468041385734278238283119843382329822844436369943075563215318867588245920804350223946030806684160357384551494112286371679341377201389687988496068631083147767546863676282814400995594569563369925620463305668564565882053841017447629897623147211485943591450830053280785585421875757864091369130788068255668191095170960456250265821033281831086986246806667564591665089092453389747329333605159818837606371720116707843376950754003543492157702754896085604418918179128451713218604074890061548348258429360368351359595611367977297731929400589673734524938198786972342511871956744606524297707774341942340916806213219423075586628497516844967996766334727978208353359305341693026182011204423856643363311051720700903519363498786753873726259357778852786646371554541191110489597224174673912087754699995559218817051350926456040120836173921106259871022033479696193327261284150200660646469999593607018513085683960913283708655606906189818682478729499357806454240595134933994310461789760577501746180242392051070302510025556307581726513566267000429051430074850803343611922700900455983022189735618736644392699873614070190116050399742181459710592357944904918739082785534223193015945004353777422877717952245160992766906959813356078934844018103219375637647234995006400819758566388362960991085149473838850148442354043506674562269238817934265369893540153479083791766725357260514493126282275291468908175101261428876126626968845574176637974889946965448289487859329395921073880752603267732987178805753060937843602079490841959167804494267797183795895225568731014904294857171694005502811193522363561856320965322678379163394533711433543373300243669771901272137348373373822706777669554644426820168112952934359137447821247412822628636686624902203980134587783243751961086140254560782411647189031015560479329119040911018933487275595370116700259283917999622595926230530769424234950136332956317421886555129825982028909563353911966964063325303242522460026315030322883349496937243034292852375562751433448398680901801044727976102662321798869840297267136962052612904341897492748624044270595469888501112992318836458676758340182620368513005268790721362677008995812900363706321571466378408890504419401978199325978249476976157896054262681002962244700354069072462465945752243211110192537228750575048187281578605365118526468034807338224612934921042534718970477229012317663668987194258903739252053349331733256044751383084872397666540358757706002833205815451304643390308720015504838348647162388755363589111279394683293163789713784277939271344440596528266484337813864794596761864379381473937132905138128901776125665599244566328171855058449489740661335451905204662178955122436021358764046238978947598426880690095544776169775134029401866182874773975068390251609229525423048046477425853719624656884361379867717987482651153565147138674982573714608074032475071095068684683541527422076988936296173537334996531564879335781948487251980529771301849455008069158434099716672561447622352402684757220505724879033420327672022629254728491915915340179313486019854214818744508838189453300493173354395284914100960788054202986754449169705496348324745934767320830923139753113867755550604638093303458371573939078395091755027028248823496356706239489309409153226875453227878073367942222403249090356953700054499111728985324333080245695802970740375974949801190032208190029030991413918955981031007119978540072005660133297315053658859566189833054972177366153967954896627422546499368321571415152868382280103005003758184605166903290393707629591886365788628547779642731988191783201449795143390473785687026538698170774784442565293106620446225627611058913655191051090114027577642651462329840182681212149393482428483474588851364525482334638481133275377168373700762460627719685941911572786663839360462358320025809251147708571639679907029733436216546490984600331136331343075888229341769629250780864751183581087650960810008587454509947717637139542368801626976213398677006936963664308468033248203217352242966976823604588464716400702043339141774500719268638487313397803371879278040413258864358875321054203867876509046638139152633845276972391019514401985220670447468328036645703648739269099140512825223807636664288108983317966365492132818008745160936685014340758297605389060887292977374726309400103788056549956645083667808383005180128056045452752416312518084287541154404928081097818754269003777674997855981578128257275179676579370064475077918208000070386439910136163698942419585211359772548119768851278829287312805578401272388056498577437691582184344175320323710835230171701843108503140805250282064487456743377024737122027727055949765831241795153175651081084721815404507233068362552838249213976855389174981277782218019107343210794636761534959497113172590965190597150592230437107049328529253840213474483315801906541116214703225648764326352130890842955264988846677162235739202483433889833717639651456399475643027815169072780305386764193156570984665495630978617554140361124456018583071707789788580406685478747407571866431355457176820046514308572159966760041713382574666540469654312170666070549121780568806291555279015596199075651787580116068741692098223323293928533303964164657436938626416879297217972380060638617364959881772328066983558973379684676497837266609923929561690015092642885791125404205161082307175694607269160956100747817728058626847391367156553700593557362962629336884694747531127035667970480667973950671582498293775888216730203529518059076150972110546320237709171395598320968724136867678329150760999549225090374493282356075792783114702209147903600547768810142348861511262915235093517175541434789224989111181806808820032289717202797387134415673135322295114794077440459279138418938000694750956184305055736597786457665726078073785435763497988355243394043562191883270094040086973134484493037979158509251380099976294750564049372846554618467747878967750770662983850840358811863033092750188687176591350464171686378031600568878727002750741351045694924587420068349439730472831904238346803125553562940995189890816665189986250350677335242158701363611185800416065542489007796085656485231932749939437160814491379855973147949482603685496523712290140173817100608231080359718449643019754824312724374786866424540312120093490003757357225128450281165471461177702491511177851699466191027987584170903217676021320729727927099492032460963627517862569237447923887639574433524827997123826760198989061259897559069201541218049422811622542543988453655918819266983872510379414444490178864143559511833498827008757168550095767632597813540672017672874927003050167647095154210056373823052718675065919676632833825672867145744746752093878889626374139594514318620417370051991305073691551943821837526103769044911811054888224409078978080606947001238299526955529063532078518531442049547281107274488754622980509616776209171528607888035172306344102289570033947222339054630665313541257144590158225452060504566378241214708298199940645536206359491040817943241052153883677406230786490333643904455619422775450341816847505333139020294463909859493706047529689774015444395985700297571051638535802755082598710014475913623033014813780968439068713667959467564578207402390605578472503275761294225489139061795513056192508980457054057286046179601116605994652554321756547455661257126623073056932605135165485329533694744000071894032408563468592848882841196537018514173806915042966983149961748290500899464542325784818616780161272674424847202354547373371809892466505495689849284569592853922789405566641033872169985927209751495598922865742499294383065589016393125032633848833692995672222725431936867205627893809693668352381413503083845248142687218657479474866783998397189152690218490087555814632038079043601946092217905974537232463248138919776193008380834718147055374095284529295596904799411123458802498223815660798458551522955229620205712212956292893537555366387426052895249977458033544388010855790596863924978869245186104831299569605353150361419007800447591493654032999321676386541625322811491741228243075629711652664903874603654455035553956236254125198055361831803003904658203494019492479051277151256722252483689324211134324915899848086163706136799531265784216639384575899441805461473390337992112785341373162019407156530148036033505277229980379082733746829467946207879362510528317591900511802620761757662716484275814240913358553121388763803803798275156474477018877605543132146611234227625001975721852528137589684761191707689993430070864480805872226623868017339023506413735614388461504194781185493232672699724859557076640529096689075167053813540542964998250076032163282369613314575159912404817652950562573704928575112008232999474395677888724503539575347567308101904310551597497741473147663391879313767513641056196814697621601630661939284119298229745414438602270121961769567080355487298468190259644955326558650121334421326718211192637161041824477508158586069575196849976828457352036583223402999631067193624677995167515230094577080581096855344218159696767775354790383903713276647579894753872866214299851678823153423146534081172294420341718955959403652681441169737723468703990454658421750287557597918373757806533523857422260597033264794674634391661744190593375874836480712758257018324321522459861614354410238336843629474509717871111261728634420181915699791950551916743790726491509939744087695628548364712924107388758002436431076865509508764501679933685764495542408246785329168101987236830424120551349766990696798715100650806191290728399420256528632033009375142858063439117682763914192750928630347651507398215584953033611351024592836938468596646618288483064189932960332030859650002949627701904968703692139555531319831934393644023258783859537743660378744125881768894866279804916645186032498615429120426742146626417459875449569284519178474140014942339663552828429696054993130754594775771787974485352075114517049417364022064436834379006128478225625099148982554391772969393123544246081662191882168828523697346806552161768634870673758524811770232051430445507881148250794241332898000961264157149517463054295530873885702083946934211985994724290903558552606030893271916489141619982437510669085804701275971415831784677201398676327792904559930522263885051670913020449202124298655973193966413692888004030090636465918575357823729346750062386550089599249205213745879765719612705491045709850172696245012796554156995549146024863852823019815181848147589012287444605001073849346743588895425575188690685844545673548939726890014161161752614243580095553256985383103833343824840006124961885283501739743894484849372185695465470656440963198782748973763215023592814220411885327099368843840169476362819656271634131679647017701028821974103520869615747486121237748828002419549536580774298147584120421963352649446744771366482380387823290640403935681548467443945924452240717312979833717887276835847140929206716234328047813947263207540857953764439266166518951249854224506189014542666909572581681968740159540266103595622554642439994524660263503476213926426493345730927071492068524801214138843923514845065337403541195568870902509477170037899322012156816645514596545168430200220887753121363962468173660178992527302691450274811369916141456285340887860965651993627718676766299014567459272262279188069953342253566913782912284220174430339873039810751555058322923336891021514648446997840868712943148833857892029335078167967485398926976677961823688087245389126444039002693942086745219988186926642113146921752997389243054232822374784047836820696526895962707471223094966053690280526639399106721075150487390391545118173885900687436995937954305706840967143349211517124971660652996535723754918537217668699058521712921220490473401936164532119714294381575691002965328182408442088329346439853127577133996958837796240512419507008799483101254031280087817376949060141820489018883195916843262938447089699321273854208912860266053330407063516515638553941810785448829373124822538551989855572139627917126716764278150259020393089812825303465349388065353044446266242498883492696932511055676563809554536990175013535532173875384003893771171486716160527745407125498138600289347237377865530606659135396195217817096336645864084411753616093228103992434226233070828000988987923418693247417821525267816454443505927963121780799406359939901091420009963954091051230032880230283503140595326441899782358131623108965912307061911805072413226422302396343786536832727822351334739614484766673589371155002014038867754824858194404605685589770669447318243643195566544998920972274712166836616651399589835699497584151198436811814077970691884636545830061390622119904159384640856407605615747160638162292280972892781086538156880302009441797785887348174523211550086244935906077146921554269562984477087133732480721697540914469577838180461179513973347189594476384672830457644682110800404314088627184948264827839921015974888091646629608013893199127877284466537335302032759972304984357531488534389181732162986690666458969836396584165947713605394774078762780046776049761313658236131565261661857049320175037141975219424297986434972139209114899481176367898393592034947687560015727012719337276379551497311198665192819524165124145759059371449919114546750176865952454283843560324418848750757779279056073479227495614683203973699976616110013296241608246084372282620930838798074861075298834324420250145323337997598821913368171389211965077396101655362881748495145313579214055028079621254248892624979684293559596501489782656718824721800381695337590371176019922645349186457079592808739938937341702566087163265141859331806329119438133711653773734327208386477506211227830808235972483757131761877226003459293308429422108756153170145689959656107947428209062976237542369595360947220761875520950225871477803571404019395788648632158557362151786560798500151483579131427064738397868258295066053443234100772857774390995628111529677632050530792805511918784915370001455889251814776268963180087076213178004041409921124278752618160574600245687762481399586218488612314106215286866919405851924072831845389260524200610227769523344229524684571077975594251039324369563363425293672835825372603041541308288177872905002028051566905479770838680289703249643616216677936797635596662848785069532995974304535045387497502586342184965175583856707588372660185234534211412218369201816641317143400254532861258211383624511937900364398095273715987626230410500552358299214784484161308419420309177790313952843735799948726825375977215209608985764592980434828182609806596592627300409043883710961801815801603745821066509852427948649255294417230142054838027193816728740988647856870385951004704659510120020983279613961885883282934856968109145513548104291160194881830167492909525583271894373349321644776471355562892006577813952983451391284080277279609426383004513330415390740558734466591017411290090548551041323680503786620547370312896726681281738758046771540981180524977549802600230805595668419994505161052623763611750756843760329096385677226492302956593799669772412034171105837255852876324631436335988307497968162719354141248971556483519446880323725736946359804737029694019311841962963941919867650950294907863914029456466630462004373089660800662454991503321741517119230981382527128013316950309819711435218877904532417086742679002963049071438047912333655794870983705336249316850376822463993902690887783832006446294355562512045872901508028119912013846388717196357082881436463383937688481736479149414614342182754986968225035609910943488902104239502188820657392089246739389735845385239736552311518130794587395252469106390422060879330526948809304341016640715921490891448703380300854982744512850240964335443843350996144175128438807141053166077499172187844006441055681886136970078725548916054175596706973127588396861150117058800832196968037782147537894155673362424149238404522340612039897743596942489939946881524753776787669636821615174960092896496052630100903407743054372434071392145426885888933876325731934700443589850018908913164929452714469833412532581492617987415686439262815297391613986915047046744072972000048211943394716645720427365815293919591220344766798764361426721877555420786475574933311503647479958899282886194278207306595880667697769940423791686496355254501396654479393943207171773509517023392370828998148810331812414378906888561669428552572147856760007552117098328085500626807590826275745445384707738204481222818277208597591612788102963425275822574135275281129982541734686347070471765127646574442528438452098109537716658796126520873964732068702735097093156858603992099402895843406352531374604026163717798975605993245779708030915361124351209513936542436408950706418919045502587775154160734865262868612901846554101544363194651229028678908356697344039115102919305055262324360332785750443989736784666659756021026743085403020357459274081781661024164932439082942034526781479034832637447241744195691627210364122645363647076893990710657129552483430912458180569208250823322285251395943731814905168919277602029707087942403437258889272271974429946386361736498001947592745016579969573511254994833846018243016152910918288138422543410066946312012709021106701773810641581529524667531945199219650303816657197484062780589041880191033660849807495250036680684566424782190998458077098959444223168102604425828000295056448211688422364045241096465952057191997504574262247554086562578030403017709778454926424691195444084150526735204081785127570013491617469493074358253723338148496025374968570511766296791624297834146164156706277924522855193851529830405753082877117313224752164469484680744265369868460404524240318105090365605523320663693987574615339229000434695313625557101493269780525905128226134105200840510701277513913133996601752528723236874950969856145623665884217116020685412501062214681500963856928946189963263581361817103140704484064224243386185838892958550676800619020884655843342400928552686142189516941005463126758960169788124056469187679833996283959452182532911413759227128489389319454563702587725148160738934691432352720222330438543978177994509901025218856063439960885969492244708830946625303019597524947626418408660759772384446647999153758990231578182775066445109688636880843633914943183805527728222792450340574624739764107600723017888204376312154778617549467057383065852944615973071933778985780740812291995073068499094563614290859201994821302301600581314192999102943423935238379125929723744173544524712737617670258950841509137865165382752034771514371498457330042317702239736147434117906965803254194393452922304537213275263533956886238599550060337962922412672820077583814023166662571202185866508239111033479633418227474551170285607717452843842941655688705751623370285857217566630653061994730972389348423603282466627400390428026096130539568288416012252794725465382239734126925960328172264997854144197228495326804593088758167845303132501892077314725882464508275152235753228545513807140127740332760016092243167859427206489967470864861890800633458704764200376178716449909292173896812828879576015139814493280480810439384103173257486801611295269172839713265692275954070950500235397183810854733839268895703457965693084402703717746781617477563499370553847568729918067574565261384504108553387624885618265709804738958112019597178030773259546736846080952423029684748304679085331387477306480437629993800282129114916285262024510800074516019180722294747345421755188347197083186708396887364337647912721778346919051022441221308090026837338892206420977035034263118346985867460009955919569934169241680733270847178983056906271864782709944601664622962946641911476901695436189636625979227531180134604175302566101086876952553172123111555834014971557649564346935085388592408598457249355299156497425234751889865413235738609549706093586008732837404926984910255966538297500663433151507173746023890685038662329263469471555893787709486277373556773243167779135356506047839510081383000065210238580186877008685111872237420912895705747459894151140016228807927988121446025910750011068427039719686571937741338135174839468969037239279725954517362443655504519753659548403745133093247097288175372985229821382901062416435999445065023635198369084789128867592768789423833597262476717015557657930557076675397183936210974691498425133619847032661843821844720896527802716089881458237958359505130617417503632343522469711138549326285769458824643024354026896774256924499926393708952854876860236810119426714452343591992894570659995934882874091134452183726110515338191297875419255979794566396617957707313945781967913786914123329996659078386773519409926345839301427046113744355846250432741230730064647328700390686674436512633080796787974699235131940629969964417985073949766436965045828152873952964975619492703889478032436410610425370658450718835705610532371329262060468562808092963169525684057072608921996602877358164390679650217339486999447259122143860600896656644385186495735839790287443482137161955143137031422268791069000138199612113798191109544485628581014626651777681708755348740112403728969182069978727042928227748275194524882781992580759815807798042032771654879494155815288491712628718595575962335043230637393188784022828060637189992361516831008597134044084930955579342420447141935202938946044891268906396347962734132375184664080497667058058320490362552172274759550110323212491332004166370622512434064521808618207574326769371776160545069172954595635619545345476062714128436926137629555270030825894536104055603712624998311130904953896715981966739214616470075759232900508564382200561502087473228056468628990937535033066015267187455279006142442854074725229447278102219656310558014337320899476564705275766648755651041557337385528815320150036154783250283770032706667107249104957238018957297198651385725086829417172392717918085990494979148269792761674775597658061508912097027726362851939563704501396816716762240499295806273789701285560296905548029319099172595058850433976173661999977651020487395267820956025763790503069358690760718351639839546216222036307079783578199104914412794658655146827492798919728471136878707077675598537380029099193147661024939308304630204535522049283708072368059169511333161375451085085121263019351949456076066711276417900060011958050032586897524775922623328910318527317293039866839255619353214805152812780452902381809751328112144131448351108499236248467369356099851943841849537795702712196549947492736087643162595702850275960389487044810492618741167028397472774547162975720288935717015518137781601485832630919190892646999865915316520701868130005035409887900168896139466461027098230630097563511686433419993842055703316806302014315778837826829881878846964132272021064995798379225211074481878038877865120120168250846587455708727958993857105929891088044976758995900141056701719189776212458914949918032294869052166102442233114038070332628826707003397539188079107341420451212168394283674764964125655684864600955824775418625156661740653234057481428436777581334834032084609534925637285584484228419958502234887633026169532819874672486677476448377071537483521124792829220218429429303810817821959405553557727475179233137613649619196154974816190174548080321171676091862135683108130499739715837189738053899949471850550606039844030432473793136052215697361351657461511155875327587832945297657705197438742576659750889742830416458137851149135584800775387219952399302475164769337463441519470190187102839310415999659512663133087430047192274347086170028989635629051788122972505962602976747790004198820031377637507248883343546445816003270191656384991784407197119124893070036824662642461524868596415437179194686470222966504478837403551242066127569942950735783521718110807566945848678527280532720824302775266346719151766129619988513278172746239882718711414313303830437429914905126289767314269900248392082981659205290875742856649777418107471849993171301543179633905495052592850359188158879138532229213701343008383047703141303229747031060097816830537377087805274847100696692574928101841166416405612741508051023957002978859768872235409181857282233854986391707145115635451872093722086038371502353230872588938949552487556563098296003448025471606049921797780052419677499427923822366698421966093893478004131219663861766851849455399493048872082178393318751574871498844768554062170383655965935268758360005048542581771187634393937724252870414594171655825744688315285157421941384669884002686092717986584097206335550967039819551029597255523960322243816587744591463295360480386906927406089866780092405256069367332512958834635363884927246591455917301561099828798601543066111954052235595014868308082159327917161158784004081632070045871134241192376511642759855497407603349659143135791648183469018135595575470866206540736112443600268691388249106815444721453386864152916271712098554579239927498917145169432731193223055805816455991580860381044127424390665729035031218571579133981422666596543179224443997599670961076394444230011524096600971102001235489092040526611654842962023551819035520621783858816026941036020095187750352070582319602956343727496192262422769924036521330870803920157331874407464051940131144881415903506350588889498059814514465519266147449637166632189359608287301139856563405220609946370246996205802062721547944965013787522669921604377298961827722438901465949924919184297968099028519033989419544319191389922325996827220512713561862496642881530440109095030154478734604455178680207774065559494892965123113463989426286672354248379343396694015093807309081169543641749869783614884793907014222923786072570034777435971369358122260970790233490764773310106332368628158104945097228455532624490917557088441958554323077330985017649385783296202648337280109882295814559860821176161527668974321686780144063430539703185665763578242233364949613038745665933126387963111268810094114354075289332701013856291050549185963931917560403023214802380397323545614243864063014507156309520339312434435899673901350032463304627564970426122250898714450772514358744134802419764288245017715128508750712543047467594072260115664273015423133093559016276431219715548242151791002271505620775123358147655470233241158078848625270928726052371398055768614066837153711005615655045661750537703329777843266623334051531082793743168294411543084642038935134455606656826467751346383092926230027397741208652015570136716490464471975944731528677847175916811702524742662998647541884493491318564013563233915935236497846783598382361458190055821996879501654795805514836329344174690727429506763745727439517024188652688338258021126324384420831129428753145749635773657159690375961769539429628095876187473299112685557371477178212064080508763187667126020568414216288215577018385350412567414668866729712547364894426412164864762643382045884529229825329974221168551077165261857596567656568696346316932822656388578551999293843767255122056198726766710470743722725879284781563284395852846814582395488453872421927924750143650325776987500798453601575830704693165827845617663661078734756154499710228015760755290656452335529287127060670906448294218054354614939392465611677938521434986298331641456049720309840074601440886848760297306506562859706798258188051524313074603783066687846347974952825664792169594327122878616011158767698138955010882076786549785286238624204272430233600725526597293931023886656280853853849766601468701899050006492168878063411839292002659570280903901120243587134405150015392631129834955283818898649753221215281310527080955260816008885599729997132175418965555606387008351688267537073061755872208588272014707945307587876651531762340266655553515357897043488238640681809614729912103031174263753456165044597030790644487155813481470482660496705577341838984418917258896653170357067882310311512450849213183719311837787471583934904035055184592753532114567932217026371916138751697480608715789132590059731475151979800853112597762248040877755638627433452555244788366586714807971601960461281848936537166945350667792818868879245500575695964991817823321660574479013894882080998942589646909614868451787080057564640679493925841562534701484317680620661632290383521020571313108039606077722847898073981843416407513044302730231093601711667316900418048060401365099161315449082210220889635264701044666640578166467582512295943763642111003496310334789419633636881578908194545104740237232117703783396543508647806560160207850162935363351822272220352694633793543921983442426382824671382093205050980139659610482661981720398143619808595669371371866686328238980261655110558346733210715327099176390215313850712147542448052862316237843697189677952655408359412757785769426874740710476641195627510344050524093634179887374695299521381124712222424674926046624601035095656111458659152108344185025601278318109668935547337530468680771011870076750413728365852809811501988807176663024865592475221972907682845586281799738857053530287313154408613752174610068644257190062915363162846442309683330704232371011916991771501240957522319983441948500855865562633051372335635356267599435302650850574683977528665725122541875254635520161881361107985025438724752977201665277587208352743612864715330815667230746108669275735100927106002153223313554773793558011681088393952503048343927943208708645107626673900794526905093932933495915537293578892375611534488366005761465724660605161268121776675713467214218788435909739069025822065790588067320876671274452050936563521488678474874333614871592060813676067653356450449372110194270995385470369089079157930047767304908958591910140837371215619825176655236036934529946442202138621519206083688019635879005461611268952493645717007278259540815653508930873966345907772636317510023582787944825485244163327102107294400316466126175196440963362859263198224021756087193537997794016016749973609773751151588307325033532368775927978445867547825962951968689653443225256222051242148238444053470168973444755068786286711842710036369380638385104029457228320516774972375725836845273167717258748999330125858790536825458832451294409998237380966685849454153978240602685282870584175966617530158340577348250683607492567973661121516441008122120304191701583859944177624722253866138465231956968128241760400847435974017636671981076488366382300625867063652642286683055721356047406034568759742208568946224189902685178605391015099218978090909273138972596260331454472800419156326752077993738173337660196646878917413635394173301090550729200836907200606941307133490321016012114171803325615133415907701458735776403806348192221782643960933675969632529204611792410010976003418463720569501114983908225750744560916861082863255589694288933713100932270740968956577116565652011232574216403805872958970200291204143810442170823994593810918696880697112186027062024739295221274157570507090780282347831430095358141685566442914431048751655368845694306977875875219288852696938500614253414885323886661706248849360257550585144628612125972656523507479941724863857844439705860931364422662848375818905733741018416503761278196617114958027629327224580666263118315821463957145885795621709192176604100627476745805630879535133626234359475293859607084745843112921801092378088861764898048972070962701066185265217625227759654299489608928874911569216394026451454148656531460568920799284580539243591673637914414596588597925979249313264881938772624255385891730534472890334120454314279310013804258032655182996221906537086938197175088578304752232172105164171165868716347333743102054732084572701823024536230642819781388548827530189943819641905849278432670579160306738445917893195235223691053836948996096