2718281828459045235360287471352662497757247093699959574966967627724076630353547594571382178525166427427466391932003059921817413596629043572900334295260595630738132328627943490763233829880753195251019011573834187930702154089149934884167509244761460668082264800168477411853742345442437107539077744992069551702761838606261331384583000752044933826560297606737113200709328709127443747047230696977209310141692836819025515108657463772111252389784425056953696770785449969967946864454905987931636889230098793127736178215424999229576351482208269895193668033182528869398496465105820939239829488793320362509443117301238197068416140397019837679320683282376464804295311802328782509819455815301756717361332069811250996181881593041690351598888519345807273866738589422879228499892086805825749279610484198444363463244968487560233624827041978623209002160990235304369941849146314093431738143640546253152096183690888707016768396424378140592714563549061303107208510383750510115747704171898610687396965521267154688957035035402123407849819334321068170121005627880235193033224745015853904730419957777093503660416997329725088687696640355570716226844716256079882651787134195124665201030592123667719432527867539855894489697096409754591856956380236370162112047742722836489613422516445078182442352948636372141740238893441247963574370263755294448337998016125492278509257782562092622648326277933386566481627725164019105900491644998289315056604725802778631864155195653244258698294695930801915298721172556347546396447910145904090586298496791287406870504895858671747985466775757320568128845920541334053922000113786300945560688166740016984205580403363795376452030402432256613527836951177883863874439662532249850654995886234281899707733276171783928034946501434558897071942586398772754710962953741521115136835062752602326484728703920764310059584116612054529703023647254929666938115137322753645098889031360205724817658511806303644281231496550704751025446501172721155519486685080036853228183152196003735625279449515828418829478761085263981395599006737648292244375287184624578036192981971399147564488262603903381441823262515097482798777996437308997038886778227138360577297882412561190717663946507063304527954661855096666185664709711344474016070462621568071748187784437143698821855967095910259686200235371858874856965220005031173439207321139080329363447972735595527734907178379342163701205005451326383544000186323991490705479778056697853358048966906295119432473099587655236812859041383241160722602998330535370876138939639177957454016137223618789365260538155841587186925538606164779834025435128439612946035291332594279490433729908573158029095863138268329147711639633709240031689458636060645845925126994655724839186564209752685082307544254599376917041977780085362730941710163434907696423722294352366125572508814779223151974778060569672538017180776360346245927877846585065605078084421152969752189087401966090665180351650179250461950136658543663271254963990854914420001457476081930221206602433009641270489439039717719518069908699860663658323227870937650226014929101151717763594460202324930028040186772391028809786660565118326004368850881715723866984224220102495055188169480322100251542649463981287367765892768816359831247788652014117411091360116499507662907794364600585194199856016264790761532103872755712699251827568798930276176114616254935649590379804583818232336861201624373656984670378585330527583333793990752166069238053369887956513728559388349989470741618155012539706464817194670834819721448889879067650379590366967249499254527903372963616265897603949857674139735944102374432970935547798262961459144293645142861715858733974679189757121195618738578364475844842355558105002561149239151889309946342841393608038309166281881150371528496705974162562823609216807515017772538740256425347087908913729172282861151591568372524163077225440633787593105982676094420326192428531701878177296023541306067213604600038966109364709514141718577701418060644363681546444005331608778314317444081194942297559931401188868331483280270655383300469329011574414756313999722170380461709289457909627166226074071874997535921275608441473782330327033016823719364800217328573493594756433412994302485023573221459784328264142168487872167336701061509424345698440187331281010794512722373788612605816566805371439612788873252737389039289050686532413806279602593038772769778379286840932536588073398845721874602100531148335132385004782716937621800490479559795929059165547050577751430817511269898518840871856402603530558373783242292418562564425502267215598027401261797192804713960068916382866527700975276706977703643926022437284184088325184877047263844037953016690546593746161932384036389313136432713768884102681121989127522305625675625470172508634976536728860596675274086862740791285657699631378975303466061666980421826772456053066077389962421834085988207186468262321508028828635974683965435885668550377313129658797581050121491620765676995065971534476347032085321560367482860837865680307306265763346977429563464371670939719306087696349532884683361303882943104080029687386911706666614680001512114344225602387447432525076938707777519329994213727721125884360871583483562696166198057252661220679754062106208064988291845439530152998209250300549825704339055357016865312052649561485724925738620691740369521353373253166634546658859728665945113644137033139367211856955395210845840724432383558606310680696492485123263269951460359603729725319836842336390463213671011619282171115028280160448805880238203198149309636959673583274202498824568494127386056649135252670604623445054922758115170931492187959271800194096886698683703730220047531433818109270803001720593553052070070607223399946399057131158709963577735902719628506114651483752620956534671329002599439766311454590268589897911583709341937044115512192011716488056694593813118384376562062784631049034629395002945834116482411496975832601180073169943739350696629571241027323913874175492307186245454322203955273529524024590380574450289224688628533654221381572213116328811205214648980518009202471939171055539011394331668151582884368760696110250517100739276238555338627255353883096067164466237092264680967125406186950214317621166814009759528149390722260111268115310838731761732323526360583817315103459573653822353499293582283685100781088463434998351840445170427018938199424341009057537625776757111809008816418331920196262341628816652137471732547772778348877436651882875215668571950637193656539038944936642176400312152787022236646363575550356557694888654950027085392361710550213114741374410613444554419210133617299628569489919336918472947858072915608851039678195942983318648075608367955149663644896559294818785178403877332624705194505041984774201418394773120281588684570729054405751060128525805659470304683634459265255213700806875200959345360731622611872817392807462309468536782310609792159936001994623799343421068781349734695924646975250624695861690917857397659519939299399556754271465491045686070209901260681870498417807917392407194599632306025470790177452751318680998228473086076653686685551646770291133682756310722334672611370549079536583453863719623585631261838715677411873852772292259474337378569553845624680101390572787101651296663676445187246565373040244368414081448873295784734849000301947788802046032466084287535184836495919508288832320652212810419044804724794929134228495197002260131043006241071797150279343326340799596053144605323048852897291765987601666781193793237245385720960758227717848336161358261289622611812945592746276713779448758675365754486140761193112595851265575973457301533364263076798544338576171533346232527057200530398828949903425956623297578248873502925916682589445689465599265845476269452878051650172067478541788798227680653665064191097343452887833862172615626958265447820567298775642632532159429441803994321700009054265076309558846589517170914760743713689331946909098190450129030709956622662030318264936573369841955577696378762491885286568660760056602560544571133728684020557441603083705231224258722343885412317948138855007568938112493538631863528708379984569261998179452336408742959118074745341955142035172618420084550917084568236820089773945584267921427347756087964427920270831215015640634134161716644806981548376449157390012121704154787259199894382536495051477137939914720521952907939613762110723849429061635760459623125350606853765142311534966568371511660422079639446662116325515772907097847315627827759878813649195125748332879377157145909106484164267830994972367442017586226940215940792448054125536043131799269673915754241929660731239376354213923061787675395871143610408940996608947141834069836299367536262154524729846421375289107988438130609555262272083751862983706678722443019579379378607210725427728907173285487437435578196651171661833088112912024520404868220007234403502544820283425418788465360259150644527165770004452109773558589762265548494162171498953238342160011406295071849042778925855274303522139683567901807640604213830730877446017084268827226117718084266433365178000217190344923426426629226145600433738386833555534345300426481847398921562708609565062934040526494324426144566592129122564889356965500915430642613425266847259491431423939884543248632746184284665598533231221046625989014171210344608427161661900125719587079321756969854401339762209674945418540711844643394699016269835160784892451405894094639526780735457970030705116368251948770118976400282764841416058720618418529718915401968825328930914966534575357142731848201638464483249903788606900807270932767312758196656394114896171683298045513972950668760474091542042842999354102582911350224169076943166857424252250902693903481485645130306992519959043638402842926741257342244776558417788617173726546208549829449894678735092958165263207225899236876845701782303809656788311228930580914057261086588484587310165815116753332767488701482916741970151255978257270740643180860142814902414678047232759768426963393577354293018673943971638861176420900406866339885684168100387238921448317607011668450388721236436704331409115573328018297798873659091665961240202177855885487617616198937079438005666336488436508914480557103976521469602766258359905198704230017946553678856743028597460014378548323706870119007849940493091891918164932725977403007487968148488234293202301212803232746039221968752834051690697419425761467397811071546418627336909158497318501118396048253351874843892317729261354302493256289637136197728545662292446164449728459786771157412567030787188510933634448014967524061853656953207417053348678275482781541556196691105510147279904038689722046555083317078239480878599050194756310898412414467282186545997159663901564194175182093593261631688838013275875260146050767609839262572641112013528859131784829947568247256488553335727977220554356812630253574821658541400080531482069713726214975557605189048162237679041492674260007104592269531483518813746388710427354476762357793399397063239660496914530327388787455790593493777232014295480334500069525698093528288778371067058556774948137385863038576282304069400566534058488752700530883245918218349431804983419963998145877343586311594057044368351528538360944295596436067609022174189688354813164399743776415836524223464261959739045545068069523285075186871944906476779188672030641863075105351214985105120731384664871754751838297999018931775155063998101646641459210240683829460320853555405814715927322067756766921366408150590080695254061062853640829327662193193993386162383606911176778544823612932685819996523927548842743541440288453645559512473554613940315495209739705189624015797683263945063323045219264504965173546677569929571898969047090273028854494541669979199294803825498028594602905276314558031651406622917122342937580614399348491436210799357673731794896425248881372043557928751138585697338197608352442324046677802094839963994668483377470672548361884827300064831916382602211055522124673332318446300550448184991699662208774614021615702102960331858872733329877935257018239386124402686833955587060775816995439846956854067117444493247951957215941964586373612691552645757478698596424217659289686238350637043393981167139754473622862550680368266413554144804899772137317411919997001729390730335086902092251912444739327837615632181084289820770697413870705326611768369864774178718020272941298231088879683188085436732780687977165911165422445380662586171172949803824887998650406156397562993696280935818976149101714534355665954275706419440883381684111116620075978724413708233391788611470822865753107853667469501846214073649391736625493778301407430266842215033511773647185387232404042103790775026602011481493548222891666364078245016681534121350527857853933260611024980227309363674021351538643169301526746053606435173215470109144065087882363676423683118739093746423260902164636562755397683401948293279575062439964527257862440037598342205080893512902312247597064410567836187087717233355546548259890686120141010722246590400855379823525388517162351825651848220312521495070037830041121621212605272605994432044305627452291612889176681416063913123597535039032007752958739241247645185080916391145929607115634420434713354472098117846145107787239914060629022827666430926490059224981029106875943453385833039117874757597706595357097964001222409219903115822925966791315399156143807012926078019702258966292336815431249941225946002339947222817105660393187722680049383314898033854890946868513078929206424281917479586619994441119620873049806438500685262025843284208558233856693664984972081704613537616358401534284067411858758154651459827022867667185530931192334019128617061336487318319756081256946008940295309442911959029596856392303768997632746228390073545714459641410822928592223933283621019282293724359028300388444570138377163205651835197010011572201095699789048496445343461212922496473235612632195115570156582442766159932646315580667205312759694853805736420838491888709517605228781733946274764465685890093626612331115291081604152410021419593734978643166155673270279210959354305557973266055467796355200537830461954063697184291616858273412221714588587081427409024818544642177487692509332878567067467738122675283165355924520457807054135257690325352273896384749564625594037892492500762438689377647531010232374673377147458162553069803249903367645543030527456151296121458594443215074905149145395098100138873792637996487372839641689755513227596201183824865074698549203809769193260643760874320938560281564284975654930790973385418558351578940981400769189238906309054253488389683176290412021294916719581193579120316251434409650313283521672802137241594734409549831613832250548670817222147513842516679044541661730320082033090289548880851679725849581340713218053398882813934604985053234047259509721433149258660424851140581957971156419145884283300052568477687430591639049430687134311879618963747550336282093994934369032103197689811205559536946542470417332389539404603532539675835439535051672026164796134779091232799526492904515114830792336938216601070287265193814384484453263951739411013115250275046574934306376654186612891526444692622288436629946273246795873638350193714278647139805403821551346322370207153313488708317414659149240635949302092112205261031239068294134569678595851839349138234088427431241909915287080433280913299307893686712741392289003306999587592181529761248240911695158778996409035257734593824823205305556723809502226679043961423185299198918106555441247720450851021007152235234279253126693010827063394232176257007632313915934970994693324101390877916165122680441480976561897973504315139606691325837903374862083669547508328031878670775117752566396347925921973357794955549865521419339817026863998738834701025526205231231721525406257163677127001076091228152832650898435956897596103837215772683117073455225019412170154131879365181850202087732690613359218200076232726950328382739124382819817087116810895118789674670707337786959256554271334005232670604000434884343290276036049802786216074946965498921047444392787193453670179867392080384563372331198385586263800851634559719444199434462476112384461761573624201593507852082560060410155688989950173255433729807356169986110190847209660070832028056991704259010387692865833655772875868425049269037093426202802239986180340021132074219864291738367917623282644464575633033655677737480864410996914182777425341701098843585318933917593451157402384729290901546855916379269619684100067659839974497204728788183120023338329803056786548087147646451282426447821664426661673209601256479451482712567132669706736714461779564375239174292850398702258373406985230919046496726024341127034561111414983578390179349971379091369670649763712724846661327990825430544929552859493279381834160782709132668086565592110273374670013258342871524083566152216557499843123627828710664940156467014194371382386345472960697869333597310953712649941628265646370849058015153820533832651128950493856646875292113593222026568185641826082753879000240791589264602849089492229996616743773134777613415096526244833270934389841205692614510885781224913961691253420291813989868390133579585762443519400894395518055474655400005176624020282594482883381188638174959428489201352009095100786494186825600927397766758564259837858749777666956335017074857902724870137026420328396575634801081835618237217708223642318659159588366948732241172650448726839232845301099167751837683159982126323712385435731268120244517540185213266374053880290124972818089502155310067359818443042910528845932306472559044235596055197883932593033957293466305516043092378567722929353720841669313457528401187374685469162064899116472690942898297106560680180580784360046186622356287459138518590441625066322224956144872441381384976379710267602084553182411196392794106961946542648000676172761811563006364432111622483737910562361135883633455010228617051789044057041957785983334846331792190449465292302146925975656638996589374772875139337710556980245575743619050177246621458759237441865753006499805668837696422982550119506583784312523213530937123524396914966231011032824357006578148767729916094115395406336275242371293554992671348503157823889956754528791557842048310574933006019795820773955852280730704895093623555076983788192635714177933875021634439101418757671193891441627710960285941580971991342931329514592437363645647303503737453850348928611314163809475230174508878488564574127500335330341613809656004310586054835577394662503323003434158781463460216923507921611101314894828189539102891681632870930971318413981542767881806762865097808571826211700314000337730158153633414909323703470363751335453763452105037099545294205523207881744937093767705600930635364551091348162737820498565705560878421196403997234455645860768951556968689938489643919522523230970330103727722771087056491296612106149407278244203341405744144645996823696611887841165629035511783994407096177256716491979016819523452380744629987766482487375331301814276391051923468508197900179651990705049086523744284165277661142535153866516278131609096480280123449337242786693089482791346544393196525415482949457787575859948209918182452244931207776825083076828233500159704041919956050970536469647314244845382588811260275390954885263970865233905294182969180235712054532823180927035649174337193208062873130358964057087377996784517474051531740138487808288100604638893671164047775598548126390750474729501260941999037372124620167703051779035295279316876630509983744185980349882123934091980505510382153982767729137313800671533924012695458637642206509781085290763907972784130176455324752707378876406936642001219474570235829548136578180986794402022028082263795700675539357580808631893207586444420664469164933446769818081171656866521338968617359245092080146531252977796613719869591645186943232424640440167238197802072839441826450218313148336601938489197231781715437219210394663847371563022670180134351593044285384894182567887072123852059726385922493476362312218811370630750691826010968906925141714251421815349153212907772374850663548917089285076023435176821835500882964741065581488204923953370227053670563075031749978818700998925102017801560104227783628364432372977992993516092588451577205523289697833312642767129109399310377342591059230327765266764187484244107656444776709779039232495841634852773517198106467383714274297446899232040693250606283446893754301678781532061600905769340490614617660709438011091544326192900074520989595920115941232410227484548260540436187183633026899285862358214564387969521023526667337243442309157718327756580021192827039104239196642691115533359456968578281702032549555252887546446607462029476611600443555160473504429212791635874847350159021552212038828116802141386586516846456996481001563374125509847973013865627546016127924635978366148016387160279440548271019629077454362809261256750718177364174976325443677350363258000404291990696311739778787508156022736882496707763555986928490162876869962805379018184814881083394690001638079107596074550468891268679281239114888003672072973080135443132534771309418671717860752298137353912677281259395822052428999137169068565042157505672999127417714927960883150235869781619089490848771772250386087261838494793975744066491276051887812423368312546727833151318675891566830067921021594733685859120139536030167811041344441103090338876152048829690910468916767155537334662254557597520262477124279622598327840583358589767147420572404743972023289590372614868838800317414649020384359035852799312387104284598160899610194569164698383771826726468526486917294841415300460400429958503516410189902752936686743183495544745812414019075468160777097792057938389537819212884740992953704054696222654727880724868550804657104312385487335165307057078458424333555095822191286279720545546626709913190237031177969089278662311266133767117851294305932328160582653562384816419214473254373100206273846681235169101635925258825680643894638988087273528440646220814951386227523993893873490508262547241778170258204412985376049982789902008349838736299249812574235456843902301226173366582054678567114797306507703547562056742830018747301919731088115751677700507143201272635460191246080045160810864183553966994693694732227167074897285046419539296643472525472435765919296994906167018906143361690705614828098036324345412822996827598022669404564218132862451754965214722162083982459457661334271056495719356443156177450082837693570099541954183902915103318793390761420746702886796859498543978945730076893989007007392469746181285576466226541291320405227907121282065377505828004089716346716370902490677473630913690400261564643215956091085109244516245442014144264166018138599001741740824424537861015843336177729258061115919200841409188819120885820762701148367176074904698091444305726221110458330078933169819160391715062279298628270944627591500968322634507372545136685817248349847008084016386820972637134520543980227786633729329082991401064558976169745597840921140916768402026937022923174333449998690184151088899316512509000116371911499485202482158639621629498175309462304760483239937939100214253299647623516356900944508605809120245990461211862331827861446472779552321863591655188305793065770333149851006835713562434188188440578002884401812903137865379486961463046772691455295369015416702583803247784227241799451365358226097165258835671213351954683833534980150326935979816746323184762830634058832473122895125794426763987794671312104276338087269573860931463153914854879251402888502518978807602383899561568485039199585502925605417676766314535405849629679678134942011600332587443143874624831385021498040168194079568721926846261728740348096793194996560429919028181059760326325174640501645460626676552901063986870366826329905057770626639786845358438405767329826816344864670743999091750401889231926755751835405495601773290712721913457752490577151277335842331400835608092696229889416304728778005474379849854556287072996840738293721862383176652471609096719200723765889422618655048755261455785589877300870323472641838483104039481874361622445528616328762854117594646049702772449079927514644579298254980225860100177243784016772316680200416254724417941554781055417803677355335446703032646961944756081283193309567968558277193203120594161669390204966535218967282267197264002949330738471754475376193701788297638248723336181349941454169473654925484063379367436154108159346496043160354435473772880236104774311533078515990297777149961027462776975961248887944860986334942285284765131027792627974398195761750559130099337736824051090258375934517001534052226614407723705089004449661329585953602055603400949282094386299461883479093289416109885659495421311433560881023942370608710802646591320356012187593379163966643728283675232839168886537375133579485986010756937488964565718729254044850862444994781627384251722934396013721240628678363667584533190474395474066401526087194091574395528277390430386877272826206566312938745987531774997379929304329437176380185628006114161956394241431225439709916356510284831576542703790683717576487023005238819749874663685629265505822288771322178144048953809968107214301239469353093152405408121570540227441452187654190142838674426001188904172457053747075555058163283168724711022035372716611230485734046087927250169470106783117892709552725322212522436167334336638475659094972822180941868407423835156786889342114820390582422432426464363020144178798202211624847165746829114631540756377022274013584110907607846478007018276633622797810454633113129404483357013486958516526745951518768003339552241054818176786777215279827025011719581657760354973292372473206785369025753623397121688439087887926218820230552993713239719433308353623124887038641619436150652955126733420719850225977140863812201598089436356180859701008008162255745503910132198197904552004961858377772104804663553380661651702359509713320363157894564448780094562036978497345990200460688657270186586775784275853064570661712719496737108395060326750153243590902949151697373811089793478229768410011765798709818572513137226774970660925048187683551600371463868591891301173680521874326542606370071059536442506276045825233688055252118156641755343068118154826784416931528440846108758821431764164983566312751872818294865565852420685222183075530611839332693416445941534265177865339798058082815880630074995289755820468661259085367873860331844290551068977869841773560311811167756387258991151680323654700298798962898618101459647130791614436956469090951878857439882173058388498080952307756935885161602771952148899835863232312730890986156077738600698403526782678538721592093625581788981341624748645643321104319482142129979318810463639954149653944150138386874838487022468182939186031959866796236348930928308784071240043102270613759136805651886131345830799070500360758832724886787932409338007186415285331794353507340189119363854673000066045378378447246928883054697900013124895210044694903205883829492361391928430524916783301298019225515705037852181055296162363752364796268575166006653936414227306300164865261389184224350179745599361679406330352211182907159753882183977755281298153857016870220262027467864791664403072901844549795639984483680785199708820140776919926167499114832982185438271894628216538706485858864622161141034357034287886297908341887160621443001453327502971510467315602100004386951058377377976600346088762486164093864525217793528994757849625524392559862052140905234625084783048704649268831328947055389135729070696759955629858666955972168650605207280134210435576277918402179762665648458026159140717347700903947516801770990012939113788124853425594931286665346503372884639064996846064474190752431332390340490819523304438955906054785495462026325667681326243592502024951627560708090043646042149702569148855526502281032776211584228243326952862913766267548199354611814391336757970014125587014331943476403572537691438889968308826284461642557503400142898255762038636438413790651961291777735418369467623298290498126171767619155429257043843223991848226174435047019917125821468768317264607895969056998135326443597396517347331948479875806413792688541355252327572045732947721570685001695004695975838937352753862266494345643707161051152161717623759805090055323215489606281779430226864057955584573060059837648270333985942009858235140017950710456901919135906230410233679808090724019631267526891636213635103264807723291495085915126581214382337107294914808847235528639419599345568415634457795172703337423812990326019816057197118395066275822032183713605971802594087061553471310448227271684839552410591360591981244497845811085451123166817353483825372482534763677758171286720586514828531727356906983993511076343209131978031403165889737962830117840980641017501651107293290783217748756628931065038380609337284139922673338477820330202070051718894170646514623836672063274264433661217401176691491923557090564480301634229430183765526310845017251030754094260440968706628806626590056908245140763259915816449936145517245205702044309372230555021722229970620974926860976278740962644877205604307863480888570914346479324153621430319996569561075357041720728533425017132555881811329550409521783013946521643659426296076857058569850715715131726292896007258760156484055608861316541183595862871066549628259953512719324463579104655438916515095418730607101503443060958230225745597494427506763092632252996633821939520292791797324709455969101640298368308042630991048156750362350965492430258957527352141244514954246297225851012070780211018810672234797257933065318771343846671380754638347163542885495761094284189860179465872144449519880155080404250645219148498992040000731067236994465524602090876788230006433772565738501096989905819129095707986669945376508040791785243822204107059927888926774575208428752637798673036056123071072392258150478137917273126123487833403447383357360197323594660427370463520132718259241090604009763858585771695841956310957774852957983684475680312187481820283394188707631173161528981175642971133418149721807804046507765720445708285941747511492617936737999922018178939943333773114691197073786104196398642216604558896568320670133750574503887211133243673984028418863914763349169511403258347584151417032569016178493145570690416985805021779849763701475891481054320585491410066220172171972687893001210126748127023594085516260168942511145849965831558966046009152579788167038462590538325692052042579137894882757960327887753546686144182682779765125895356376148599448504970663840626612195714191106324606177418057721238165987247243225296909853362844079903000759454628154923550608648155792896196961706071520158982529977280352000261088881417650663621690592802151642919848407744614361789141519151797653784828268701875003026486760843320465852547055588241025465480604043737277183476901472066423443437425551412917850303247126341807652518780292553477400110485399696054992650809391069133761484183488459636562152661033223941746706436834050474994333980228561031308303848457129476738985629393764191440703650754462206118649912724964379987580653785020375318997261801440466779305014030158070926621322927364971865395286656753857211513360611445722280085118375789921954306341369230229313975114370240483022735762903991179449924848091507100244407848286659857940652553914104149734278020352013541992597762817818282537202292010818644944834925542179398272327935709582874859712678078313428618075049717574737373029628047737690893255891459814172485265829951088223005522324221858619139479518422013155331963436392268425916416866943812253713596071003174365195902771257160458848604482067441093521532790681603205421596795906641112018761853125671015021223940128566860846943593740815853648191252800492072404217217091398312311805404327701583562951365627461024882770648886503776517567880687249886165709484666577067457700020714433252555573655708315032001908299209654549873741975660861953349231294026390493098201470037116182948593993119995507045538119671128936773524995818201177479978863639328640580781081865733766815789382765645064291739668557955505318871531455235307035599474018622598814985466073778769878154236039708097741236151824596402686997960956452382858423595356461518544816579996646064826139661872030483911956025038111155093842020989459155576008389798994996456626254051419561078009029866701463523853206603257446682025943061880177309110921274113826914878435567935257280887554316469307723536376822603608017404066099715117688043492748919713308782295112374663263563532851739418946651094374576827078220992846803468415744312773981104418676203295447546807751112666368547994446093480999295187566649990226168601967205374914995122682363789586524546281343928933836515653699241310963810255911464392380521390786289356166099883647917563317672585652359106952032689599005488475342416058668982006748316317428632911963339913270908606507459526035715732306971210642342408159706832870762443716553275022879780259869098111122655888815152083748245003446304650598456969027616695827898291361353530629133142788188824934213644241783351931978654394020146532808341034178527248987905091993236927099656713350771190589994595192399061515616548030014535921255069640534526382345215599921057819137103018897920640888397476766714472731425446792350052461884923745530757573490270734249629887999694209459596100870250132945332535804568928570724120796591980922555056006197128354127020207258399417117552092082015109650952668511389757715081084944350828545874991294385756311566832456682799299186153900925587171684049566399195915403421836453721202367860865536474517565487931892564408527448919091819341166758356343975888604634941311187524103842546793799920354691041193544311321913606812965756858361177456465467486106198859141480579931872536753124347033548263752708135310557081804964249858464614797346759931594651478702506527108350878235065653233179773865666618165239001766498848545605496130021577611525581339618402706781490035025287682360782210739710233914687015973586858901529701034778050329215401435959529868340465747175623219664051540147795316746172620872730482063465246910995332737556109057837845594546916022368768964142596016468964710634807410992854648235308354013233292486403731800319520231747620653772616371744536054972669060171117676104777497166689015216383897431171418062222234571856794150729952620108620508478312747479190999688993727522905367478502050003863003652621880067092667410480602734199775666002942794109040006465428107445400761642952536246026147618047174432288995328582839776218460096766926758127030280651953545205317353680895458990218078314577589128020397005363319382110009544324124419794919291620523442134639565384078120941621483500115588361842116428399245402759071962153757018706708373101224614136204892655566810946707638653608301584761451258158856961003033708119705834445287466619889153466424488791194071142394011598697079574594633717024326848486463201898635282709231304708921568475820775303438768997870232343858438112501171401326576932055491186015351955165462794117559396794795881033393541328970252889353374810625787562036429427025751212113733021381195139575641912268515596247620328203872634206622734786822303652201965572932590506813484929229964724822935978784272094557826732997585381853644237061735351765306039680108789949050665449154457795216603855239801379810434056418240339616249491045471210483943920094591464754242478599109690004654137109163009678595156394733219093451183866996462278885581735322132687663495805912376125120301098386784119572588779920604126004986589502724713314676372220438839855834777011259942469120830859566678753194246513144438997119596810593795753215552420465941008141835112017419685343267234327186809962504543247568870205534196919954530095264439844638434659883041826293223929561261004588464424428501155155776593578037956502680613072175867204854179715789640155427688109047589956460548836298914022658002613415803948035797101900415154765501839175577267789714879347737274752574389815870504070196821510121882608804008455133279516284128067967896557016391706777984152914939740315816789686544884131904636833217911505910781389826102627197969682641117991865603899389541892848885175012250475477899950854408398380072543146884298841261604268224882309778855649576542401711451039392798029099760490442883219897675132053511523054566646714379593191527268027821024154062979582882846635562358098672563820056521551995179355106912771053855266192690352608136771766643507121345398371135750097585440593955866173782829712054469318226040167030853091165797311325951610174919346825006328577700468698717725522652570842874573303985974423063975183720997533905509588362364281449324746052242405197282515378754196275932743627881928374025318566854504089392940104056166686766440286821160729483030523646556095535107998718504135212132153471377066768139621144389163240323574157377378790883826761845875636102643518295181539245521172902298527851802559847840717960790411447204147609176580430298450174686798127758497173173328730528113496959166838787707231596833432250907020401903050359589199466665203753027192376425255291034795034381635772169811546432924560895115873201267542497571052089436263950138296215221403362106542282187673958012128644278854749192897695931576689198730517638869846150335459489854184955025169061688841912287338552269997682260964500750450009611686612917109318028235504255365399716605475390734891518965002744232898118170924827361086380157600724060164954708233134936158243512829905040540533399257707132101150371389869507671344794074809784541632811040635080486339355523840573558086371876353026186797172560815532871643611147487510703351291392359545295140743794314490095080993287215323519599961675029753247593190993801296864037978355355907135570836994731192353853105173666915408731246723344070252500691802674772507895890344885667308148729946480778649770936196938929089171822813400284555251391735597845615035314460340944121151200173869726146678693373315434100758751490829582275691935054218410644826495194380424054325534596524837378531065797903797750503143647465142248476883132347976267368985547494427794991656010852825761896437446465681978931942207753682466111042767193648183636053410874897106686631880502655592956812395968044929516661540980261078169168941876435336344948290012592936684059137005952691493442186189174214256107189684662633587441497697392156639276768772014515330224185312530844272724577116150555051907627625001652216627479625742442542054678576747819095948650057571101626484783374119804162594081332722990589148642212796804298472535623720288783005178853973790945526513514407313004986945340324598423693462706024257943256366064059754947123909237245812615458252666730470231935986652337885624422918827843644043462809488828871210196864273637046163929748561678007977995969684336773035248304747824066992827714006903166070995147315419191991145318254390629457329868661352488650057478025197760744266079830029157303052319905218571862854368757786091572692523257317166562527427580846062017704643310121244340928131465976022136041622303116775008596012847528925946334831240876674012817054306798526186894989500491827500830499892647203498696536332621091983062149509587722826081556670215569348463407977687952503820444232669747926482989901693851155212468893587328987833626781936176402368171460649518550878059663535469878820509476201635075709002420149840096786784540535413005048240499664697855800262893182651870871461390952145498799230043177950048956952928011269863253364673717951936309439960917635456879900281451516974371751833063223294219913213761450641139126983712897082939536083288305025607272756354837420549785665989546908993855891844108560511151035436747781077850057271818080966154270914301016151501308652284223872161810904318316379604643152318443466979990486533637531929596772608085345765227471404794197319222096029658250093740824971437304008737698806879703804722348882581981902564408684774976750899916415350216022396781635709763781402396282505433280182879816004691033660241590450463733359748811999866399561717108991180985119761648649923359432827427598338293109980646160536024360404084837961907254216586940948668209239614308381730362152064229783998253369802703993180402492881443064961474760008765430557167269725911463199068882389300538006156800773098441606135584370127757346370882207379292140954871795694785441495173156182817634392957023471046008823063750987752139122341954847119698230316954446804551792266926063132749827252090632900327997293290682720464765036696976522767364541903163988743304222632202132536817604416961205353217435276493790187725226362688310787934519413382599636879502098503302147230760337544234687164722379550779413030486540348895540021076517163088475970409833130610951029414086557407107464040193734771881533990204703674908435930908635477721056486191860385871588202447613816039037853266018584256891410919446456616266775371236599283248186573925142949855514151213675828842328595775941268447903691266201530841804173769896375900254699945413165934198562478071443497720199170266538071410725991064870989725936224330070676047609769045634157657339554958844894809360407715568874728845183810606903802652831827556039590538150724162761504725248775957865078489454738909657331276385296266451700445962632793463772115102854547231288003905840591849883381071136607365753691842808465589898234921931520525747836385526620540070356131026040514507932592579822740601219924939173512214533670791350060748656165730185404921747716205167848650791357333633425768598836125272025094401943067472866798344129301813134429908823400665291538576377911095570800060014357995635181159676472507566836772605235293977301634823575357287423664829460477042916643840355884642237076011177482107962590118026554886899518123947062595425458449134020340019644296537064308866092526881154959629116616861203619531925326266227110814214985613264646721195480114245513394638238590854091787866882694760278185328315544556526593391248788563950464419602247518601140523918754374252658168500305230187709615241165398064678544427312446217949130650263106290340273726047994018192995445429725637750717270565927177928553719554743385218230949270321834367820638265534115716278860399015749520806544340946244663465325358157481402247126061897306086055906508216306870963411975192577431868367172213906309306101930318232666642062815512964768531386101867292188934703934207224555679123957826024897837147355682078267545214268731425225260179588975911623872080758052722103132744475408331921513593452696139722056469924771828931058839476917085142063155719270363634503952960436288508855516000837197352638383899678918460032707368208323484710847170616087919522738825234750638081160609084012422243147610356332894060928243012546201380603260812194287684790719254624630905574929878166127191654822964431726358752454860756302066765694235534277461763554923181745615918566806168642871496412929056013005391346956982949089100399125908829034879194336869694262066294694851493147268892357161503240554226339167358310272857972306199817586870049222741862907707950880933621534630384296752560436960611019384272388310758777165359477868149903097876590086958348004313717683295487175260471411306484727088724669716458521877444210090009091618981941345630502895048457582216188739744391883308550990856600854310279637524747626535303155868451512028339664054749694634398628829195751038478153906834371774071409562833755441356795542466460133566361730581171164606271785407889849533432910031598567393230569342608537623098104717182694093768675430183701555754082237153803783838334270237953593440354945217396032709540771210733293650776646560371236470710927258086789718118249379954047700836934888922096381428156159561093181518370113510479017638359516814462767090345045746099744450016691867566103588931348380051273641115730459920595547112244390319647664276103816428591803748835436066329943689973009092517760116204376141161668812817829238231122174585023808073372720490888009518188957631410315744768433810045738500852365206934071007895591654981303729294446230637128435798480987196414308514687852503312898931950064572258228117548388767106107317816928124248361379647569248207632135642735726160982514244526251595251487527380563315096405255265977692207780664433810556244353813625894180978801567737895131031315736113602604789076194559182028936577011641688170364424269428305745747156749439157359335376311483024666875472756665305981974682234657869997229179241615604355766518338216705915786779931183582018985573034488368193441830598702188050225919281804777522388440716789478041470141465107358045202149919798081209569219562263231374187097973132087086455223674041618559079381674565823435303728330950372902242980276845155952865692318979800038306137873243454650058272271232503142071248810029069722631112906762908095114575806027080609280150440613944635064306974278546947745987682100444145343803375971738477723205206530103786132641882358603656905477334307091175915258250302941073891444181837877949061313753679465489337526032290627763198333797681664172108314055186413330222478711851181703659836596049396457149168600565677136053319242318526216676022207336884484440923447094856802790589419182996946772445626944330824124384616040828400642486707258366101143340421447368345363849654470106782731316953843591912044028394954195687445367645987548872617068716310959131580160972238204977257730745456297912790617753166325285720585876637675428291793354992367821200860190436942895610230173174315035220466567508849159302592661881658100870165849945649558685562820874724831835151633918929264655888059360127515183823548589342616522308669731451141203565991693410307697477445194704383673960007657862824547206461738080460290363914449385901242238017337703815467529764559651849267603930017194304251179404567986211463013840237109934724345579473004892982540268082162152234656027425848659568707451035279429163340591502507599239861122434031205699978051622387877223039635970913285683048616036212757956160132856186638814600472220058001758028227927216784272064996695684090575259077488610549380611695429356907737779282108415973746961314329180851044695397348506759050366239172210873233316990960336377170547472502694173298289040023937287954938654046382859674221631820153013962973439847958862863293474665069028406671901808126553997367591679975901086748392006287788853110278169508754574038460759461691958461065596332728348560957030557250249441633706657315023712684358198415410315440100843038063144218377675034981340816932520124081345228597462671517715222306374135925574751353516066910835944399969231589815673203302712928424121965193630373440798120465679532298635737458903165400701647220498944562905039587378891268056551646427446017473817529631345873939048456041420342646556042211223913463102316129083644698890124728519277858919522877363744043265926467223998218645279766482667307016880272205233860037284290315582845459385434909944942075091110853213874482321615100780892251628512327572435510199903819599335003264144605347035729307391257848175798746835342962974965254542686423494927033639942751935424000197312509888241960009576625721762186047457376957764958220179625839237639171785579946892249675017925191521821962465357557056422822039954668264832982299616721708015680108079977712651715627429576366695966198350743566713221838335850953666580660559714837677386692255160346364438626997729575065846892959980916894998189858852953787448951952709776626268417708859028432167635213263083881276633536331900413433284434763006798202371693365365288058015639036056272275218727245476425884099521648255445366208381178911772522568261147801424289697096712196750209442122627943707332870341064631210055737672745027163897523411142628782873675835881905674216306152341678947605687927715478971432622204106958794718643543994073863994898683616891937783664832713736365467690117376024664308228536249471260517329377724727679763586580601939628771806067912242681392287213406169488202950683165458970762366830255616755947749871518342698920895218264471051491141944119227701097761664585006896384942616559347311296106428237904821605621009426507617383808247903051099879071961185283255678747294290715104146894810491675103529589724238180228815127658225719070553765245528551159863642124428417625623013953866997030894364590760068493804087521085415985127807033320777986563590796846219153494458767717006377857317121103651748637163409838562654155557329266461640227979119597524852530037674177405612570030362581170483838539120727319184506471366912257641521376989626094035180414743205360036923417903544073570305831474162345284018894080898312519130774182333898188031633915956595454340577778433168116255189806040918301890751217019298362289709959898340548496228428939846984793866861429332454398359263703669935518423166161524450598057674576533555233871567821146668999684522704295458971092216365257396595028964563776603898803794151791786791067519900996613920623873231878675842054427939636675910412682184337501574306904596794704668560235828391975997528586538433818912004285378754930276897216819911334069728225553530004474395883007979973651845913143794649408627214966971910035939997473526276412612599535090260954004866939895589948742137959080289319691484582687312371018022977530119068428044078093815659808169461167937442566324465679960636375154630483311272223181233837177980043973108740264753658257565735105997831426483187961984376549587780368526175183539184492048819862978632974313694851178057929863645219323248133939309075456636803851363061971803395797952253950869743254650265912358504928302883293448928459137362162485252887744289185110409374633359066023323971192281445073558837332405781486266220748621551337503677558549413867835292827310900382311685537452090109510117479666300333035253414323002428824805139663144663265608158204521688392231202567106538845950322400232045363389552153991901103521736272090956550084648660536897549847899587559610316769658716128195191966889332664120378475041708175227373527098934371716764232995693569716621378273613889953051571182296089639405538043193939845397086441865429165585316869753705276070106148802570078538715083577948095231315274773571171364335641324297420813726689614910956421480356779227056662583428977340771871064986615044747872616424997667148138305394798495893806420288666795194348275016819202359163324709918594252039281808395302043497991936185338020140707248162730431341898594250385840436599328165194149737728672958958288190749004033159343607618960966949480006719437142405810532751772195247434498341419197991817990986463158324602151657553175415619894069828931574585184278339058102941160049869930775142851302128620253950873238877935740978128818700082994483147667818364465651002446782744569559184576806870497804482410579971077157757909352580382422737761243690870987518914904990422556804146313130924010104936824144925342799220134638053834236964376742886259514014617820181073410056546670823685431281633904967655878990148747797247920250222721816940515904217089210428755218865830860845270842392865259753614629003778016700165467168160534329290757303146656248580963955008002334767618706808652687872278317742021406898070341050620023527363226729196403409357122562365949643207692805816551442864320495525683854307925429990935319932943296601822078793312232322592827655604876339998847842645173189036587975649820760747827025886140997605078803670673226819247351364635675861121295307464477714942334386787670582445229660579700713445898759412665460941421144754000721179060745833068686623130915578000596652273618353634043999144529496072837900733824997602063044880606457489274054773069397133700796274613553444251474542365466275225262486991607711113156972539294375673221575870495241723242820655532280886867015368148291173854273579715415794368949106375974915152451009698657382565489958521674726054046834233861076082360578294194800933437004686656825857982732387515830256672015260468436141265295651989429118488798681908827733914728206379451226029451570736710563772002342781180262150269179040048800180890184731175119942546059441677331577795173544449096575213102630683604714033144231429807789561705125693005180428747236843553640276439277790863896656639016677662567857535423994742791944254466464331555413826554338848777885997206367966069232760173385884376314414811356169303046842001743406139522007240365881279824914326173161781389497095503836947959461797982925774099217192278322300638738499613843439846850223478043873378447092870389053642055747483628461680936365097379090020411852583552520157523928082646255578565819022695837634534266342094621442667245398717104772148212815760727530517333096345590932366452897801917513298774795292909959806979014851583954044428398838179751124535554842612678421779772826898973500795450583427372693728838690212528484337091747960320747955408091149186620868718489955044521061615543708329950285490365961736272655286808132479310668685585740166802240822799243339436093622339032149935726250748061740917363606236546445847638464786952054771953338420340399024476105601061277754647146417741262554851983014462740553860185570835998154489128686348072071006178705966936521867480594356998585969955408932921950726933755023582156142499453823478113831659166268310306519473023341938416407682369935766872346221964132251607626116197603470884404647308317268261127772361338193849060653440404390490986412690347926350394353183674105176256570479706447800468432306943024174902973118195113293574685455048471107874290549987060037398311376154480818906762075342452699344375571944666545352408828726753775919707452628632284021962955724793298713285247999463893892494328691777019012891422018874776048493985547116852481055999157444155150743121440612033376286953379243954715539421312102195443055674837042590755300495066499480261479452473901280284264668922945566495862130811891350027965491034480615017040726801006794892685536094499037392838352062799282018157642705496299740190083749344495060075436552575890554655240210341286212480900316294197587619594195659255673287423785611266974177136710442482191667149961172890394439366534029422651457568290749040215340102692396497727590472957332002798281606213052313065873151307691383231719362666446550229073501734765629303331852094929847522746253456425670225469578648481997751332639322157947821249330705110736747491801634566788881078210115182631487875513802710137986875129937513330384388563141517590892898695619756112302531087505718896253576322583427576334842101666810988451414146931171931427202800722344994199900396494824545752070492209162061422291279532268823904649823908159296111100375699952925125067368823385264821389698638405243704940215218754782516334708243030352103692784976251731782586086221561451916557347894001955870478474165884736480386599511965140954261502661514765122082024581601080121827598257747765239385915916506744984614916116515382126672692746129053375316305565444079342787655026730121457832488594873689907351216611839787734271587287091231138347248514603566138218801484056071607465244111884180073406789858715927398245214732831721462190733049206081744091412538891808796853896062786011819309948924081170235041355412682386374434120926778172979069471475901826482476111241455642393773222453866599286155147534277337068334417307315080544013889408408725319759553889761398640016563990693460067078050105856719663679616714009703153513238697289900174986294888336238985863212717657133014207133017999232638198209404299337779034526166589257793139540514536973042946207948803314109924990711324169450424139126539727407898495307373036413489368806034000964063154070182028924466731505973632131192623117914279494489728147726403832102172071801756160102511117902216370347629757223343578886353703053500835767918012065301666831678026987386075542374829854824636098160895767042190314568494296728664636230510177313226857923283216481892173294155315138698878183723227136401175588133252429413534869938465813717585761433095214761755170834243243417477957922633866345495943873680783956991198705938808550083750798405112665897301814932106195076900758751983686152616408725259482012699192391672227371843038526310726600004736787247491582860169443992004157110270608150727014761967997149014163927428288957842439800149798565813030574062002855409738268781989115895548758648664570923172182587034296050820341593880600656184573508180403234775008421410057457734280298540404955552921598640493324648104077307661169160558680485730260646776425850330183617430641332388770799969864137227552631764966288246790109453111712024389032341025993751158465191767513807757544830795306492508600283562969704501613793569626675977592343616636937503536869945455039287444994032832812890556053009141644660869124725602145538124828530761355614961844436492301429093828937321531281879754113921941560663162278483615214066897266102712371577950306213291600198880636912764741656706748549079534276233825394399002249897288366026392051870479060158408430291478730224665137114439541825344126900333118191426807073515928418041510055519914656493487279696935199296311719582126262723645800970809916675282036581869911194836586610275837586332299322554147747921042132416684826495311182652735100803165995888881480994573729378568141143802152387670645506323306723393955196426039744382987482232266203635286130254379660094310450015860485402703678971193469557998918911230223338160230223627772608484629618955073085069806150028143642533666631143332164521388255734632936687095670843225256433389599781240216418994697834832037601161391385549993399078665230586033206064194929893101242308110580016974597503851688711203774763157731183136000274250272245157090630449636923093838232917507646968400355642550379710689199981231960253373367743797068771381474755219014292858678172404424804932375033095700292912663031697058740921445647202271079648477865731066083217309376803382174215644660219033520398153161893578708356160330225516215510717946062189267433564196008366348383589670340911551308782013872349471432140045051394142899835057603879934335567762802334656585435121936189687683143986673572604086951113664988122995780161888283412400412614225147518455250250264089682366494640117780377679915718014638655473326527856941800550136343395350287083622060512183941851623915370979076808490967419428906113497996103467207735495959386886242798641143792843562057595550014430805126766443218368832143458370854908224001458574822860685959350265740575093920313588172244216495541688978555826519804624552789834328957841696889075623746728104480301852421770613653323607385622816666459765407684471596393078209101709076337791771148520549336793686843083240412678922092993041189050175648491749945239377067452457801917184167954182555437793029924927789241627725778814797477044600542366934615713520841742821184735365236757370235279145983764571225764612260562812785216958089280898839459440616534052193251484330610532270023113368037843337738972488130787432561495274424358475301115034510373768822383757380428200735858693804433152925312996102509611376167018756852592120892913135447319630844006683515516091392569291217578437917900480884802302930439263092134276860122655863045691313356097815677609871180923844065635313618267692376161338923780297272073624396723985414448075728681343676800057382396361079622314042949072805855144477133868231449954792933813125997199689407223384740454259231663978160820939926974467632392137077399189985330148381462236429949390207328507209804090530005916009164171017560540981430190644437990583127782662576228810810441470409770824807790516822585723573266523441495616900798552084884188602735278086121804941806001794114711041068870373867437814716123614195047405652104100226898785852547068903165709467713182211320550504657970186933776927825714524883721339461398785978632004801179281454685909653261661606840316007790158494684022434416393831361874227541771217033615116378235905968516888056130483854208750512693314417170588051727812791756405328292942735797182336084278467629232498031816982865416613287390907411673461236710905923615511386044724637872124461258040693172476915221921740909688020900880153563347177566439212573399316533032442589985259896672474412650360841648416072448212598055075485123231333130062149004270854273598591304130691827925858450944015071921760479427404774025331430545136771031194754452132173222587555048979926746854152953887144369639940639109926701821953989068518675586857443446921379209459068367792952824679543730226347249535946630023599899024829985382614039541081242739353020757512877427399282486692128563724006918485977112648035237602546971430931663653971851462386542167142923619164740217254778723896404314536419054110151437177379775246363274161926999046159589579394062298604148930253567863350352638206982148700357806110155221022448663324718436703550232667274978773047021616501971193744250562963991655936959355764000523636044514114891615514777630187630213606882529627446023807752318964689404303318214865563701469247642739540190940358443725191535213455761069804646973942451179799904875495142201004309023571363689261949376360267364587249290016267559708379799564748735453168653190017642722275103944609964143932267253210866604791259893835192669449755356809693196264201404278836570261039045610515161179201869890067302708238410328021348745672006283974482871329822395757910542081928630817663198704828738863906992246184832399290268539249981236709142161348878150123409338799977609743361575091099258546847592308572536861360535676214692942426432390662670860284616337605157359905086980031423973536892843529495809943446541431618980645148084929269574941290336337341048094357940732126601245079661378944220848584053644602161651788556896930268518895083247679330040485168893441112583439659042221115273627627867236666584575755958540948624826169448020179174822308583500786225521635932512576838292497809043110204870897571503333096365157680450196602521552708035210384817616700444374057213129425282098954545627634435357574167363898010831057993169791791671827114583743522202638777180525029079164541479117361625315584076849558328819029356420121963368485408086592809513150501260291956257603293251284725046988190814647532434236386386024794392101519323510139011778999748352718646934602455424702837530003372540391008599765098764283280290844566202167836226727229273778021365240402881721701249097489945443082686177223938525088376074974219594265521730173335585138940745734814416151138084535803974027779507205189348717072295542768365582670676631391197221181152846650222338349090667655416833690795940940457647294090135435640927796937984206573889148199022539902231591338814585148722512656092757679587375920701391502921651372085113719752273436545841162206628166025633363207444991851146917445506229714608657873631358538902366255728542451601808048716782368888557532506625426236770260421583516017485198188546086003659760674323334641047199102756235864534174863172655639132060640775477943967138365387737761082830001993735976037046724573788096793989449379582960291074690160945128845655007145809188787954264182014536965996284268688236349587927700702529896099679897594195573525391423778244330274670828200872260205341529273584758293752248737793789913676464215372784355398624401585648869210164478166160296211357005663834799033404962387594109288677892027007750495151140578256529501502448496820474437971087294310854168454051301631090226711295195914052082754686641813730583793323615059914204525588021355847475151626781530946554124052409166385755129889483479742332285450414052735423507033598496459369953495969855424497824958692917918241506805300255337041277870347644624432920590683290188669240022239191871460317539966687747796012179068862331100290866830543178700935506694438913191333358636803744753066450241843713603085228858212172023127416700974035143153213180397803368022815422349018373749411797325447859415796210437878707215481409172516361541516338138891258851792423772722960349730553384094288991891916118624958056007357052722787494032125064542620630446947080427794597381714681039519282155068807913670121010994422073702461368719603149116237096793935463639644813902571176805779975175129897966707329267488643009739881487378076736379288676778117052053436770573156689589918153082576160659184376050505170424209323135872481661868382102667997098296643622472364489864897685710017364354733695561934763859818775685591237623258084934157057086345073344397660478038667846171152032511552823716146920063471357038337722987732136502886886885943405120579838693700278331236542745053228346266978644692078094405213852865338462797074801787247798846114601507761711626180078155791547230521475994305800665204271011712567418586027418880137793127993815372769261211406681015652144190356733392611669714045381201004081176012327051316374315448757176876157555491623660176288022060106865552414161931431267153558715486674789939868551087357626100692302135958083814529064221779298774878416151634949730970079436830508095562126459279533369063193659441326111794425660243306461931200295312361934803450450300431509679858811189695053733567108633688694466556411266228792181211412142516734813647244902127525255564762324850563839139163076097636499028893058805340663135247099699336256810236039226404358878755072331988841759052121139037660927265840902387355341851642644486524780576382616002385828069314892223145775878379156490222759069934648162473439973320601305879606813637815296461596326069874496110536838420310536418367537359417637395598808859118892011487154546092473561351597999299972229804170711225699631094594509776556640997272282401529366309489106796329673550583041225860805074041091667853956926123449910281975956395571175301182348030418102908971965527824577028308532173374159393859585320364559056422971667990032228408125956903288692829126013926758785828476559907582801661112006314541131514410887576708185489428773761899153766450516427998545107740077194639804626507777661405352483109049789985951087311262061301875710864373574470836621537747097266018865621068151632800090808619855430359794847986978946643402702929089914343222392033348710826196869893461117716056191068122601587441083309307037750687697748584032413247464376308788966615197255618037147259002955071842424540512924672903979153253599900555733460011169355702022572244277295026384053830943399938338801883955382154037144739446515251235460352674238225414832824899013402305455081139023676803864972389992425780031580372555541017846186347869064604586582603607230695257611318413422527478646485236332475910267056246635080255305814220155228205098919781842042502825952188009884623182851244839305945516200545590777612198129795404015065398534157905362910177793977695789208451097926538290562673640263670315195765049334487951376626219223718564299915082889808090418918101545081314503438573403257954970781938528569992623883522152081447894062688993608523982753717449090376990414555526024919012634143132737382707595039088253122353687638981418256496556329451870963748407436066991255002608042416056253359185623095537656686612402787588310102149528460080480502804525406369128501059991242127050813319497591714676226730504422507591529025174277463649455505232518632241138840619125701291788138418156691823721540089360347510144855425469893783423960646081366682975001937911506170945268098478515286212317137789741749208754106455695950896796979498067977096168305794167431051925448632735888511843659714358334875602740540016557117830912611311731416906660606761379769012314109967201312373032970767898874009931730968738012674053892361223037077972702519134085039010173992487735240888104080774992441263534641318185879248076055326812288158430747132676828309720314904986888445618797601546823371547841542974223016650475939331213225651018917536856633813973683633612601090841959021558211181667741384396920587051507425485274481015454107935951359665363004918876952367757914731918422580680253981841892988894303822476618640585659185994309132457588658704465309533266853226132120982583918053836081414479132031969927603719476019128667430861521724304985280638012983425537948628782475885082060938921466869372988119156011563370124867540420591146493088821905024885764575208336392149944193717026857622225107416623090166586706771456886279334315351350568821616511280731852933312407091234383250230234116950174550236050547582409317565770160488457701776218318461556797842754108849950161091272081791353240678426716179201342890286158327730479483097170553748510938041809149175024543343221744592413303792838169433097501291854459692338873328861614423810011275582862325962857264812153834890069851150348536954446154216128324170053358318052008291572290469636555317815239846872545130635050698498100620551484402076953932415509676268088760357246391395527822224643912259265192128844696110746358614825282001734895753395425501947544264314890323337392676340911552718976842988778361734661353538850765632710781431243501896510923845366023694027606064211938422766575521066367187960321752718440465156042728986956020699701290636784716165479306886830584650808288661411197913882289811249826143455940896181350922685761147460940614793724000884215353586205278012501427005527446835915184037330937358049434248394046750570834792794833813327623793784462920932399941759337491789978648495814881886514916930245151283557981811234490082716864454830654663397525607961593583082140002195161134233705835911154521729372166406170813160207821334126035685201316134513687160098037871255676614392314645808565208403974421735274481374121527747520225924456152036560826889019391395799184410997158831278002089827593589810648211793615795183793702674145140090283306446620928054983916926106897515108396313211712851325743496451068147969478261970148320439220614010952345320926931176229813942204430811731739433886796573913576437764281935362146783743613616159116792657870013774812784851004144784541646456849660669913950952452794991476944103161257577686371363464447700678713106683241787155628177912233907784127518419316118815588722967674960575205319259484767939748641412887947564713304954355504479027712869009564335791340512737557039180682234471816793932912144844955389772869660103784152039066289078121824014129936859046514651920919860534778857684269653845944570016975842253124126803141845626872258113204005643341352430210273921378841525047570453387800246737857147002108731469325455792313475724364054444813209326658298685065912557174556832883144032279804927410440392176143840575075028860842353696671519166851042800174897177481121678416085445440019044924229433366633834768443807262430731901936357106744736341369846732852260557012645012334836741213572183014684807124185662574285220890910458372738622730078156666891425073345637325956725335431617158653333984332172368812600380902058571993085557310050877153373744646521187448174886871065231119869111405850349223915675546214246755049867671026492617651011076687659625881003916394839781198661558519621648769593639890450038325804105442059548285995523906575810801793680708083051899646854083641275290518281374487876963954830638508975614642187488927129489039802562304681217514550233025408607611585932160346524076392359369994918047078049676448688998090212373578045704038082077035738758852597604243460885107519933447011274178787884567465664047190161963354677071409059082695422519640944631954765865303210472380462524997191069011045622757922092690413275369963414576879524224456397301831129145115132275784132037622586245822478469666978594791498161052262878694413637368312510831068289876612378269750634304726327845371902444797097501739683121449335729079164877991508916327801885250455848878272237670526381180379247783554001811745295774733971401235201145990198475335843486129709292852942413986550752250780891935210417396349342860487134237042957275786254936591780540165253633041069203370469109309758878293829129644789061320006309656074788208212214097847230168060083581233695705145465018129269436457835781560850330339246603955379763083613728949867884285113985361559335278210374073307681843304089362446057670609618829452917136294096759250763134863660601134611598043414745070551149071664063568873902069027945343823693053113344090138139284916350748444907682838668747666361930341237624838017584046785121069829060519611235718881115072360730315850662257456636674072066899906132062779399411280575979833287879214418872549854301454666294507967070768813502223058056222594298309688773285678897149462388827218464761815304584439096724823234825958796369890845666479575420019599191924070761582300232897743974811269047654625687368435222906321788922764328936053594790304681111413058634824456648915921138225886788097256435164640436432841607624776611434988031979223053788967114805896806159427918964740195498946623296216256726473901581869295676560144424850182171330052799555131253984991993390708313803021407255675302260003356571593428318265090897935086969895054263584304676514566899762798960629592511976367290776256786276946994728060609429031491749359051152323569871539712786671807757867191038036899144538148456268260400345679824868984781113832805494049051976800832029963175704301148508738404859185015726439218741459246461740473527525050678399227312160011716033860471071001523563115973471115319819871061610985037575896557672890406038716811431308417289371081741276458120611905414595537885320036661526492361003015704462723177778864980670072359888952874748137219017507470000557110817893035489501792455206732900381881406868624795927220559162790229260059210771051044810339287899128682070544897997731969557437452970819546394243166905008398439899303679065554159609932486782247542436175894437179140378716816618909390024386203861000136219366728087241429110808029189609312752620266788190208559570811185383616612884872952787514320295639329591050834968702906069283844152257941976482499631847941481466089828172569048418432606194625427669368895354073236342830218969494776612607834632849031512806150100953916453061455423492339380621400777925633761937305202569931909978940439084744359697205206599901782853767626568355862545269745526099102457661961403753785959450636322709512248924193181372814166842701309605073457865904790424385208650815449135013649169863904812566661084370229473026672149916484961074680326158335258035285827579903858409166761887719953988868043199165086688778170143966317681559226201699139661315373802129416000690694753343167780263220722626588184275721605546143967733625846299738507730775147383331510146839529641139732967245793354039013610739524568624300809672046099554570897489304875389795554444379130379042234603776872923600138656959395230076809137776884778974629969948994901614186613155220085667369577082272033893665959066635059433004036376259118919569156162612270478869651035606274842310060547209143706947166108027737984857654348124982244423582832981354364512409222089664398720199794561903039732725461782313636337592762265630156581354557831973041933926900828295271825213885512658303763047749062599551492594310530747890104300987658081650814486260797512963332667525927235161179183677712893105314447166883518292051434360929249319118024936605179148533042104389977301926768608534776814950229928093806584000731176789549128609811231130700253560034789860065380508453257243155365442206766135233740821130783436032694001592695845958829784564946227130085559429334452072700771820639888740474218669770934964775817368358019316832211136554739228818427137384369052663860766245128429936843508261288136735853629387379236992883704790048472224037091988591255634113084945706759903200275163251392669424948569232090459689777567676268422476812003327957705939461318525235645629180590529597479126616288238142982462265414106724648721617435131739769712222801010066817878677611982596153764364182857348108808998857157027972227473475024843902260788044807572480770162106467016696510020265437126004664193554616583894595014350216089018570355817366182343749162266907731180012118829973731989100606096684119326607516545274182945954118927726419254610824635193164778383707829521838964537623630485804277441790716914635654620121512541866488539616154205515237500042679425341776459082151367525847977446511475043846059632582046880966779570904464588467384748163804563518818321038659479820437633473838901775971423622305777639554101129452348809834147664555934220940205973345233795630944144669822245702636711949328665398949134422551774640273259672299358133311083171180723404432681373723120966905241185673489739223415275070795413745346038650678669339623653555647910250852928429422771059305666062515229092414805708097115978345835117316820412964596707063330356927182149629227207325012695521617264982189579090886508538249084890442175553094683205563631643189391762626993103428948518439253967092241256593307910236548529416213220025119379527248034013313524701418219561841905576103019019952164745973440121160123923567930782319077028841581460564729148174510538806010978750592553715235611229018128471013791721512466742850006181827127612502524187617748599408452149272790256700592585443102770463691109880055431245722968383698047086404170601096696223187706539527578387445422912996662301640805476970582141712863632965013041650127815639779963195741262763401113013508272177228712916400223723023480903148534367701654495938075063428529305313112796594526665196042635040645486254338377220942848254353682318618298271318248988449826028570569069904579099814464919365456325949657004468901104992393921808815562619183440436226496550644984852161249844237592844364261200425662860215780114046787966233922819080457762410907648708740615707048665839814484585580327799732792914319578911037353001987311048689565628191736203670303917971064630990628548370283611848667221945762177503451177011045800129125592546268053742772737886372678301656835109233228064990845917962030569156680618082658692392056189542163198600479396113395322639599974952679880107457646653837740043746369513368567136255318405463847519164673794874327091662009805771710347557533310270270631739561244841374578273437633010185343849745023626573319174244656778749966500093870644188673349109987792600534086244283345048690733827934842530569873746949733336426719196899284953456104571933866522247153668114566659695973507597218841669876732164933189896718297865797461221657392240485690022532416036780532999092543896016990166418903884354837564805601262883040942132130020616454082198613809946272121432723445780681992582320285139823711892654123446072359717477790717204152318157519479352745644298463088884638538106862171527453161230316570584897431620983140132630669989663288853268214520408311073803205278466927998400313787899652563512688536843555962059805727895175449869421932697213320528637457798348731938889957463425204821333755258457105661958693203156329945150251919455969123143757999113830165611718550881665875675118433814576106036514285842787219023259810783459397073822514711187831154087577756002066412456229323911660673338648036708695374924489806800021766667482742692596868643373191654871775010634360830737628161398410739241003719675483383805436988031098392214026051429759122115914850593877067906870135102986220750228772112334562442102471516394125125895433778849283423636112447382281450459682145225355003596832533748918627867835944397904159804399212488984866079504501170116909251938315560944170539790060029131502425384828278282622330415137092950219219650837471469784580555061591453950643731640117331780774149755711673303463200840895406654169466574673578548313377013362894890439767002586300254063526400660163171288392030557635898949241282702248937384890676438533993187860801922310832884745981641770126408907855177783013161616204979277967052184721273032797073822386058198674466861099438304996043740732319578447325485741623973885201620238478425616351259716178310685015629913555987475884815101481549093738093339407445570084209015590385344496212836831368737516678051308259459977125746793978149195364287432112242157985158449166936255156937091685525264472078652797146647676032847133298550194568977275898345058600431682265863117660623720172100792221641018829933080840938401421375969718597689704275904150094659525276348762813586711735236496412105885493449664589865182654563438285115913763156951989523026288179495997154522125066746117439488443331265943228671096528110950169302835149652408285012019083107867806706185114574097078756311761074642883559391598542167311515309694875837895597958613264956981720528429103817272121313868156552442810987116886274396802188558151536753121837411997291947132546519914418850067203648197594416795088748793441675959836196001099483874470907910409978597465611245985197215755813462854618972861502077437452953953692965544901295309728896376771335384242971539417954717909558012013421017515093149166469905236635023302408721865472762963906572334145500590391389025369931715591717982306516267974471185795150657386850408822993480444554985059782329789861702949841837625525875745530311299191434110941308823811444306884306265530560165880140856102332421030021846058858695441850297746308585849613003723819032516222557072997571072730606607291692297803364704884095871122804518851190871858829951433153412854929717384976852313627607686849478036494829990447571577114108095805814120895605947166862629003614560262533486328498681603946337243666711296446029291574618111778916969583994708095478886350328112962689923111009988931781531394668188202836836337382228141497400691794219288881713911628391029568491823335893081336013148874836646422438177608100773918339374934693364474815056493364932315723530610938579683990215338144912692535076821109873835219750773665347549943174058056309914321821254733628135948831768148919430653042602977388549297457056944878307794587886506297089549984376018169403105690958714138680484635985368403410594834178843896317995646881579193717465670504744152802771254156940136586209776073563283296656413581702808801354632610489276873182991795037994444632815859518138014471681728499679306181417713191209923628292261254323607122627032457263794686353339175873744655200600881997529401757242129972354206963042785795060891111341653489343114917531495353006741974497901723518167156875416348494949128900173937745143192838243118326326507953037117780618585115350880999820048276180830720964963647694306617254918614370097138756794021869671014854030747156109135893316560016725212654250289861225930648410589884712964923094121514456394788999932714587596955573709085515064800232147644303723246614711155257858307102493689881456256878683474551889338518179166757905421042103634931625787047654312679066121664414228501744627847713274059557960064834328882786483704345606696645689974691037398771289159331327126624750558225863492842771835583164159366771221853764237622210477933895637872290250954301418225718033130014811337773694150848886750189315699484983893605266681801278391200580143159644191054666323681014820779935652305649042071136419220017718910793524323432276178771256825112648133297435492656868274871598665494304164846822059392167335948505784962280793242264981270527139840772099570723622700924506766568006914996655573786641187707976775486702878643181794152179617831065503028715727228225081201706071338033964184121125385624892013001078246216513698951106461113356244383818536627356378343692127935470923011965591491580056170725851850316728937041193637478062582429825072646480182152343026808148697816482434935345685584369637838415383805118440604369687166641651403612972999291263084281214915246987742933230521499998182904611947167672750374222136718661465404253446314166064987149900100066004154486843735220848305949595318287228052082867630036109173450863213303364728958417658875534522793848029772448571181557489356131152492677200636219836998066415954938868383641189143044376771549802654495906173826559117854599937851086144601496764555010365397125113858350508511244251777292381439623304372403603260318144299136575024601278751411794490130580345219999270114807171284777030125499488684186757297518921429565251248694398372904741036312189912421733955068877864313075002482336183273872969737659882005389590293548605497980232040047223687355741185813273433797893158203941287898972897329881255351450764153536051946211221700067632161119584102925256853656181313878408647714709972455301317076171216318660029146450137858785480209624470377137358772008673805410814004231141852580329326739632459691404483466572204288067928061602988404340053653400970658169463609666091111096878975180132522447824695791325189212265305608586654111537358491279025465436902086941987112558845372906322442322228713912201224876997683714764559852673922590499788551425004758526029792930615991344489834197358331607010751645230131079662038257927853312516176078998463010349349698149426105536783636602256121376708142109137353178068242017573747028718931020760695335572170435753517746157352483843210157139981379859660712966443831479129635927542962712943614268592213899305498064539914458869247276759854427152778844383676014991289735825996186972975658897874108218942233734454737522769319922263597352072299838736848434917684119102024662747957956434961501265743384575863883473583224253532814204782693447312997118934635450299468174712817929816743964452495665553231164992067716366458031820584962613223465260617541353244470200766180741891404015814856000103011999410959549232143440606763476971308951338917105050385633650354516643177448964006173886176119362267689057695569391870770394230494003844062261444957251663101708064292334517042242667960707540402855118239836153138375143249305639838187799559494254519675655918196869088528343488605082852964243757871292943936617736283013659587272308096946839893867636622645679113297746981267522659562100931832208175469477887875535618833508387024829534607859702360986565637672275570449525873987181259344190378527557133340984245012725859669243431768901896614540445367904713629423815612765682424786473617667177064700243111971109000747406594565031537504417798219230632370087203921208549956968106137918902996117893675214602238690566548138285828044953753016092142219594063878707478799119492089837409178853441752306471503027839797986451733662532951177510555901416045987333818688797785881729197660451635335355604764842052088881172283199004450428448685233833453010553392963730803973823060471410452547009489940760121524760281996384634355485293237716141086959195078687327607540008522006503187123927285783580701076254276965535596478945016601381629517790853113981109283158321693156386745974744958438528270165824619209221952913432349677934558561314020776599614254646328867735689178557683516960839286418883009488332470044795831693153383238237787634442632345630167951367104751046966900121777712806552245368937187145156739473344044728045095943309068366711065595333860293800099994901064276985962326040186373357284667953122968315635814542089054065122641916201550450043056213699185094103460960103054381669479596458580442519490511073338767994673447171861564772381173703565491762870758945603551919560396230115786632375023472505446107397940247518441555817808796282223197269298451668330691950507999335725916567555729458596218205265047335371235162366277047933328932213614185878597277168568272530373483689191184719713375308844677794327485714882782160884476570004140349992137679420962756088308150943803070566602276467811753336102818780071021979442877731314638785781720566140902304149992324826898247722210985218975814087976348614676360636867461196662034730460891727724004595305137693837538154348698110199065170696177405221824742265765213815274061269901270688087538640866990146174089054098187767188007612415196706415211765308432554426101753634828119683749339582574254124463424723358636077798096019974518775884545964589595677955886909840476825925347784993045788312854174707905979590943162772232784457891869421492945154017421462324030084190797529678244596918350947420212361794030904863496053405493129991949608795795258697717023668003386250576493808874099400958994810939798323110883876923649022149911112087063920289249069843533315272799133098633545432497144137805913224081496015648567984396646478028040905758088919025423660677450041341579431211250127523225014806723297965223048849375116608497611641277739531130204156684826553141134899324374789026893517390404329485161065978583225316820420283499364159598019734388988302099415215228861117512668617305195624936718005384563785512917184841784159479743558061785668075849108018580569556799018519839766069335822477913650456270576673517096155049333839045261240439551744913688511598745434093204010221898270753921240324104242445157005296837881574946844150801113861256116410247719090305004024066227894560706151210826614609866204042501058397809819201972675901074992488496613944118415973461038240117855673908056648332103907386708329869107809349582888870711065155965122254292915421292310807115972327579751085991139807684473263942641945206313821786226099916008675244626545702896906719228228304516911136365277451797584214710221909990625737338347272649867824440104899850763163066805026711594463629352512026942481085453060281062726423653825077334057547570170436703959646771595926102943831307489724550572908568849609134632316581946866058709214465371675565553196209186595262844825373135369816251735193011534158117135329203587316416883910799400067726603161752758291739839585260645411331898550574784712105350579564909593167216756562481878200276996373415588000086785256742246151140601576011591025644900226498003949840335809130914019787784365016796016746537028746606258434632970830372598049465358931891216397601319307947697205803471055311111721585921906623102809921208406928309190601737076465465568341320755631531500645346232100713358490763304832815345869849733259980118747966427314027938128996172052454067469527194807993039673019427403646659415440009279990863480662233490669522404465215899286420343509885842269201934057549684090481295552265475465071353284254349661608495478809072764993025270281506786281082524322297998539175984518886838700447710186677215943970851466461287114874953186218094171967684314466643517583768843678608144631964191256657404771869916091555091087891943125367194565126187848691087672991056559515515973965903438362812462911811776094941188010594633667103904977731200424357811579042982304507203832278124641367129795941508291837821321287689054596358636934487974978484112327492133166316281245638823828871564844788314241765014798018785821576879306300115378899801462369013580375330624614857607493256780768265104573805901883123761727188993379048711339558848523424025500235220061357491431825914247982936777549049639935075583966896757836431661836930762560352860294066280325541653543151801371482194177267224400526840199653333418400434552529659291850294013160065112439529787436422280697772043736371787345794842023874515124915791313941114860841642934795879368186860968968464085833413101785814271095541629337591517839234130311054332870352659999390496682211276815831651124686645116735137821434533665059832834744353629031239367208459316439494188113860797467013470964037853490714908984231789173978365065475198288336739571436000000343986336321209171895489905574869339770024563247595450441142258241078386683765546740013732432280911369267068280539754911116617110239743774947933517403613500539758147552083428577280098618940198437544643508149821836011257763244738945205163693858513648425996451836185698908872178976469472124680790033092508349664584165655426129419510884719720910660510554093373195488840644408028057954900807604003415466213766960644429377498589735362559195961855244818794031737450825607289512094545656215954040542581488692984278658235767319579928529312086627592236611513744576791606362167526744045122105105209083470744398613782908235277289584962565688197279276869479580610057378708412144481503479742231210329535929782237713407754954547779181382354260718461710838909782596440617054354696856703074541163424413448630867632794917768292309318322134145548259136720282328439654900180565320396079551707449603900669699033419927821269676777183520908395954534186677794487274038373338198523588420284015098157959468587453798950325736280983759221622925859859912384399357557328502861315597036293424981417805646161586341533863507722326999650886087099996489937304930717096788874014974614754288038742125068921215587669224238743470112099085908216407357638081738695975517608387760027751725303713344565485263566172019756300158004979022341958673806144240150243628895750320653369082575678550702055510557238187857465037108630815818586281588305456466229769480397061826549138518132673748522718826791791909135440785268547625412668339824053402246998996665257315563764586225186282309208542441280599762850548891309833176188498335297513607377203057134273963812658856740501384107478894339399660359185393419841632261765485737667194313284005062629514035787726468064954935574632640818697971863021876002581399571992360134537422975891828516751135817147262582859694079851857187007582312231706813486793088489927518166139960975310529577358461852586521189333937577185991633511216344103791045184501902306689306417897780815810136044949540966536366037007588100445026573493512770742674257860878489818562886998085166571332083584261338114262385542031577424661310887310631811198988028972284979055107514840370229058048305273188495999415660653731402129670222082191586290595260404062001181526966491006858759265566056756296336143423023281074748839504038098498186005616464609981925761623547871091383296756376150673255086068343372043874818679166897574656345602000256288960119110098045335042384206382403943416350297768880277983508748117829834941721167491942560160868533243538595115206180903124169818207931461506207382609718045826568704362393575749573733278157890438601137807850811027304944661182195745017010605938433651945862836068210858513049982042057845857717593384901556444730583451529141256167997056965742613990168193205624192797728202671429725870019323433787315393940311541118410141429274170353754200369876060876550010934529900703403240133480638851409576955714719036415202772112707018742154812393195322099750655302264684422770002058904592274242390493705150736776462984497168212199419827479404909260171572743936856972186293600738707781079744097555662780737122803035004882984391954643375335578789506401899868506028190245219117701863450517108702390339855054070445418908847204237649974903503851894950589797128663164469940749095947341158193461833669216957360508158508083795203633561994769193796506501680871025073507082526004682124282043436724582447885925655548786161447871758106857235689515070760221743351162733170947276593241324913270242551939150908360134623961233500108661462385063312707298774561898438428876409983616496477571463857324733322665389452358836597295515990518741177928860876023930616001616843407061166344924839515631915288272882283137545867826983069669122013095481593545075492355416776687645521254568124293642747415381569221950333156015161449224751248895753483592622626354540670476703386641002527727680088638326662948858274036965532936223609057247979473443407770428431850790197346907114123036411172922492930773193930979545287741245118395348038221037364469704696749304281091179723244861541326403157843095539667106146808381554894714673365248367913856643108474784867624301201848932910961528110808761742277913162934549442539542272730964505797612288534739318960081096520209015110457937760252954313018893818401024701013492931744356288357860986154569116166985738802497375694055813863058109982337256516492015544321686169053705463017615480962662080063305932077589717558992586219546209645546462439953539174322822543326717430849250839646132892958456792736540911994761622515596470406129704775981855187844141994861401315385932206074518590960888428021894335869195960493640965157032752757064150077626132378364814900524548141319598929639844137178140276412208764498968862979891087016427016901400782574831159897633061295119568042748531788633304116976717506382213521383977913844332564428849087291906700980249628156062625863694232265849062862803505728298310126691910963725837814936377496059451521693264494518829263952577234842007735602165690907709726498564283177869477780496434399176254921650060862628532947105560267041338450050782739064028752986416128749647370823518889218961264127955353644228695543055130870000987855753422310054715341281095702487081265431912326195646214937652752635640212738876510388325500736489993716718328002839883231937330156412327718539565493242297795301653483012849067784503749089174934738901564958857480219499672262118587436103977494633863305788748740554000544043934488819204410213479003459841192702492155702687370097099520539193097931949588326592217150832462194230018597439670649114955941173372819986902131162988668026744644348923302060700382126284172367962730719140500808408570397815199814882239005994891194647443868253374588996237513337828053292827201681597797006648839448244633221092832050404598300894356595426725687971491870344733823776791482920328319683810590771572719190304236531565095746454964342532806951039655873354980385099514346350617536148005019504520135020018028150693324191826785573776441409708094574562485486770490436836871759091805726979401046501948485314672664297866768769778929143112850504309819294973616594425947175476513520524507259753857795837279770297223143519995849952234404939450211542886724418871740952455477186748491147503180177330468990931797447295703519238768640554427813416980724938221974912425751016218743977290214770463801073147065315420130058381045890500676455733299814994585465510552637491435419586799259598141221873523840795741612337226406386043198893624986764969359256959212849590625444647433175999968516366030521642677042815468177758933925211553859052682331160830275119438482386155285246501032946729719811210531412589816510012074268814357759082522746686320618837683045092178458252623959418967300364080862423365762097911164176633132885235206248792297895945645033373313942238477858271719541234786043437616524156871794356257021563666668008853100672894703307954080458332419218848887071227567033317393926250907355616451367706419953911194888124065982168578713138505685062309415520687798753974065848425013520561510348982187377024506358331424362480743254246419598464741157562544101038967157667726319644252493194180647242378933466856108378980883031357133315772943566495607812530491759401589514695496522311855966904855946760796819016726663465018618295566989396501961454440176816281060446506844813956166722072926121016469233901679339963283301316385083096794279293455126843576035690197052313836464096131177490460077284086221474754765322150551811648988787908778091800905070604006122001005127157599122572528252337802680903052846158173955819812239701009201720225160635292246478161553353227545326454308709332092463185597658056171744684045004828535339654686267885233004496779558076166180183366879231251046080977389556548896281508951962209367505884160975228232825043371297018660819374896869996130148692469448242072363291236705254214546416296891044298163337326687167594671539261195064922472562725454327419349599556959024327909717439225809810360148636440910149173418307964634506483330340476571182704027686827141808457499849339203931744540261666367464666875438509396712991806747190988531271072672442858487069430709975656794919841899642574888476462203032563775111253406008793690456577927203520592134592427296520668333851067361527626101602664777248508334471989198680265619723642084750496266160779709290684475779825179556975823508437174610331038791178923944163011263407753577352055804006698252319122557051913363140721134972322654915106296173905061785712750940362314670093117613313201863115873088679823929800980508949151078837119409975037547367430574518726541401644692457679218575368036328913966415534206670562327293600117778149888610083087784957170988085866702310404324252678595556207731054307229803212594110795734914668468022050181619215076664910686203337871382605898765521042366819867017786167267197237415691788000169065665904696531615492360406189182098241400610377940716634200273582891199418264781278265966620703038479588144279024666926403279940401680013729347730153094180507058742115328464220300655076396675616831889700515202665664992941738284032730594074014711747846483924122567652359341855406644098370608363645765708180166428504425822455165080886442121211391435245393522552216248379173733032981234952898409861327370995740778678934931197520423792502285137588043679185454783641677315182145722650464080010420210041076602780772915255550321818238722170811276620866531765192645845249526968537631443799834033694712444724779697389051494112001093414007379406185944716551661267493079937470577293052175042638379836766815918358904965216372649296083714720406742899627672031541021150433374205718285409013632572143759205464047189432854869688359978512226213081298958157139159746453480609960155587722319345076031541166311296384371940033373601330552635257149045432792519079400711150478537803637089734014675346551747074709693581491279718818785437679775167592782230031294551859504288390273549467266764750607264369876139480687908059353179300171100021441770150449549641245436165621015091999786297249590580919182525548635870352932014200585705785541921773050534268753379907603874668968428340264873329088888174545304719474093925840736205824284934902475688335244621245610156272906513061852073292543417925229941744785518999509895999987741095146417007698930562016350219269265316659909323811829541193754544850942862183942418621806745712809938525884263193067018209800805090001981962175845893251687769859411052284546583567936296961921908089753681321048451878451623062391187802460405082490933606999809477625379297359703775906614599463857837821101712244635584517194167034473216272244326591485859579782375297632344291124231136860372451443876580127159406087878863851108968088316550504630900614883254545281990825623880587204284394183468786514254137768605429107972100427165815778308922988924267053009639903582236074568871920027170505626343792760919954189602739328630965921328608661135166777326788639363813167339722595282799303442004804430472679083147817261327798086094168819661803918012168971597200147504115472495151410503657900146821981531433691171839692368016273785055734657894145263968452080177029347968539001573015091924272510987572895961812581543133848247947842757178990069004828609246975201126633314582612493892732461888069986734059756927851692537078104459198647711562007662338363736888125622483570477193819029809235028000916176306465397690374612077617753104243623733272225398587779209023488439164055958599831559572131135722015368030122555768337977485868153308815976455596463073489861704440719656317227351193184963558533831426672788383345039295029377544040128395844071644977474670705737732816352848926678889327538418094322217408770962831715537373087389011635269637367647026041165542712677443001704407745964150351544668469898830814717116735919774934041408666867108872506263054788739609618080735626233688669938220441442910632774728081251838554029654335979589204189529521678003303586359170607449178999016670105071102879699625445301638178534224338269341985859320628789660567480513280524098141476548428488014472408372034795515409655297361805805266414041690814056500653066635278305203101764650196355216313965698957327632836166331583346417866623544988120750167071691492153310470066739351500230527309730250765758038679960538175767282572043189179252836985414536956866925032479293571945080679610407259577172332575336885711962204887470006617679051160105645490818910761633509914206626336872394189114896117794790081348326665072495059648513896920699501239594674168366209231197016458762409068837655879385200069790955384061037720873921360590968836117819925593927612201371731669809284329335847891389809680489371788141314788838709602093407982420362956675642251140226638969684345937058337096363808216579465031952054541669939826109755938709884703475374487651003319380943884273534165194805215828390970614683150561333111603743143254278160824280796489148679541258734785802904273964536807551844289975646162256794013176962969033901844024256250132312382013003817794511920415286190500480868159149491818859797929987377619045531002670016685060405976171659658689281537032500658527591101134567170006155989909054911534884034325610933621296280037280016167349089778517008187138784334431418745796331879058055951917651689006368327671990653471964676195791452576700095560543611621847586129002754569195840107667619334154954687592870771494717478267577448209415891471525130674672214180491179041510161624749042795451230798555722138437281250626829493904788375571225167332620417970532944418925001254775529261313388710902882177633950932555384067477761169219211928850547858084171222954048636505521685134403143661873503481373718553479024645744459976241001476255234071064479861106653830498391433232558552207127701720859935376487961770049709957513498572821288158670906528937979165822522708760371040612998262799964335782351571796636640351826250189670137221388506965596892881034512735275830786490303343966825979767368260042216759762419429291911542016589739530515186241886944505035837691098672958448430501593745568537461104506949765304311567426481280452699906438807666157443850239678114137005556604513456064940077365051884900433029736829116199453699429625559632692394274974587582950975555912081911293377142262342740586990038948271893815439902453331092403964991905517730796821837428485331329565265422589624658936823278043336298793645544386693591411913250915630260031175193657529805199004832556154937412021800240744570360013751534735130432491413140449808631336696545049139559286115857858212633099225761627982754480522508990279543876839642829291683503900178922260757352130731679880259954850093142885988777403381856390162972654783314697040553401085775570227111661164998035086578781582171894113224759760775640671497517875124249935221088437088119307342632070504695498620551341862206540059306415424255264917154496453746948498610752722205069026523281271233221348163634422029644054859999817821797376391706764699500728772033879750153161155881479373838839700181946836441915093663688598677480101643890617705778707750683107727092511734588229958255985758667409183525647879483719249671126279419288870425739187555399126120249614372728893846852860684686623949665336881653162374111115329616767402980723315993865474531508028593782497872796067084756636409867840323823605044066612379417624357749952408182494218752883544819169153303642151700993008004652332905533609192889743150839570415753124617445205777431687702242941032410211057522586657336730557211974056869894973249444057552955139270855733966636930917897291916166831158816515936483295569923072005606513275158882162079359572129467988395510158336511294003581039370510495882007152737404719934827143882681227151640505263719686571056573698265776325235617759207158271545197726795100158514573621649273053197097649775286353701550743549194738981107195098056364010842524597752396131754693966936689180906889064970214432474925659329899933848010281995458431827218792883568647369241748009480533272021803759209467174546443367926318728957084003647222625564405353606612992225686819568506556485445344518590684875690558693031119244456009022712436235108433024375640883473866772954007443556581064134668604248469439770392961710785184677895956811625313357012745302574867097849937743052120994856410121631957731684490389051902747195220719721204793124110664603455451324645869947976533923234649658681854156091907757214389733231180714607140026589225336817101777250208252732427253414235369319820474148886408619841709107821588305662682741043294910027507365737333233458778294189013330861010283669885996480411239919600435667940588682144260461450259522170451281200504619428321637775693717155687288144361498590509855782412079368364062452319453517770181080482086458205533907024979090521342961202096017253871883618091960830513700393911706640488719837090203640721567445592206624744844551817289176253087952202533063109048284123462722034904134385269573103358771468490734797159719821670837890361358135172357320670094112455647495704140796739949684534038514137594388677778354630973452557978126100405977739532917610716269933516228012642489652421825991028660013475184133660501632837693077850072407311499461520992457441323532498499693281312033485126417107173353191210961763956556637096181406400383871146453751191092367778740315442865794444815963900152934613559776111968375213683320294191798909563644992913021742333863273435368828577280348852262024018499522416677029509975826871944999139242999307289149963642117014643901092567660988725436946776876275459081569192365500234174703415705559619878144557528478160186571342677532079277373684112221939603234260408288547106407258416617569213108265256951651850543807557628900462581136470296047299555496465134728547977466204449446074310896177852313160271383649431663568809684113784143349692078508291277099755220139398970624496116257221020399500343155868277464984387017226378449062262159607707183717575187342646613787851925217026942066950825549317293447768090286422843890851876557022914083538474992705979214795721125734097261158078521470560350340448520366803955450789634142382936152761003950298010184857791534362664963899004581284214860220472311153134103243645464950115851491458496506518112459162201202878058903213500391790684474289500858114323383427823220751256917546889669699292672187387026966005058025600388012877742415083532372692804532533294440415093191101010456074361474152575892619410143621200278619032793132785625609937061637946209962516259284608760874597320969713175677149006711835484572285526827551672018742705853675041066439239197094510901417962403611755882920024393418674373301260136443361025388253255225512315805869977457653377552611956144166373842991615551984437497987244243073869161623822842877889062460655058352589562894339502559555926362666743158170857937047537677918605883143886598955476297355740000625058713135780511586614813572399842057961925684326879654482426150909574181524100515939096513383558128173192914660822119596008419606962785006550682268723476729714384676098434150220797828862810129524258387203519355786479347834377717029708131403298740979081479659524215644042393294314661152520497429237519624244389664521073444071682210709565147935705125861477048523030976545275340049013591028747646206966024514837325198251155814145127513705343592285017003526345822339142737488190204833853523098374165889028450111469930198422955974421725103101478689388964017884357461326926290926758536087609631665976013976853041549158638026484381866898897674626213257818484531371393888650803959915241061581142315299024232649522596474323195525164519454688278824891855759519739533947338204063812071444614881564609609594864473195096608578784475436554632945600260600601403526929703910766135049961656180990804404976856353366348066030489841267081809537208644485378075355414077797530223164355748301908455865807622677805168032389745289149331838654581294709172678119099578797262765184016184621882615173703212368754732887401055119362748299261650025809474814601356724864636692795854761374133913803685528712249552516128711903266629309380707643341314732018536178261233593590642484684361214235857524449175508043029539878926942711544048640783970755985872137111707817884062792273169783235586745855566361102303665472392163714122847073626961532781019581561268721838961463277653813681927914071860631928533369633364290880936417723827702669327127541142214455937529671436787856608312399832989317693181539651728050199921668510995528336158195894417776290508985318439064558027778990951826883411286270070939981586222279870063267125167155315677434190030756315961221166443737227229102514783996881374683243598600393354769679055855715192871106258836232933706388548409814501238228951921534230529711493865551513574181747907100619621153679559177459803029912521235316747660977581554252395390369493773009687933818021645330123190087043132819357189397945744953744491922347644277681232549653365539187898443598690371670535929672293222340626646914832816896574011423089867887394810259587299266467051777802355467143139989738347549339506066034162826941683926748255571396787534865695684007050553893243242373177084336079077036104653104899249493160093567670812349336803017936416942127558707900961990202692954593600156255049364973103173417447656650405620915696840456330867194392999455874608461011619468713333194161111163307149410437862548843852220599167071405586074550024027614249316147018928781629459258711843854249268000986231840458367417176295707331051920112080757739982421213725172185610815719677967851606300438145262737010235027138677084416807993833244778016600788811418243665796553890334293927047426920428759405911210098178287483398780351022801718038750649762400426156026029346578088196190954686741841221722014111970036540094488424852838059903881006229136398080692858154154527333795823711825368338897715610378163471058075967538124836122591833400847794684429790702007601682228324083785196496302394760077383245594495320147062151485547542513259820379733556632507323422356650157655591639369209781026236375454232518854153236486837226704723109190538211227780893406758716972509972934278325476579887013974155336745664562095518303969146956490006697528133299105013954222310871898789717814104699122268433221242552240992007522465011851877142471200965050657822389485661437247733542160708344513277180114340053820790389285972192879506527218936304736136238148040475526248421836556348919843278613915722419438162445036197309040438769743925067422349700718773576834430660272719422238411866165903394765507764263600517832099887790712751340368228799675100458462190833426873441711534077777965427701941123797532510177511869606069202056485992344005574831845102575171737154243706049620234186775860441953154109266915446121648187357529593165867537438553444295829074530304512391366619291225647722797770931593913443997628879431692420208347054140692934031976540484975455624523908052638466854735132382629626143402318241073790914186508030710566091926568985876950229378481926867101092089226277403172943945908738180381167341172939306590083606763025228751031528223627638947994062218503574418652490593894899724810020371921325675633331633195719384200341700408194740760728699758583282964206305147188054318873479663907367329746612738509411468695157214707823709646210456963871317145720220162461331117048286705756508039337001575008568723164298184771905032775890771056631127297090064429173386338328958973246118919973493766425425239418215013364610291432969309778630811408694966594048545280063649097418324112964440429714101511428759403142350763934041064607251028788173327606585313136657881470416294842256215158460551538289834395704641311826210003960381368404512923495872095868038661380839511243314662136660056386872645624474768065453675410184177254149740293735502207547720751712908148682096280672979195506302821201814435719653407528596419533632265123103461934619380791878344862294853385494192746024270399094679346483811703931169246135254869750464351058944458650951410496626048084809232254967175931798690119767739121240727107490323471767706423516373243111471572310472618693634781962340804335831286349960452429381165506356010625000809506017534699512545046055074762946443418450811644028888969914020938522395105601034673391301522236818050860129656584364893343767503914489582525145247732973684095001585599926612557667264246813284550372827502663675739383421714803737916035075963328878835673797522462316053902615251104370230749544710398199420675070121214041570860055468654015559868861282278623295721188408789292462095107119113170969408646035295828282474140513661040640628800570829397800953884629059533783248471532359549439009531367015977301921183757225484872227793226086394267278213286459374973508881143875312233511117103621369065140547702925841948963918915041952343756657321363482652739604608965359082081112012659897220683838469308377896374521743049480869753199421740958565067166293197235822293250927967007795056836598980171839131221709013945572008860188432016957449763223059886245204269125700902468541003129709106534523431544459896832041723855357797898907115865941204967878810958247560444034863933973510520908964184917831111577117071970886446689372528865227350177745541037561509365954971752614451258226702827229645299690604591698753103386443161596068967038123061410862801085912816150876257851985761035993335312153536392130105582834681356696839223196862855692356818415700171677541788987968218407876351743321091858109432831220629237973323694555919908455842707394015336630895934667481201083994268047272308492799781655030789707174249810164288491106384661284573256441315052587392480109885084285884003495158754752555174386691891419122543358164641648989807641069868746039955988539485712311166405248743137957153650656477960911438913798211889824259541171270489402745831561594516146485074981729326037926670777553299128246990427438185330566697451288691330474687450193426170720568141251420803597934615423982948798148122676841277677252521121702266036670114168689985621366100708067772558386805604326902863853674994488044606434964081070011533732582422052515646857222628759647760206338972523854189232316115923343845471516653611844154690016847207225242563160609674795027809788381849776926859755800824399490189553991315984156238811729908258468001818253232462034986150607080709296030060540533968688134475249485830100391697013078174300719988980468660961935547771920617422316045880393751575698307025494779537271007484627889283128797148681306259245764916332612815725496752790680159962807776720245114943340803099982951979391157650457495975778423792970118960867016082114042886193795896859306928994628950693669854717491394918706731098233567781493878652307469512219159571134329508544654475497655600595606947672379144954501871043608459572313245150559491643942275085907957766551976631130102078259770291551848528319794435918391415267453695684041916897536215171638203212091669485646883281452627671854953193321407926075751861735066944126128694831615054069238920025873228515887410948122466709699209702824355232337321616142939103912939245469818124703912383247917211100656807207480510672519096116437395427213730289730340470767856574341463152425876427113766601315514183209287246380960427655671362885284249423156011528129286305291259871072697832561122590459533065678948327810941066761665001051229760179782661781063457033216687090755324621944920173760815165065260559903123241436655945494039905851221935190938626316165591668746005626011159737325199312840829109745869823827655111247857491695381146681723725902468241647240483490293757463217678388247523767501269030091741734011732402346638912060015095495883440998741107098567080216353913808144103877033021274639993561200659378536372212644038685612739642972049464918660967483718348218791146994267508921474134782585803828672283866427257808383460656649516249622832017089023164904326866328101543983988468886440710724474280486201509091856987268577499888966519691107590883917769312161372168424856699043084863077516682420122219298454856007242105970286856305179035359318432810268649736540682330777513282371843877274730053105784734689502320429700192247568294719061704195585234299556708656119106591905391711329189414309557013070318771446319513488343882556262829009576050341464130073303124734504620507708917529105604211086156405447510099440733380429643808771299201485940552018859556808521441109515566841864208716684710505392882829833859050934360263671212219695328385807980970632965152526915562921826903873335274300931679105784673282909517487615184374546760862551094301805319077912630605106092967822218831463577585963018066560827028678465594416499360110896202332484142329585655772305648038991964212779327355104893740997114118054554767943260260669329930796948456359875316740869923648491674667019043469380311685940553914359518816336693750157301709724832873781646288223697825298732165808466262990896562939761541964392081075588301272413779256918374287804861942749306884815892079183304535744763307548322143589354154455232512042497724475111438782299893140892948043372890441900579201655678299844092050804844033000194949288599680217381240794029710311095117298563483569190271563144718104920117064696391495634774008658402484688597368726342124623092451071903455297053598268485104917588387408958485841186917070749736737033361420432012091309858835797890782903940761572053521800011318415412256078200366647357263753394469358412373404519249692922815894258168396142393855132466234331318036651742682774100101586492350151961089228863331133190383604040071292916018723666395711424320122883113071771280013987342275795863828067512958865300291280058028612371122829440981404620339307641669915492823666610200010110600080310763410725325434164943177072936891919745516835592122567573111416831270390633486034242616397010904513396440465698991292527821224432083937399208282542831803357827635837157528081782612070108029767483477741645359797594670928095940838600945047890494070415819691654634728037219433583363149130447732239486383857454954844417715112407777596888653915255884802874578364693449451788780703221184601372122082955021238412847719461264955446431484598466739232067714199774241242840753102961891240116123590847932023917374002344578343769546802688442676928619101578377598702937655948197758081316867176140623650680264709016563363307512555255832612823424261342101481710012488237940422628529476663736590599231771185680666762892275249264967780264308627494404971876220897209577404838749005700141795268923860774118048607778031460395819224350013590836995064452758720593563605617303875245616384127695779066651796447696898124572069227018353243313029192213093496716146460697220488954723455989348558378587456845174466994307980785978019296668565174664998401357337465960869667167364201365004433313077689473397736544554103657453635160769419976577607585004277722322285224187196376334856779070045937526407445026327095996497677167602397923917249267930669983317976747258620421995757622102553876740920006020244891471233780075454105394606710210985489981403688377647904786879509536472568052659466365499841407376086916788875302763395714744592533099769591873733720100100741094341121065353520030936053793305679832904067043758480080037368478815904260396998753270296218556629564058378427743646781351561646393098822986903666233518373013221058634312587038146622524157574098374377310620802896170075416172115231278914340750397031247236716832790641947321192101573335077376989437744220379339376913469297521440487814987731314452572248218945910954141534446654655307007048315786654018956417775712839187888924597630747949019805310300209280891963261452060858488779096066604396705285334303111178475834078688462067369535244321838545478757026457949378875206521886454833159496657462982591109288819038556423424161888586566376475117702271593506672990904810768098237018600055261681855327782800722884236241205154138764110351404247071767981719127063334610780897984679896522495807773699372574075413995941365552329829309703929829232867254297170897030811395153380801058026159537214717758007781842501159431534999506575170434823085649234599288238275448355616335058470029793577463260751046844711841948848206878133419536220103702243260320026614926368001096523666498850738573507903802065606170435826025817348121507218743556419977209539886299359855735707010175649779327148747464167271028775896641354243878822459537142731478642241563455269448236458364129186615426561823241050546757523845164090914547354612070285216030543258152718626045104882204792421194847072823318867217324501648852417941725989999388441783690147673763523118988985457831799915184627932387775971410671801112810734015147234326497984206333577669990348473148409124439343082644904386620248503138401718011624785674601679031247974084947607361789398731077506642414892378087458485170945024133958881050021498745735452703525837434614872863134795070130223220012974700942152230074245768239579144562612811378953803105209699308994947495868963342602765972452387695104255178630666232634342332148907379584937413448271596509867883740778414005146897231588621616332407233061802746205646426648210642198862661181836485727699162078818014591356869528839934365003660354031923691300535280892516006331930133650178387702205515878623128120958849537237487559799887304241561335629189189599137890678354506113381792576576653306252562207364603394724650656655472555512036272064403643545283318644696682692576047949893015043149269814168085684393049308974097182392282350519549095629051221460241723057685181939048688103289326843144075308276047205958991917592033792003973198330120148033619370347622595725137263688391739953487345821448528884269598184925280761770549039492238323707100445127355026405147652990230316699351507157762816759908287407401948913093885017162842059064019698713180981040450198383809941523787626297462087080935149838945931683860062251529777143717932363929527630597864298464803148466816289381467445724271799585556979683292094268526773902037731645713359486601293994063265734082544618244631782917496964290867157890467242901195958587589682236628896637793250582755253396568209990612989483466710269643061107388133844182652838010365870847990523796953140067463617637986610048581209963693263538158080395277109948620578000793961404469992681698363302892554199240074738202430947792310974735689502870942178886665374450854794320440932931255752376853643888225388374914237834482875825645352689635205487292475758265212753985608298209322667459236912376599740811580282779044486047611115564521236125324308233229338048191937557731520439865068564669174122955614523156530454636784397585539524262273136204957545367452012571642068866016275944525827093058428039814637927582491225889431757565793911577719821891020305602018347597819586244252599049851782090070500915610500672990876040416260247791513408887337152659256727634102297361854679706118268232007951195550145222957057882411989886292677792340818291700195646845094566717352852696245747794620725028781108535692418402617771211446175983326665193839511674296544088474618841929711721295833840773452787214647193803281348429453051470919520642176490902361204549734405675264407999209743774113294324653332504623074532779970640608086059293873205787426524837016257944061647448364748396240050127314398817619324580663201848791537103132611770373685281130930755147809817979603078574862986494108499750687478308343341433521850985533267527817008798814048217341837816427395808060001158553325915339330023620046997095609571314827092689091344890173125488518477630091483567022897299540112096398815541739693438746906642807023318922100178206640142282021338662344298653412303710703656024402129561884384561542386788948564292409478548999928775507180491412844356758804719870342947361177084667833522404403286422998011121577962209003137795001197927949883922049087900629904214105100494615297765083043072984125387230050958694896020536004689823673796824725241319797551291469909811931517234468375748535028092811967354890981972400978717720447514496372002048553880779761790787001808963734263413084963745580866717124528007759375220782821722504524223606877336978639976804407726033032852462256160088375318364877357988468230871289550129386412125255224457210143270470546184771367424549997887333990083863765435337918613569504343846333818821475137034975414412486618779597929121075252519423878158439366843678417744752921914789682234249951953266481083010828255205836439934326347995452917977525990427884959027248835187533021108850717952199536498626968137578564485991931771043926307361013414511961141979993918067263933537735429332811763911404203726555363966537074841313013742047409707389580455780562605858180312371007880489164323418469630501630350267624184093852484872935870902194949446637584018575013473359693404646747938726305523839276392234006701380317254486502368231086434681283303302770266129206490335587916813960553135004126135833784694179766471911901144846391379195882067840128423283126021682519487169752143474536199674925410236877831821464201151417610097958411124635001281123320028851956635175608924921777427256357998856671080862256402539974524672870041311805294831021579276878777266650124442630233548226249000629034744388682316849108014155945396685367504942216523568970611067050883614794910967153183345900017546634138912493929797408415490047352781191472174917231110336991518776715051081549619294891940616375580720667154720945215632641513071446254521227799773051093886653129572229513480606759734031944449126847485556549895978922501894762961498458985884306853154591364323186636220836371729455320294773817612653100247104035380757481000134596730289371749080334233350166782236236366753896877069833355573783082127899627626162711643831940848513129761649491116617795379109589898436768506742285313913113269423607069372905586886949303901337320064104666750045488106915975868657563359133239506635202737883260863124654010617107139648553708114963262238125476956634302250196692273653984291113575930241795379402352851554161327934199493485828945730846362240781769751511416884184046628377222848701406853582966354254416592531261549378946536895887016605117042786253461349026105860380739657238982573424315463224522510580833903471918604257239075622088780475513935054567035884783482802037141703182931549039573317749954749113909198427771355630994566675057398592767635436528536844052596295866960736841559351008817514784688125941617349795986904632615760393377904648406451167922849999898364360765497538122494973522386320726331915750271316623438667179347786390107199608690908774055470659850474445428761118846102234307383727860151095841498434756768563139063060787483322076534646127626858020825056810449542929831471677586337947436805700168156584823501076109919043484960015876897219953732342934614935925248287929541540410991494378856799593065884980764394584847865223998780624614235299592631628533210531675916736850873667946611651286031125593595338744307394164034372565201021368537573536757921993269398412738141636358695948039378364381722478961096374869703508682173936038468040133490417876028586785511001512808765030264364403762955988481115209769626214839526169905144322955322114594888895377550722479998225335382191983351473317976814197742978543691034269626576312359760541021656084346529218735187938161978911731515828776720642801451740296567718422185225721329966400264759967390818764649032021582280477341336264957586506521820302625116066664167759696204878057657652990060307932347642007414136515701737010324247706502045926259392391267566147688270358871294033647412877283549020331844500358234080757220845650796982683468899184927645346896474932564048637999070553777349841218968913672885132563071898602387688358068818737452182418171495186523861168867550201207210753280539073855667075376679313390444490370108104132998559891431718954851379148688463356074361034888043930612378836230455351879414300467735051080511003173783832833066468023821316169580511583316358979865537100125236846405218676301834754114064057501249844384001489729273596232459624694505414675700870255345368772855840283817467089922497011104055775472430663110900583996609545156530734361215325480192046484770410963178299555026971248951348231056190791356156186334681406308656439714473054344530449613126274299334237557592053146482731537902806194184892976021996322797379302335309052600774089768822051377761664661352376561208537772472034623728840811444235268346500602656113707909910189911264070891897145662628281721121339207917929552988113111411819340331011040490590148059061417573837943755227393651777320288598233283596286212821324260795657150312751216579858328056803956572744563540611353092750592061102876034658687884094260220350756274875421825481827503527290835257538212583774033310525445449478798009780704719314212018997454533052973905738721378328460757359712682213909405632307097010678911267840304838535653660500966512943430857440592841920182364144340515814013553008872547068032632100322831389142604444837816541980539335185057497427815221659081172416554903534887051185690537676232959959228004638621747842582572778850338056961890958873527183468856340444703852249007867701734071201924018999905091165286299351264275836639828465508951943188434131530922435711089966334095921864122186790081219559919385909707651138870300220720141887836998420596897999223578519892717977207552154172518038578628781880786168236647146257133880975390904587765334072678241973797871675246666987309536786531606545412143901361301858029256257266277094961974660877458085244396223711754067664814349466764138622774188443568745115758033925617416594189508872003556442837209538549878112718355406813158023032099824732999482667557100465672422522223264478577118652224177938975603158430327937573017902391707889764255749774398173035527318634879051827061005586812566303311725645402996617347713480625877455018725359096043440980656523698728037344940063664794518690377418652786657854589874644099014415475697970273346391738192830340121817794622663350389775924361527325035862126273420958308026132500101322068929071146028906507845554430217553399071319813401291610230076548057384899375676409322644687625166870884846966767533654024643796912011624475546759691118255291612635451593338602405224182915609860309491176729196865128628096278734825643460131344769470448537365115918975915969417940436070359537371893493674224840120105998980782901327913903119470961514453750866600668816722879380632081694100874581152433484610085868590010650346196166195301496479874323563030243668741811775460381766512662270250988335545790148458733358548552756062766179642212076398416071671024778147394229181782725430843163239635426981752951128967501074086706363678746632305364434054084316724530965959650545817586081178960418406624796174200224042287308875038304829066630394577737935325009314221602726796924943445817385685993677922606696767973549918348304160270847691373441711503648966136190148378514424890318297803141290007076887936523474882952488768735800750630737569302976370743043553716330585628978340220395207755352704246260263676480041699398490686613356075719430538744745797426834060814841578923402452097009709613024978615059309021387945104385787653144857520551996642430051054244843014291912103131993525788971305676932706151235267185412447232136690196485593114769485119777750250114140115035371330484792350898530838220617340596701992837402779769003975606702037491338574437928550832575320544125996008361620941673763538170459952358818739815217079043505932122322231362924873413231015348058948988377923600762273580005799722819817359225643304130693134046248253918219220514046861225254811135353044632439713187417291482585143002943589994334872902796291664675219432098080867731083301092251037923354338488817322591871429663764811291259743233435077219972441615455119886708113377982246263804010816484487260757143794463725478245299561567303635166649438266119368485464586544803062826407944371436940927041312176633296007535233104727344079744318571584491825676318852801112065698062470147767360539302546398337753942014319753666878368552435415260542173802311199983604835961226631535524655463553950723231488621448637065807788119112893133547353825839134182066089895784802363239944181053523674369605691360803425952807475494771799589143678224834174069971687402631572752481002598229410676430417178135899631853718508371090849904041625661755705318232819757020529870857272520525463770157477900914158264650822169099089163107945466423983024779959068347747027675058787407925784521161165067736374198623676325701238230830634556753124977636164451017482608432561904060519099475043785270634803749683919045696671451582500440603310826717849451214181454207252674357913629857563164912295356525752462550274169343925676920275382184547411856996684144155972968265711838508986193836822970097085090725220761304698806850660627526116445297175449090667938180447444366261107122337648475839515610499684374560352266801254005945568611714312254038442584415715011987639368594522934400695664376123664294357844366070780087035870338331256534102834561454086808858808657014451889056086317356625703290140184690592688849531004233197162962554645306682564012480077922715419438834400976400667435145957571784431297597260358546069869969001933936153365606052855040170626020221174910349106321212873446619899514419572592114838643763914314756906496373579277481520854109540129793862189519455012584765325780822665395121172789445624791901695140743210345521140506131976025225973799013214793537398313489777592297950410594277491828905024673186878370188513388146626290119547622264840731299279447402699445853613473734094958214840255363716933217104236467464713327795805723167138770065928323319256504183710054596213336824439818402815413636617497997988183745996571194676863489943913085936826961785785145722282425503392325111733967072365467764706698779665595239592242735921753154586011411956775757924976924234462148731343433217407587002728766270432061995831321435032282992944985021675686865630894086287228677189076280456633503843694669447816809303754070253761742962645248368579182763186138502059841229351128621369683491415675270799860500975346195842662488028698062200473793635174105329519271276666227369071389053778422094120607504787603802892576910515384683350446759678450465224906271199773165430859215146651863246487549942081253263949490602375552640758591015806126998729758225836153369824888187584593915792588193221219281496441993476032175433991224941773144333159651852679985946025140129971230722944103025839919413409685858989368990331704121886481751170358607524903254129158334546098959001789915349904187117329202176304735062627930087495360027714940879494072333152735502337766950572662038374422355667055928600841042079268136229001832562153911959959216650893457693364920268138499333470576438724880961101033004262774597056767423831000314703600376283032631615477830723020946571284582054743085564890935647765326803412188604266277361759805457434002700740562248166079659559588024506454377473033287445508608956260874358359711528403141859287562160338635695149364997997728254722465539476170464224276996667832352685567221463030272841478425149121318114045001619188927427196574720243254475113687814921593442381514631807250576289762112360951666161216544397231931107349208590335098422575938671491094194582816724156674343287411443210734237207557608023016884033279481011832791172608486801321512281316270664397033116808557189329633125366280285300563188394648009349907173507254698247856350575714750555687293189183609056106805786830020704883489496733252185195676143887188522723217391507103716795218259211477848257058255267132686255518145572261546285412109647442106031087677745831225687485909592217282982354525625798658263356756408179547801868966479848615384920600421681089123288666029857570524467045836413210110805397360029433256008961086314614711109313788357001493883762247670785603677928046043711650630858669104846485978574259913943000874116095663147303629685099393059729849525834916424546464190243467875936472549233669111417007825068474248206924495264895827866841662385940749218640434007470257123706279780524909998541617306581940571488770206341439633264787338678149036923608938267495085892494000789109410192613457706150335566651376233397270668670098729824610278464410611347912420085145056782333943627584438759786571873997468909739416350074469149413765813298608181070995202084668528706868084217620602512496367717980078299860483187790815373200411534929026080279623768480472022675572178175391148559701914706611875594395215045916363366550688896520166305571231142458812935150603088989063809656204143363329636747480863112499427280654662688074756961893639209482402124149424257290428631191912456090359453772179941527950136547328839380153846102634074147053248673604468388368203399508460692165789772891376056062589578551676206202846071364216919181983998631379649392270840424684139890478407875873538588474249870715248407990311606962412397467862332945799033942132720620340823470456744311302152420264635762683897193761390484615772333402989367287950425303979569146502615046233553586232091767307913618906054797101381291514905753576268005863682841992691431281447828451935280557274039903352498423540600264371972523073999648956614853476508441212088728290118605433222971415467431801458349429889613344225828155197530834790453510947786755172626453121450983805190442767649058011027127688805770547596926951202413094492339660904784991022537853070569541571140996468086945968315672312365841772479087127999545484176278818076624883406097109390258076701451241137067676844901686447332709543954769317699980490880165517714282584849554298861309774492644293863235018607462393924996721084533421137871534522751316821303530122092378187119274871659887684008632823861972831642144402061905864003188388510446324953601065140562679548593301208418747987538601274593268779911769287296673489679255383747644793598152133345635547714470192009318978488763516437767966818533046691488435197592021032894999078091834638767261054828230196496105144033192055942181891295143365983977056080270011902593335602239706156950076891215854527809076974281786365912755466706968405400573815088590355448776038423580524296884918066465514150751802674308908353730448278152852980547108797894990661673724454929498927872059320087543216750378953579121344315856037017266100744297606906991132447347846023724306961045095891827054223104955013364398689635908818607915998531010589151409661529860268776935553016373250722708777507583200972261200677880064466475607796252978718710082269891726831498544729861908964623072346489578355050968872509864629667356061072662198594343419604190967137436673765368600928298963564717073473251470496950673967995971396584134596274473540549944152882171829907950647117075207546324433440549354352801063185363730816393718897675542044157564444765527976284446852160111302442860124239677518621830724955437928550365242849673468271350463715215623205964651672750559148838413962508248704873994841833546883174761875397103237234294183989907909429868527847784969458084507368348772254468983490988490193692506515182450680964982454075622011736825466613186920907115134305037434444355868245735512823360265064755453848576782635126251158397204361763204163072954548801267823678069351351924828683666323310142651627897363286896643970341239273871987904940181956142001897629192005848860564680496662718108732095791791150395820103941373166355415520216697980139086362542682252690533440777074642553473607592707680504903301509751193747021430901030234676988386446840783892022917840195239104166219066030312376829693022898000724647734207118907129229656013627675031910589441048961121997013889997270961872992734734009395654578619597069326164606513207392995058881011618685608798307440974033357109321663452850988787992821084447170369281668852291080595050559468902606659894314139731811388794707845423533751320893500194417422581205809774539494065775870701851671658013788883856501102843819994724785262912521787258807856939322591211567453447189174981115471452927616717185687048799784734323301722764154710915168077649177168374298809027878788632927311503155824120901795600802730786756020827948432779300633030711661131308119989557622989200833512527779003793788693812183291382601383346091352610251578050157969630852110923332960960995762954680473438258625069837811964909566247955023716971008992291877110122750358991390540556228229149912853345620288309484750174016248081774762712224740989938576118826926035477824653633299918578505390655713220047916842895044072429266641999511072683444082463700554268166592398180201745349848815638610482869940372074975803151635414799190852227654621803542214131658126166069016189254145119243184756146412936101819177109697374376697790193030553109140375355965458314749045455757305894088107386418267975855913901783896202412078877179350119311206923224374743225482595336329171870502963633863671891214557539768966952565866730691880841556413424523798890543431192827983663912911517193578246630075079779357513980084458129879303029766190240029519456118345976000428652031496100536253681476367615084872621181518457417095452304116126713080114234508264448998327929708088292225570232780533469515991293926888433760814392519906749538217952217450998871135955002414272529194081718590053828762765472205859749628573107031527944772779623222465472836171123609901676655821286901941857608871280779907536057976181819637264639517902381471880617407324273882117828864345339649006248351681786910966942202940889304260252238658130316034414440540423970736786758155700393471393533875910510065864650079113223399953083700051332992745834765016729901651674166183574995032184857882227624296557533019589292572042585983479200516610846324398124395678401785639114283903487071119144004406173772568819968153672314092098485256666798369371222210621674931385728799266564150358779770718557143535416166560957527286383637834290559184645161481629857285655708802025618093533918895968293774723693082787844403985885501163275563971870138498152945085318671102768950420787772574357714977480726936665076843825390463862751789161126301926375964430825196721556570809011051336573452815988092505260802266207322649813376647829820984509300351897689440231557242078898687220961256541062546151736972207563729147635060304981623180050584345780800991306510034034958442544968851918457312741564109490450292063722316559140999638372654715981607643857926782140161703393011893382331495795327603579139688298535704526974527348900922032925491123183136250500241634241348636893789951738940698364225233985971649404337235291208451003581171734311624447276201377718208740365176807624519113199691527914729881752254222342431136236420939693375464751601289158205042890524666552376139864081757647030686142506295168028508890449054372966377916666884245949521796847554767820112128219081705731733741439376096928382025927017558738313895194772462382111386648223577086374566507210140826405743662634966783836377948569067720701610883434376113165978051998350220947550613420973945773071993755180541568184151692898475952592046383586188141563168767375444145851071976543076853837855449528374779673279584606486653700734458594538294623820893345426364693079560005562208729285540761596292365997612565046268737408652984815291598499352666098931684688241397640370337397953124643996195836769611419040272206753072901818215682973879444119381342229729800604270479600962432002678558368198072272027828808064970247113581766542301529345797555311926918831280969684389694297768886723632631809248736151243474693038158515622640919706365369713925817514540092765387299434358732784622413209449965278736568600153996540479540486234630009337101616374588783864682870841572418522448676093375089390191348786491719425995287327337846643303341589406112261455201060077256733671637051727370026360368240342954048633034991152510223306552424049423234949584367440415982708377136862494859996678351868834636637995137268052337556581400564779081560298558498605406980765745359300255028833144414989958920353509553109012653328456777542948283542430123796780952556573590063129206220256264353364407078244879032358259131633771400207535219495244372550113973972994698523637166628741925620681559252133301578279400155003538914675223113417434193317347976825670990347126898807234425493255598573681858538518734500085243368665189184646900014240721059098045117967993984638528555888127002961912348874532228665651494017298230347443195151775504768528915476410863105339120073535149411190205285145442236053974422647538565780413752689742556486739962503134970050964251625737195805889047181529556096642363597144532042159013998747157787660153025462460322370149290801243791607071562641064630307157010508296349629551261345845912472959781773572234419837266191950111706582859001607263294377035186448598365868939093166680875378061654583784869549930441610500464398849409946537539925713352895211407554426014420197381766759532254600872300603652470339269502143386906828451027836136733338686045220889288077855305444871333526983683072497136389246903014808148872142055986685589120474510929486874184310295320582677346984207469161513424548396124910750715001042948465157390001789827748209379690683343809272488951449491112832577273743061819384224733950238902918862816254127760931668845105979267853481099166484563914887025400477075120610077470581269574363579038431730095575388022127422200860990130525026216424159386633693196706258928068620728684593384156007311561951585362065030430624741291874651369872248444340349821498818824605557626617706010446820784613092151564304475271107877236043938786714669779737747816650736815669250150657587854544942495105303781622903152847835240665910162163167617180166003513836210804417851340071570085287700524999354181781581969908889229899461798500404073481261084606447136401437428209394416072219973302106322253499553194669607631758450013533611527860032448075513907852823352650456205015906540384062333830716880440412373181019751466151591837481420677246353746922697623479239674197853733738046893004026674098250698276013207462975865637308294355051065456533291563396009299927231878751285033736470873055467445987172655346890728535449687446427085003820544246179759661903345027230268959556738126078152060221527745550715260214484490193457385059734828600061299901878229124109567378822696148623173736157263329405907852135493121244848730919237669568601608615910346483656813422974284551512811232955584351909784971725943199563985316064625858912441216838387924020600408775827840322379714433888941021989045261685884768747851403622671714078827154259794525864101325060226498165312966934810794304477985848804165890223542697030752421182825284226150311120654157870078737265175069953826381778286765263633388431249527808600421193968397931015384279105392399114653300473848299792199457380937205656333848423677143710987088431652620543856207300862755502245699654370598998232811241723159869391195236519375188100457339178961867724593623157375138561899284943988481266841094815805667812126613154224721701648795480120915121076482332647143580798071139013130834898189880966177157201306426858163228182629922269859237693918563677695385069604432974930012418946771788666289188784785429469402068309908648650814302632570408523360089281788273518937021970985049933161397700997443918311781302737292611384556814979133925196023047451283315033923046952422338325310236242338492186597389334728749720574621728645258753905252412571039765096243023516597583820184753661114491585991793687572789159230878112969318377843745959467421941295946152764621893494882137429102215649451398770910605739701835929728012768802362420934766617606444875903152060929710695026236702164582824088420420873352854387739288542037346990509607767728311684402937129040933021704382771370195548171580444104072763234247828869651747327882898805481767825818416422936486702870384787179286656553502650656896394860361465250581758128934948557503659307086529133186943268272008651580878195584277868618023081119949784570726316059388317772968904423128127054466976615672393701448744826483874988076328992469332003215175811418587181788354426153557970823329367254018010846719689965060546810654398094410573136114234286873197565869857137122104556821356184034471644789271299632372814512580052576973470602152246666510261264749288051279606601106751548896862034930756091993070042358622189636244498375869823839402070668151167710055784496093394111931981682421571837033372724663476586320735359847071255592993342785523248042745862896268393562102640146678802099254688369096300300987606016308350422447543775250158297239031616998552687656242660860297556675558433379135765592925080192045737061017605373513612034574879807293822115851293318809470965279101318350456558306481458262578849616757823192327979617483817307498658489482071897908068015913055837736651926659950044209782933746895278496221481753898567705016523753857462046819348086652674781436693298650368471683672775112638524121332330163938908878444424201131342426275507180634998084692501319473157758583242982403037929541440240637084700554698561155511258594095292933369952975376898508019940571798548464532474253668746217290645158228242465867968154452701934842635755406084871836846915308048350708626857452276025592207691226627609742455271530743119909935406845297300297922596103369951133423014688037543218265961460714611717431891120957055038984478629598560755854473638924814923792431832029099816146025693852457910066153872005456007461249653707508246499276217039310946377839417850984226965475404564651042665991589130556722480279686308818315042917298053044887262320414268614645049185491822372466493637382276136059033023547775416675066553520073166437566741449675993362420790975940664276586735575607893006349445555221772308517479587323824196492021627713886215162437238410368257631047277110510290526645391506518382218726886887058640267328232719693057987192998147374683050993492218012746535810033653247899880954485764814670859762084374102819204234045725909137121559986267819463534643658183019077851407388061107666429453630416467068621173454909581265005941219150422288914713487621346881636638266682150354594487457320279516792323376817299663300935428598541514004488234477076012617709771380031793216858485284900739166552746117679680090622204934607865240250823069108960573342604953146762979191966751323785362088021435603188193981881578747832569651255211134415706226520791968690944156919000201532935275117306505427318756483530719187295361112866614168509444947915678992680379804522830294870546274109663130127767532907199021138760811615527811402743362227959409620646943492631247538423415575743610983334489034867337403576209816234513900061315292562590664278837403457088787737192770690028832720914819282600502361877765550769440415910691830889222451071138786250342578801440229777292827142834558531043619100079915507763497141088593411217006708229292463486246561303668514862018411539725497036950629641402586650303282230898478871386597655069974107917611410376435811908245092325966891025957054408459101086119523027361336404282493819314616448708821953312743730560788685841091795245865608759540529345606936391040261278649983053312874808269806153666324053898243341454574937160667815002795024652918506825572335964601557910031051293453158323988576557964086187846657586065232924425526492491897591109741735461141692831120490026422995343015000559735149447917061990157332976329371080886866184611138940471147750561545095516730908436938940890940361190823762006888662181636624558954407963626554306990748861376870128460812455523874601170512697494758144349194921071790589126724369884890914464222696878950964016173506618787792316379198549309664400015142108433300046887090189957743237948156000792000196547556155702242715192902424167992616465214936611044635920260264709246548931645250249102949510810169301528420732222680628135531980200967934309767304653733550198604779024870375250023752919023892517303659000104392010004811729432021011652323921812024428853706036422651248763970747750537716717355769056587232129697895450534895303888186427224974559193876373803136373359537094846493785641101777856076398038146531700311231515524573964312186923222952186132521964368664423899249758800621234260827724092125405923629784360967557857082568065873800210183687681250560804248372026446075993459401374084121627255528140464797893316756513780735731668494222939328661878869904239801298780571082320089500430049233544350060976272732521849471131063614033188550567034224199050984104587746186243645288859583649780123895042026943000509230970668262378683926657036492677835592809719203325364062450009478445848154102311035271636299535428195584171069048072637514078553847230376692674626700067394061280908261515997600645010250078475024940622430888781800378978427054262378475513664684166355283472637758928851869865703172053989651460027500265087083064028221543841569293877583749944004643474304372394154493065878954370259459449656972857858109428158207198724323766129961756914795286023461678877903610655459609990108603213229266077556542545585988389022317410770158064767831469258279775296905485770048029878981651135806747684717116950609890340123569759160470256651560205520552196663360893458446364488132470003181607470305665098380937777143773480816331594088818729104087438991159326664618036014441977933239104978300457781233834259244041467841597378695324151239329386387792466447298335105002107235443533371702577199691361127746405979959672509492714806929761725487479604146749228115587154049425346232227037870645480432844362510612829847349663674150749370507213132452448214848114634421348933015577549375308201547579638237764910598771514327211899807229510228301225131379045473333615808327276431866488020019564656737249083213530100874848324294529709209092429894453356693333052984164453582464437341123271465616710735095786091500667192268683849770415123313306067787299053207388457524708889554952872679188613755754639305727116667570419685465462774780290187121627318169424108224996410931914014106252657611437330116343302894118857982047908304795091908700335253543606859261767958213941110624343444934608963427460806564529550104718223580364831743731836886440001936907328682693136250193984614800393880530176446094756168254965584865372193850509044690099262296808328584353672022383696065940992191770844651185925556888392300098368159276690592866050448198841694544753929040219351678294306923438189934440831679703587968134371051555583161144983034128365302304006444466517109388630107346188942748362737166422322083142327552738564073871475569606523495287047138637405654818833333546917872635580953186344904622750071708222446184549038075734928750522596720741056053526029115717220162615991872602989832678171042580039717052051109709771741948261791714864551801831021460172050966294938971900719973357848476612326244853710924433543608771630926809460644356714325524436162407074952044644736888420747860314553795115586337011047849062675783600411100342703182345338440727548763800116589022735821393379103783449229451371365306858830754364886719029482282704202359607871301063782403060786481202245232916174288379160286006725740691682822329534330749002502234187391599762668694368898632680321548056336798346255546852788352983886226492915982579989036431889822608421665885997742737420028147217858620672925773702527447613922644315234030331090824087693103328964119618976615019619099519516687332261158689052913289413256500083027790701437525131005956914897612076596956975801992695412003885420417596294526094854069084610293648997428236754482722837169260323499281158029743027006621758622844059437175725134336952965306573476534678012089975409837451923400551882826105841246730391116837320539359774120499551150879370236848154952957780752929826993261011195121048520922585540811930655459850881397467388228687896676254748752524897689203886646270317760786273890565287145825960931794061980296566046805431026478383632863835440278085310976139837207536262922531528698819501071280318335510799130638296577913663190284319077225103643218628901148780790600574700532205955074592772414516657316719686009636936652334282523295534349237632642055506571097713528977154238348882187971714070914756022385004518585548167592150614554489885222195632880808900302326988798052497918202756440293151474751283406401422789390509782325101351618024505254516838343206089682666225925945882115368465646351236312902683333374642136736154311154403538967473045190695609056137507835952083283599829339155411789439365725346834350934522774963157143098172975597220667024527285803018406426860876013529676414252380186303075593209849676963887847721549916086123773503111129540896943703319835006489267917596267431063300074133127916321701250890631862214308334933917832039087685250706354953477292932905579965528753740404836180479677827947522830243331858459500451066861110315355253749283700271138085925440923015766118931466597661467849947196678039889662161678143329472540433667074561184254623239201456615307120532531064409458533526251150892855684518841274041542683427990663031497521656191790533359247609211911354397707211313268093725750193033082226783370896307077451121095533553869179959507537693923357777688515271662168541809004232494126733170178371352663923571520006675440563387841563832792451465425040023683597434993983703512418005046230446378561427969306645833335904952452152434536507331133020321822395234963177881298043402917068201283594526626706494154815782761456092033070652717918632653188212317998576427713716999854877669114108308110170103569250631803263762159691014773598211300910082740465298883660205774282115864292442048757831980860754512583615990240644344654291988651576026852648280829447322465470317907517660810139555752490454466758643019088166758356891234409963649909997956640780803630991964432065657263137862596684257466555600073353481803450265113868713504226845558711247402788928182163981119093070016659069219146154713815185711994821419259543536843563154691108595502023185345882511415157134897375774250981023148410456118083167969276838884266940183482046548072441277093027464870244088465904975586092888672960097614113866583555048357595084962950422651271179206766732644457531621629804385738551891713283803858284660045650093340058334164797086202903955850061733427277748599249093941641896418649136102909301278809831004003627199430270811590497471888440317699749545204539373022751597391909815204049356991892849714186963493968729183889577617080032913029338233499233642390957491643641893562066457337805455897762002622628714684588653451400894271794588221428379829906245039168637571736733977009153122121203812978355075631460910626027855181113436240398696011155102703217757573688311361002807862740803344592481502043957958697376324693969745585823132808258337261972056366230022246192699638861490812861582660987579547090304829141609975305147173500397293919589215520270643264395437605826543613682244924169888803325822716759038940805411256684871422504783035400315649794993655999092300417722938702351818631353499777750348719976178375227227051057848293063055573526268513499503510226044304354152076765529070860225781272788713985572748730796491475190812092155808306242650957657939432379623337597762042387883528416651207605841452642595754848398931954549904059547954050487776879690259601899365637533059918477294072137949761346206077258851193414404938091663076656273999748985354319920626772428350983259831292503284034242981447987289682444264975015383523931361170610046718055573279389447186040643416036125789609272233951756035734380903474901937138997936217564820783081678154109352952781969265373888283144965584646251141686075260411065999264872167310186001807709402966279578395989343538180073141852914939743376158568026158729063764821855375927643497669433128770322404249214856355548917014278284809491998238691513330273938966418167617279921885123315579925787376822062511221983435431122661132495450115905940578739509219608337078713724590020496503582543942623593811415084519707855230082185914094235154247392195081687708969256770030694415784535170831827437464274645893754189377724247096279665020243700486369752135914239220557812367745431984406905636307081220061279095105887418841583963318393500314066790533476766108806541654428689705411879707522004502049445701559481490274117302273790137187654954698363375980303918632385521719233655317246190809197979245765277382191584867412440006831395433461133420386986136974605174540974365194137268759616958714847674669087080467503108256893704673430492877055629460479192444982602760256885899258440316723874596376134081201160587043142357920095753646121775208794416301914165766971742311397410665355021573368512687879215860290824353076759190031366274794797065407137454844721303435698102983359106933714103826267242697972798538779208308267997672424345631644308646987627730248723586490488302099628594260929304487463710308492812286520664841333779046059895140860855504272951922303786378546227482249820270074195750935565212363850318304176715544291112317003606473921973912533864525589490719915843772742477884746630593196120986648996331718273713713016345997212014172515725493986261861387518285238756993180947356714622394161961414761036552843250906640718558614560890785683863110941169853185340741496379179026202386673619405986941682889514110869821464715817510394625153408840144275279624516759010986252995871646206274510944997303878924080512634899952539538690282241351077123821496902892571513699418137254454748737328406938582844226408277062833743465756105437577507683945805416017273847486323111370059700863542668813967168642279900051351666541630064550421825506958281268186707405730189570695790117965362255194197133187852733520574480928476695381114238793010258983495696871463300040636421467274107409392572439379729597839698684213842284526187490062043837616279534113399581493008421740754934163338253279503468918476750048377885192756630224605951689362313392462468373096613169433733957600594095972045676981355220338148427053218906728080981496361223299247045539375198489588052332546159107918465044202448775137832954538530044042068380517890307949454484496695133024863320927865576346285093543469145717226369360339510464856415884242805631407671755761516002517491969140923195000909538984336822667099678739756893227095059099142444560915919813062064833104253769071255928818631703732475705942822093724431381184589357753358119483559201751690763578693239286472002940556678642368132175814577775612923974545896387636274358431945985419185009750063712913993524059943433083190281630949857766258290561318586295485237227262160561805143428474397898552072580954953582569585475558840202547426941531833403232570498690243074106549785677406229590461813037671910201384286309202102957909309491292823093882888121825768428532597766112184278280970729452169370102386652480074074077117406964325389719634811172409180272463374429539689844979887452120707941285942623550953451331832310407165366558343760231272792526929961129487338938238797475366083611845243656136825404071276893428530871066306120522108670633072036324817646326298344292012146545404071623229033561155081085780858520936465629579027996968272517573933432630851129245378350503167621479700940852264599611628823774933558254378714191861044243902258136538189044668414744329332821201611107189002424835208596125946706845620879754661968530166066981368318691501728384938829683693648843417362336453397659374926841476916044800391839882150150810909164858982879868712663114398096873248167937111737499361332702758445049399829503922598300614548270451874642680622196478601395987563765697510652363331962253310592375982047676182736566147979124578682443796917394380200941072121905592180781057385045357348456502068007685417154956615112266158925746705997682639390869722848342033885069539783336976975972454956278169875581230177895883961318398298096078526572502452140188196169242244888993785615059598849327900042757809857837576438787381910968540338841296667694973478739520551046611574385029762998981712490720622879238808068395502972093491359545520060851887588353573419644681538808748464468238151398994301037573993309663853461550811730341535470929623694116492219747431326346535706197975941059938904046251837234230767188114333173664967333354586392226908919750343503740477123528201097187308311495357409426663382570412877970005312612020834805163434445005585059892398364516872974493313707881766025260384961064141412520691303011041079371672779883725542772001706431136673566127227806386754430915015256407501517550458317769494536471636226513603132560635131327998932493774956514811029751801445991032857389375886016339854062495920314423995050140872841002542536406472747273103544366972587041334661904321453510262091757110454019831255358056458383292720164030694331237890823749298363971806677038945303071734904577106043883755873315064215997114563423695630365104158771135881151528124683155606844338426939469407545493964604010876218471932521329770592336842580496042698387996249271510603472751917756090475394272109901398100316094750733368946983393879554454250931688549416922209580548378146039812538878075285759850533899710869025866269255308624386748819008264715028024853092677658140266002284396579256389371418519857866084620263039574135473459515923768510418759198072852103496199173936111865760330776674718922512893636258191859214474896517210235033056921726176847467160181254572506550050889840828587518911471244645632995031051451044525853240879147212854958063296725257176106576417430582550644958063074623075034373054337369842149586643512959835314113939051887713500544391908201800837292042759815420395159550118665274762978480199764054345502402631687822794029598733276013328190738503890488389647762185605363151889970830271631566313919025745612537474504980649600544316890983746411229310340445676218285759415001309756273342245604821174719219704511549133832856733945429809354608423206230249847043703225091291215211153957773212908051053467271641944110095599107404691162550841879750075900989731715790086078262590208098338437721011797834811339800712662536839793971543961696866655673985315364471994999564627457840211984978794460420861647382143448453426061593225247314858928382412446577673764193373757255817901029552491660913851534788519794341279024818065904539605662313017976055667873812345505889471059265951867182593937738065227084019220509121024785989039334763090435522448677149736436736913481984382905030623532596957068066611246950340626880804917890091095760505986900074160464273090007760832331404071362121882534888499095583688848627772788174346612646972708022515480511886444530470972280803640976784115841923698749868875866939346707943091065479125335936420056958763023122313200840576555244154724430018605312632413630399004172885585898976837620674522425749004279485858526120749530141419822145155304348077194609943060352942629768605832413963403973628612226753983590429485840248245408606450740142129196471024232973901115227801443163667686383566652241545606710256936840509263383352289911749749483475841732191121913187076336762499391820128133215914808374957111899829045513250029487907606090478616555471728405627525638599066769428570749467405912014028092944389052482826598841527091428549707257493306716654389891069981169290271132537467655667794045088788423663940402636446753939064454113414378805137579764139307792432767057668305186956196633990926551788998224124970393957432427021672130040344775207746747804136433148788279768578672827492020274624022087056257465091852578854440973231962461249284106740917158068825285799365760371773405049786344387444998604681415878621265060050236775618161601623135417099570611061511421799270013231833965282269888521047286588772134745481532873091508799365344417558594705767312742256303468104901144823137035497261337173482426883977736745852301357148174534631074214054654247159653284168532117217506700759117107341174669097229010769217787763980223110781100525716865040985636783246545024365727807326708516892393450157020015751729824477934563752726570316842747276506064666718600137070492740500112123959226548517291214778405231538015835652547306760960861504074454791937856164070063813938936011467305470672759682206855274162392937851803832376058547283251656492206816903417987954370619195956458478168317298891461052667199748110289114985308757256515826828702231303522039285419867659582527306337802295494660644956226598958545108586840334394693907024604502246583130828810070153574473755435542519557181842983216936671965214776920678198616821771432953320666578134949373015206170361835153126070353325265130151584305482655080805719410895946526759037203096846464657703287370232617916695725703051521910569479121163942045968117098929095068850811264695494903891425307866351506469166843320071216666464179723678198130812325776181476861181736442192824034807554259529326423909401867967572306464196400083625622369254265848994342584511332979360744988050089997414685600728448806195889280202887326958592651221679169686702583068694377293307631177169138121649222209875052225185288620331921692027205115985235880580050825017151088617142941133585524406380601740515937435144663055177039475404215640425190582043936112799699385452960112342822324143894801055471579805328932884140587876288788524736385084315782920521066129440438711836579406144574120413609585960620456902054893735325434306111042865746635604051347973024555972132633246455595545225460326864242547460801257724731665450300341548822228794088898336165248653748151461485096201609758980565440688074463723885764888035309065039191300351438111423263025504068721465185489618575339407865168569191503459219122163273999639818268403935562710820464308515565003950792801336478943116900784468004397198555614311970189260169206958164689410858809184032408157367657151686813726775289080131275370195768591594607372480215043484193964587174438033099183840202407615600153318650490931930931654154781686309918390985320143246567083119182459891353840239147933818428241438391119561762450781108916309118765055257970984509906749144207644060756737818720000704008508276443578895863860927910686497458443158338344845292080807114243305322791977321346057911817428976654397472152257342854886449333959502660702153811777022725865462712216232653855606452995621215502460138414540327608252390062341321105717998726487650283519018749682229346991589833173998404985633426047105784207879036996736773834769700054860357374205251358054849103668870756449753015255649014005636833852166748539508001787597034508320549362095398808305726278123660462411024126297387942065491170596702501856817184384604517485395126195141282707823839022597451386546099752700755937964158393464548084262740884546621799388382179794921353048847334032139455485623031997031419734911670625046579155230281376023972949511365723922584376799703020304330938767499886055978137820879531628130727790621385758891753805547881337859098255727382606196889444046560247138151724467236646419038815930231328065469831455268482685699320675462220283818666080900367981404550880932008763671307131017845675542157730114560100374213760834094501980489583644845394873098624779606247431289177777368067638548604301254185939242990073632314130746742879257550576888735557980584242048071815384463699217891038436925708299972304563937535315684692014550221976573819645995290220427853113891742232645308866888418715137901314104363121585796644526268428120136096343500875269118598730430896142549424414225130808214960174482876183571908840447859382115305893711891467457242398569846281800312154738907621081136442857156086113637131545243065760475727134453245265299772076179759311045533676408294250999169788620641600437065978234339344887237062630344355270881274297964325198364232114246174863765179015685688727413654657130742208238619530555103379710581227234056922972506369424340239757565590115541220520446894285804879649630543436109198988385783615895912051056972430438536365468345738376408662295203711703672154748179127647222423021544496986589987453388762237989483078648611615018940479531402648298125053117060050774563369953328436365428001344778849369404777989139430523616712141900529010002310491316576821241749204346925160129579265335066005055904833931710618760016529320170357090939812415926529836159247288366026354435035334003491712389247323251922171138242595212560012014693311409821155982775771211056733669087933122766042426887395588607859927143557944344693329103955469658972541701199792094623381743312052497511648149694969486244315721788521485304603258681402175005250424261248209778322737125422645082600791651087229055464062260127642937132647087099747583439237688731597262351682865770594857536940249211748734601952579182539316995770555914027183199940998319357198855013502552684045438603166068081439616796906056783772186073353232502073242561259931100146121290413037505239090517064170984154874120399028808798050118308092415132089240192535807459163527134175095899549397672781725719306197798800513690110780733013063021903251997982485094818004953001145502171576852904002508772466748925891455522693850787273057002014342652836653791793532593844083709981217849941360896234441413209664534367199928679788316326917749745323221083220116192340457404438747125770243602908945491842328528463432164502581592066343408615418278772921137743892633003570691817087855464600340509826873379242492259363740101506311415285375325661198927128781777726935002203409365189525868929833139508414972893288772059853655564553201215368746739924540821697411984452421267510722121469499440092258239859722841076679757148443710736544119650639993649866646261259595238598726119068005825255828028904480832065424257766646019881542874195647422293706009779059519409375282390447827496475109310360334516413780998187755865585404721500069306208732289783539431764065566480274965245257207400256641411858027527181621060028730256548099547405682296449669321114637118861483470230520081728704667374789952116887545963375299478369445609563291751462236609824388596172566922641646831918193795741941199173531042336209383058981996437983308036614823184970765272649324920563086238257165185193073364500931296646436143765173020202340383450018857896677549459505787316650335379941282535210638285239085054013246609769792299532093942066118692646643027224186050333425866849751970157778617381771664709907400964088684136090260021456090218423595176951884220456002729143880678842166983638307470279638621436464672761201137582765779480943899611346666270234890915298068384096540319913983391993204956837059774074521984371990914879765912800675917121505242632988470353773259506404221994007614153191681586149800711833151217978778837157418161643346224914021555201979764369775120309728109205936768825795435549159630682876625711018280902815073827375582132739976113675981830534793809566905469459150005494467553411584283392377903172232732668530430137656038216756436950455611311580150019605687142702948576782132540359822243698377627381226110742427166940299026997476667669691607702581338661407699456251778849136112018131140248614864619965053982425086070699763691343965315362702558098865704961215336220067649387662507914191993084038112186935391763704112069980430354491044376218278300688444027616467424732453727257094777764962413327598575012817628932963364885237191162984062115533930572335401253283349550640126110973614434221711777672427173936602367523413425265304450331123420084265132156022596934837122060852631426434836419420808958433457042419014864412563981825291871408577238107699484830706326946467494220101412235816699465749510723034130621957097900216920860560940958059086120850543329054627973664552507409871245490996873092691180241244729379830548329434590402806221053124818808165712370729381537963795024817877838089344002521593917667872719623014194391181409648872619868673053830861854195418428940550384452406556780102614797940396180968645928409452619004048806599138188435522438679403039276922723489182303000597945184038837025925505811771374921667559680433264393121403457986110897943251952510905641322115374596997003973146184989023698890965347389830203066860454425072522041727617383948000601085976554576986516837206759507508011049307146386027985190922408129492622768385263901237822700431385371346449996822721051687093636026252579519395294273478659259166021730714092773001493454750141762602067920214781141819994229277336946477188900073197545840340486007256511816347966586521175290449757804011287462267948694613527167436911860366246698718954972762806491699259927541704793256766118872316364934568922422654669548568288685035152187253058602723996611875784419288945608468017437953935845573195917042604870327420153333804858211484476353227738033764673027653817929233521373390502954723336695298589169906851013433793742414910682937233012987039366641031332505129718416502756057018008341086163809487598110298509288952621634826325084035976699133994355037910434724898433383494807414533331899600391703427612949591291228628645854496369463870886086215987464014592046005797322446705586596317783313650657164099213006846203659503652168181307887272704633698550711734197038740904751460743536267820898861313644516567420503946784900536892683556181750730422201648428740178360829978326068733841043504195148517259791657035846350708983550286139880477041150193585509875811808974869469303301814287679931145673860697482130542260852345328308967017681867683417346916391418659809142287697930759718575630909997363387839111682993430948071609323428499850896482708702087802629127484724761374738321203994360319226606046995356739833718968391168337558449260111833450652770623684821266289844791379001664802598323321827158044148770826758424645133832785630035885094376456620707303554858708626624637244899325529070818885064626463164174701266717830363404414416100914302851896175447025696311345085223823823704466446848020765445249926756617971082942906589821316508021485841695650786599501969914123874972137095263710463434920033772117036946662445331356391285095045266157746349329748173383633390028241111916073816057790625702808204889953668261349630414373904292407515465099961477245191459344778892640658537247273372378299281658847753639596205627929041325641862553599166321477499484245128556938978281260622476045813213396122907738852158235211591760131939656738684478805807940657707726979482605045812380287672733256912252458024547598788892143851633834426685966798827628782077164916508150844325826650314844311729479895024176811215261783715646955863283704223833063390989560826462673405566664476729064880604938815039831401435232054009843377724210985238868524607512887279907953947159533445026604191013158443396828945023018360105914905833629505410752227165993289365439699929828734422094496635012675521505255461645734405016388321815154873893354503067487075714959875140882962961105625745980568495093257596062474234837546704193810192813993228697790675232747872797953217268410873304912458918208047507620683980499926407043293861219449150791770531029970281243671872249904260668064700912236061109589198428407099611354473932192884506580566230656337217091732153534004262923740700719932386741439881980075274648927922165380726258655887087861507243783177366080702521142601139768404477928353084364349602381953411446981820252888881779862791695817621146866521133107701858529528115213572775483583948368817900716565167702713736967788896987024407123919740816599009789165540305618535671536071211231150878302947982702117887718199517923410889454590880775227429576258780588926930452871108463301917209754678353920887875222843096656186359842745608295675687912555609645947449537194785923312931831045277396825165083532323757403340129584615552791691710176341229307455949430968999414184174309085319311163458314607171399604403678173499801237720771937981763526567345602010684261933583213387838247525633466014049193708559419444182923617425890615444422848764708161523207929423132370416421813327144553631007907828848459081371310458570360843959568209818554554637634213906210087201736336340899221420352379520703323873152774462079715670722583063161699597136271724961679510988184752635597379408313086782085738823586509377953896379562183335213890974491823206403391668383876251779186332789145683116399361682778730860763159586240116351826925685226816033642639900299764524572750317713897507549283889639875556978474886268357718038341006391858713168003178736978228506158835585483153057500022218821518103366711627614120373055277939937543224012129294210825402809735776435602842977046784215702721927513991600649765749486857143564721115029070320831035229282766571701073567505339672596934637378555423537442396263273632011090397722613870923384394301403922553794521755651542558109334811120524445605589864660675423952861155563021936730181749431286156141689992722446818154394303815384761632409584096291745461272352478730082498994846179443857064825335174222479647696080415919246829691940295804495534194150531022994549379048111608418481375735663849945726442992751644339740905612877446749302005076929533015421205140441989239145877898780970204072080648421307401490207436938162503289064345641402716436412296804908389180497644140330410698620937136874871068248786157231393990019820889867807110952047838497687894221002722545742986719971830286518666525652494194072446581528761262977808094811186238359263746439122447685983756124453771849537458941037613142048778294500748300125152736126679581074070464312628925635132225330959457075108877177904769983378958508833431259028461491579438424233884605020617703958342514680936925506133676155888806245429992139535335092898390468269065812619081010842049611866543968570799936411956189906304973792308259294533522326758465519146224178101423164491781711516502302862173505678885168491822445243869336054735616678320171994155264104459049350664362523387401146100628091237227406330209254014050016343972396517862221473523000296543497682569244138914255461969029542173311192361982610077702090850378375287004397416593299323663696054242275106119875386433978798674613975663792925426431767524821811579186489246422454792843975895715104776456230268306190852074751413723768961774181328436242003935391733882532891003585492141295677060403738478904041603683235532843277391893156378822010292089380294200533781961072915506553602732794013518771020244375177391769916741264077335986771471673739354532762642597320431926609145599819099321104729879455287987531180974949431446506407777604456535033540333223364365841000833401765591353462869601900554187785233224440276468537700696546223592257780844702945709985054661243663806406743865229110308206619252579100539236487649485734488224772949386900670531593237366347484446774320563631024909699472387123642832944681773054416785761847704811811002629590046381367189158333956713373863002740197320533973525068778521196187400113009616704830474876570219866759119157677551472801529243719171840695919245064800973625174855993196890305653950211275599754630423428763067372262360074610694601068838690067328460592166138076291965482819892272482246590725676953826117829907289585146614972132405384457373956648849310492243866677463084957732053691761976886609686040284147380084974375361923026082769597145964123988143845852989823543549806449802221066286322370629344859008875162374737275704298816119684120186870608293668228116157218578398994099015396192489034109799863690615697391154221506642936097105218631005566685868935312271945050216412514808382843955824482405548760515336984746006598755902254769313042786021931039441330347856886410937502483692080051692618982678404022318781447570778042789880424293833215250556191536880410611689225768195648719470822826828320289514004700496719183362896405672840573181316071651897268578584820986051731369678558183283075164650133439902348529303131784610641570894042531515106122550025697627791000797576184566844876376227990590798502857049394274521377923466296636327991758715319135929020027882438176753876046631633743236210866070460716102403807102821796425394822080896035753034127842220583494980236338566840169326651701517402702030410952042491219159420818007389785490260234051874222123457928416387083356450634349873043636131483719101828214432041965274372386997885353214204712835853512360758778353818711315390712312372349645360514936189685683959983701840979641461095513448031040628778994808122560203309077941935431718546205978703508899380030440342593958103415094939164055667049692473992671122567817456106671611178194078796790772577475391735395102052496748114341116525315503111015080750435478030354046508853091513343758110484986791605138209609901948019900368579434021885186570364911965353479102363175992060183870083400914640294958350462811066837192824725905758024545998226452444934901496664127536330367155060377271313693576320816823296123830394673484850546904115554349588594260234530256179343400340421193944019623917937897128711445633926084124078832060011533631762289556070262621565956765180463011038223270687048348040428903171385882334874479898394496781765430526117431404518605686089079682496034369877828847852438484221368647950509088147892411278860136483687817899202381579551314468510223668174130541796235785281815029899284121377188496165018519078969874931696446495298722499650526107210232256394072998870607481142987482902518516465027452530093480948198570123869813812471948708727864563614699315462209236766948958429567297498464616037290335264000265407370791320876327146508167760318058172366228957776417887817720874632187718746807167508240886874891906654508537395566406962360673976100362747536357797333012248949694245797058581837138497063957444222261209776367975111608191615948291139695356168813395626325112860241157356876221583281848701527114599499087207830023116887861966792716321495191005496376220125226654453376339173247699919558632370828758068796977321038219793582141249112462936634068180337607150279950713565622020581112640867615206140784579880980627882801998690430323941240182989057060532072050425733444680307562757294898510146059612834782412889271946166074017380343746237895167249895576240447664701026291919611580053762181526986431982816959238125262752182151978540812301347071166299470244961034906044081453339227464755542961087081341558509692917627915891516317749096863250704839731714703623775104583155924777436220853415162879253542082805989516391606004523853826054513018742143543384915596144984523313012353406893759782191617914752004517817764452563850627802871152075560407486375087237225740119143615651106107615955503150031010123577171436562489509977484606243300966970317746126869937773155452685928909830613138814543895206673899920142229244196289444158940205557628276867468193226050670003660119768935558350062850094195194446268704741321347932799377641373951736558456862608950831858903690464821002484151427891733253729369253199698395307379164333362851995249532185629959323735136790575516116695563222785450310777721316845280518874206635434083689297731395244205019525180673207874850646505908049762502743733036606204415645567016431590000082901902033969186915698711512738008575142524400095581566508227240637742723375396604969174302284381598579610611649042332075226114575696767298572632947263812140681040347803161790735802485190726594052434668384643229380644290333196987286613616175797560349049474169526997386366566173915245319079429081595778008598804148296165411663687593718657599076704918388427150464658144923314550132190720762710342937332382697346512791582639086121460647275410876152504329600985569409662475735173022566779260453329611627423677396416192124328455986127811938168318266232329188731624414964351272953250812613589631602954170138966672411321444592021190555625991289871105535540436242033276756113389634762171872160179972558083624225456355783014214136700218666982090201111106263394989927407754639547627864856819300034153659186388051611243669432869873333732448876582857861817950232560687017449848827671317543679173511497429729370248925704925477457533523935401365713897956854892388702195212890698177615574851822117210755275173613572736615212552654186157340375070049063941207402676674579527571470760273803803164619349815568960443953343779561316467727117258055789398423916881732721402986734562151819913130465450347164170318837088585338900975786875848334967193065017217135410043552251557182440461582583365576981251080868655763439892127250370856167182126123513625971190679282098891518408237563496020264597019945159242540132868215556027983080818162034255185701070051339814490470172346056957788361606963015343889088392013112656526253438203528073121280067697895150955312375939762225824780893482739955492576173029910053858332488594773675172917209166825668903977429359897585441427672138354075344287631573688869443469508377953698965609784062126375882252007863239823327500002647157568868234829929656837301443826703583238021408514970270983256709539612724504510344815277832931368250661508839581261510246103141014256426977849987249591101705993306307380757589048256577963596616743118321087559766184505609453872311379414955867013262245729323008913903045483256673799301843579556254685500887419873145046631201422483972487540837343152639762898600093515947599207746872120747302909001626162066801099273454580763603782984907858872690268240211665118772022999121340228707989438667309574240952354875694949831806283328604628199677327766922631332374148191929673827088619979936127591106786370346681597343121619507580394830529009627398327632102325510109951843577200457501465620281939366759131322256483771206763560263758010858785185121508104748819474003455543044876268644608814554801978982947583254046004286138067001457031023435552419353850581042379376929172713892985586860170444645007557095367636651905219000884896339345724397605641580479157236531353276604841201571858591115600430055104154030397742426175668988317950994902644667108185079350672434253713542013706052777861227298987944051068655311437374443446947490553937901057226228682547569240568384696798523064025486841838214601218213318845493888702373852081745139369640993441289267456262887845614182112460113116898009625028728714759642622812346299172385885574929442829944407291212843426231856469186020931780827281141716318230975707494299822916577948208599406868705961084757797571910523889042391207009887999581363203636110882145759358430710852969002700003608097625795884482905702870087077524565129942433908135948645912462847512360679784487584892011358751804966877406389877189223095329732653936427626161829537731677890274601497899655144895493789445754268362755240754488551742249073174886631088920252983999935882399862719578653565593657220527949444945460911230060528994077578988582645315191754695849328254825082079041505861523934654850350790693174866200436035487336604027590694974526667533741521554788518359949815766794139741265835535839785669014165475340805818439509737754675929260155003610286971222818921288719009512233056114925419685264058483340225088575998011578597227500709148060914622372952973770032742153696081977147984400751210019304432828030776689613527913656505086662776676532128655513967537935563485383970767796445169548798628465455743031301388211347364549152613217445837205458388577114149442355651429930094492613399263934802440942768085877108772581890774029513635903980396415199483188299058704446177382304791626687913042553074994160253741922949841898951698557573496063279810930032751750620181701816794026808174885969229931956718861065422954743329920980854881325777660226851335593076069026025474263462675301666044584166938273748064084121662905851330570734638954517837676354021459006018191948351039953221707969768206871830690082942637304869391043441043736807499109727316542219335447772586076958100062279598721521847212603517706644119514459531480668158534761763429611117597489696690757069615824066709498751683387422810298757904953826791344901409224886357037480362962677961485629395337721971265079769436512302038301512739896751011836038673904190537829349345338962546435821310758778058791126834266027436007558663525988116489676636925058681730817546598940209515637174322324604907314685023643452377035373838832538671571929555420010458398598283978295772822588568452776046732838996979257306563938108276241638784355040568209158141134346618008544912856740793690238577541108003269313225479010817352813277970938581889352381432369914468861245966312507603995548035200256985064872225915181590727824764667325774942663808574878712390591649129826553611762879601511788201462142779757182389922305061060307664954469158677139374679549050926620696632329728693059576942104427296414119321342653545097992183101568862252082862337647390668174271154566364547758690481642163664088171604980927118684135149651389972819078835220982973649517660200130944924723550770084809928454343697228073114668475742494743001888688465214112066932811750408033106415319085547013815107866535959350257074264978560997738862753062145511228388807083024648877877590115703967046549249873156109401829887238656680593251871572865745340381795790984318263428821063803693130149991766859300757025395603804190079907585410115478657596555974414477280963611929773313179421247650065638374747186907720863888586032162233537523013809497184906478048739549339195324998779517170591749924114241898036348368115556696937686533349926202134183929117533028410654359781211350644595029923267966014679430524255769330975785623295207354358122460998346592373359253972805577515616515807512320092576923185710594084904190467583547675903925004601342082010998660709649577274075013210254988539831843773037755121819843054901035857159926920621719112421166385839969646359549085170992824362570585002200770364491199478807744969750606861562573057746990917121638347595862874460540474490005357337969877033855469796897006621916125106196880280878736886903744539123632727560891179261914882342116504061957128762838341297492044651037326612543269043329246680092932757899047851267944715252517208184203603955226915385322381111736608784319768951662487077294962343226320450843580481521200162019792957591666663598149072284583265665977478605889935914447428790465433739812361278541494779435063349207315670305752787149640253155039936584442944373914117317711025060517624528870336027053103491146063570290473768582658918293068916063529537381166868779077610038255938166261741306472087373369714802917455346982522651934972221784565174934495814334601902478402132208379503165005770919398329567271514891052534584981754554825012002562019983695017396403349449327826697564040475450849357364549231201588137232817079215021479340391740176107667677968682246656024753160956249536280669783909536141744393567260200342263749449107918301466211600692791487732654160268348123553362146614251031235586976836563426414343772998510472765943626402782311305639078242238826157318385142860985227244513672614446619719708575844393063125345377848271263917816711616474838434275963217928233898477620179982807044680800761580851444891070084686213484637522063729255806833525957858742086780999854896796882604840757229437421430157391569536382727138027881283358491401173419509584953993515936582690393960113785615111488441340391731851992170698418851492061574104611061129274838218666556513391124614418959896468950556754853859915822791290531271422629190358087800865963282229566427275582040888356149085183983139265824989722664196715320908277066981915316005018262129535825040398116319710893520203203913354784189908431847700837146168238602872383700960753352499858042798796156880047843563295821053370248026320654920414002925441952486950901889470320336426754781298862686858505491691337185510968482951689149521611583491575377641868225053752871456906962087019832511273634691104574092507395255600855978644592687672517787668428728549550957556455284315349951864101559733932233667277825136185266780964762559634742121814782193289685450723507921833805482631274436817066508349992092271886318068639875964481795356110485736387425550154179670329078642013404060054613600064488721241011980849592932448210209864147977368210492627813147290438378020816015891799586560087069893705903673673018612703131325609156094651338013441180738276707585573404495278727675313984941034092087264453379836741103618034641298593998897855355656192752327330629148562964100050837369117069717394614895962512251464592612486612160090173389505938343915939657602808570594201978005740545626030498578913743433298839194739506195388022081753241913964807786805201568776280703146861958676328093145395497218142114779758644779346990912108405979053225187790465398672615499862744251007047600614827662496679218356808299966608526392813052583876173748638388375322240116899584225569978856428639583037211979454903770300720367972812597142986634633368406304326570840690779110167627516496318955372785089089446413290252106295585217617747064429268770988750969982953467192917042170250219977825950992901416494136030648876491745627454824307049126030504970125629500060941151811449424722906877296194224094236410892627160686983038946270640122550358520200781106641175329648838720988479321045569162634469461194761656330241763661620621682990086672273092141026790001696332332725971341901990300905166690051053192938148820181356381980090025181245282353400872953881831281357164146950922141774336299251425875592287935983958861614012785669488349202501926570500802090244742457760492077113192723646246944001537765193872729285941872354061732669407648027204833469515815524506272030452855624589769874905588630313804880153933861489556737110262056955212919135997452371456992659231216914235051218847010032612159323248197651128098511346063288982165910681851090644652994136471787387071875275812621288624064010506976572520604330602976524817866867207854326609142861979048931193537987862986814882893959847752500743941772556829601986942566983497210240425654956656181110653152726620788062858090893605020698189271203266622397852131790276948470735634194501627263021006329243173729726731971809779119889152899649764459040542004572433051994679930430344139741131132637235908231803389348196608270698626679270217821320815786863415886832280779331932589842620457351942477455645990919158698301180659659583810463347258796801767902964983568362279734793086352465807325885113055358523841637928015816827639514608600895917997227210834587944736663516559130078399342627296182106206888622795468243468131781014280576610118292814960781809790030532050421969961550579002209946576075248745876076618364921381959352748033197278639420971713438582217671874264001564413835277837255592237128404508707251161867004262916888115245068643101592414908071557237914068639171340462815964987829344746657268827883641716276006549106471293031493110470687262828515520281495706236670619682172413411107339941026002358267101871613631077733842141511259281671697158987375620135668942229763746237938058408461049475828343926491616607352035554781017175197455173293236597557124478834493428326207877549686687143131772918190527655507921341569366270284400856476590705854751749108027985377022017853610554338846200920447940197748437800277928759408700335077053533126637897565064331036492111702584750133267319384014839509883810996589818454412966162305897441769492741178285201116233121226597094026234393698279301058365741228884463858172154968121488066622858239947532055929359753795132471772468044114674336137099409670305314423703779883428327866887410195553602458872956605756965630141224560951467401881833855932839634592374637932766176971516476291723316827449519848036294195152921306503488811809419286772341319078551920705676381024844141111599927085470228132588944178903406368582848321010665258091685016396501198628226159037144401394503921764725599106575853757400300858460391724637142677221584465197509383503766083659786603991673556803193737876512850627087314679813163865314965309491165676097305144950504350178107588370558512651726581754961375691214949063914078571311246574142628317982519400688296452670573506765412757970938197481127783139000519600902309139797424162590296701821699456697226481109818629505875086894393179703092167902224796795030484386251151856845949614755081377504587371647726488362609575770852620397608229474535196467820284623982926539488856759830760989331067581897608024789322669380894076656643504164720529154292776171349899763697118002205172676494313460821249426233070591286994495141815305354660349019129133850031525845782654349805921310154003813585004994257388079562317187619697003143491039050854869873010339124225245626687304915381664557198038976925495480796401810275729959573663076639218457776550028047380068803502937880455126857720249475323073931476903824314088759686710838368860365964813032715800569393824627211535837339916072217738208348273687372868060198295032457571619132939285122629155092177439448441781578649289251716546849275184350133821644289593851722714332551028851257479713583734546732370263820313042775039475272479631318081762144842290574774291927996594807295050179651880381621769170865260275963038508477490435771986198516029165669027722581591096166810490084863833897330929270762727988881660047101722447292498391520350979671113863230353105659504457719983290949468862389025935698826730347810985964639177845542147909083951988150986454216830444601153326401625505195855813515203300345694616733876288632202724848016423058709194686182551763585355938656485978846650841526408451246783421491573304073062193466180058821794720543641489279106606087578748457729219547938244725343732972442598205117378445012205311606093129225139789725419241019795178964073886924338738099912534304643547876372018926465835527577682069545488706030098104529434014668141898015975187603382080275223107273721876146117012613392142925515552650293487574691780418756859692412756979338125904181375641077572866490922042069443651687157008277622358472307596773326376379106767274511311829339461403253962563389490446552550429314635763793671819842120760098206321411252342945379215040221352898193065216685633438085307186829894792168274930724398203430707527686427439403063554680893922940149420062776780734886248903652671275268044769419545916798407611489210128399114137722069031063188804863144775577062108928593066993625662943523583354040994003238704480322053677303875231542102764409012609968954305383789756232012918739251181437426748668292942450340024556251050910320101714529899444622999933207546437388549622976841066668030071577117650600659546648397319011044385828149127005978291857051442257788361345665026511104879209612725321058606283802184851996502258851477115767441947389348607301078980678832113413874300111706164876906752717586639732456288315724737174597939405036415587216451875021826754237591560680916147071888542130453768187959260600784360057529140199040316981235148354483327613665719497889532400605131441937440326518970834435605758653900192087878611547698290306284897818690889501525906963207486013575754649974800246194562505224522983872792473607603934389561052503982486857112882775032980919498575149970370909285335399600545759594059390620067519083282403220206001943273514045536664701727742496103726712298036644456277027283200204321766943818024558445466293464237193624416701912334266188128154341057138129707419009362500489259140041390819850140820013882211796375109632171665979739254477416211167054174351578375465108016563634978472981337173506507421076250026310707317790954887223262894524106602309051706108570907426125427420222547737892343851588508157832923175320729656434516489983284913035328028157996424242933693051137339019717902928621396108757133076422811433995529602185730386342562997297928280947530243166805792016459019620398309744118893268743561246117951626981740391455182414010977468956056337458332007986602574882235497305659958680043201200878975041698739811560875318708333012968427493406795756999933480934661516394575405458136222930428044251546972002691295700650830192468272148859908002484509585855651060259423120818671812406462856892890508698769593323281720246817389323528224199643737470636087678136242103512683706041756413134503206416775168929051051764459999363121420894557757336026555007630021031458474394543294575429370315503550939597403023137961686376768291518796325661491465482975124526565922190639653978053049347504455791738791672641329869701630142257896467635977090748219864165190128628607967178245308567332276780363104634305504365102139128167297669462955515723840120130015378458842948217245987135998858639788868460594730223109746372438441126328996110065050731829338776350657033495144086523392618566306819087823441610168048400654074470463962045646370566813710021995154830250745383401157926274531712718937612432309482251320982160226756375626350614434008166914307587110124408847557802262236238172655874613511029854759555187166652500940143837402418377503276671739602184144774009839363904413150836022171056063364936357264412283699485474631129744857027310844594897611885847722703708635387348202818028994857450941684724058316701321765470533701025369340135717685982697275910638734898700215879023017523603433939443102863403716277280879790072673833850584209628660410327725804942608350292591835608904367916470914158940126110379916775035248394835778854801462192889658149270463333063353010800133593233757595365411810928881975377513536497988423752508307106363913355014166709092692420335607468355398482780623910966337949398640939154119356073397588176954747729235969835734314854012148377854325875578448990430964733730730565756867703489106435881585154018243106511081649250544146167342726563751901933183179457031113303442639946669768784752985099771116993975217934672271512748921457178359611285138645036553556656398233833151140793445304751093080823871808570058294601190080655023397494708357417970870460026175078906252619358149841581788655099821911546039687798008337800307470415579072735210748935476631513531113841746814889951971043990783294120285559753346268383993358153502392643383015423677539559972838366467792666272231626132705616907197367040919797033373789136543158854283319943958038878541149625726646824180287514995466087922898828088096785535254761608765624103996156324948043626444012527880690793552621166681572535658180564986514799001044091857353929995284766433497917725058189567854357384958003410394879561445314985359164114817109473535411640748651083987963366993648418212419394732101785638682441070424556095259750099704287340512785617985243557917171219266544164925630574386125976716501062508778759417597801454616515270178843921829241470993556057167186125307351080322275735471957706244440327418466592794287726021438121658079391455216190140548080302091731898876986771842909979353744294068292832887313336478733307688870343803052526442447993398315951836702563327642850539368044674344918417048453586550509017813924043684637545318753325098195689777177949671457850012147669656448229625199074064076778549298190759608488701815573173860334970140854138542504037565084734353542384766360419918415857010142716170658816937994605891998284467789633056040116309449750495934804469984547210211372886770802549425041641984289636656665003926892105774025779516368858324251586985453939067057600209462130611342338577263586598319785901166429191820868830272143321075456081111450510881687667548765230572394811148133521440508884979211585984446630719279887547431721641660744442621193679423010661494790051133400201583353756567260645981162882794053463032359531932769486452733404763574585526833231336426264523430228123457434271069228959814214877521839411902942202257025923047280503530657648851792991723367452588347949979198895717398359389726174644512174045817844629784790234596056471759988522973340517919126572216945558679388488720506401849083852658845906108956060092666160664334913090933805030049482379392232042490110857428736475952251725834024250495065252541171612663835054801670874681611793319020671147349137322394481799337028419059388727601913077206132063798037043858574916109688502201070207147543859164404021908072214166737940478906425289456005483490488236335455325084369675896842593634886314226280263201922604823571773367212195368766934169283539333387238013948393941564802071019193675525840065383685819436570892273365686063155547683026077450411946140682049251955462374922312725403618431013884173201904357908883908493840808824324635111714130282402085674991554477568319593254428490599650060064694816960854657882488055180259228945451166842095814262918142570675660002808116324649230074336124834100633370412442982917680290445953200377189313230364828291950892018213639905894568559839969224780530477875003673629704486094275980241151464353430292041934273524598051622028101359922901558593450766633542521300750502146304320234970281510843454900225923213070755987270829281694723968662938791486267051785833092550376858181771033645230448905089361979990874451180059329339420176179579063610158535048272678826744092267030781802519199400602772142887365430508045512683420378739657719332987952857239694069325860134180776748412633411713291749207327720097506903142299154940513243133336020214549147968461170375062223760662840324620840299798666728727325464093583804048678217467080305196729789638930693392167428426143215568028567078964701571954573765792262949756193928022843577735497199580069579155113267506318037988071324222009397618375184861556693861204773261322851732700508750300811727721321618777156966628712390778890963222665531041872419530242457851530730730138796123156890477433593209410462209710293098885378236596680600825966694331214794686710159151031138624344270140597046174730207424121277092754346501080661094753020470829181440397957999189464334261286549536346820128892686561041464400054318025769819649025628117395703496298355871853892640062519866576064744625123577881458490211289036214589252292420844103513332713382972367859237252189223111805030465342321362712024935930995123020740719681585587863368767796859854957917171756841497019978632524287096568329330659758618859521161715877436046389643629872804976990059007653817608957286731875895896907293294352715017042065013601542203630146323493745096556731271626526476717306563156332041817354546836202406192938735075153579729180948592426337710812145699513950062365644191977182265034437898433426733766411569868286236231645752828908682396098581431598802630755121826812589245113484564727059978393669176563177927815067699835135691275035068572670170586930180873245199551817845985168781366804910629839801683321034018502696375529988501395622440554760660283408165273050855215569023830753226679918291975383564228861280952538015243607669942894468988775926938173071587945022150982474665963488404937557534475904247568061351075926069123872911426112364353827725147208127986907006930221980511335536691796224747041649771375100233695053712405377862011968254542617641507909434924508850555991800083058517443102681007429105859845836592849743218064484213479953434516116401856109484965120292523415364443887398042574445221195747517566671270842841183248413752338095342431520722829139787159241977644657223185273325697989277097217762559723653383289185291821355597835585352552816811581917218222898269312913128723274123863637538667172566065844889047528641656484715942396641643438923396655555557750562394191938632224779252540503937160630490699307616870650835291017583579350282996712534607340318770855374831114183308891508781959746769678152392618241798340514425060949335762117888571401702810450419546741443736088294918854108799578907832090444440391935213563256144230668862637118765284660042354291873511778941136195722537674629733609787702683332364027224551063722392883318049477740371666723331434141559250400344386485173095816836328118444631267571455973170003055088982699077538894790904274685727939921447629257215510778797632223031705452772220391895436907079915612293610715441319313342949378128434673506234612567369540917764001184502655089926964719460898402657080407231278343240886080222417213964400603385995565568864421309883170052857909864797743408754762628761615853726818754975453289140041893731639745682102542786539219827547418455687175393034231554204886624434429522856342233560912447879711656934877872012375717515143422409630607585634301116552513354549870469393774377012436274851414911258707620019317407174368202038612701321397589968822840751222705999421342991320726733309771236089789464493898143965973596166565899385281667086260030517333348208301562796699696115619681784326492732857341610007395315554753066756200996075905357125896364235862138652680805649478265129359056081095434643846737136044999404013571886403197854630392579518650255218816573581562257635986431027760282967752348235260247027064912165304216438976080029552983110062433781355964981738360479792090908257566643326666806712275118768435281251220663437453107801096378655314485462221898525996177048653694795868451096530260140138820357051250979184061768960917857759564734380419615831947669781139524786742394774607340924316779829775505972970076718452903866179387481258167612870183991743735711569097406508238757319099688497593290744364160102390090628403054853927700431360384552424484230005316190784488674791398134898966395829189195057187576345320196707169419949713767247817487713955704667302771274798305301342402789164806804762039286069609192483026486807295836326711666267796760683634075076726376349045225896815814740180255800197176002413986939934921590015304113396294941917317164588871428737887873288818130481261994871991634276699695943971059419852235193550936140850161626317548462479197102682461564580602456447563950901233159091409665179847073302903561177552352598864360119488938893671413111859880703237867744558142889221710340678974458648644745611276757751952740800886864438021286663656722405731738725003582194256988756330846778983126439360574910212136693390181895354622548897415406005677778838331262069058844728773040572865085731911915749998833687374946889359345551036937831044302524139269268171487654717074759084953628704824411699609843355320257865340032426244689025447447383391271655347844743984252612206986356378463889728913641280770855353720843194896652751342609674270922974027880233977896457792124448355107844257065169381114421192157548083731271267417428854905517784532013174604760013081021949707344914405250812783754173026617969290642277666710371524568544398610662812844027177916571222078254105813915538800166782872530418455734798414325566385821278815568867441517023988490811356097467142033988365370561209637099353331323108577837742779544889858464881219707362652516015563375010580446378763281500074184483841380487484903985710253842886752510273109769438050081642325163170906798543290373514080139656765064080786278715043560002671553788390142656250542692061359893578488530497306031787336470500842836949012605449514842422607671875801488074791390668645671009032422368960236680605746025212735963037116691764230081295351375271423891736399109311373146722089364080195942328179628029082555019803596565598404254083057762666824279335685501269967216033542132409701259837233767996561134868875398256542110702540047281896434453019602254047293584164673424049742106201239723204537448224231369958241241571351165831855761659245800263670398273313872524143394078108035871393037384494379879036016334789192804267275407421426707522815154509913050010351684624542497171166695122130665465055649775641103851062665436452002870449675362410797095881523297107063031605669380747755803195375628647827233410495089275911420066907173790973189020322456150139454024382980997267699204247652723199247373701557314347206591950207196785842277656140984294000943768657523763598514683900616549280299090029623695117382559826960136202100033538681794343559378583790047088584929114261449432423441656953193222839923708582670130500284861693953789324579998536059202290796213495317004622177882099883215941349803396119137329565818391307863272853260631827065274414933390038648731821828622031229244996749410883008220585184256166631827187229921640914781032003526524265041408746027580820069139142736373712116384749615707087773369588492890629140470351469884206147662021523263452615777481244770801599706146656008968209808682583467396733225923221207242963096467312661090966368612834120262749133873438481614580191400277762924296246074951942804549756856454186175058495469996337757962735447977805174598329139746742084736863019384771877299237966435223718048044115362668626197477316443174935495068416569740812850241570126131574720790694394146363813382064480945429224264182993974661693648285400410975824673548121639214624353533302286444074840991457264476874288577601699277640559148673837262610249196105622047756357440082703200217535339848253281703381737054389699697999381267632642611049273598121023269895062601776147409410307413138198445311103456296595587367644988966810645212426497791817021594307354693035241366212774928723338956559704101068343620382750383365278591530195581374416678896851327536243129068781456296436627190273275332560341133027538509367001912691479811703394267874914197921291707085945578278811060402557638202881042568382685626832012153315106886017420353840436274107325283403329813235020934043282041689310537686952652640509135062833565896198303964290895204462002492349331155289810449381141223520912863190249680787561123841102507931569318204094999811445720086817538621130105245551628176160129352292055566602477478708764172845650571574626116377910640044079348746934281319302799345962874248639568944189980533327955626817509882409314576943888347562367360999596657607166990591960334909398118171523048819592106411628522669092616671861761896124719057713312970042581432817879719501900682429155955095026428286123897432765528309100259124543374043784669310011206247643631930545425628506034418699194290272984192709109799253697187424584634451415026739658349327179386371063870284303742905756919976136631987433566096126233765206361572279432916044642440651522731164454985220582521296583147772704757143039891343573489711368184636927178793605204443079113401219521475940121698213546064410778833429894541246989653270805731838803376708758090368393022906512935306904207649850546664841258905294345374827035522460961454667275376493766793333472843582291622820319593669703596662855465113466609994961780257722355902976828468943101191508693484304517759319525555660135692031855075857292593580146641167399784754137709176969888016042613370738383147481829162562824283057300066038723302709223258593383815967642437992384640460449470968665422047324469690120918097831352049804571557116983605303314640862529144959855372746870274608585179223758644343959119234049180914404678955868353285495564496002084353667375041986521138396842356758657256804480320047004707484663377256174912037157369691409980017166332935078405492499469054891058035159235879996020634926364530433744523347905025498876679220966097520341972415194440232709945937878628451386904644089824930595316552762537792653309533187748980032214041839608967665386579318788619717834038737560142090487232538971557234258069783978599370373194295375072724363004942787106715787810116765474316536264048005825670904230943253182303713797348407922832838516465838159402818586639197700855849047358699337208656982532867644261502508473504421373459125170211165629275175813745599356820417739545673595853943466938795609057487694209190058648537603052300807286485472061157124553999241528071472615942730619235553045182667218963579584537268482828792940284022739866285187646460697860441274968794326023053804945673782637373411148603243040372821564610113060599429228310803766070539039349396336335418107128310213222819769343031351065850992901141443343614490567970023343964581366858680492847060121735239863969246602254057194941130546025341574304262022308706696988091723471938119306696458771662012960906794480343973948098030209552441957023958138250858467442987402695190315960389213249935598560165095564763633394074482198945688127051928325495406916913035708947828692126149437021023570261516500721444176252933576576730630669582268486838734202044761215280002582360379536214878364050898567784876240948759156817968680568682486583857882404202149889902891096734531321645006481441422782829877884670707429729419561775375447745137914956113974294951813505092612787564460586330076774873453592289245727647587926345776822841996676888366809127369964224295186032089450547524347136220429883976816490852294491686556959489982568061405298003068143608385811311479750079112228487710513006509137625713736069431349951535242313265210219214297005290164683487337928138217061542871434878385581756732976270232165498037543098597089711328328827443328764467140837105440107737275065284831778852386317554130695613273315401659181496023411558934164422881751124017443009928099543686982918313047373354033442668332589392221397616163601004843784186185390447948302098332780726117670877154458645061611200414161322035197739324663390054689794155214098508949650784871644950689182100881487813606642156460024301294354345611438362865852207479906286852771751459656843431984728255672537468463946279176262809420563387434994985324089436382242733832999450973117635263456349168825705001310690751173328774490985232113746170117693059090635054866582936033091778009396245958356540438439337136231398608630542728735878486807155762383349001074310693286938460149466132490630995227414075713727510373761521632431895920549534193977327526904944116298596765909832306488745121244268780658376824781492623135860887808790921402497769859481015276204963318580453025864057434502683303777013593099425291905251942268346607873908080058064119215157798393735065440171599323579016927114480005080909545876235598250246495800540156637876613609215014201004692824096062743778612191269214903877976477186418819024273308945330611223681174641505914040894828415385583540580874046865549764184055878257236995322101145129134432644744034217960042148319776120811752364050768941523604110137046303397546471701724640883229559023405763627941231089374242452208973056558780276968323410332654213752086812853335139710077810989501317303465785791418433777017760350406938896072668180902186923551648684912467718610401658902355064771775504482779106630236789438430667065716389201139900862620467838341748869586731294841395471915393943446174157605588640059159344048819049552420169435143600084440686546904950391806203383987382652633344327461666119818506597202127879289963064950370592548258951731558635056709984802913707532991868924546210472860928442766384759561889022523892357756632121293351690840647465344087268655448424328025682372663519875182846618306483431535132570385464960085366561796524661751191201929124033887454116065433273257434656514379712149632101581366775404424521932165039535826020158448104111005716913729479998796479787700652390469414993761171113029287205470302943218904030461883964262774446797146922753840536826566747596527557013820053608474081108963734205697905246562941194461712382965659764038686478714986193197773569757032449549109935266662264090911531499130567321969554594146878527784870769539454624345657787548155452827715247547776690930418717945737052807754791634480829638928285100982236006630100516547011149516807473381884980676910500058321208416562922918296003681407078555855437148564273536933655234186957339220429838216575458299734147876207968894798812235594960283726964745222890841619738611131686491506990509021077325583047121858713786585594163667119141476523505225175704196686904592099418089439208806186060073139931525924240670742072340498716985297157714253886846694927031512349265882165244506079070345525519669643255522579606587075270743217765526040953221833562009988762352497349140282344689290795065857374506944139691056606269280155001083189006452382052503249156257157451144467173798389420257817644993840700875413834044307166725861708385307776031662131453890071616120269726473568148163098806698032385065010943771440925632621414275970562236028822425803008747457313127909011309775658435381645338464809098593653834438568276794258704672432620173781696064390418914623376857778289651661245988743607599128419892768360870669024763125485834212019496551195019231792832330663045139300219629840710845506964658949588435867355686301808652887735797667279636459538191657508199472574135152882381887468184377429319269968513010931606988896790889980059120443317175178771138444599179829105550760852670961749193998914333727901565594656628525860827904385744603979296490556308602838468563112213362240405453045086577823562375843764223847960109541808280751385170866144248184291206232120717672021972211036983802230500069349575108503000546247697802357081636435877795733116636134456513960617982860764604351247694695503837380293697302150520261776291308263738519634156051190206035259403699365084953990643403721216920529120978823342362169997854826013683776829168126498141957360516745117416432032837654991411910228086918959848684706565112635099851106262410471364983974457700405838584144307806417066625514447140595952956540870408802405041241582626709619754649642412613978602124910542875023551484665888120905799113013282210366979535478506040625793425091638024508933280280042103315303917889591004047007349363344320302410834997216637880073733819526523815630339250387371084262620757904871750210801243028490006626457906583224857010448606933460398701067282247218346122124780329725709770717370924727466899914309797149783844787370375392261403363742258378021960328427027968851195832697994067883109107181642976669997036117587451155401072207819653611307058614173856897231598280355989083484422508081108321154949249239813064602790958580161017656418329964553658015617902048150902063837955181476638188357725659930660318711819734102742589563783416397715695472307322046425121436174973944540378319499852319362453303023839564273448251013931457570020474238364677913716931303226758216746308983919456809080912674813940384844887877273621854323717768803861078713091072165650753136816299599403916954495049557260519924886187921527199933267214586528436384757441141783924669220814891476100974151051576891431241373335469707426692447649175841599467892436728105694753765099356471287297876027802907819763497245404914593410231810256508584025226212482620079591882477413794244214735784363191338957148899819958360236169383674772187649332618707749169767220042564956613659352657277357450264560930082731119684254977155634799258894817892046216522058385554181327881954905812679925751062586889833043120279849699287817902471983881033187359181419746423997403997558485803667641079566968489976596577377869692586782002322915373059276553772739657648863381198342431681529758566011336526935880166895776289855664097581063360695349525398985745136979092517422235641847800831845993493226180789057628898672526092757237051613785233860686785873272397931595689062446556548907290119612333958777879953603765531232904075740002798860068705447310091340158639082943000985595797966343241860611665092835265972620157199526018813017856615963590512042052777936625056509208062471384136459498312504324710691456755007062986151759470882334695737327646889092758364499237838400544070496302018692255355479370430215751307885830913882157351246660179985021537189858884807613379978447661682907842310202609975458787294909702965115052233556684313745274756486836359113415195281149404883978227934512086836310396233338260799884559004187342449671982489226439808592152737190897427332955170842359877470987309168040469381789874546890949067596377862795263982924874570408201022211659288999375551683115913625507085124010167542304811558467825285466542826445915609131817144474026013597084852731633545863977466861099503813558882732169544820365252824835477005282044073714515807351281409455418328510533942656546287205362792860838431218850562577208971097786985324206197523326741372148225232359882795907304366142076512209151072012897612548462910819649779307897896507212473333450744418556424481403973737550896823724233516505874491168920237472181306126406260969485887190763791661428045487786753274528580893001732983932741774362554336796595813969742782340345054553502952450966145359073271408318668535771535559761002808144730376189821118892207795909705220725088345361329638274919624872409794644630972983876372536966095002236385389684387761958617402018590191806879451568975822266518129220830324048358610358322445667951786891979864435464643389491418509497677933692796050072911705736716464668172429971252860668898861914120723473973541848432331161002567398621853883106812733237043978838876744786389878129499417536004054874812847562916016265577093575824060146278321208593354417606616612642965330880102769040796357424071328908383658933686405197982827083768061411299172910064724600590370334204164614764592215341824429026250651227055498366662480727439314968351328474461161050325595378425407932963586106348990150004874830683510487125290703920368817934482065819383492665832188998942870994422214959947649137938911306755160234452371497919807832499888108236315356294212814529112458554866012118848325061754395732306810085488020945704573490733965467059829673151444648599692576125784202164363498689998339642887958397588297023266271524380207240050564664904570384709046035021062869516394979328155476334914605517469799155250366186565565809011749845960052165854937421172910834660394023627637699814116080846157539997489223288535165961153667235881171129401353920078415322116199906834777293753602619614822965910672781117038329243111711328934035564012042259632014725473960378334621099454993177910723103443918880295561144679577173718206273165594909728027394505193648102117881922903565200178571172958936511928003643922952504351449498340432952446411094472193022125874579861959406473464187145356790907546416922797413312363561512360300119657854197757709749874934853776719503287163440198910416952266030191893240350240172040670486364679499391398227979308141659544204347924269452875575844236325017349091981174345888193727066026848801203833556437370308107226001862372783942914920693529402508054279285185604757804933099098918964703114683868934838347739527803876851484621396185943294581305613163779695601516774581868051751845303237712879608834667713686609791282228642711464811683796232967859101512186986700575456085262295641621520793241720200599423352562328492545328954734117606423806255649811483349494918053696024829571289179092601250948655321349472409911659622654704006244671069411476426040561613870556956406556906935443643255054082473166375478840456548178053444745256085384637403552790288472093357328874166878437001349256839553809967215003937461695277219149880582870556442715591735568682463030345203321009525246038298072297869250466400017285406632637549630294955605154902841719637850402858013452252747811807148239790414795934649702654758668990720384236226815975666884920163429733001877076550991538109538498299630397025730662567872022268746147496709309939685950702800128197157703184250349306108671541520041759541397454758755198628302976291153228410115053979188664319396034983368791931865195027523403274756395458686768827375036133044421865006123071996839399595189835408712765732547645252521603055714752969746700094988520162982281822500932113859733594983488159976574413808115184837723382597182450779364610539632386618156480962122038577673721560718565569879356729687167629302657322847525165694633331605052045272940247058105200756301957254721741942336300797376816989429883215043201505090772651331724355142383952731275291561013492744669697190564032821600464473635112256889216698239417294473738607508878164316337588357959277238592939561811448990501508559883944287034903954533882678572263971645594489475151137733748516993256525940045583492570613463704699579183792642869075613749476919993504973325308040574339477305136422229416956327041090774603588561856286928658484630797336489949608026027488886110194022332100487482601509098844600895549198517501931217413588629478553442820014940074178281742411768835827956758679784218605298113840595876962743250859622246418910383533935448154970997426896541032464489369885461783747775158213336695732482796652810392132765684570079383046890740965403581290752601921294324164366253294989148056369460132705653240803689448385899208011426208105537362250813995265875633279826302216875995086329264213701129522957754860408063253673353955244347531371715397537892757153655355701261047441631945964558219846515330553299023467855406299730688489979626779000500277567078948709230183217435101902377630560005536318964253085357954642884249133540146160977050737154676673951011063983672048148405122528441737106265399104339293804890429569121581598037775144864504038248026087757667572124576120076868190851762136046494635548290366873469146071824219614122890989221820951226522341732244656436683763570888381751447538465206561741325736325419316676929805665130739762972629627278616931427579723881406329836543815817802178979149438138292813198520023682550691210149563401177512822270839302919277825806244490173677799893138970075691776119426309068575980004072893179204966201456556024883387642208163168406795244942937171451967932506824511304157893446613233706300429548036668021541133915752226760053039150489616781497832919726792753010267371162284778379703699773302536264310492294352741616027745853226824962492185014797073328696936901601016968838041469773534614665490140824513542336085527393469016093269643068124855140823947241784321347984343273910604612344797820788842066979372661368403541178373812694144560198473095035835028337631114487376348339887549842382442237908102305808877872857781406397605342470838043759175818994141903589451922674780472318056359759383221224531508889839755189177195651093100352553733198653967027429772099515218036696636181021007517469365439716001709413264367474124118324590335508486297018826733157793569084077131148717631941269155479353293832025682187142803644072250106015625289729873141129628635827760338314796337565803744691664734721428960820012485784049109436733606656996855365953274551458670882338225147073343495776812468097609045916915938948344665257619033301034301736034841198751294797692092596353639697739598177622179991907225712975750768551260290548071861050881860889202440513818650241450062843647192688128370413325350064392174481880239978579839320284439272279305728958615605898136250615229132621098082381450147486947343651218675072142585510894070614317185849316275950084806479536750567142142430651350558337501471956748360797400276184819282753631638943199738396910473414842379018134975256168732653611618705716550455483858025844266951170068050164988188314270712725033504711426392733033508248466298401745075588285863398243413692523705812985396782399579976677897890081460285448674210622525508362310865922199349225722742207545635740405182534992533041523113499333690948529111794177456427627029777340753512673938093048616168161995053095502474292333815769151174591630508435135725930749178744848352643320971617766113492511186027126051760240751401888644431069667495695410229496616277252256689025320967840464834020006868059948747384682056878494847132881709191172931491485180301952515061379119471076200628141637564898300552014815028073275145170249251899039503377954386548114963950233351527053550735159743351737979969909110941198265485494997302657357882304496136398209740762336841329128839558317619706790963427254868015322027912498671590635851252072045345887471203394918078261339179562158608474029706373040976151638702721693946849095473018099728651673283560292170825363198465411320912733455467451239297069582392790174369626336453441977127943934083878047507385005316496375929675921028556808030810624337113611714909840635396995499201392048492072141689718221510627029584143296464701494338817294896073308219703270763482563877712985256489613971224648143599325289543804276531162276155712747432418276263938127189534203143700197035042819707308632601466356808659364695141645910157384525123432037135512951483148455381449158538888394833256572573516167324385024037367265875740742728779294314729971073135972558605684131731744794473132849614193106371077983010787053296935504827103395224626166167211672895953448502022836057358910617615922619484509974245228844054471569927855716063484100069334035446233755673593400425028713735767326371087539019750193938029568318185880561189665525818884183046133590151199342323320074686043039003297680600445841193717035523778834237188946970052104819649409875481794456503779659046357148235640370216556468254409742163218987080804173237654078567169589421543039745520718332776416824505823381830614066059186474639969898729642394823345026826087514938844443226719771838220263914114425158324246892803512040990072517187257380737895427083809109818094488541262939323173760716217917522973584241943272268806729321306368106042007788310797073964398267459079114656769601545314699146741007192308718618387059352585696258814357312564057654050566082812611633883200089359451627404124306175130844761622371749860591999712179864065664842830769559845639850972668653411681515025118617649373738522613995471383277227078510073823986529865126516548533457160356410104295439693703963948664654674359890251414282106249312011340531015031881788396712851262105870534637316730606881686331567463250119388107253109589317184373723187069998334049013884940432713323172086978578689796008249177776008072336139869506924108231823258606082123817102205993813908355438683283886913013140274100652159325339494253492717455136062041591833656947966700833687122578137880584672306925238010617265738535560583182697000119912004799508402289534501765313118418203291546985934837361972735032541360415908520041221486383826939493780339261132086056773977774101264730984068892761724050974503557076453656664336754415107658468635121285462870234150547372827827544521371580725691337635297318749663915482821078023268850654318386287531258750124223019408559548685274776058880008186730842062089063778994931810820876833925652002073553694433537442083276885176428897944899066461391661236534568926588887179628541013324866882343519731908411578167087609495683642400522177087718253520870915374408668787614778720551925677698222997644431589275064559428243724025159170888261730439606757985233754381282990230372800806653042162445519215637188458266701776867114980002221575412397160531916355943984264950251071998679488534563477887976187198274701759867244155398218217773129742178036383035553781530536423822891644689116115826141268809487838520135156320427913089524801784471606359168630943320638638717985785350401487669426741231506126813843288041255234976182751409978045976973394687730053460889553590237685953434833356307773400654469609210789218397513967071477947491245868722003106465840479181559284325601200824923949790548131720819386218831775120119898355694405466435301210395103289736548547576678235276931273607186613680853118125980589978451516536398521122668998420935700414417357661440435157736146214921191553005183818954286581658317666853128111861950974691962866523543831211402043209779587115005663645442860713549575013192750240212223803944689002829927336604364453843663215012502231125994798023456601937678531813461678356442098535794736387108821479975959982884108673164944992637173660668027215802787577228598018646774921480800142116577571550111536967098713641900598622968444824869975048517698478863221914378006574398929782547927486428228026597514352966955455898130282220509845272551761909808118297980032219963149581029262954418841439742370298180005854236689365183708463082918110744811264759319546978092637008545717122499535912447144263051945376716124747084249309683950562102041525984236570591502464114814014143969487561659207252493211858867858362138481285005175196995244018357843962656358847242030295417433837636154422994630652509755770951358270266648452639900013223226172572079338247814424098673871293888224439159266471874623698509027439488736190720137790431687978527479087173192655621134068121830412989064572982251110378330710440537069257598999283754710758969621578275928383792776171367641172770631067157463510876589941350059579998909094230675297371921894537593132885047454379311667365770518629062146194132376321493560621777279832648568106849158420439890640706506465382702282203905641260395366917143650023176977816359771276795815350612676336999065797393156572042566191715156407447709348733570596615159712802107938582140846996648098274398220855289423182024387541471900087275466558285591654350357133191120555605557040573856341502062852073158740065017440641639279834749933748671292965872902297754274079196401914886867738827051757925772464208876344131507119539997854981282575389685902092495167926306319641006514283657029581328439201790749946669965629245503081640014790328562087796117040819799899404279107984209296323546608361464725914774127928144493915817132447697162754714241255923865729344557586910002349369662657641743150598350077486775309696317804200899618813620370261253698930293560131947976227592257060707397249690839422658214670937149538703724866170385397236868946819571589367741341538876294191865146725886821126533781344780572540881673719351352785541454907078219716584915660910666747298013050170285498669019168367752104332342714805181053940982410381397158431323985538339555773488762422943611186368835213079483487988790516942454183422909721594288093681737603377999118394921057817224547896845659215502080206284015306563658187895556431249697071670889175378861546625961634576624952356118193480448859120235040999449754175146418157499808858513835784193906504104084283462706199486499660458662974702975582387611560090119896995498581107913020391353974902470212506284556607439864330862167536711369172280280564715494695396115634297384126739025813827768426089435747073469964159614045751036457764534217053869977870339849254146068539859274588321278937428224814870525432221588073272290367363346544897131413219949198916009024152973800952407675385679815924415289525132789045584619086572551380990843970620679055975263334219832817843025151455158873101429808364516625465536469217899262979082247412435007304498767008310108627336418325204838290207533620283518778797894422425924139836425319548238871864106187319410465384085905646610362047617220434738484681256006509390274436690172601246330784147354721797800522401999549969610905344775048355178644970688319762719272577495127842170980045325066193057466537892357866937824891787727364543789552773271207055731367549071101738663378348856127347072502935076913130922226572677452182246743693066962511041672427331806384513009103839029294374619547571099306995680501359928522146325529266668826632070297610800584863401895227503551884273128225184486875770152572234238029671957345228700177841832820287096397318324944685215144132108096226113960256522377488745259456003338192531632713799651001996229521296611701192308131630769783988472924064628122745594132256917519836072701293727315861995507296876372700471007173585559122955621903152511535704861942564574847620465223635355471566282959458269071535336134954878600798637498145692544410493950485734021342822844625590948434577311579822118699082473204734110760249907128700921790951809606867530765764130547126208275709792454077745344342138330609061868307462327809904235309718972776009987547160156892192180944880663476218641276865362243290942954130218970472195388410128878999742863327649308130256174980702502307668398944321661825160809264775166963296169135986926755478321271151604693447188861404535267790749727026103020646573058282108876444092640388848429126617283279310071505767526313326477964981958641952238689953848991214911181621359533965878470048821954476852234049950176628530659610439782926743114408175684297860246101782140905380990135253438388066650500440919775815293576038452605574675828111405415309439408774245051645349661651236011973616490733024742251480447186930701033241887485255844650888215287286897766497312502589064745090246731326153059520352060018340308495623307530623333067904621408350764201548188825073227054084521481982932433519536328766711916258539067769768105554092678756915164097581583764837913121639729312026061839340821325639001054197955152797817062786827808804311398341400473201459824049042037928548024129477275671337784824278860811098543714777294958031121240648785430047521695149461791822349514031106364748240908103826455308998654300970361181141852792821944708566308798668197278066564084643055331636111411378289754043915381316059454600507583547279990666772385739560929920530183612604849598474552030663217339466716922440815087073981692996390254934804133044679462968679062921970242687968140725853268556006453230793230756810258693611018480113484990296894331730451456429257942941061405961343631553424451928077904700082980179686052967877732934692431591413263383709881700026805441954519333956961390473676393073907504353826949537146440396630797546980325097418128812898386371317719241747537060149844242477899643152768722502027445607666521396254651614042733289487820549915877398560114443905621153126057986406457518880739872404933218766655789137610493908814763726243042337584339774455688936253687943083641649487910252336933769594751596992039425556473679868377624450767419967894763678738864192983195468452060560624376175081216687615537368911588194859025573390591979264439441809845755472561848693289392506948697804286018390514585400477569568978534332999427604768511820755634022549415259963931314540482872548438540970960359593246606423304797052043005980107308739494473450044485284454004305607765864434290413252374401506397090993565868068977541074248928113761241603284865681310903624388296131791270649682535884326744683390313274119959756872685812801607179426010117230486295667971264427168174773983057507481287530705344987181725988661798592683635676413385394049767874758135312270505034985870482853327197866523589788446102451912897306362332335559805869691660272780781577102985946641186559856308501167121878689643227632931666640176869966909510133958243814219167912764590624572784204524105428047626771579339598942116615196968443532544476844179334907157659802886580732351345404886380562487198182840804016113231455423901805680934103213420332355740920941377119478639731368606404697005595425426412965905258698849444589938840408796012374635232015479108993166382508711463828413785880224574307396579319696623267587856299444566649749668276613795801396462472184807091251909009363374670254381064278303851332509775448914629360565874774748298349780129626788881996077621913935590468818900167293570608130782733063962480212329597380110061696704965211055450592631203050237535607278748511596102956036923255732930679977919136094623623157275665823410981366714992314365583847650654946743875638663239130487368616998640037145725298242830678258207009374806729942530512368043706718373194409385598983652640987840441145893514021940705158248924239681748305974385933611835150399686074497761443137170906902774869021296839909429071834853051698857836743566397085850115665995343725990855787912936719425141756967635711835033172789738277566877465249908547008012123346259616887085541788606529537686566396990788992984231414311348096055089120369266122668306007062957765312380527267011423146409661474813790993403903347213190172059213491028369884056161938603501462721401783393476163687121513163553927745692972207908751997294050418741505976253605047979690750711017575335567511665358030103687277944283015512986960311787672596530519424709223390962747707475275628431625046623228159248452640523427153944027574886665039107437390728945457233579879933709244881490861890362637106817606857313995857102318635954968909598660482508805267276445914954769583942726336146861152318565259869090835390360408112785253328797512835580439421723099152201650953795093647577139949158049214825517552235393535778003474445161503147043753113620044628396871198642504504189008982454128088333981689792307711173082459716456730363376002866895468075858162006781562777618123654195076680801838811599474826817299726990840596565065395962157204615859199526888071662601577938847631235144958302682964315500422780287994062954863216984007946822158063331720902801688075529984640512960341892539617231920596699192899442568133548890745671563297913146925831401820894428894382844403359311293676234844622218091887595485076421934743518697676493327341788671728375541893342660568351519827962768632881047701564421148861314211991291540358374904369913641164615048956963898194575578741788297026486722917149491572916474042142616238117478507938532727643230395505574403864313955922967026414499288530239621968680474043786362562385274512361914343526701012228160163520057944104888905445720670663487011405329692916430604053881186219665868431429682227928789908798092853456254870753366464393676836630043938592386378545418062058736331285764523678524375837205240513300875396276019452898256924887031968749578102206695273152687912159406409036274958367845631814923984350637540281580399376927827311824869881493126166905173364235665646956608358527759858673241408577185260680672188647889698761119944064928527905504596300868941746163376021243268275852865261857745307920673834395555212245226194084870455450897145528731233132504334230581137355856046745234283319558769836276022309865581499731526586655464290773523185111799055570350508120426942735200574860184284769807812641552770213144072963162903351101733416188261062992754030212684748586367986263606063199158651845908611830487696786252656747247242570653904334694789136037077087064009124248402432919872806024194993586532654989112047988070722308940938016468105343104051849288690714931182286092836797804180333881537071233519040597617345854115123278145281788562855121114204732824949774155291981397455946772505788944346436774525698484844140522262508513431696442402059527943443434034013916078439864694622004958449263126186676608976133381840560325890996685295977097108013133772742659848609420094119158280806930114451957577149166439102977793397047647517868219770852526551250664459517765857419367299650311977486791652574538368917496663816446853839468764214625659313842141082813068829711514486377052455814066634387964622481682473369739279734181080256196711504304340742302768706278813140274118543887839273880443829264567174964872478905833316209093323735527920828686424526077859030818247273846542607997903645715482593459145281811411203415155828636970664195480486525499338530784870244492683345435709116595681768465599179508742321506206798787914866873161690090208201717553384736964132148914346784307372626280122708899125659751220076496917073533816309563037875575439787064985268199031642029027477877051207604518934410427415193521665640651886119616993882089115105783323509613793714609821904307774902884152295986186130630759149185698660930673175731193437378956791837847797247481914681550346213592708956558706075155367789628443659330242985221185026874595932945003268748714515317991028981662418068044596270785282241797764800685393011188518329258990633882505259752403719047461905293084242088695256488908183761663697918597752034930709530299310435999125258677559022325428128955817308533763701891626401594527827257245862531356901700037080736758725072502469862784239739331482663480824328947071851795508777406487211871746767036127700858746116533469021792354495467051940746968459401393539876960405105342678776451646234715922603637786414615806419829904497884264429950106067071173768546178344851562026587951482508371108187783411598287506586313235272460723226660705993573703449156078678627475834982514800735428371052119803656643325675119329152607293697509772956138312995916815894549965741992256416132815661573621585015384837293429574236791739392729780357852708062180649707905525479625934161341799312934899603706302423324760795675652465940961367593871814709038383970403492587244759196465129488149703709503902042563239600049530455209654422212044526093012748726851865624491347666312694357366579533216314960504719034879011918268914657046882329506854371952132711821433675856194226087572282480846222428588699339368052924961527409815194694930400609425144463601419393931786929119217242846030635453007693355837194232966856249229280731505263282783084373323575826354420794234165445034237625760840083855412553713056517777769354895962411427604930133712051198646846928469746231284725734026378336455707580197613801767779602740755490362680029690270923872334987015867021647391187177001871084263269857951274091168247335396601331943975769925893942805383859182371002068338842487521266759831572296778040503329701314251858339768521379092789817114880313042132855533160239972947546543207753977341753384499844047858281694940726523388983585521867925370965932539296426363636645999837565493401468202566865013502204425486598048654531967128264909038282304788724022869942512273150308726677774775142473793117917969944527176326914707235432050220675790651636569049698840958236859760921840032093451190570731272278539589068926887062012464555273588545611493073782191139830001499118185186634432241215341117500464723557526053579060930137458272871012412939252175141637185671701278726173220997414255067739046025410718212634162049155669234632120651455850118040642515877337611692801656155369658353831095341966936686843939392268570713628410075083811019590226717331633400321488229433556626866154034172735027297300450271902028062092241311978809104262029731831064557153227857836486364571509148727689791716288247593580191725301812103601417362978214292484159120284354186335438606031385657068315077609349656194400336235380103023312973602765720276637042514201261393092703448381578099518993668847485329436602532173049199087942512330782287948980891494543725603323715474233640653550497691390021631645122822008751029842471488334781506800390437214879242354927237924979353985881344267791960922226033253499047959176308398297206367828304256127021290927213426509421587064146000506172353121701290813738147909496018078068688197578856531302311674753326724816464561812969316697672272718285061159069789249915929219214227496883115522926432151036621662930663548329911190455825480970783324619394114653313938926038650751105282474965863557254283195463653353488577915004868177205103847563015202270201071597231121860895371924880997559461786977409500827765480350076566466734703876652608817417935969788755301966223402924558244563000703190962626790553434748742067413664359187380954913719719032660222298068113246899572098835828223372095561207168758362947448669107789348644011969472539466114076939250873904920310155854250461902791811184477560382454875263992141843787396265193560334443991365230322932184475595436125254653222174987468187807461781702587499061072422571436051879689945233680528332554723818664431886998286398812532808778374592439299500177062673003675695027657298262716671510571989298098603983204303003703696749302790371292477600514002068864391087047079023667215430546476102500587328574631499694006434632412746894705081666258238520046875166185206871309662879740472615810774410441179691323139430147637486316612605226715766205367714067141891345131878595860356686928280387487660560512343743838937361444677712335037130177039550477046231015752074344760769941711726557839629458532879340439195939429061193795110236925731848397251741551771109570222200551868650052821425686401028605556261021503738879423351797317763498599317608122955473721231942610843973551423140228913616727028424565072685174213695658704321427646097193880116810620308799778212344402406627146737161653461572529723677997868917407832623128866637708154943369094066633102797780022730141662690988348602481865955215781090225382079354708381111197981393128524095028242730321615618580850070927760444447506497262270205075772975930618925446877223862885236505190351591119069192144646342804535549691136735241115278236895653200865036317548574573184676706140210572422396506605586766970785865734598131894287897717737494123545905300671891266599565443381120513748259049599882402151409780396406790128079621215866398497262266085424900278703229929038763876432091695754907247390382472234751258927024540235862167321636737747572359478990105320474824306538707018609112117646433186302297408783255482520097693228489409084233141844875531067520346992598424565416359811918356397310950618325167766158901276229815806301644237615630920040724195301989440581699800454985316854468461948748995669859127537784036877096939849699952557177626842797978874538709654526730359959801465406744938809679851498069802461013294088682811521670653781300673471689253836933887783801325603256949284608426277929196215738456850541941390042243994636590603997898808100157445045840068578357504864364373054281436893014884862399949054924646649882096810805869924747586552422729845095831145092613198192590520256633347051507229160083731362816414524961410291809933646218926691388695244319022259280727797407454679008931672432304651900591121377775822679604962765146347952114060547826504702722214090281965199180817139762088097782825717852434543433650898606026033130310298667701407940593672620991987950136298082954000162775288128015917193040401340690435053425806334313391195025828721646602487803903049123946985391527643353102738993189175384140473586112685931224569565815342174612615186915333276744766778516698071719343932220310951004535113777124937567073205916171572479519791297512493684233560582512010937893411172211763113773149722342658847192943540721817311420464769090240465533078140231292733065022076448749919261421028600779773493709602602297079658977645611879912090702203494744968185215368405073318536744279530236406970554226882374293973689928592022943219589730949944235441489577188378456960320758651351875508235496650471844300768061899556748730894667195997063950896915333977629421488570994136841619961840341540408241784574437735952461157875944839607941212623759749390824745865486081459911784341640014728225122888230271690470513749817832475315159676726606923168355210490870965605403833040387593806461443099402244057943120798708597776229138236877230697996443524460301437575235346805885316415942120482517235783840336177188118414295377423836925810263806425238119007236499839991444600543321221613470817941890084605758348419486550818647867762476320799360050558941566960973764211619759122899333144240227413801318080923796784227058435276250410514039887266900169378353174118369900310482654953928884502366545851167323211333222730868552159735883885867866312331945027602715408958509288591130671744344445805677458734608549116527498663625917275017152094594259650771258073737617767193267247063390949983096781675927009329037663190759973345922805446766670314207904322745169115708037632053737929753551709757322266099319495317657241765467632277264077051652576683573310346436914818344002451743210516742502004806983290230015741902452533984324440065490580630530375462079448625839027196263825168865550758270455781355043900558343459015201825487279569425460834035738436156163047924467271452221748204068807335755340576359681493844533011375409837986790896522984229538161913609358704735451745567764400358467746190084232041430353665110485357975423717088870055546101501436028351539384632177226488513923695412835637524301474341706757149441186298496668204931618851559000441208255716742027651397707571269267159355274015306554448655412831574089927957110563355271238193624857497926726883125671452788493154196565352230873583655777945098808980785429766806524689674890957019569278764943279542598915958300667829716724209864572156060772367752961944238903279166564489917993794843595372301574445954763651228223637396608181194989426224229601075646294562163250103586756438362851162329972869445931227322431791079538061930315781071016801740202201956789615531645344793666240008290183731890583419953796392779965237198460995208987678848854349193644999520440331915317384189631740357042754732919086848782038031886388409071683880153290325770855487647009852323487017548908104612740569530373890892664486467404886207279483957559679311335184173348345389539785233479653662898998468199339342092443291856620849907490504210438439231790924745025172423879326789257870360488599417941982279432748633690819947867159801374732240682197371660700481440786737006266654773600685807965370929623664794879000754909963730174618156113821779312270981080680806518567259755981594897088994569634584217415275789014895403888937681870518856967930109728550264826423449105019922947093310457298957673497485852219691626692997501119126489499770659312657125732610679920325558716398419455703707948499510885917805717100782217061633458154832433979330963026969091150830679725265880545861737187806058149586588531691295518005285131875220330633473956967211206667386334395986894107714027667144485816492158637400303868092375225593440941366482059999818931195613455266159591879470486558061286160704053938800107206204216442475385692456022738101918030429369333818445538267314466779283294801526902635271295040951760354007799527771554888123468756481790008805538822457520017123882637896624016114952169376867820146852191359797218916236090614567483023646626893511086514416373668489140634691620984315955316190504772599383901406507974168153964393339016865898775752457441307038745515546538808421906091928716493901905848144655502121125822907269689284480358178971997589662167341822636549609000136226009964755488043686879939464748752444012866202980329336230425278947081919263725719199634865456102904490572331847201426867170771950534644523273477932766101802692483590532779520350952144244825658944744803951702445778879391149181087105512540072856350960934549034292209879549087985336604688424684423941406157267715561360074464300906883238170417591418820122178183071557703622370509565265183400360949817026786901935115687040421716971018505891985036750504183931342003599867354818185477504060722540902360306884226700400603909746784086245653450207110576739380424185292586494212555527768362312600341886728901038380807585921996073440773773701502528824319791671134734352757109099530923783948402600517484030717430989045967798587757851799533117528559496749568755499070556553727283351480619701208647766593101476414864277031742484283889709369206306759951609640136329266492892889233704878130161951600635336860425414412930970067118583011680478131182592478835173468839558207383654929226465724697230355012617403172244727633648429644016958285717784827691091147792253854828544822229025065760510537680487389487131275494906279337180759362545631476999106700254119380346281014484323999387568894951438769234950108346187926462994375454254873260949466031582033978154671033051775658517387290535951050875443644514260152299935711332764596577955021898460534557595430436450610999345016429141430751166597261883563464476205773520971044152312807325903693832877107491040178395680238951302704563807849179161110523047652152689992240908074159110510716699691416809932546486354444418270400396924529511358305220470145301444097872151948103489108988506647831481517080958033918186450143986904651888073631822722470803322303501838719206396907035514192115319927614138703073429703897973190289583822580103039035044057521374763783447015061389075155397713074823602568584344539239958112454901584321361123641635150547271984731976218814070435062084048530990323776092717334734957247729910427357027217088147749793626188988733251119956834335718724267410318646070663301906269779545973239604839430116346704428127619852256711929538102829868867713440839211626209504599656293533935569102589511915188980946327105785165331444734509140108971471884900858149309291297377043247817229012129465913871565382390028120842287675447506107458097754325937761412275014548837194484976571258491147790923974664927994298683503485852594265492396874019950616842789576111602184391275100370839201048174079621382258595014982563479628789688631798924140719481450261896258002668198746537443085073307585226939569974241393228085914249034622441433312798411982067950354661398515897767358521947016577977971212236672314080228891028020970165015069622559182490154605243627342192572383315793081796907120574666998450152803022909637827536131916788778733840244964723736563409770629909528911267168919226187130947268079244808444292518051835993378560533346700312502660115552313366995096088148952917946931583218761914300502537699313635381113468359787056617473023518476152321767520253168092420262739870704556607142201338451160853432316527948434708340444843084700389280718933742743567088595619817117405564309078023181327383805937067233041103023246765673006384703787926308034311478881827415432236365190630579208004303278700337764771022288804178873140757141077336580063155675787243690697475152053903208753704196854317140437843205191436474025823653462536753895943842696240916042632070304790465202958719112633761009097985549799374988442594384062449584808906947927395970356418421633913240016755409686649825754758748703651549804401961016275110565395914841807309882662606568798556080888281700789901098992690930297987436126261593465622032606457141905260530716194674950313993453942881411649133584026978624061100233557192092622418698971590695889256379088411356131810489739722434882403917897068692173916372754323378198045035733039716240681137537065704597977979217180662274977534923696265921017706095529278615949453962198709930168085390519753334996715086476134829886174475295327611597836350869628341174756190130904167407041255161231030196815483257826172790279836004221886201959873855456110276008074259004739184137985970101770824294778532544853951811705930967528532235445842996375630515093798896881157620706723548663013306084854218801979331536768602565029561232359788624519769787928732611183448101777124754841717319417883893611298787070004059579784721954004362452659500041437940991650645912874699399339414296670037852836827460536439398989053455130770132145096247216236414609074580141120731950265967366646715505789395069435622046621683442650949676682374887592462592887397679363378441961800216135884778199203902772329940629285190810953850030297020669979125664703001774420018602720877637095498204042384271874905025962211529058725360162823521607230148691288825570042923988921737300170085915992636762815150721851051119461621028058948356241682619367988821624413122600871485030664220317520403163515269376449558517863644694492498703835712124533651293774220971443847592393473981635092903863482104455167118689769834248924597784284373739813230523947282326659657816147287346027786093283215749046026941405834296246762244415773950753299245219510356463404241249989455537676582067821066125222207794088149180677189862545985911650389123766112136031882909504178468098773745820711564047833995467312288717819576694237467195327338688330200910571709621826010935608556230383326010878271461358087617683141813196847376886282321977145432860228112551455737683817740065598527024976651177770555080219830654554615862956479053098807841024634711133180647839327321202126615361159214686647290743098539365500451316783784123880028013504371078700412619074712281656484726113713761562068490083504451467117781175769068867240921110699896711525918586286007655564046490945183913210694770848078766811354604727824872629160246258948101361849336071405532464223191259487647881175166135905881072830742280982680389566863613251617524108622986819103356102235432542981294756228525275168996354893542912692770620171423147132686191105788456319591599626212516901824365334199418963601823453869912850553965664070964538569520341846512132264960877279687147849954946819418079065987582346218392296738519369473901615849621252182700138536045099318468104859271407011743728630449702413081249816877173191129398931595644448775410080686519063786629733784333652776953935464342615658062241230936542319248342960977349122685480863227630186033610827616239879873015344562760049486497323440940325183580839675280217812559028215422586895205968563451123572708874924324901956198700150977963673519542779224039095150747727603314335649437578517500116193537349722929311028600636523250756293037511197855733820729970599677271925798209399065622815501905926745636723097919499675415000268672596185388604459771491873321889816076167777877442308687374777451352253798602968765675401726908872318746069207539013461405822056969496523146195214040560947876640470293888322522006507061348414314914473885936438492140431688445017393178534252627551835490927053429156740008106257006394261554544011324372485605345023492119434886151239126275989258035512396705846423195327406724113383268722688024886439904839058510086288028732735379777577471278775756386468177955351133488775213141181880017936104137293907262048959370467863021186237320507478432957800874029193193840581843324990381387470639744618642518293042002854491619418529131541689168040704350695401739352027939587445500862631814994133086235539053591189446631059832911360602271763521811820886986705389913892934626409165962183778811711503493208711081093474795553787246946347297223538720634055699613686496382802692101717358480148111413010428814103806842120599577464406461992335235623317588478185890533008025067704956229665032854112445843588547139499169584352472855523997208893078054865350264319721664774772507013002671189997329694607461925442003410919172481319602035637482570991636007374510773978633440809706571518629175478685316106065623471482323179591967886710483670385990748459508401414270110656060385502341837619362016698977410989147808322838260328846419044297021391407674252412353439355398656839314241107226870068419114940618506663169599324502952757126248090959773588549235706154467480959887482187886717214065219780366857129968699256903090780590282778015524515880299907830036919935231563975891059142555335098551891768185477914126448834936026511448464652107277564705075988805260464552600203363195505526235021989508826503870557625742942682191682560539806861694337906167456747957497488609174944761517005832078000101400223937087276454839787227422069991646560147136599112905588408095036241980371337684467079410093389738482684450431293543796627937011725011955141617907293395718763301361755053730401241258360443437883843965324815398739601650469610099032906842043282795960819458934797963288516530411008825840662511719181361853636622295343934659375555381923380328206097746908804787814836732738483017227691506250400261604515549985132814261731248620717861546657577218857446337854536214452644624129193867433793375703753834808768741414323567787327984571467790197316615983526110702737631107351761285203157032541248706617586586757269187661114919773594233496882298083763840078100427788049017047309295619259699290460233313445320223696917196845096037323180454302510250935138808176328298331886597789100478225497451615474293943509748485613645501110669498195490550216093296042898120283916511456182020087256861044380441196432760197026726533340960135451778618550516446073530201115976766915106841391964589655233880593102845243646174991089447833035935206475698578599335449070011963264695713308827493254196277708272540168635139908451869344295207464725061481628908360534033580481780097163703936936429708037898214316856395404960302447616921275541591980635953536590082537877093919510121199290747286795748996097788370401161560284844655317213041961769180213712040926495651168375209707689980033000876321791242415722907491812247109954171992875770065203618508144762523686906153180657458784447177935242300041086032956442270849206404952020870120548574003789172361525613357855152259217227820898326063882964144804261353535252533117919699984230133787621293729448088427108046414365167852168193710108427502166846033159359741335583846500093281116125339529550063906075855846979780402187994480813811592828221851150998121743853917910107546673557201508306116758489336864793443245167058513837062722384683144113986972232019476682863984322487656156030202475531776371171486145680858316524980632969114243418380417117138080439601580433035650090131814485643035125022765659037259530557998360497207675570279956058379272697751741970150888151906504017019280061980275964027635999236686986531977869095710781462230583721440867445931736941891567684233941680770861895041693308517787223306409558568571556965859081256140806288384342184130434609867065648517120860769050351282863295611470633816801328393789860183699070669921661290678315565323105883402160816188239335287905624035254099503552274104173582610271927223015632691884240026833301856650711276548446196699869317359848382632517611323309612857167186094213561512123388691479074393576284007742732097812823591061261955497761446553173793428858108406022937821782941896072677828175617981654885113074990206960827800495918058518082740721073582229139799029941218992730042536953787679536726282792754627115723014400264811499244220795509320318655577498787074193337908039866118069727757500585350005902622627732855965833440375391813407876291150359097422689635118259836369703828868878607349961078957150075482182163591128383175072431217895628823235706684147170210958822092278103686657106360882116457897978803091463884929964993963283965703964847053072839267596647122399256709448883017798185382222799785387391210885297081460265181521476225048525766707937084044783047231522552268305529415695591447216746511900418932568067066114336529418847588821669673248343083412209903295387489366581469033467170856387826558570436692297212619338704909295696827817948690305402374986628799356881688915186294781937880111469360032993005043201486331442477601049765714532266428719703427581414334863361243188394201400873840426106341230859809017948776578848501923494754868673312597634709745767523134015843553818768972474113774238343656958575335309915709561478232770552485127488744088937950361648179727312129757517261072249550240787978925151261890261222922317214447173807741612310630448339482523085363580655589813409963334181525031132773252833398483586895526349741958045446892421016271447190262508077164772563020043053718079755792392299452821751125944826507497816928510436632957693437021893679198553228159692066465018280258866371842819527687249948004569505022254222729280683014777471516885421329043016955834811658336421578581858637486480949902315332431790540470636561974919318078795023206560798635344153735500388601895027421917127903758633699320782637750109208792642243337813686603008084336309396581692634718635335367165847572776640339921661283930041358376345544860753004701850990507813900565245926507116538994243203251022575019913217200284832191325758501436177981956669768672338196384483161098560273484338414344996646342443279561816502551185187185701648190252337061174217859502694601223231530581982024716543200161580056712796190910092410014418904700838650878256627080668190115108974869268343166051022312495498759535297838926305097025817437904234730315576660086706700780919036343525997091830041209130694854176036975601077655353959735528548639717149754458787831728914503368476055278015887050034033587823627973700364190230689303306383075401689004845816941774106325376288655432511432305800507205044041647627153227871450582002459707733444629064865357746510685787483735749662143643933546620147957766537274909616886995483701220700977232042333022812949104217901984604210511273339012451999139168382093932105992644920885509813106610355387697192585683696699663059035375637027094904218896754447370279794389865518515042619452233694652827407090325096593861655761765398403601444083882503238379694277470562944331163087317197011753937449289399234527143476131853606496900631464334594619318364030070466173935105999369160128817892922994871959437726002390297344203623267794651293656568723009532203177078505893712122613449033336886268730175195530461566875753817463250581075602142001885776366356960516255757329367071498287228583782373292168236049737873001837279347254680951664409912212016978939658529054290924313520502891487804384358936931241003994062970138594064476161599878278614757765660914865105327801625347327302978917226403488045022032553484785665145147115232600930621803230748505936504931035917758911936365050938680413752205958283448175526883642896461414102363588449173560643092742493646922573066258034653931910818334047153963586148127038563913277313880934889072613952337053375194248616196072269076928391420209336097132898676033713758916161819351376130516264829748825758096198804101474072560446013859136901095662238167161326777736934035349408080900494944440882496812750151467356966770207246722469168607542570358161420858820904362010698101873191337676832882350622825963741126173445395261823910134482991237122705152147214640920585631683338297461968533199494321011475650113834041317591848500769046427065685223687530641128527287222885899686361705774354716534641212560970677304627985146315417948927317371663966369440664769678402029590736981870374951498069467043884527894431002079725937093095715692072305391942124779692855826530033568687171535695221023417772479456686290968129388337494129579270736468926679092477914752870378058395216616215318954348563292751497817846166261619187266106876358932562621840347981459174043874115013953450546808201352219401888512065517627221368707360839108940237587408425007943631342578821492950835360851532890199234119633197697946819452274309016603811919028548305900306120826155048344296042451150533071842403772909568287685502244608153069693688747518415304877653154035592268947044698225241284764309531383843447671672417693934347234198307202012291557157534359659320121459888852185483520995609040477606579880642317046834737856801583218229750282444876718265294601561590631091235132603804204802512212291447791809782090268861637332124985388084339001891951810170985705184601144609784945401043165920340684157259051146503775765125609365944112541226273607061198262015518724221116228653328764705772998550295973565864111659273213395305002299931888263158652819530511217207574396485249220630710832118308835354345700005689444551730162112531037015032445226328205307053467859571128458270676122358285706940088878915109879227177575260000812154321024068335025672253817594969285833702418881173933893730376288166328958261914036515292686636712852371208852919602402165636351944452198342710338097943240407597865012549529053755946372990558398900046489935822885718549740589618551323070512656872944789480140067323700395324269017808210578379894117190120748642021391758509405572596291661727801322465463219326577329205659737238048635025883594460568350672057338205978175377872047293029932585832518548287007401092937683745384261960376929548274981962963676519337880114770792907763368448129206038401803410899867336605709924342722205091602041208050568572681976502972738078557768500239509897962194032459249665578836981444044656036768129606432932748707363760098933830830478621077448523790034381182674810792618157261389306477594230168428738956552012508233581600817348001850142098949172593997649250006542807710787900188373019503780227888662379176263669549752044830337220545823572967089184886996425891688758406672255622777854038981670445749036653313294329353585235513341838985819773372995074901593007462229161720806747349559638766194188438032497048945852704935719197018745838262010096295999962928611132879129667345268463416480573135540724675608548018324362630423036498699037016303314381315801192620050999006674788910890695347976679849069723750573849220982519255507559907218249056175983576825983749194852104224361505995514070113277788766176851803243701084572829892421434020048917340355527091864046449437955607968525875489725695669350424665728155215291889133632807890611369347455294892486965689278195645042472290198621844235567033069662073647485651893582024939083358211208594623763811668182950720943255907717970684762164336849654036216536888836347995132438908939235875886278704112274269513376109519663183424932958855355885655040967876939040597716774077093979076773385224474649736594432766926363023918701790742277783670963304375037980452460255896975816197718423957840990000298746103995887557086168983643941873753780789260886592407036530595170223935300478202357689431262750049886833006093468581718886964446951290036355928600883181468071559951176955230074535843065947371453674528966713960558999306878982939324384435370980616564326278239227651969797095445522439650309590568610344570261332711435370910446622437612005992595959031170771560606723417233297773003903040708845929414466007843696426755566259739255038039167909948176975474498338389125405152767265684092999413390269230378578215827842469955786755291459028058609014971634943468361400361460532078157800936731302349124455857924590041169040149427926425691220781063632104855442703047546229404773113882819744426442161828256171027412448873782234121293589707215966413076164058270230877171389815527000976048469991646398784768672853336979398805233726778411061360709852165734845785113434756789200250797106364449690860329475731847250587733472472557284982529641015712387880919932387767238178607259500059594347441043010441767609890712448935528922861413282039204291939174309652343171882058665889146529036678986236626864362329893744935134295773787102034199040783892130558993169939093090046882617175707063752524699612666825908562412635862338557145413312971402726460688821849067692151341003663780314884833390507879642586580992811898695352548067433739307036533134164566562498904174267096564201706997789164599657736807502769296664747939867082197172839674393006337611576569966251096917780784948362126618529206727381429699827015980880337996373273583746451611583966425258284977771419493314928556045670326570867184217210695966759677440627396428023373183708971615388562704975356922868909141149451696340747542598981224039201197856909933071910394536781856960615675381155689927656307340724268769563813695212073881002759562947391547474367845326320329214151376091588299065788268525492689242245016178359940671090086702852870211322157363985802192445104279315495112100800246841163389708132116695435978161561871510143296363391794891642589443018046526694302746600162250975326736609397948091429659260739139763147079047720922859485843870393692660810251241735148543489207041422388975832890698290887114683492351005822328479043863927319561048027274123148475964822360665704012066733585201797500038334155834126972988147123578936552564589544826636249131626604532510834846885097638996565799863084655309537632156664522303311575418881505285839669942711482824192485942061873458398589661508508983935612332949583943151488231824563526639685112103877295889631933489063246352556849137825618244964570203143201216145598209793093627973298776026325338554421599088634600893130113036767568391041065590693488690405288844370771482823703883250502879350198112497048031514562685800486888900364318624728464855823078542469510940444848748776345177828218986123259954792970621588052945069058066923452861610970815277620071957160923388516022562410611375454292911299482457763708183967386652548898325390826978722894466888869661330208461739389489780711442889682665215848512673666053783811876779374396832024717884986981651530408092773770130065419638650721084384248705295491793793021891699353105640269821135010695747781883867946800237822775862894541106054660507978262642623580018662256139632027777910587546672995876607568335639696970857102290723280730558923066268528353203809886601294978409635800636853516956388987313699468469175867751364375830420381350321376325603348097352921678393838998062977467340505101382635066363066703030746889930409706799458987437988485254853220892878132242310023052681877788877941377433402959021299310350177042618824986142772833500802713234764853963278119955151103016678858458262370758025266436708548812895615358653140929734964137154614220553176828940619959384585315845983628630772432571307015766640736409727587533817412596835251177455309063911707239332423808522767806916389936199436490077487383529478966909506678897650125510930847679141197716110029769758816140822521145754058723757772669119422479485185566832886637846039745707340770779559990105065273853072697198760284002411018213934170900573967388366272349053252222244453627879295585748258769455446700805724645085624250429305055898250687557050403459747289292980081676409884846121345212406322081433376966501453533519478530267026482147018092869573685327734191175183608446306723208298528793058592899486023654422284995214994893206258817263467718945313399411110550365757814956663058207877674018329754299117006271867172956017708783462637703897024626524516309757134601024746546696891163572508317688042202699705692894466840691603058090779315630388560190748540288328081370625060923936488506962987483984830886148509750831055277701328515397386788048566421007944238797802149046688560631193884878338238372710838272409277772388138513433302905557086080332544947145263858160512786245699049371286583009255254608760789725426484914838855802915487266781867446327304223598394872878637078393733947403172402405903163297486822292800341697071514278354500266721570870365963567046306794134852829095752301901871328010908157102310109857112055598980256039765001359451302352104675345273093983200944450363476804014242347811856739958385207722529057879169916607763724169938372512659757119301582874108438663525494343160612230419288228090665848280990556738602988238406671753637363090972919700751860868615443794676334960444646963279348936678269396351639601810927710562305215954276000156695925049797538268331425310067981478349750707460316447016111511010906216421168245791375107536685807565657561742144459901878185616386613536342022985705956239269872861568290673320705329946455227128798750682347461916972660373275215827898642389935739871326798410673629520270090250856433935921957656908229083695077893030253814799071644840887451801083299600899039514866534763460859062324272880076758941444054251387698997223503139562850500279398643029417416020252884915124094357816592913220060533377053476339695374700490091036906666378230954200892470792997325595719636946547065986736985818627641608479572862241114393087642083488501588137949689732441556408046554897794851235123242023892172367391129441779610475064257600761832867546604624707571029769970546669348193563663446913107293403027276339424829101401703540655117733011730009449917385819855546802683893497449174384667392625839906290780714783850267022297297116381428358473696813758491061125291104765142909794940209774894500567205640143118979716030412511706450124437980033216730323703485648008309498987726245977962091849946905207402918030646840162330249623449956677767051730008636714773043854313787856121802169624976593802142656828876539970330233703982843489666887467072984356501193929497972157895303493950133755278809708608051123806705713719937146657276659394814572807039412060524231532590507901155723798216065235360385988782755271061154465669054165228649334710863076851915861217745277988582867804111230067367524489555237649000585699811986943091537228563727965305381511557431217570951974685439783369288751788300585175022563600259822280768266965978838337172573694847986156250367781477491399287172684522228727126562332393480059186747604534516463247579686248720816420838844876567194642958950702752236086760641790246727836716701969521286666998129929277653899615416331358530311777024449937941389137743363451280340071627132051497909644156053138865828901479427389707999310803373746689580490227344190980082264639655956385046680222028332042887234513426819615112440387197275750731721463312045593043480602218351441013946878613001755059705677653293866825794750104904001327657905388330638006123050748863851275024542364218973117296701475303562052189298464009154660655176546400160923176671549392669407657625437255706980925920350024024058096940722278693063960661769840320472580335600322770064579489840008062131432931506238207556369630268848395128861877152984265121518556825540004740593622559064454118426348299150034106019660617947500843211435633522345095236023658726202976483459913974911680439216713524576522507357262497904768943231386869008066017768764683297901166206625311706316605791189887254372654394890278832279681184516896540656890039600439452936800575660643112432258849627986206412832532661342672389297768906777154351332597385058911560956768040697725110578736847303151117793298582588587364283829430541442899343695006641208833470778996418076695886015772554748245921054405957576005015734485395781628548528812773078927464796597525720724134141672644295432254606180162768062549068206018445290395775003376516296916377136418475780153579408102740752465331825078162354250573765796601749796647336915707402319200684326493677296046937012309523785596963175415968417784870650288807053989667052379181416643619580549860493407061922279131817790165511769620052124976121451381351477847021593824902193259140134832476834752472756055764014167956613253141957844960776949845218883408930330050250951191752220477765464763126978377772593399987083005393098257005874591214910709555586983101754973711102930920898442333344855922808252724758082776565948493805418753777920122947883267287323082560436846125500845631703844079682601348580574413111904851007606981791113573621219293805469898825697878161176632408126720837965613144447800243585906111791686167302340940949665713206713973050107072870925628856443994778132889984743372560936012954216280657647318707401858289055149783741006135626536883668360979996905846875704771390639549356388797987518083187188634922301048435582041602503276634302886261786016703853111145112288649278779401303423198039727631245273468764422888316872949820999071810455138521712363648660735776472676877921493899500680386101914895732401375849281030693088078168815969594459427580093677702969040621293942468464140811823847223675743084378547919400362695378731359879920335223885620060316424382955130697854064681483279292493563981769269241454707931723695893902770016491540571566396075388562978760840125826955142066589495962722027145847184383290388977104223147893574959025076057981124077676590801796017284352986133970729848634611479395962020373379775344618646105358021727136744181327193555564380540024039627039444493848563757403288133790829787211786378543223689431643537207575248176319675435042325456603367885773230772295357350242907230333782451795332292176442489068464879582605852072916651943255086790349315500745458291147171441364250563144484463708454180173651134224612251249210676385943481731423930190513598714445562144667952734994795826346151162090568497784911748221775236065328161867970512611584981277131266333017498675802900175878346464363816898071268096197812191181956939886549830572020758252974428562493607319342016204538126847245773978492657159041416717765764742457659322495889770193345353515188206222929786765130597920700808023698532272541035845573743536768272776875638818405352277088381408275505747389430248373493015581544904399703134267532850762892462613483427224100222719970083674340487613411350352062463786606139131310969319310893530334019258003089928223324565917370606269016994342026536748990797350519219310338608270443631245345643512598541222049572759491069429704534696662413177427839471653122470701455185156665690917843222161886833692122167152184884864319264372982080716841352582186414327954179036350548957666202951653508346456705570398093610580773335784476757311228344079302380946280810512391901240269247954095318549166333407180252317134405253204500242392821413401394351181796545887748444397990269591083802234400860047267243565684836404748491995613457869395037572964371156608350338769201420499356502843176259634331391648804874184569359467674390388706909013412797515583558073905758104840663331570503262803440044608658617146965544341257748502123723107954159151408103326162205145858491736893023102344388745091308178929034329644173127188227231095282563429291122236274013225882582931084122735166420591671587051534400272086342189111794117555602767284857914041561893404598287409653192487927241527630330363305679468279636209747111465186762857692619383379932716879391399612181768510509575957993489917066248728052523326392290764220047050001115701522558122313533448673221521282156536453309820817384553633186376114963243022478632541595104136989937885384695250741209787344677085951710679707953033577792698933565240124540329506196823124252529057437440010922325229785505632958384057865183657979856914075298029967526416757073550326240008359149579883760296349500894422658363455546458305716983224472232662909529829624280678178333904605520631981061050109915451912964311737962033466958747417455733415884430061575894460195218076798204560749601931011361507979670030176164745784328263152183557377541377193568402040410033556556910539514168936509710194359430099999685856661380716024575546609208832202132934637536371870448424204275893237561104637534310564169813954148149710948722760874941526090880301036177012294366836390695794860807866036777483280095035048039551069175618739774967088544671079928245619006002569761161775600968180395191762957936384662042826379987737847079575026831544652737853370205383865867933730882502793476649318561036826789068382510184181736684061573360414160616384858005895371330880088740471570356660428235573011568688066788330091275951471410760579280195917791414427221132463201168591129364955347251722380440110662880052361400615204699168326137771121690245781636784916317621169828952808046771632852155640206975613136486478019709497645673447771956907919039058597923342822849107757749751663101265401497683739460689165275289173448323229837807207014384759532270339196300225646365254580832212257803293344241389279476069126749777974025570807618772196404981268379505328430291538363002843590487037134806622461025445036508693893686520674199030576830626795370773971570748381447152821573680148493630658739643339934045757780527068497936270495186863004031286526484907111138592234192239478589838864012724323488211325522231037219914816536567136287751530277795206458158320121755222252264904383043748179540508027142104490091989309281357436299276423375558069669682700742455526430821323186039244006697292321148900194095490101565735867230057080009985907788072350239653096552341956327434398972137465716316049092009758363728380789497719082754194937128481934883310240052383409265391617324874962961743579510904694807633047420505494494005750258240068195016670042456460173114239511620226364266931131911980895942836990492962722653508709141517540723964866406503844176101477411720309480953840787091628246380137301424648729753821240489152827975987016652828059687217942035191305398535601216422944002657637148593617592401372778373946532520308819312772341218503335850402590523368869118785523418798461411418163698558677894029355646942096141414943899276789139250777268924377125957741220344746206822203067107631599911209203965219259379673507258560614741535193498892518215160397418918702796754289224818810839354136220214561506518433944098430855393547274574976712516467955517992778017507462807644198710056405910195378872854771329790913606392490493516106381829625277980088984728675133787576936367133481661131166892552324394871430847893781039276495808959577075269319896885035194061974766081403137742069894879991685761404187784794241388462320261068974499571033499520301027466729992849131638413959340957191124729065805875795214913103842994127610334028936218076154881928802895951228746091775126298167325788878590069562770842998570859292164826911172119726183633233773087143880601142277740152592414060236850976487005220948792376317365609009240907165214342188537576821307472650838514657430308300509728055154214231257376980038284225769223261039915089109212774046970771963354286482564001101690789874736226597191659586345045880465437448584172498155174906859794315750179768878323520144111601596962439601617175905424171422091932392176894865129623643032043132777097322934068384829673982875972872551074741494756778269408779148325700479674368763154499748918232265291063262809714583409347629595847042585610945919068677848422291468854010548668169633954823603420397580268446808750668024459122542915733067803515910228645220430349309377253551445522722822043562916976989806647144397172455834353363436632611232748004373562629419123515279251988778618246362142440322379034331100275759447013583416298789277436376192923669311543782683659630103840802404096604147614908050105597250890629746130213427090877318160708290259438175776426412763092136783726419107972909089948971806645875401131812160352149116844551947046470395426447268570690966462986337113905284395509487506949367292074379460982533322267115065851657267407507509726111400544549545735538604836374271386814643458366424902179167704113873453085733957486216215162006360237916967985004512720764231698570031508708050600694556671027989108265644806202000879176072399838366073825516172764095747028092153479132862137101668307988005032619330733116897563672252680643385640006356990524963447219960479658501916313581231049266787760197529045754147511972738412185879086717401522143765196695652702883515570197532476313974620340061684713489654066785186689067161188763791885306702408350882388305903463178333786106670992636750972906068321977799706070578502648401153779283231350824783681703855368407657764093485555770607877208082925817130474853730331601193943946613498859248633437662769692600535774173640613831132448265114997052606466283095918517036060681556407574760846183168583923241522168643221400844877735638911508664206120226601797320936290727690524121275154828854662365065805424477877373061245052416862373214565542493902484825243886179074252520323262850954443846764788410960824592295500572332637479481238105863101711037010511682549845836927150741797069805382261503759104562359744348095184881637479486542616523490400362076781796533837886951517493963820060942721911893901016960264369187173426582660340908746320275007469612446064637575977910626911728467883607942280910459573212275166339899880926403270794110087922813933794478904334157086544158496852424465006101125326240900928703018199398640360862449403703830359988869363839411303238886132846714993319169486149323042681873219396209638269348822551786880065804067838091561992619107828131003611221394026404643836434965761959579227332156114596690193826695130483318572878803935314095179696170454896709059098205074022056789404071186006006869096803274678257545422542931466368998817204453177428933756774531383414078668494713911384197866435595983885960278557212736047745597759111231822821035298276256743651352454232524773858121838744130657908063452327044678257385310084963325375145800629070431867964243243748159788584317322883574135678837123027357811024359843355390039038638353957857287931823747281849971669896983394161595986434154196155049708760875067392238430017049972058765537190667029857908479674978926910385121482419190608978639108874031209975865554240487170429153648355737110991911562155666663494440959214992953708565038461633395680983318223712233784938947590232497256374075711757387186834434045582502259376543197481873285278416302914156326966759524231343520509265652449600723989504454639027190278127206553619205784025546757301205992446739906269452333397646806872784564873923997307640938046738974604079186423452819187335399898038627494554092148525690504058169961103510443420047499749495674817675171187053454162554241561021338983558892239121973355800710515256883793633239908717895354689817388725460804701743568119991547552213153649225795936805900818947406592265007724875353471212838862710074215535340203798544977498282446648722952732790390134469050918754838869165724865954827889043633390680353110974713795981276707193967037863370721327394767937536701779133094688032064067372700681178123830362489332147264296171790257461522998083465560439718389733012884861131303628142434262916635207390052156797211351159290405856835074452174147219306775492047077603960260689450235094052989452412999395325491010410648359131619598545552988555696976588586589515897524939664844949470526176786534840670180311681724215751863286251994086727921647497716195583007785758031076313022632792363084134723202667964896600344107367993177275876830506372892504341955500630030772471059050422337547213213940063644871185057221286441955222709451526554055574618220005878373234381575046524102900909151227927620938837617611193615597229717010520452606501353375655293497422900619742649488419716495166359116041726896735683609946245137848199038271158367645616379188105492933808467143205254754540170656277707019450933560675471919412945719302267278279264780591304842914427330469511784028774158010441220442905225684121970764759321935836610897446772176973425056921004661841993433787279280155585242525804379559219073000878954216110230647086931624624724306335614798853189383858757545958847558676744460400063529727785550587033802864358209698736542552725937239152988018527599759376270066893984174760254562127487997030403450272895480688475050044333861160323667111873104974616251994694181593603231987448446175418236839818750017841048571234869178308667714327490059548554682896416448053696767526549209502206469456322319171389257286681181684317152170132365636982858294751118475577333822242894918270043353705494229541586278322297273938699152516668580418948687844920224272564651045993690566639781003723861210820173467794182151128889950748483362730989638038463019495964758343865926390449405549612034778612487277988881116207645568432706576959769201976801919932858916994534572996922188951426609542467276230467660925509307358660154836317627499882826056776801353718510365604652879885477506024336871727915220298600626835176699555242843929896585334380802616103313478944750459158206553546013100343440878230976222486642401564511929121712181474205478927594195893234563417438241124708079543081378735995813732421873271656404534133884534473700946743996427022869526461305479508869597965208964821162436588124561698031868749456769059333626123112305105823575244311004634602607323545581881640185766825930951185025044431815420296604033818398787827983644393229496234435835930306797306845465505736914961690871370204156514002616352885244600866197281045079671697491844232680604371398140545689715697867796701466491771015183247639750286784284484329970541944015310879294878437659562653528296928961611628523677637802530542345579877971998377176132407061806984949748690786968092531087629030677720952968393321655909586874550532751044460811788690351938561155051068004188454970842293131863404940914964835803767918839636072530123154368292461514323402641610820462366959652856322673584033030932591981873494754658727978030043056064121753605435848441599266376047554209819933231711626792804368472228506465895728409256625232602699262446401845596404230071243617468162136744930295340532021280278252675375431554266611306734390051575419519394828563827665414061163072201051824353507099694838817651931289160317014424172544952059263238157195183517925936460285086277052256138642477016311037318339038028647252355041255741399506320347845073782000765028352187032482043511736282370580664995595166673102311271246873455682351668363661546952387885142350298116832272743811353986980228895176879989174272727779048997512317692610736938388512440113827044703066481389071664792804795904262424827451300392332455444189744436049964180033921924786684768978577803077960808960402898657928814861855717835932822945206423700576661055448019516874453630658491570268855943742211070535109061287542725054432330154123051884850472985736666750372365249332906351133302909326140124614903061437101232175880615533617987629607031848951133940431960942677850151651036913321990642681163875369998951672396793002187192383489128717635040403037558975412126378541676631847869949886005595254131647638367667233372938220073237464424229208065388482463222413315844445864612333748257194820783466217027959965576293700935352522842312549841602689456397335243741452317438997913395823377803391323969967126830504555922191372103878022607266865179932995227142433702376994609586179372971509895173166456895109373668328561277148144952142615050330460108104675625358289777790978781201736391806763077875381138409692386651460080697512697480915141001632407049228106684879497706310702176637961419254275952354485670982306721633484749462578981370832891835924045042195985385489308085302909887605385001240761573584399522639784461957184979695894004780665828211990339615554313145629737477436574135019555566398344965772046881459166273783150456923871464591719701313866711943402564118331968300378235582867374520533268775556886705123353325838211634233682845104743831117785534246769135303820803360282303216694947968879881567952165116584809678851161203914137607380894579820119911240621811418355623598927611251059707452838140799340334422524393185083479440218528205703981052647294849434982541029776061219548182786228932753382057604407335014680201766539235991811130258942150705743163156797284703181255693151988470589070455189956902324805345652816887014254054088827821499944134334600297732433597722768835144011921697929897651597857173777169082158529955451276735894427025891905446457135985727553271533210656656179582702080869277588587452612937996874481977931209161184392919098494991348754319950854510342701840400181435752682186279068574564095861344573916944382506009322952378286650025602009218581030452857649341475448839777579988357153997589538275147477632754206514703674398488745748273933938932386249608946230420184766035991291731435444218012542656939515430325327733444684497345468256849548934177811432656352525866528754880117335532259904358634171318636693011704906555550415993284016736915268643813471311949057615948630871786409822760850861993420485840728600377669225185660442060443797016717429955240836843991101640290266206176531966610702189005512354256175102965841079172547271397950895052697929879781939431639912258100337264099125583044461334225977660886233952856470316852773267073155746053694910056109312554928318133626913934551155660313948780310974295437998885521021286046802989604566573457661738427860597970781820223315656371992331022169159193867575601173713020674527220597703950313544654904802566533491232971241022354409639416694849092612369806601967617649025758187751748990392788988012399926144718530847321459642382946930520983634459923527051519858969369546074298721251967582589892955578099240842015418069420625524792508637403714836218352587347886801882564455518475507327314660562447279566294650359700887787721283619931257767842255381449019375497440706400483514892944101331867055782361827730126380652833122356955745724067882433182686806077022137680626371042904469298116929320445917862345463566460284581846025330049894534377813218245757036367085882614058452209924930401309461390350167498708289301807757080143486147540760162736932515751813403081178246856806975052877666406908356968101973343548047815441261303922215708652934293759117434569277679790186418061242902944094834472350849463760706824294327453275308421019006398252590140969007871494391245760935107261474992419145694508493906205032179898068830252412075969183205560850366402879969497909199283519892317827552868771200846393535856290847716171915681672044394048811837660603358366111052833105568132062089154092869949710886091060902082323729774428494622474332983171712871454889428394276130218196541309115707864755270389277884805827034698422608516884021029706821556516774027786890551139352361571451142304228678329184837191349688094977646525726435225378997762657864968466684608512273238889354113968480589116524789117159926781518967482532704045462834777811078071302333917520185663665066180062638524082636033998371020784783766153120626277682665454784085386720472475269848766190311722486802349454767613792033634316262190902790651780472369015442602130852439039196826412104155810304578563588507002578132309242415746402492277410217555673365852800943274561975902398179813242919397187914360250326189684827788873153455810560181988214776604862398576981057894748808765405358919538222616352743150590085062721395426486390937385615433974118741774438732336782952893776413193583686221622231741451692961650471057249849634345392626532422252418934174783990036245731458533692017614418876153225933955717025938773733715530847326071934762863416827853104884236561854353551898875260333059967846096475003004540553629608997417787302990570984040530851171991940424941557716654607964711094724984261290054315509717082178705668935569205654026231626368441970500339415679560241656655373777388099250190086153886824582267061705901241890715377889699359631573036610461259501691284306407286486534630723443934752103777312929668292700683835326222840092247883280277809449562239510608867619241036320388195708323813114772707461577458801390580799087711956436498316241837385662073304386504839540891904288035727636422336109706831187571395833560970042867895618200345796571984192090513227967387032567658284895660370374066028107091912091429345339029181981767671541845026833379881466198631780644812221178149224867578351470137328561238806690065611930988720725163026172000390610852218962547111279244056523005425427360148675993949347996787407663869164113700205001184503966192206081661613998976646717366949210763965230380154015538343136221410722530418302888377201921656463343902385088339439039670678983366381470219735533687900269539567747312879205166922077005778439447924033315651892122656006163755739731455053180013681925623891830331566513857778309194818475230874409702243492440930083569691271225609844694639505007565137790706519726316240178385054574007906567632139011589033481349423197402849560105792647598693029895858660622103530793261185986347354651913262356687407937283751265165996097387707609083783329073797350921257652935949933628040676292944763804079398667808157215317747013465131710269869747685491579582179323033533486904852635284902536117107914173381142259086069078980226373329725398290992169514195914869698742025152734125287626130524448241007430963341658568364444710089958559826668666043985770996844792243105264100362541332266978453406940757621318110421855926728563398405309203328343144886354694165372511807280481083248493386489311547556569155150810530612889497102263168972546682870524590913009847484989708301582294263676568078331805567036181314533106789037474839091613633960505981434002153742692910235157112377192250046302647141308031596816659042032815708617980515903445673473006695793455783850974180174686368769224028070542619695588257537257897832517843768957611708693718757171647493859745186504528329783763148478045996816795532353652132593260290633241701384177397531562078660209026338677092740277188665626989308327805560920158318655296606924671148703789108341974840162672569134204146069428334283882419263409288028352710546370976875671128816435558395559689846030731762036150802084902265657053056342159198842318321314690942710160241773100215422718316549627491131515733829242476158217157341254636275062022119360196650860240310318739322710247657612461534806141290245568262839189376676673500187956657454832771645204746516032847020903203502606373857787968379128336011148474620242912636716803994185565942203523332816323891013384623079501817673858044612960795987724265302669146433384395478001257311620634990505884795851379182683686639140653747711252696576081209842348738453499465874137429079643796642682114265949545900223899450331613797080005998047679437613890075579167972998761328166134978580721505733316225901673805241266546556695121707138094879622718569430170168464105766076667782543818566610980688174193910100137636564237670476799781587773813472552586250016454171316031023847548883798563507763985710904864334675485625013210018983767602190733293067426888889490303930806160547959642493322857538006586354627871217156409128967497621701473669513994648777398083865692864022140277411104296438955579549107350893741585896418040380417550491243855504785663922842893732901240023256676253854841714472366034773998714309587006124408518226289681725841244699268578949491242029754502869712993581840751834013461690385198845914072914108888011891801686302331749318031691082677698292531588408526186123834563086540456532855332762219654066922451823797093136349004524656539345410601968134922356522987962152558948482938626072075977536672333138439407701121080428601586734278267025825323022109251885304815813758891308264648803261211209854082497901207134674937440719881586683573690538664652738071083703520592117328621119544420273417404184186606569624327140633905676482195723614433385800114355963278972921819153498819036451773685688673416444417640598041650646165407906812258468526871537041524484420358776368643131366423239961606927837817005849482506232632479501999559052583786614780480867709698917529163172977082972867991460167574206316190568389078982775944344366713277863495712751275828085107413709949373347922632140540096534369759221683817815318290245594450583049447618771620446490182992500307918592463473122210942910849837335827192421625365505405711087588069455256286535006977598467934593840064341048446734359515536940948796399628961666228791909249658420033015311254806425431994550288607137844822266826932080979591663295576977599551775362040802124393731282418515010431035273678343131213641845536402553317377213844835563653150154990898672478746508190357313536458047331050635888836858598686792637019481343127636881581366315663687143802340524173803642851424319752153751168299366918547947021788214861474952933834101295803671006656759429031345018118489945228838461891993472872537159226691587019709425129309006525013006236855978171501934710123302918570425446177335132773871328122358333623184695152586553656387743949163118807340919455797110371249514008375208616310339284507292496253355165740712291072640952566489177222087690714356402820451607191754829066655124481246839612848721573699035958824642111404831457154510813121853545122115347600275437157182021362277513880844112118886945438962151105348496180820494096644807580967234256193048228706762389212611530915136888625784401173198861051503131111394093426918567456023976727904221909333299773507057900853841631271827656994566561190489274627222717603907596748510498704555867832397675101692409480379960331893173163354718706808728300246577759051965267275433969228235585492834029658364089790956691022330622661887043191846160711264030313839925286142770971243489637694510323480094335874550274119408438187134625978592026943254454415690003712520507948067869199357184289042385336064308135695346358684940131419582701058177070323791291644247895826883805104446962292184056437107016959399355406338421061631108069703203628553986439634716433049131057559258549935951044697281978533352572458559728427858014214754270114715445857342981834181820668230747331819072030135935833495338237441298812498077233872666395332086777489776170749102171702329213560808178811883037428529323303167400789563495817325796837492859053789154599177990517097620175221241286237061678151881734851138527464012592486919293052163203698923572539964307077466328584409697604682287301601289189480199098104083908103750789082650400730228539818351611950802237013071121027218725129680375588526903228182313491852880620208982684999519603688416384540381483658704183326688726146014577977588805900081381899853519319654222464869960595458175760604906725852692950774364425900558427264871722094740575748135593557986435014247813165145624356558065570354924486639126838400043130007880574754975607115865298147241143220225406988067304651297845014152387587789626118325212132231843609525280654040895221250618256499400727734084345937941309730710585961073050755680219947746513746007695559448106479980084751136418688585715963415207400016228349952894082373257674731727153308841952623610346402579661349125280720154041906694489872935396867719096188826339277739624966505711027454720696955864079717007824656613055484614649191326240039661020991530075034880942228048257469739274133694953837386100339980627606398982038124969637301918431775230499939159368476150028142736881341286692747509342515675973146457371590026824757423936519626018857887410639906926997999537001088682760453395204123481278693746987184418674752204568399317702254428711708495131083209934826634966035095189781359482835345645891848046769121509942617613780596591965249283571204002838843255181929801750005053340547420860277913750023724551282202249455408113283405531306852352474917423493143836527157939553933964172261106146800436476659884596969067144050215505173736233040621581660209152459064220500221285132175713078471576469075240503188273804635448483808606658639267180051681413301703737573592343738489419887809456307722349140208925334248125284596953119343854552989588345030142882675515764385694770632274401533612351048044758366310189197176252755048272873621007204117012302666474631780081748913979669062263406074881550960839592848867921828038785963557980480627137163566053179469471686746215828403771872271720367829427066735674606585711270601146820241334110387858235470709069152552324061747510958012228573786104231215209224433762502173200228847713892694176463912256773696351947040160297073330236157679207972542035870195798477241945589374962984079776539916657251616335696140022496774807028047448258948161121803411714012565119653282157417512787339974917035459277181104879008432211167670291730489308805865783566775980786496796699257579419634198317482164338657178447255764465955552276126188603433701241771522829879824429784143034542432570777441441543679205713056770447163556722388131611063364955243354048668642478078079470667027344505320377948774655984878337651937846563916151678194745676359866043326731130720622177096108754995857327607638164907870784581636245471400520371462653541696062484211876949032358816467415098838784595294371558407502267306596967533507724331458379178057547023503427370043062842647078187798442242638771504109010108038581563963286234900989138593075538071414160405523708036197140224265864432858444954096554039768894977920339706311251779727152405084524800772949825079190401279127345730608337033899601814457228980373763155915177565985436728384792343685147728367445428825495093733051252098960749894296435054551956555577202447422285447372475344914144896001701147076712520950011761317093364303589582748357551678807662144976665579986566238704884441039742444018425645719565932058457633371277126932717249937700558088275597075682235503530856996869164619917118515803256452613064557523672327067235932340186369919691560214813353516149863396375226918267714484585162342104858591773525134491657449884475287141393734508170063384923901124342978096117266868764177095556212898827616997863245311950390123851929816925627309780274298940765335909850530081418465885653755408642319004367932772666118738771880706778653466622559364110468966413691803104401161488326247130739458698901997705379679007142443181264368910160039799770042697793497737051770631642868143444038367888235148300021616490811034449806541001374722266117241263765230236622186045359873300731163357459331605509880701271969294645161947205022149509845845317138792355747635616231926162948278066220096201827161691107939478805754393789140398625516183958200514047533920449613965659350527527328484540824739877171664758276313278937406435364518018078123810765224518599584993799645845476595549446201019088982334490453026216562957833498372211579672909924049767794474472943465261312882441385943375131745219717653342916587325841163006891791550125798827945432289298750849882688116617900064764019761762071492372229704848677674421116704191146105716658795309536344461925279136942887756738554064021541628391810467505461039810012128053470593348050026247756775794298814181253541764796442390337164227222680862236202754817343029077793210374800857852723420617939279724577159461078879152005120138755010964717658290045566643126954918114431414857921428477594899643866980978319719837617798973638614244331445420489510941209474410450834426399187061816835772976854925141506040384084425135845155724852136703204092568554856647212874008608249993466251335279010574133367419682327471177005998201025789364849966994713904641931661068509061774088107933210276814629220652301516384330728229802491557499731345279142981801116347609501520174776332304225190611129964835814171773688561030007605796734027000740188034198154331807160601629879743439440700705914971845561152055453603538167644803384058084401039573463886683885034717603217739248311300322438960714988496909004504133121845307882289559273070268344349566829240437708674989065874677864795463302527940087594797487080781036093559836735115914722039927253419680516954921735769857844159393940689092979993626223386894840841056393537822713391966847674648615042550743693568768609143875828189802052416394825760602448188246782756435368059364035699361308193946805523797691583906469348312542997978032460442335732405636884454517511178947159631985164384289537355656027651102739085129152439304242239075302651752601294661181602357883534707836380753502296424032042713765594711250945845173948188296157587889678611137381349262739546093025997649389906290894607326525665360244834835422049094492281059332251805512447820003638582887569344465905642649151288077584830637670729720387512106144372257882350422843997604952341425344582724402632638805286336790147004489314394591176316451348793627868838564008617412671479125391533064961802452018854761550736484940719676059768918993769339088028040624639677331390071783583924970366111023437909646168189971637066622216127232730261036159976944191516238224085032405999782886343822537679624211279000971746307253256711745801692876268347100158082923938960679984285455992494489494470318474608448764598695031890016907667792278415163867374080004990490268232909527402623997040252291868234616920573132443143627345709564354235832067337627000057664109904743662303068417582088947056720082288857810074110138688207778424717901067739776982952328055015184976839802638894530504328382262203862357915272933939259264333492844619697307946348603883199133262881132693831259682277238940259649934955766711637016858663937799541741045819070529903759313812252627974493118729470557552306776794068587851797057063034312867692053268043766011576393580259743670422891150751739410251680879382004881517672134683758154192627285867943384657666733243261956424287148238852165530097115378304374733128079815927837069323300578893795121815371332760387212810847060963288061647143489045536463866367474982376289823232535696670652296409852748310545766396648385786911114345170884809961119510317485583269345518175309349267952670335436660032542277733925812635340434896512220207078794688959685370392081405116384224767519529224067256224872756033869602816485917662027793469392468235771908462865609278235223174734960810718963703076126379483769780516446225840783229506431546390822752076904538276467380503676494083090768844465072309869596137363003192321326530098644454974725120354942746372350602328943373645948516699738148790143086551662346697021262376564612353374918449741040919844091891793807536638051924159169681835946804048630038069040927348399167531008936097230384057440634462297735122960788402310157149056930846455672792076622828084830913974506202001679887605273133066941767382575280375717278225785767559204197639754926874092620670390974396428480367842648284356872615263028581776859786785772475547276880779214871731438069602562390271742414921487986510026533804400205365695145351952104491042837408986589991914681304544943349808407528593403227332445449024681133925120911792532286638846197163992105538070246546948969761518332678181135638337374299805667629417207832143587029436148957319460064453230397481724076117053553741198494782615446010502244017573820746531947406850563889848788644465491285792286189168186033891220049354978862736433764388837918814561439154102292254752987076681453062247822663222341363831549736484421914094810175846227707481228621593282654227658014935544931483214749326466304093655278474542607493418784012747938941808791200633570757932346626426082391615903349654067851047873589466722306101578190579490927278209860808755316055130499731756530822152454272054816812669292843405719559562182209211863163524536562125473228139022705971521342221701403584049692162688579940644394087120389952511285907001386500607674215481084001682800579514377668589789673870025057387054881492895163855791244325347819810097403568668360510562431125769894912131870988738998483623577915455567591618572508670858270709240449766140103025430337584290755466309587137073906728277764551173183220494337178126104973705903649968670223110348767615744139127809466080843030839950466745510039158128762562401663983575617049541677867152564824659375396849076779206792215325328353223265048201245038054633624682852842009341538112071125732320418076728786645096278313032592949611311360013227346656135218124324615431658544967606636993657707198015977226560736031374041560961055958442506911147150918598552911412430722204063224741409924607340058331134663933559771088205642958808830406513495633285752134489945848922192812251908200224160594233444461710170504837025259955621006210673762224612921590948510816483761145392815607291170060803844056425324955642092807959891108744754597261414208651237696339094251405902568227101926780981798105041128934699836122351416468353332236292749327604187078582059418332951715714088177576887030870070280550567555002842210389657594434621572371469214226495628188132514018047029203648878243115493912062555556231125481870054952337280523878521410197614180592962338750921754655171807757660252650997132234964908347646151782811986490740341383960449543771669789944739839754044420789082121035733465562210425215740805956135627586985882979697656598450148336555126528288608946577148399702466504014915779349093589783372359053219152901689225977122440451903224456301181967901203950099333472261819805465467866436947950018540296119348485395305146729440229641552702218361814025485560131709826487100032983899305720065309761496148124012024948486040324715392591939874711943842896100097579868548070257523028744854991822833320803628432588599464380318926346060322812909038442534663018445127380757461185979169867332402120188746993394644994681596392001365294391377842877017110171318175039272475459152661425854381051560505846841763023887611633198344278072605791341128744200525188342123427925169991940056931723062141243251206899113223287962318981167189923961106281418207122260189515518100923347835865140866209443225515885221675694146737374198352364666826834538343059729086346804153442561815940804198168920258888993091036487151651737774994734962926792576534951033446985151208140758204504810179268273848352487257848308496253095035835444122114936428707581040894738727570612603431038588220174997750708270050642782808123246113745028443226056539790713715484227446725893461341964010425980145540361643404918984525432216385293440902887405215100402245625926487829672384582050926371701602850984995079559898958710163385227882879894035440152303952423385276900785361963514947683092376210317859773014328109266204680086359768378204996231963286044745212689046131929229737637990943618298823758249965403784794586671702530438340287558889367758605350798348251487941891799748961095819029239303104496067448664324090060909434974785675337121632823227742983210442771167827766703063046732702441630701981582079618721245763872146517686882284482605419459188599583899942032006272395297163416669337160963369942759260209847680602175708797332421741038974254258121236518265226860289876509702086714912561446348898207042004742029962172056733255427994471936349095433715110179578134563856046771307024751958575455717435300315539115871937994883270459487705574538920691614830476040578936267685025892476837990868226070886562491208616867508091146462157027249023367330563010868953436865571751007626284182084209503995432763866001733156096948483056201851058286363018731891391684957616150428256454500185634812080021046026304961237789556618627674299981245785933025253173300746907725807466067662941208165340697711540746055555781744846273318897771701291865216725136523543915253754008006475097078812245364780487849263156467596396056052266321835035066133192671585402072570731901253624869028950737866671669183166199209258750635854539800632330620469823720493091467464721875167308170261850341514310507238556533170370212508969018936719820396458471170243977379576376511426371937531317985173364170709312688336684471203175007925523358785485499612702428088847222318894170156947150297952189954667493243140285142786343171658948184227097989508561704361338560251836969075752215052455044622561219864120015009568242540600951249616722483835421666417776584305911414219215814161288855047938517982885662725595574282072533514737983735879133850693309758015654835601912187064598389000894290045375932679091185721132306193437719094633411596222022968242239412756691186199823821018290838489047570791933248406849179807377514919535923953682034864284259084141882304256402079930544595255606192858270576988972588307489290553310381044863419749025495479844377535514373950399955250934871383805900110163587404177449868795830394226968107888140584938258717634947373753790778411043022432140730034482579489423040374890629496776454097358992589850942415062312434652377283789279428837106731406170717345362603680322902900651120383944513848123311778822470034847222278641179074125080713148312314664933074399649756457342704376053850825732632100850283008760189156017263612629967229922105500834020824563045916873719428851752798721903668335162430137540345839919110609904499713491630442678225648674976332876298250249345016025900510504522136623894186793806637507857182405216204781655237750666210162741548098756667361477264605589597037269344986313877207294392291882793178474862375323967417795711997536949215255099712417362000894550058261900632151246375532496621678275812383911398757357936178369131496545316019114760686376394493245618147393988405691264030875488934235957528686528673122430980584496751777535622596310143638922240490706544007598037025483418299370402415753689080379013962602616441850412461433408850935673197078109974959662848598033648682485717899891564014106347923335165538234212845293838031460061595713362643369839291753355946508028723942213648511512105750672695836596471641068927598527022609640719400946523608328385235744301132423707257206758961124857206839219036178910836852824198097942498635191594842964388767559137178729712670733816030260726934138428079514900023175846802129810934196601069193472353081585632152686569536321395552368218640084310604687558091701036759062371160566621208769590406186464762695782548741899676634037984135492754539611662303096213191023720315442857619788731578716551009797480521407437159820483163595752465073072378523822863982336266385575331897117795093187340121769221407648774954085327965372606843600692418214484388714727915645494787326565265733848736185521787185859160466545874667557619550094907995814979038260848133264521294108292475402583214428794931229439824464307635103147661275552745089946014726235154952002579200909632210510224648077253483660918912654418165487058572497717739060542998511913771957643770162769634165875875931758806522102410835012679776538933520033970929756996263905937821278810977282117300723984323575594628970790791855069937037578345934398391807327721499291496155058275284395448408368003475792004850338266519265525095493195684122175891794012845765877570152122189811605979658384402353322163101620750019405610145280593599922051616029720437250777995797150664750418535484693242479957894810753035359049294778947216129668791198327354468877404622366200938223192935205162730729735550128572760090755434745265867800013897071544292278132478146607967097282937782321377443894760525250145597392190774535349914837530842908684814817647883959390298061342420146644056925505323949818582292646738722577189554005227723335383197242840995389207785405408418158297556040983232668221571657475044837158911492529392138631154775992219248323698351567648447950577290455587383298373831377449666359606403608344394569623253029626998738200968751841601465799607334238366556349007825600811581330923768411337509803899784726533656919664412429496115165594327108442864200417322985124742296664126485534334259857931607006382646905399015888201044678521978136152854739449377923784792992140952111015532078832755625349185393194095109804800426387037772001632307741298409574554494137343899313936339902920087656985358652560218444083583045771097796633699111766989297707580478852780056363767501017240536124942889382205209461316362151992381804659689696838437309854697017960063988605417672485784100992225219696569873323898667570916267203829908812831929952602215574367672721279599535951514277465902249932870647597012409909484675255232630877230341975782049145972619982998166967985469315476876784529267834839930009240403126852369674453632059428888068876001306238842711488468822480651792569379262718720147255426912388055461427962550853211867416637717217874247623447289484941777209161458816675765390939790611679606533846374854691078390703291745041214241673929122737690743374473610412417592688790904098179057164448522593287142833367487845413808919661162525736334288259663480578714394273541567208121272524819176677803032644895939884031046818192785682044820527174702777348738786839978770365779311094293891178492257359242594243887399208177803932925687704335911030038672814855597921505347066326347296446670126095574054535406192900430790837251604770515288372315151427710361218195781806302868272592851821287455918615653106536630606528156903945793244309393542870318982374916679587910853533146384783045700173184232286391647479544749012947828790199425025613069260859612119574992291315508022266937707796849877242643881565058983414690683354835981713845400380805855682689808526405128952526783403703981597292431170968574437813924916986348610607184506128691650859594913493966144590504566338266069424106147038287958758093142237609702344289850463113861581033670439084711131578743598028913622281521709272292355045404581863139588478184479912333091823411718091083272793197860011164396828394270216845908724173922394827693794535389568592712004356561744759584227477026540813333678092770942804478691408318882995803291409646209080761032279569060846919628420896409362447347761952839222282826028314859393523733358375837365106692359415261186478593784341782258625003276261281465063826672705584944428218170563364635395786933953266470304582632282579815016103322985272184979992240099537414637177277913114349174772599292552533578161531968996458823753739636562015934439513123785941420333091833857364629514235906876127641563504667315065425894117859675578505137312789415563793164724510107734584843934277021441328659151987849848237078796586536055758151079753572176892798617089343299053754956831739483520609526858384333902705583766695333574043580560843312741754731872654418239485225931481545990290639172354269804741871542143835487206373859573578058422385120550300889476814898126404876525157404853819805868448087615275168833056392691684364500810243681028512709804812881216355201833051287052716108134942790592624947412030162149982770468235854155748171502962714339793311553179200632507204816319922532206693176472220917264530717159550885464814126019724704224375414479057878907764311275525963897218657361478347485060624713511393347240237121125427852688955994529018584759736114165364804129578089256155018695986084019343031451193333217371240936244603915116224957537202988071399758912734924761670129042628018580417607076374706702252234385198478723926004972653122540852443663689251358940798731073107455135628871305235144686329716183111720763862817425373214317862740978589446339524567859863132395259423818126329750033457937578667951481932174298413226448477839490567891339580836362800655954204676798644450914032867497297051482891204605146675265937603908497989889269075603716741620688134749223212766002104092330672791123775399609412492512859269562481508361515926433252732519771290459020129663696541207103360478747947014247346994629104681941423506458978911353952693848788086438425397131574703687633688654645981923188441010885529565816910049392559885850419820052139847509021401473548487852751707773588764117197812077510916814592088081590682976252121382262201214652530371349817397947004892309351473000235121588719541084595606590455601392152270559679241425368098244414755695786354613702797616587317456433730545093181653780620724788785379475956614067526108110273816229667365834487369559916077037714186447213192650353241648572015853217099449193229661362950785800797473747557932872479335672307491734534379606524920264101889224910322303553329492258375194506017439384310819937210022292038060124052095351974530897192360174733248956245858421835804873885926352876853468427929886186338979565795076699575502141590346265675239113077925904692506353322245642676964931875874114556021025237900466611782552814530391288660690509679246808111299064848439483472887328935322324713252286517556147662215575397329227417307639010368451253844456370199002957236333963256792200619965790389887603902231393250936963963575815592787353987953273669651617605893661500864192893833295872179767449281622167099622905544733211447896107874520599157956167121386839707134866875906149266704170356262536070054921131931774844918803268476061250665307557188397381985702348106975979551911537955363301663539419036068024674748706121840221393436157516008856329032265461590335821407817430282087671469184197111603846301572308288865957837875168644664690481829365559003383541864511683311623391202701540987914240939882941383506208444611913338871318715531310880387651287094509911307674033677456969385197838644257678377521873968781371893997789681108506955507886230185277745549175316837649722360139140327188463752821526208622991144887711581298691016916319545223609705450912811806135479041190817406781336622675980677805172340926732181569261292489434012062097576119308033445326031997348444138071950697900555514586692787381013326349002125162965425114121708740857687172096363566790605306289788515243281258929443923468024423946881809992070249018724639788007020465222304509443268292129748244354865738644084219821485162101496696207211833699838255933587381391187971468106281285829346010613728034416603593841616475922668556402873806450655534534445316998908250914934816333745245903867211102249400431386097843026964295198205166792732052846890199424814256621031274255383203618823165854920892741998734802114810068373383017265541573784959535663593124003102796119508960377076309091922120151774458756573904126452622487145687511744525290910486636187283746202221292884094042237080859389594989194059736908744544794890453128540238501577658077418168725595240811881437812313381059573258077651492800168127475493374820789233899759157717022470411367403427485519015228169427575514105887807623473390180291398179053299279828657063843948101078283720359340966093722012889390910638386662023290019433255054851116993871508503427756842464902392914559081850387725923933281746738452255264594822588572993904064458175192022036432835630189582814884108360904312168296377621118100322502581701887743463248967427373576652247268704893547920167957016608059597096360279011882751534041297836265041804999463122122572805238785668121624382476349048783017459256823808879702628906557789691271098021554542530983500595730022910417068574756892549742949211117216045073233140480372214632047733661258235527087120236494599833512613305664559300669968542439541646910845990233613680115299295197798972231185213125868047668596190825088834480647818914893022536140427470048362641888802281883648335367454695225867874044552746629135616462915657015955834787349892854339545936252232400724612935124085977169187109752499733412590849778565594042782961545154010344895659301757999226796924355373085238143302064736047281217945061139535797843285954754594150782491081768861129217110804715235435705684051669987295646147789087410967933731120771186065757071535709837717203460684973226402615200745524543608312346233752383227994519720541738085166152928067959463336464812990280992417687406583215169933875071708113414939850020102140659129708530162424145769116950539999777196976176508586782091889061267150157126666046799643841792632476830710402252313685492147687573762285114447630980521712092444229683182111553331358099667457482006517274299798767298790109113493574388048030443950549315060248417286531384525603141519254047532505419321121168977732798423752892609789186359874530776502117190240953903487815962864188368893035000617338029624230524884616152829909567788442350361176270715686217728985036627907000652413292112419140103147247206922290975962116351092208419602319929899701577720211028394783191743004604723895162086985925289180142189640599716284853803770965783303718970041230351417567294753251416492154774501235024859400146935905248640332427879520674113375617458307188859584173364108962116528697922601606521974840482931212083453004452305700207262237064063978277932519437843310427056943013529468706961152254811177023482458206366181718658161209279707555008206989103156227572221043000638573689589575259478211228888658515903155295057267493300411467383337073504564508777722193311680338184060296422145634333549230169099567019348863036719440718793847195268669223745043434124962242216539074663042944229777438841743680066172240707706696069961604733311452408331701253758275078314911248280918741145013844705036113553672397946894877437084550783221351200665273367493198370585087390068276867472292733648860745815787791402802204270102614137349550017909833237759627352346214810403535085128827033720628213577054339998309033926343639204614616285245345403886548921190188704611828633410496047027380845720684608668899582133687672683224991537808292012904787942747400003365533152602222410899674456219144246947424422895185592167714720436454240953676607085494551826014227661651155514258338850199232480901598382258612511955986285757795367676979045494415905161664431491789925904341722411159255612537980385094000684982303852253798378349861159085279286309899162615640556938187296251701636177886386312729935237368748560589354370360718609310680674225968290835223580665651202976955453267038707162762940375773162704421609389337491139101601550481716229957770655346458377171145373512168658837191529709538738076570192948485007224539746612746325061678754763704735067406852192619924415817000473523640734412591849263436531752571469894498755836895027660746333115731912923934397042281920723715153614445363355690688868932716160872735371501449556305156929881210488015185327916096126178472642538834950278300918362139265045114170505638193858909158485538177000328046218983564303304151485119703356041542949383310131515054190012364321580107344137209844010526786206463133280076651946666985577625472098828560737526352511218990908220418315085825362349296919440660252069049861192226259832908020261231869632154981851802153099766863806931439887239662933207303345567630430010661105672428755644694132740465513417716716603527847192053480875666575221857668410869325887341380732366975750081139020640109457228788600982004229508862066574040637919414741129974085999139807945474081754191435992759344914837355515123411583191528167942271491662339862963510941472703642467449063973420539929876625001466525812888283122096512270273575877536906187889009087727615003198565803135477295115162293304590815299616481588890243275697891776935887562799385542303340215993871561921948385932322625260058153571770515697380310086774483321347287064982260760593319924334930299623118453508967970681090925245557366356938666493608385769117279076353406167558628553103664949889080542291694268719367377290810309984617810118553432834645188476392009568755120507253659075702349881441858083535664350199734421961653592306232851160298476454916020529559898791677661186335099354895420147713401017616198575907731185130473365672885990202892037412293716138898492046658775880434064366201818567688544098829328680268718643705231523658626668459834846382484949376566569708254501812012478235098076133252454366461382206750695492883956666395580871081649625649409064620664019125110323826740311367908856559914331827758612936984476912991297233662093060568888893091172285959191972879460613792651186383903271875032938104578980724906640433618886006180230463728840028189554879995767341854847136555173918054838538300027306020982559739756485175664553457694278365580956513842656705524693820444638785499935256128671241414137962699835454914124046718466553859669837263453551468425181796759678612314820845348085335357757378761504383580782401120946110507073659922805855254844545632544609020189803959617443377943031075102350463798482880824012462046386345023414570404227189171012792020142906401250983859832007315591282614512441430907231556305687243517185929161186927393030200432870949289695541060160959977349151741048083458433686986033454217239941397179266080442075639696030024139041108548499116203983337955662622830346891533304139717514803731175127156543191781708216691399313201932857099639928594104438213275163126649964929709301991711780659043248912459968082395519607894296231868223077530776476515857284768148514815227425139770392570485557235079479572185654757026586695918634338878579219403805442919619909402227284054665183863764900337058080817500932096115940790085450099181710637462633301761596795289853475774150998795268449348784272636976499331127926930418996011792570397443661946690816190280592862031910490962457640664795140779114167051759160315604548624529356705589568145175764078769300845466348048812393165923948803416584545294099488144194059976570764116390579807598867858206934201177259264680805412586846825548769678027006856866675393899202454938719548388812741794282175231650794097782374497672693238461432108199476295235923896430674788286384019197185289302911732535202088870920959362240086699929146894760373350196143144739907856450441693167798491424549313528224405805454372056414713434376696633260021361071654623708172151169530132749527677872570677298173740021803137331285089006515191631727315515582737580763474951589737584657172182030771383919916125864965658914989136858756075727394649909353473248993017649787546548172958405826382943058729059985431771694308660879787549995310877965493701274286522264239294913647767429049894136351559717626076902286491559341460265705527241654625897813673808660699312450110674598560944410659964050633441635550059507981048676677503620728209718244456816591976120191221746985367376358465676904012152002011033850122975875572833150085789759001078217937100116197785277393711691195288218115581226465819035376752251846176986554261658452318658310656314228068562166589288547406573925724968538467088315717608997676697625011551917671283314479775404029180075928959872559767221019445047832926300890153443564509371001950505117567783530738558313145010764647656646809737645421623565032876037682012163667513868311189374529645752188585147160062301249176963273576391173058955772565848289657610217233162365915446342328230660890143973687163608918605543232568282084253943853131226676652276717818824525968498306179796231280629620778321745380774193174661607327492791254611906077958227120288860064535488207775953364409379329843519034088495345081448228020852786335710685826495014583682114017966397135349963519480626279897872369899359696449629277282707694613792343354804824862498036163173839458695006766939077370418457630508572602260644938651970310529282784462241513091554551850322458784736139547231282047729479719947313367117689912127667829325457492941412490318835053583046340713621943182544890867008172021968458780027123583640755764629100876673433145883036631680913395527077133005654972013314787027422300394449820580853475776839271992179049317242274411307383190958831320097839359869789204100464517180671308667038982627554904761666064052513391930450117518054172543929986161162918430909839303899517959572795113820353474204860022585562428460801972105972063011460999222644339317072246269819248079619551248136165111481068329637836525637666289180854331903763898135399376946333395213869359144880362680061906348251240564271936276026134137681872190117231324727601940080219430582289169523049245441546793111620191921469248063411095125267749964950531242079507791262703116488164850463615688797095136990541855562721068736171003258472102789383457598282650964357519411161785375996279858168064430595924973603421631981792188280493284793296867916433664993400672987378123146813185272574104464778684191647426714156103381154641472167542491783867063933966463135690102836910545024572114141832694498282762404935205947962734305872107328831267819736048925133723270122822332358352749868777711884526541123396879485780958693869268530505771273288167362260941704447739645969599848604759796613332735745993522502361770086602956168707867719003328537064431670299171081171483558016345968252786981183590510836204700415295011298713588897093364127380160016406715300770012476132888101779719865616039517039622813649095726239541546714895000229570733675987748952325298744919188915470264953046572604678740343501542814709222672410608552207936061974232936334802566460623134425067332046567563056365904823314112369781316502757047332730720476370966908184138103847057359694798701042766860804265747013498340359731733226245198159475025702357184276458013051132223627251705426152845002274994645294931123179995372823028825688599261731188180652448800816848200565774099013093199633511486478762865074056746832494955006884236178614888074446338452711448896518077522326993087105870533440374947980518130905051422729788311996113212340442287346254249708829266993818186000936680452483295166096943569239258037056594337703057967366669483881841601262612425233275672197537594809759445814802904537429926175181802552433259258955030067100787864273333125807285600191958513395775579384416918357106234142257159625691990018577263104838787920830791173333172416218793018285104753368584449149027834932052665052198486452908649785094017764097234469859357885800538771011902125995229686157662523080226750053884451497188347954707076187398143681761282302212418342914027371222146738524091958429999595411159863528766178185797116611102297697119345157674344568046608533803415704494051597204202236342279037603148393247646393836204886802829268553131677798428063981953844616372173695611536693980797034474572067903664469549293156534700642433820379673380737015688363749160325633430565156328855208902892218231006624437845404855946656490040914652563975590608652813122291604067381440541950249254950060249541210696826051034757070724645527746067935787533328732763258860069403473497312617348998495697878737117750371147272400742105806158589637346085332914535803311517348583732555388089694540511854955176552178714930376383681086547252616034425006262513206510936308466487407604046089932416261215711053359536957227853665369726131552678663465195410067109692623909007176154807252028848758476479076084214625933267510949923977994216033099643068088213527911785826310261097183628216077478173282583940302067962097709737840765893687765943937633397159397301400616258257136741935326802487332239566231578144605166724215330109767297832366010433192584199313199329762217169168498108702138412766344492869715162413731040405157576065740177660945490159808319559909364718541211305621016280845769663192834167103841216241133770694568018116268852963485516797609855575320425887507094062820926833334972458592798512714283043098053060256348718126384390739919059294979468402630718480676594260968972077574411557177045231828235269495936381525468225788103318013623459623113239633207667909993862826843763595621632568717574260257112027552981712083378540653217498791252372355650533180315833742597153725329554901811401766572006500539736405529375444726964970153250263542794885051094292168404890112990244995717721680093593951629777183065375204595973820549433740616056909982962306689070740353275648578476726021319389034037168905495748364632279153516373356757030734008138993340149809898953526641044470703982942687136958430010974385333671372675823321827373093927159362216543916490632654440397765804717232443987525776388215792085487344074892824922415978880386207206288942643644554327194283029294455064761026435014000570397432286972158381229291172753883032849901827642046368209870897302733931282188671267692181980317917085406759124320887193415412901418469602819436045206708521516979898851806932039306849477131059232597907062973525365271201710695403333391917285900177414347748074904939253182438580585771592062255397462290343041670851453980923963629876124115852191222156490952982327154606524884213480660799570129027098182235448872439562892848986416721006619689238036469247624264664136260475559744939631230322276504405304457928456717235515732557749634647606011036985875768280411619474800158581009962343099410914440156585309818146237088909169669573772217747382245008968202080254652555680777659010353959940045902048347856627996133330452027046466112841661067376446482237354185923428197395974597287478193745151679908620097305495274258805046144120738610655424904601604908184194412099587875001256207599560084779854142899959274203613333756866365884109265013399873996758100447347012178712969912660231262467031569736014699590832572726017509063691544863126743701162886631580581148132351467925241979546314645161478875191248823830550561668801851451107955509638260598036962732760627511411085913397844797831490959997203866973096187909312369774011092218784547396255188639125846561260510221925283577953734065782612609445926359990517811741890168665457903687291264237305388482354171250128994016298146680013977615800451616666592365930512845424557257857474612331090773445309329985829073188619204512969729145114524137571925413029661842819014173465618859964863975159801617104051909811181532146627179830574001914286649149942614773513664592425599334717867193754173666614404221758996457289007763357453735867797164662511289238573893430320666167211148495094302804492875898393354389993477463031995158931495080540181878389008237698482013689625450574311093160605168551213849669999198680843509545875378924168799251179129536410558650330896258094256283410884514205365760961149620551727407149894299612389670460772350566494373704390529041060137733984028854554484630656625132250638831402838828674782195884356037518708863484309393114083996936859310343341271202510866361877212418739193491700605452895297480845951902029507523104021720021390641803267596979356226174152470710032979387435272235419774263217291099202685866360314841373788030238528262982433561572589283415160174880189576703990805218086368773006775715561439945644166505038098671611096247328692439105965507224152870134164056424459058223326604442497722917038792741138314716598528155343502655428376926015997245865679596328006010466873790373321870496943481297856439856909484019319643864544726790659566338539663681411834238288516116357557509096911945854416153115611864902776554504624836212257036463781911477393985524044013534585213749824988932958527659989622537791450451231216210245428025439393728913754698811120108093152290313365495779839381369171186283482358821933972375191429694219797698338736972139483790636484025143228283012056001151538457918290323205097563390586336177263263542758477056746520872073106188532836608803438482760212039498065509134366401838336903878749048340639464281930395961029105969274695678115251200481799770405871989828290018810628483297176353567672461208045690984096366172805346284563995376467583963527069445894623064370932414099695496209122253269449694254711393690673487157385513349161578190211300283121229103022350184721980071358175915588795006832872696747989253237862345425705287288018980396210691865636210552187993053995226539182113713936351229587947281869196101879852274939876200300326803267439170485606945848931722317938943573944097852597250216677261540250992408956859495625276035907255838319482163823546246272795041848611779901374982424807922711377249819126343976601430098377478463689334467129013649280613698214827923617167076097940158135524472912226149542352545403329264456691452150127912053695912081107672499817601932823787043930374527741247356882527636354254636113675585543029848162424633039148862020351299954942889821169647594838596299946570411943103213035589024273186003626308522934105279457162008706419089380224537087134517082562225757288785330789052270808717162065992019665621984330892893540123884065569859674703191340763732592690787244343561226418696652315556587876168892366359005345558119244908048653916587637032828023296008706499747690592106237072395120013181560967579579645771971294300072051048199447141749289712982692663065914683591145450075012343866020431776455313069364637214572753256120307222211068119740937399202598013357263506102369363626400605609985689553036473450852576520999724530684194432121543995959603792252291791140871274790941371872866923544965494724198497408611613523962307568117586707433948819257712683894410427771184782833852835066829080095474748369361171354849097434041907737723204194765588714486150195280893508710940826501742148035250449227765985515425461535340385758123139551116007011273538443054681167178617160680847750762157753445148638614977528958993733759201081778810492493918977159207813912989644279996878520259724344753878812980909513611476531220315858825190931239817877987554071889771219733580430621424484354541601847062825554424801253158217222985052507366583541223431492056466871631091182073839479736572477560182444612294002435183984728113730360214679272050445302518110034988925447792213065824068915947075876370583828126305273944492765221723188264933061974240851627152717416964612413541474615737902985794406911403092627773679496567913749063957053313186775406009744660588650100224202974780147388732507565367197624947435137434824120287270019701165025388314021648722154299752597469775841079826092956853773118648547811701849094239278006650388449669059608337055484081286285793245015471101428729557750460662029596677884159510842939922701496768608374325877146200788005226066908762025350364411421849996701359385633754086375524558756725135776679172797872501252739545946641555849312096028022367604622243046786796696445914788150839606191020067519297164368764220984036999062725700307983618955992131086680645142921720513847412608951614228774149792162774206834430839554563072251452087387076566754836607013734104476311905857378780752244023966038328571911006339631238041103711117852160688409140994808933481122193256155396079676356789894510531903800288958123857316669912185233580682731204950414564960716616023100461398636052235225154040542886062032300150582795492399413222629596799398849523744270474533373288508714364010676193518822647183101405709959052325462074720694730048237705235029258868515134123748574256487571259012771227244548722458423175387591926996645269569358237553424761461880767190119703047924690696610937749059874125914549054802088365923001441652124125509661542765121170676839736027230463120350784627550499088522292050798414684842229216396267852708026236022606905308006673720226082137013756024722514147958468725042567773772066183746787406429741667483855809871523569904525751133233660547713454835673019382633779290816517463654483472175917556011880295568095229965838572868214004513742391077382825892693316664883858760319991380196566874743855207715068827808817241003680793634956797707374200754724549307714515398308822347015664970634532465455926244201684064189117860527928116492557307111430138855181887261053551699551279551508329878244583997298835594960687903777502037028367550124580292792755826333372444679441516781361864455800695861498504177847538984861258324380311645451538054827559873630720715843576235947138038799905930415344028624924400022108948703718984932317296834424367748487668436062165288479704039112061053777270674426643185806412222888498534676215137665628377604623913520208880230633037454008286207268784348893955565355175099886333745751077646961032022185511150227362508700352984691460873584841911771297339507732777515502148649701165591342714380453102040743663568551242687154868767043111335324744020647944033633821461830230178279904633785373947130350546900398777482010903524338498039242509171440591163935519512243837189952318521201046428606672913703299316698706155901123626141303335576033403240967117314462009536926569109601109190796665199995101213951581184218392701085172568590995452972160747281070076065126468732556932844629966142027829764541105842681932621874669685240036005022105144680273278184002492617822731889890245024315162615262819474768535306693053613069106139112167775675780549588878363268714594521294771826296897004296255306814723885875779106913454595282457864305776720047543978882582284825817425112041782359090663015754885203976823980296457354238810493919181023492503617988477068616878527060064225469840252198748207507022266372008074297372631040799969802569258711798104410779380744008208073534017369822181072525625752541531772113618649423817683597450794067390583728931993535767245476492846907583637883345294445492245832405102240001295063237096715253102165772407630393707273697573061295461073166315650466685480131959506953316684447583609484971766940959735944855979198349439168544745474268607631532553328841993499709866059661764400849894298550414447465095545024344287342249904311309219256036902198673308762776433836099854129311143181497743632866374957853593238369356374966177733870800008852465416090116508139566954684404865180481563180099339164031068852226888624732582850442354779160190558096626671828438110720129934215511491563614471867303988206663886074690275030920563104068773325651694589805455027266025769238711212823884909757219677693285470727322690493885201381721940727915843669703062040203827168402817847575019940129132914139592702821672190106496682733494692747241816229969982706804113881880384535592580893328361161226717146693430361621272093235291473472038125838459510287294240224262123248382034822778059477816083329704224689069324544252215394091902472075730921552175125821945391866631554856950338784648859476742099546960252663019664631234679140746512107858922952136090047411558554861843429255430751647507614150573728885785792867655351638115222947994994353529492242628182111523765463286593885257889559233824384868188068886673835837745178709244900151046267092402987547359172742424362935459106394992302008135295414414259398439451364491350128121394682508373922192830075678495684037103566094897189698982406917190811427299395695387726359867495107213064194209828843771056917337036826951523004885790372193667008853743260953365635277121793112333767980611645466416317949382358313815407866028174612165849947852771677455761223350373250701718087082753013327544253759799326521554444399173677330209350651548345032862315137027158754513576281166431852797383741234813416049880066792001760752841967746901091459735075592659478583931581611964603005682848289509707906963981073487654378769427035707183612645407036895901092360973043956262672391507752852852505912605533321863981247273803611081340210519184508595083421396918086920595391612869846825660279762177863934177345046264052860740588573563391928208755363395143132168818768106132314679532368907154706829743933658800091780477889901089344792148339166956357525603409807476680237202011780319319930908676792121615876735248156222415288006298513842362076557596324790791130016926510205536273493467005705306778647747929362544152317201616119330994858978801648072488225617759399010854263166399825885082487892360042334446059512507848979521843594644944027260555952023962736401399131442706793861383398219491010914145217476170303471385285733978838885549047650647564742104729274669413676704814676127142341288902144735014446720030176706368313243722795362694560216722046063902819933154569530924825712932615949151228379419585355904979780013226012542684258392472228176845125417797101315811828593717491741303202338716013032743436233147832007917087366677085613812220206837809954958575038982160881868600735195401260557915481484362105490554406481412673959082283676981092342343940114050609073704387641157699517259476405711210465850462417632699880400654402160380971288785748464578744415035663979450194563175308110631331689415487273942106179156720998312990498985260803026038778219046524732572744609091082551968476997701603764382416968883459694055488908493764013050300276172248701146456292313702334490758151372318105244013484504389818237142087234960250636829047591560870501210911862894489090449571425436267909068769372971662551744550616738541298491637830726469472732323092562998922632901844212132257240125352550357978793385841512318532211877368743292106895025658414191464083841320444853737101718534670311786894482402414836528021576247341165604971366541861820433144085519412517338587020461024813919991035247326934355014729728096868909487462247110803069701477188296394130830252131779700880496601681226549566306962370123033781768156781285504836409994708953411447409113256917883135117837153711627531220591333411714428746948798800653724455108385207871745186981774301842124874649021344911396826687738313325195611205582093252289012565629302267614699272035665178150253542876088372895869529276763532994927720597687984645727697161272467546284788442368491292844225886439750708649902387782291407087665297343616442679201854513070162277240382878684185702529956474395258787637172598227961105528487000890911804646272128454491329180294645101422682876020703693382842501088880324868596894064009713266492941337229479590707548399047181517640875870478166289288894972275606242800239385114007181354083908176482111787101928080028864597013582428422311700851466432232636195232692068305579215688336064999058241822684856708228101682078875666688481341373953867391422239801454945564885819308780038353226715179573731967433250478216208125514721105440775374593891753958156430244510563700102752829555269395912565759587768557085992941155214431857751842639425440925664863600127097627779831952339601591163947132039989518728585273009292122821728116596887090443808432767592558078062077193688650363481478464171006198940636062264309507956641305031390268794552011045467827227321658151478436755531809091392496504767820029628653638230568176578232897880718665454473999956111247460166976758749707127223905608195635224473260645852623886087000684544195499560448273354245960741326850019312508471480004030101827419771623489429432449130048368411625818791783139853825176305456312041293069140275421752463514709432637543955590029717154687816725069076625486088258819501970911175184797399960369276427717326982845134261084520986455237364837060761940109099818977632731112076838007922792492582639001510172385207499915745655567374854784172651242483214278080150320388512199796742126337630099511536866338098163673881193213396985212060613187443057701419814585039723685347218699577257184620703388295682246382492805745314402059343587041591536235630658928204492791402202492748653114366558887337463520961634557732328322538139151065467976529183098859365217628296501819163770492319793419605715410391877330936913408557240998331680789768323177373232124261320425336828969761229211312278219710605376791340855702354329905670220994514006528701623647721190327011893172663495111431215844436593877452627754887128569328382403184379921377256870729228660726689573494308373366667508686663532547516619576108827666160186701534385221506878352111870983885335487729691169093525934456306653066033462473714813597644266008588309199160311617940386108639774833607213616509132812420237594225982096580613885469183578947248683766615519568342697586331559108542414144620071079326467802339910519784063416748581214035559003260830338664244304161762874407025625340841792674243083216407651654701475483829815843934926567495076093820340672273157665871387391600760464755964713540295217053822238305408670751550535857780657628691625416015237293421921688498674269805730838828045498976472113812272057783366195017658523561565155322683391860522908749103153276016743059119771348172866295019366089186688952988807860196501450760545204172964453209863378656895410070768536897855043834708390956822199442440535253994026096656215618816399279984107368216308815845609242710443838122392134605786990349760042811394521517033252132390353872250646998806127677255692484954586964256123124012633121705105836670873748205973641105477487393413200255533374923080945308980611796848590198408694886878540445845938467040856454847295583571801729346624915936835648199263651493659738256076234504516795428638801034799860893539615914832644274499232052030923318372092000860919411121378966705300589843468579013428442764473017616546455312427342749756473731132939781654443498644981551479064617457633537653623425350818088787229005157827416794221373885869132991996975429793333032467055835235745535604847031402336576024048382388506049913027828651853671022125796911057886986407256709136711475278601186381558330321694666107644862988443060238758763628225183106076053439325973689720246449448157333770561400232027135630217176427868191382869650866400580926089762140212842587492588098765330464523329200856600318829418329349644369799668402868893919409331394781500373409317436610464266468238179052111897412712471992706538579021523708178060319198974264327845236672546056369340850473357849054439892677191148036956137100116585196967100832305281132800293307019292038198473056433424172341492049727222000679343362580466045622162313857702891322435066130143533506929245354316376792939435339463240357787885730112021933474505123927513217254559780517480916543240679791302205551034363914559112896750558426127761063447204117484270258398191098193312399299662252851490157926554742174416285750916598729349742910468773175123633928999501654259692142233876011580373057276672826400519137854657730434902684842919823665274064005534385898303887050112802442311575294435366659643759401071257633589128458048794408984929560090499859816754541075997109357769774057543482964218810935182710937191836048891867164099935781943198654450392414804568215338098684590529311031772742408302905885255272449669001956663069562101077465125924736124447096302895920057301239390109083357527592225231455334123527042538597668461551108460452492512907738032944265663797547649541616693563940256410353510433536479970791436472022459456341915612295894455075775059873826584852588889525031384317909424709362639621773998176976498748916507454168391810584211208128628050231677099165720998143844462408082326474174319420974035031748575683734544129669106695891972285345094395151583801033274450336522748691472597536267694082057464110025134210746414002725353075623162886813217742576043268073189793580845292051484646353329198317423257224331201828035893911087184775181054461955350335524977944571419097162392801406415843894489548215146971300075508665450620205187099300397499658325892690500514642636967280329844718319422834601790610064181571135459474739761892251597431948048546848919099263891862697633127782371631222899854595638528735192155517327667287768009693439750200004138899792877576312285464400940695984117600991403510216983336319347844691824987981408705095459519812144905998909177941911707806597475071337514390330651269737189893534076843647546280354978748318211753268787211926183414891307982061786747502520252652912299741759835174971009146220760946381603879880188922255291742716732016578587620520841994627863721609705076994346998327161720646754495089428869591815282079574316604314565030982517931648443185250380298503872407944929970944974222082293086971443132574926622043620106023702749789814529076385362812459469486832275822014227291683854109981676660207360421151411456735018667581342125613518327410092412185690134863667135537566120374537765822901448864166837609430195672764247996004566116535823549400923091548723647925381278512656315753769148489296062182651380371061601631087253321796931150772374898015224427748872846759935058963953949220790739480933135696459219510131747713138778796780293756437041343884868458440050570143749156684623976609723946328400588293495778113858594161369857175278920530486552649117234352827063931407677672865025497486370856789796669025057442714730185038384072903762738419385010821705631736851103570894972465821492139344433012329826800293487435502668612051837239749606612249540937947547665422866957811413483792305522415256342813134560475288534317321862323480781621532748344507666051732254993222676946460452249849705679904597660718951942804049486015530283264025515340555917044729041535691179927811082792839455045493839849200384694701442074920352504638865654993191171275950798993329810085912320703309411837406602759372241893178611891420433901596709167443285448128325597427141462391260307710955554557103568297084593607866042874665903843729655299319412337443770424511902301203156851526212650792811019803080023167181498786920178629151001998855202531450429742133071113755446239302666676286844429166329863895167067554577114434928194237889935480627567168496278691676836358579336055512448270359003700163645861534335067255817176374516975352489222835419498146655334088534353577936858294005264701515771435731549018954538756978029236886573517898704840946325917288347596840556135126046643417358978293281811102100534094230907767201735140105363131799280849688911934300813788887366894683628658477634467038717260202880564084037343928748159528883711811997400263916674668739664685758638323685866440625890482424048399956671142817344021430732859422735557302389885174167830892099434188954859182348271304806935850148945086643205362315873762064387896003178389067061899931084072641597136060859430686395845514371311275078548918520023762270331592695364842449642632687876454910111661468995140819853023074054432305255069823238701354637788723423328427206314889864577742244200227229093876123454446003041008710802038254120234451651582682594422794720153305332533693100875215001026320314282951912079014837429142158704112139222764325018899583530291258749765816005425393766062276493065194951905314115232831900695826143256912816391247285107779340800728642036696662969343567604790597189802052889694607011108542791985297225836150204866924358869403902105654135818279971628821631152953160631048114053401664629044758588509264844437649177690155282394585568476312443790964813631912743824415781403940964516139633236915267513070326998610571324888477544715359783322593997957785554984901948303510707828451472556252218363576726301290522332717964050643789420716216897324476587535890052084062095616961700448775545030574687991962840561308212379129266600813918301970368665479478954641823651278749768006349564383053399187886988990659786181760978886743244164891466268251109767159697824950000637284513842910884899904198345594595023045265547604588719098110198361462785036435682152445673350060388324313606349582474124539912243538181951121306328576480378970926289627912907893118428684879501641435796693663642114332462865188582606156569379913640176179569824049404522660421194146559341924202944668367793406981168102783202235524126826851580110767654311698787209520883837144899371846762806061075433680246521146632802179810022855690269955359914980712134247610690024458786188028278392628086551906915052026234478701860510504120419771239728878603374710901076239886135980376139709290729427261672876461535866386375215446696655167963468078136267144582138970411055443754294346727881984405079092000950442564668800047244630414336643876119961562156780716574210556974526025335747896199284365592713185575473785095318780277255894242021372206912673097218449908097298776845889894943101089879515432970584056299201084731247219703912177154697062771872554352541657781868138796924253166923244720251120137554423171126423398513375593303044846849494587499332957126488294506012395847465826536148899551253724155533752187496755579246442955480681123374256320959804952326756906802490351256967140689848810942063673996185737821142768056011198856168502238918890376563318662604119140097325886298224240710450835847989380132478445833631176048706837601624700802871382226826281653268057883242773440776071983255691512685029126200087505243957759486324154773988541040927037495333774926967484048174759727712965640299783384192567966507795655105850138529078997113173973974746881124842678241538253186982207739802255470814805701079056745949846184670426902887831779596349595619871039135675214045574323977325067443005050180395316253810047551659596111249271508287067791794656366357163648962323127511379975085262869973782058260297296925752700223412248007852636328137730307801645266470233723763405103302858425561440325762216432417137985671258222520869316965559595134361095526185293169727267653477618659175675744974064422609292911215918490515346987831443109925075045865818273716012193676711962645837360938379390435486477031939707841517146313353445160128937116905935836150088799272864121333535981933422317026849713558393104259658297045216119981970440958244833425441037428508650983540228877917553133338531016859527733498041056167279804720561658862847536851069076833117395066120914775329114159373371007211045940988189105543662576084234365347778179834603651137616148172189671541162440465789032299574036682329545212030747197927865573074704288295662292902901046204158123082512706445457231365331629949841204023726499182541431315412857285947413210084205218830132435727510011737963616680930925420027696163309862164039330250072820593041089236697945571636929185516437496666282607797326467657165802149799757018926651625747247093203125540965138112973494226386328532130414339679726530160013124162365104904276520445647024147288314054505625106113626161592901211305415368800336973428820377248789854235234941780891772500350375769504935991273329448768084771795366680962327758600492181743900920714721433595053184825166358266894164996176166409402822192667152483975559871439927647474989406749222496333540331488042291009426300859973703052760400199425758838553878461091350796645941244351656417987931984069245765230874889075864080034294862330260985254614490018986428951252976810311116601649957919027912570650891689249870010422371173806070727781184365798700291644999095335296750470104626377308865719992381304196543724229063732848153096494658119024759153961492420311441532396294246762117119658508223857594011314464587361855516569643396919808289423833094641656824317679681982291658252451390430642390449275990215805696575303016019167187397970302979672816362846831914351581508722115275645531972256676791842178300767221107627460386084999893897297554803185310650530758013796980267253203540172551910061268822069887088762965425525512257555610331804140016386643643559957238006637478583166586989706084473629524121589736362105671239214374628066482767838690284470157656659233102413482286571108873439506525498084530274752967499284055860790661669504345772950038908233572052340681975848220254086840385345099637654000763154209839718496880963333119533927451773486540669958539198371288441675353829365498708604750370420475749864886668386034024995934760906841869974999479503466306484964134840681076750339097693143771610746400932469974329965850312485372356466545533243154947468366645320579080980844139633618470829257157203257816875970511213949303410812404206607704624839093832370150160361522950758620635683585464795735222863285744208481199783647225731210635899506493689824815099438562401263919347868428267706819120906525672468575075566671496569105905699344783004016207814043327333267413928719434576365390519445367159960673127405470435622212959706958581211073567677996970656083857535958050900120803443300011086587417006407636260117260155703191663541901346835518018034562550620757440799405057463618410104984426808790849002752830373946451342720434008139676534240801832084945080899100219962784005293386215321277251766584913776344774565535825850577871453902345716814376439085397518650702259207376464031041401047550353103115125366239496284787379457073858018673953754464443940676378280510879212471642349673746215162849493049748706974547457915008288206102489084254595168699193691614022727807104603280097487639273412791468924918168835833355986058186013920943329072815283805193562445880656586114131121198499799362269459186372386058786012459281112287076474167779742948386561865060741520522957542511454670105443542233587348232383511535990870054671903892616454380577077395363775405905063264911819535419750330996356160614826754542783715237762035230496731948172405192847152320815418850490929106718550439888391685736670672942267668112794881123500660079458754244244077353255384891170989395403129279257388719961874954612302628977182270477700674447148218240516661234893373704601548690998747544167473080825112604167850176184042418074799157428689534578650921184591215379249386672099120405370951348895071358570153313792934020292439772242327113667744644702073029533182099943283219731364334625372662089456993111358504277054949047460142944534634119950496135694990175635436056509799796482258771215425405548656045950041176919360042817183869868120226105497201351274944758920182002425759818360454114652275806149899910338002872601345338017987891791164712745800001328120158785607493513952960032839742473853679376425163918888482753787073092694393160202269467211781486158716750360488009502503087441397027220821030706194855990570589445205413540143485737699745073345895245322767639471467800801623100126266574628913525838491199264498973471290298271509199927350844460361659470657486312769175177010067692314421050835005959291684416766266679711405566684543403629851417272286155765551289151258313842801319318021188045130599755084642026746403893354855134763092797839494769856576491297236434607068503496945500829874095337278823955892808180565676297758155003266967793620078838917339736311982579086957462549447629907955119412080721398741117605331711975273060930420095396899943501277415322978761489302204019020467909728673959433005658846497573834276984933940273108377215159824854446056243855634780018530578319646017846601161844520145106417421563501653615931378053324165193246382823063954633304939839242156562756826255044919946758069498142044145710302134563517029554795227793116396479510558160892721964581871003268341659266568879340910646208888446349697690475568976835332288583884794767324300572890846280899120034169707439236765516338837660800605605793914444006823098144515001205470293400559939236473326551967629794310240992687754278530897436795669669792536066420498560945636626726604499835304136282828955375817769907385642071500594746374513878739255313157966337467458723103763624869469919174277915364751308500597743515568633160582831629563290406274986667714814540802551378275978712060012658348194090932285448429392683441055197566035919605727704616289539987380246308570680352284325434379227368273858022679304522300517063373282968628008967575011526206509015627806090442308230345522560949715296580437914480099400839402017209281097823091898492305458150196040440993227857514837233642439130432986737885657558573043476915255064386094612709831009202089004274203218210623146995034790574645234523547880653127616938160720592708349930360818284687258450585641580728136083466050572032648787525802041192085087519017169705685352254895652821839863995278472419229070333028745308765895322424145100948976612403597704542444638908665717908481441845853522156650116558267779670129812850813139938529744726032384633115287316773907503563283295591425645260088301527498454743795626607110086506876788757013540551269475966266949138687946630086666487171379288553576299114395752431813643550948707892860759244470310872973329685171024970460957212362833395115426277776702604918701851059224041869719967323750754267339218407513247118708678832789673908306420866984010807406670580935763178630853988439956180341027007202397556883871950922821749666970988950135462118266898524412987047063030135144132392099640711789620531301315347649493950270092294015910897065825126876056848855175239632210937612944750286780230051113550137320559198654437884729943112259558513788791270347683344555410376254156184344864877623294220132666489842380706803461942836439929299005561590640605042533980100357802975159087223099016630465456704720704568143880723459304699971253689741819536915313931702901773222692319543865971351332152100863457325003830458744558209960851079574055610039757040732257818877315126041110747442410309949654051746511632367423389627193040435786270246512563094325274802727741207410568576721637683269450212774533913342231260650358615834317613165822666491539252866937463756866633301713975167646293351936483491586967018052600967464989293604094593622912750787366905919931951052906173321960001449394263917237024553476180288553743603909238866304130318297685122261173638226867494359225457271841485703310408306741196933597787678855625660672561953819954125246847983914923540911183989898238301627007637793240010210199752124084682012450436575402578640724174247915695399009742525478846818862143342077464058070817059314590032343286104365356342654538669020180939946383948328273873495505616097497498851282086589241722184776736075139074479566339703697561151290392600077079211551882691080171698966394472793753191987840947147047047389038573878621772126154402098506294281445649225854807306773135709619179894288173170797943049126133943911761354140079371380281356385786919085314160768995586634491670849033643703839575636757424527007228374883261392143064378757078508422173181520581995887293837255595581565600201739473414180141768714637580572602230503951339616213367458335948092341951013265160680633728836360255760046066878589503340541734319762493406938443194683502691363950512571617204656135802294963692805620575153089779158587565003734267393774514119332558340442686411035633798038452060747637617781861818733954809382169666693570604256120543916185999559291493857926306261264253016209566343199368676632902893195722169359711183718071926722189030336053102350905757719602980218643520875697297243279842353032075086083020382415586738166509936885122034262971337878679686257269886863488955163492428351951599945415190335169427084006174659153735368009581807232372217414493090993490659068612680418915646950800018900831355890489271608661190747012499454667494537900407699966358711893706418302451671562613188552287539604196702860192920505923208010280540372555371954263520659432378295317267722186548136644871737046503167390954661827981215170900400489902127179403824436156653909922954108133654077422548393053802178229566364174643135957023482933629038646342965157814235366300773995299696607887824406160590435685642381603615222926855926025304333125979392485502164096179945953447936137396111928150884853594895420817125559720254154404768555993988415096007220369209268374495471341626554486904305618273278821928932673997477503567289318888088893513412315633991293858304358234986157400754226091414044973533680165591154009859093613878955409214154053616095477598563996636696545553598347514770968333137082567255631341601468114257993803613794328051419254653637364774164850280260600752153601694465911095950203257541866390090834616811162895879998206412195023117970494584998129467830547570473846493764787712394087669258583190845653981637868379653205301463201309869588992776817426577529149745158080087372320192105173734973714764208850338689406381459946001664213890503770750547809932610337235990200099418891699562203355937193984281838676978149222602240781210738894662910243288966475593118813326071425365726601582444804561517120168222674090869240933683631645045496524411360519004533859599188150846170904544973455643947017673803170884977980545084209986305307030107775521915349553750006646935660410016506536362699555494992028521228143185352961569249587846457393431315920876986506707244578257687650649345987841615305864391218324987486982506614396933058941275587312753429143152306382306448756316143636652327979533035519984539090999450274663621077085726985553359146312477633296545167372115070968376890197345084686186784821228832889000575826890895828999999995174858633982763310898037851858850585183830060740763476750577414590751018769922428727986437039909541314534447058503922468614001090116397577839939531113261422751918858992498372093899737117164832971397162366955607262298662780798501736769368127930855222349000509327092421707577308225643071978148483666415836578204766609448067572359948467782559180668718551022930095849638364311356361074286359375572403080442546140056337036002505814520865731767848619308628388013382626973906528865468117118801490916116610358611266811639728137082394734745844382464051406007435657065181006620785204212806777850429076371436464601433376560969992938340716712288070619499962428794240364155638582456088769142094542662815147264305387916046324651341342443416918148739637420060224476451190468373701657419805468625393381485975806777120153838469000480241726174683255196092761795754608153606344991767090799596252110081716865349529560582409656265238929629129954917183346382207989405252170439374328893773875551448860353326385740886317207601884388779326624173891302606560186441197636205045560371018988315425449510726273144821261819463419157522275103421104587852753708215481902867063624210218121477961495494747108586348392206755169780507766422144783023155420664883223533287349314628862164423321293120477639791866156410876620806745209939867368268551060697921465082630144980558616118472369337109079488226733209316074111921352907127948532974293067223374825055252954550298630551037555804382877075912594946610302187705394224759155383249605727847405996562774398750281116699957555131781707726802086896344229719583090999662732232971522740866281818173097714584048272429514577899349455469253595659249179785406289643441611102313682492436341156620821192276041574196059699672197750140695446016512187707289721803126672884886959444075161789187264693006251455387255793443459838855070842999686457635151009476459245156245312419039837329459926563270363184785905094339306344796919134414582205369599929784043970989515199731802312704364497588244685649772743523184988635949041375437976432493712897673655258546161949865036445652431847084842951397196503287341605329389990531773036715708918714823267738345433707636756486395498678807764372174439367520883092351183000313566175133574399227128416525269581177122433753142699794624320761060725029883427369998104077158422309805046447516932191835244770342572426141072154817553485575238499459734392706976700346320936303521243401264522387032791422805761145098811889670490081213204030050515274539076156706156009822417008799497378157151842767251921738292627371221825238600416191280436637578234363869412083147305133881821332416671043597992445094438254040439274898498515302998585300903381340987230545167744525517459485937278238974324749465653514578472947033797867788239218376314213370442265403740237671837500905352240012602977851109827512767563960849869659786969394661710267233504375361333272039092249174568878683738431681485043849765853517775201512483356362325242391535416903418553437438268996119704693572248989102659730287835089754650496836047547944010669730769573467702886912919494816702771510514527751489747614947929233697348474106071554138968622714915031362436467498987680056698717717713097492795066112863909486805449024524331365342803424356144313739278751174284699947762463615177718120134563354062463689677509326921712812288705389090526703680845133912407957706629925033560340210243166823791411575245258271240110466297658269918197890427791011288551967419207218985963356123506997243518372541478326917568934320812167332128080729274863434922125266885845622112808021189405359121860765775520300127604206588377771981369103242823961075813509554875022370074785390059531410552402897055381839721243358625730029328476083984186675407016872878571458592846977545165413891544130017624499570359750981537754959989210100599416924010237345769540447322996969320729601753749297080191090211453186617353998879368996270384172752927134993867499700410632753139502475356259383816132805430389234037959010828486307932286215709816566225666001303846015958366560814463022059680554312226510447251229546753284354790084703721991131692004368690739110539400335292168907277203793732358788200881526917936142912480898954963106498979168963231025351373757884855365194098619483416763876659511143360629124777969408108741218601701610862795097020819017740012035832155246539084759130022209335810508471918109341474962144799343922172502207450560569166711840463147188300177828696521272727474325285711742704531191577753153471523025958536024358080904650173065491200195782882690875475469249566480673819083621659948825428971657414888842763349642169869530698691831424892153301164593880284394518132744988963231482548904555174327192508508458534151613193125581248270706027094215016418213636148461143569978562682210174070735591406613766398167322734372643943527797570088554057601441315067522725228185574951259689921111519167873810093454927807807127588260293669913851743183947392761738545856692088824410603558158587443405309062522764582109454903356510452290731430919802305412790417762922830578834164064667581472515395832442220843111423446197499698747010352440131255325425003486947260602717681227741880666363414776726009195662179162796992013064578099306070566092106164026507269329654032036695538838228546907184087241718576780819522547493845771706570183389640955709999433210740767652517456175262914168628832546278498481458443335535099822812762592117771162536774760099373801006430041212522781699283405689916180319487893932660990015119541287892260542546003312772336065267797735679853711194636384944264564028067112983615104118147571217979725564940421176387249459414108369496499199995315527448173641696454052894093519116469006905661414173960128274534795450415322756666418476687322225547897831544385804258441263302887703119578837263246207478042454263677265298538216500846773683124854826733281857657563637649037402253445941182815149490280567105451886024594092058991807366554349965835593770925433476953130419623679613769972019254170838750676482351031524903347627558632013396047012595730373975956194734503299857870668727058736641169549240841651965452974876055373090772043235197818409878732832878582271051271565022394078908500123910526652450549309157272812345551461235018149279614606438966094713827552045710811881980024090552500868848705021300669865220669608314991278489887814548704282198995693455170530520051144992200893706000484550050258693977180223067400443882071118873290358025131874872107897165343639184713096560048628323981411227158730580449452773213971304845773172262647921736332882782372394035432411232771358319614702111306932218855102881144680084123838437953545508339490042572793414450815498240786660652591179764188544189015087286151949004815073485055456192882418699011532984783852866424786171424727002686951824726437769624534300393384680942490143970961721658881247105656602767906121078056967498928139926625827950209899842862364427659189590850576099871826999747969818520757375102464312222143411099581943410742564802130924548895572773774116633673448602957494536204797167192955330899493957705196229171147853624348845809987532431610307418389787621317133064588960351821983916156990220489456611648653239691022168583415184900989133404074076365105975138579341351253829843546286038632511138351174306659133340404559768189873496004779664127693725216564863361971102234986759919976524742669993857331938098615990173511967735409882845040863599297193550421597145811962303678515253448787174036774566852544015160956130375719586906675169235089084901944011521957398329035909504153591751496919688721471467430687928112747703933379891382769426336810987585735141224293695495255215024602214259093534832410211109644021135501452380736940839492304301753049255858182592371569827517905243892864472747946273905297187897957116701075652840023822788669609800071472744963915257770580276719067284657885324795068146221550577553409603062635277877304883086413870279338160703709590031720690436347647424231721337302775987737540812282101659169842933357595523857612987716077074362269964063063814340059741002474332619436375177198963761727324636917832175939911805777815239904713931176375038139597739197447533931342330054796192958402510124466502067661534294890267139693424295721829779928791882138337299213049043244279814481689809087240741680115347000379342282522532908452370866100708724413097479915297044152490632857318138363872184136367063673064339700182259856704606592177484506214886638565389826425450721064948777285297840739366446910030018619002594359026311865205056142924634999888121798160790278492566602490917683011346624546759003128227906777869694460386554420597953695346351399760334728094856438206781207693656658583664429372314267507058349045827250103848341467947401798932163771063137918535750860462285952582919152500311846451948203612831037749028738060008152557903471522896841164072323562888859442445256390428386689481770565424953376000929812054523938226050230533227444529307907928107171937666557114737513890019382958815070201815208912093514671885109950779554101462266384310120676428900907123635178279955210079721296309508415645581098122306755502128748550702854101141850533117620438328222973216460270372101597049138758159251108104535637932005385507584325767082475963982786827842816813382643369167335042145120186469075803302937156732700837533535792747926921094247384378919623373318549182692074022225738742174936576568119649834409190148762897465985453877974853824936585381363648289868145329392415317592676455312767500757400944699834484712838773025625203173542036314308025357365632929014795715926020625377233661751938497246163586944315564908021277357424571290678819998834253832406057325464055380148703287382632750678754942964990226068936282478052653127456668043316671527460716269669755000676088341304276710347041843286628778837274452440430356989468039498597155399116552320403282503284057972222609598426593923582145772079672217561022452479335745733204540118956538859327200305934707612218152860145967367921830737321371448444254410796953515440548788409535033032155752648267618106192323624718832860835029099016820718780297868985091709817933028746005855822827550754626458989538058933481559071551596089262511784403181994988666997307734108825788109991042699019080975450317741623533651292787845735910875621178974281484717232327940791534881012394385447383004596889112053267765268431145640355526787878607202385350815332813507670328356312804697865796075866326623695972891981295547771988185366143349154034222715939176180152679755519857306863739999387671294690849373345245811810434493829210734793628720986942402981196383641714523214258952367308081752942732689184525922248726797547309503042433921525768693607194739393734758115582820639918427793960463822127573694959339973576334823227813915394109133061040644533746408916070511686266247873868339478251234200656744399554751425040326291587589031752020858794136175012166244531927172446927759983334684292663876268748754794713330803091590162357266260712258617462371690500969462180819089064344275732721341910202419378939382782630780556869720602097509735753997592469790236373326350219240478611016995283985100469489637379419193472171456244701250950176935872064354215907062354828626296757630678746209155478652391566914116893913622052002362008317460086306561767585215139647456678094984100948911632290342029057273075314414182021161649910615973875427519121504725621415103205492793190152269422063999112640131159216458968002205169299957612089486334528778956615384058031239198285700245023963043957794350131491394506239801955026010779279372184609792258305094703701281703630296856977090436445397948410320569240005359057677039132952847611172424372972477658382618918823026017966557642528527073525987159459505813305476207063590766462614560970002693606746766544909823497273675935873004764057389310066721761392852656633837477735043928453129185753053913950515939216632543843230954177359939958899964466940554898498214160539806583892842243751980892484443735797077704325198824591125413671876623858014778916713334952092634308704495029651333314496453065379566947600731583773497827792411578461866671051022949065336554780918584833321627153383271793011343084047909809768155191203573533089397917356898238546579729140881747111481576715395081259463586071558641503648402717902654472305808639969655887782774810804966784950545506892469909332444530644461110697702719698712856075590284286803957448689726987368550825615779384132294579260764330592870473322005850093716368989595749345957578435674816358424270648072915065118022573040515811661947869105175639012466742836733737582001250871976901253741745130980405219294451480365974906215456011037809806562241286502400054688664284237957184313553827700273073982197790514659724594489674859781899446828931999671256428307571322628151627036498092088293339480585410166818459817702983195672695665874629909685782021896525153711760189808147811969205148190543869096018765688244041908004912419533984807098725698738640936263956707428758383232001932234446732619453707830464668040179658508066026059714452557972294362728421953815601909983381262392288387256291534860791092934350083283100593590864247380006362539121515546391951444768912424348062767810198354512850962769514194842051475707656326537799509068123186918613743743887601419394436387923472071625319074224078997264604280705462113420163858178004125486798487430829845359469861129835920151437308061702359132132319583522509710578568181090006813490908808596686393230981902074501543844117036695129331283873892472964521626986931054608284913876720690464722552181950827945962227137856381329097384413888591626178715509497094997203244766070687416233598786222542482675392450197227892424428466383831619498751938349810681024300837909613637537549024840845474047303651630182633573463028761972341042562090288618226256151410165988189558234255541221649785119752296035885088091086012862895534476821756135523621255761024684521678893481454002616090092330348467862796557063531509427704686143916208066202528598566931836422666994679494626948794642020519745563418294691652449941681349548047111881956249346397566811148058259508607935781449660116689505140993601759717912307399180455192234877487589434854006147477134859852413815306733269126088285588209348480730834711010029249111379584971890596740151386445062262265353907509725372696698249272114277133436494923971118025244917588607084118648813811040520353994981310208525282074657065214043248658781956319841566395652621167870610854540852681901369193433301734944880283693456764107565960528423317617587999729977064198723172585995842356841323139616444561421987253247216459913558501401673226377612709773156788146338129289039745894165226018057868372416941851643697598395693063970660521240654903708158606755739797085380028962965681548107328119998240064926647534042856739208923816217451207284072635079370886387764390780448476284230212015729098771751351380782937496942846028005935467328279980918112300852974721186247130396396150125127403236501914014607902026431089353280131476907626687032867540723878726804738276293805208833009460175663163112888558376316455779381048682936517150567165879172050210597147691386410583472221838894084970448278826503248474383934471043988901617020629984395947649640073489268528267626823515163446917919191542864605269538350926925664357872190907538891402060578108065691915301424978058744870065441553462642137184049495395955790665079748611036220580673251905941848276435065279485902209344888479022026731187573163750586472949112150625116653179090784116940718540778666576809717484786642779543452196670566974753681422874075371572459697624982132098573075538479522690925342460401258605777952427763642036469042314957337124246947172084024963953011697242412995737865627207401601892590081087623952560906734726647025941554852148890451386291826172366469755085335060488511012246306781148084754206839754766732219857376248192191761411984048332447212492632828878645415816987090965117198020066373035320021627645132965451641432792909000953423216656528497115383633436000121388485378904284366687944222442408485068984053130439035921972774315255998142040967371026558125964791273229963929360506626938897076030804546728703093272984050259476682406010755780168507747414084912490775946042903670474663497049103918658014165402283603506065748838450943263378243251768602745928338777450849963023199088152688459965326619707867277044718099744239349793264819788800354688925523184778966287472584971945853921211612747690089796728820587848648141707679526517769607427392952806706125604578176319771088715402593902029574905103254900252021593091905745053494557279315609065057064022826075053784249903798230889069899013806514462429591511363427660657116277423664641883810918411733625037612656867183566725282910143825753707882489506082546677062956750590996600764220466599442185496798353119800673607600481104658570982661319673005400989220164494324077491323078232355400289729723344545960189272750121402988364153562527293940390103627515815052805071115873392472670786644279343794172612025025062876090695854076532800415520860977875975183772569339863936357613957287571810573495190471087302211836191005424475148489306699531268537193155520111562602061673702688992481452660716553181366705734000978391246967140101619723736443025206447952002424548831912419229057395243808797751223347629160417486719187325451980896340306898934750601132201431098918737280208532235802188933959705615990518038695031046546483446931300328288665292116403008733869518685562804000487754590035805939772094733914800188325064843532923159496198202437951792816117756779442337756553068616646661983875376951167898012823169267624511316995211137135936667333663607862380971798676495037504374432428843212380747012306337585621879998362205305082334222292001456052190724265188782660590750600362180816371100216903169323038587575788982684137814614861418522687830547718108688808972203507425157925688721743740993084468871658861623838246544767054557404693161457969723955093402019745239101039579875268626384698512057314490601085152043879409047848552967749509578017496658949285056845981041417238259054481817899548251271037682593598959763109485505921457090270048311201826036810156795929433871284621986505266493500108941409951882588417912752897502267805111195577694906076459975130876478090033215404118984447189233516414380517075993710423794440622711852517629382411382836813575417813844964599305241511551174972124854977402248081487117320373870913725293024664452881280423269605116396562397644332589679195449128144820778918598832805587851256344589234385348955201506127677853332340322440674296406697938309061331352958646169080738714002560143854380081637577157983084935679256808541534390028625811354407694830449379256549481468157631887967241542274195391563390750942493536351175636325175107242104968854360420860123671637839182158818183475974223678832571643086322030044668644695303146139715053179236593988921626167903737592822884515552573583065029838625240313463900885544465711086483444078016041581770920517854485859176394580188433306191995721955547119382457853326968038064020145710413965233052902408680652704002625953664214600404855424007210383174803249238924639844443898757034751451410705071151466306224203811581004762409355636221190924216483977526754746888222900776054347436958856771664882883934882095358283466072838981713351960577766343313807829632293210954636319843043689098101911090646183527935011589335616916172184366765905869265291628591160277989078037560702414317272067795491852019305025775424599208151377050033852531110044157862494288183448776807233211146538511950953410666719666420329834288827352187804215292765394111600294394431278560069549408257445901634610925480337327387500039044580219439357166662167318125410772914705406918591570179312250623522847835018668133768471806272955372786605470757646444186885285089887284361440638079160383879687662560111472816997081606682521011550770491468874739266212186616611937944751469103624376663737051626457720536537874995997605538148484982409576192562078989176075372185564987375162309641231888992286647660772889027297146840049944729408849501836143118858197615217818487944566901784885192801773847129400076334733936803851981243441941125526733403251715464946974762140071800813603203076327187311360988297168061535926653661522756447347043639986512578039132578903362243512728086543080105909689300209422676072893625637210185872978903546566377430577576702369243829182316665322236753456261110239494388860005540688025958945963160466090743997236851133164273009737331369490373486961917576197819857509173498424913215379950540174815071504973254470855770042656295364927989238375119872264129900051792422177306465385546514517447319101583145296146455819443366883514676480284796829216928610937225432302117845546492528075613350713887434396983490656143238965509047890319867368804622165776865597169841348826598629906762529360789071083029610045707471426438099420330197868904435215948480920222370014470860974183075104581561547125958932891880325460169719990056810914075466408147248616783266634838605136120663263033561622963677837498205646422819695564026887045617462306619844294244423972604328919022092333700276464591552821745773546874065456212740242231018274056854536067370317327966966001467579210330904275469771339686354678745240000678041648314677661703496372534153801204684824417205179001388994917390002389845895269486436876251471027246192473670954146969647741057519182617569047660191314450056736020398750841987974922093799910927899283755509772422254413941892966869023875812316619749936527056765975042443772687764019366205378133429241285609476102438572988259098052879216192835206144934448868181646448768018070903616151954619466325076428431103556995485260433417249588778815825758869189310249754733085732610067828921307183933002413517159870730107376104664990648062314785801955415690518412524499005465972876721058133975502047411906726558448365317788365624660388547786962701043016334434185575153833165726133627381453574696847386520744651408915333902681609879439965700448239222930515532937467264837321477027359546768342984100772371926276140848168200235615905731760106536155381490289469628499766379935485623180922210033715473667123508945754362857150214003887248696551319429306257675172529871924366551617846416068018540291859287534098159038304669446792065993246593876198236172996289627225748836684624769434659783729631471146992219604762109449989471773566959433931184810687587843341120813205329601501058538693502843044416113877326777468136298265066077366788487903696586371889041856170638996044830788219840955290035783955374612576975132044485571426286482846428053112441228753509489494400025772824872270215460964921241665151859629982193062978809248544764639906180341474690686010485174590378755728706741683351481991845026875310262188355403474705110824391584378072172851761164442091160131804527776393964090245014189759652279756209173882526905996898080695668607153771391551122717419644834208911057378623745445910660038530338903218570286990179143020205792609771750415394108052740018646565561349948359463774534840578264838393265677745489458910269253361261158474335839784916098611537381503485341909047189982523457703049632598432730744030943277272364672568207893010010700725098595368751398330982726464607427558978163560596611400603813065050327416943550376963960934796789144787167498796165634060656812924254965421790853856373903980862586441611509333312834754391143331358191402558570178917483742312184728525939115916821418711075019597150208989794565082780016733826135864622322231934167876818159685792966395819144976889125813755363478500010515999973308438446508397986527711893578924740922852936227954268923638174001806260359440817379793486177842936848774283693910791222902208023405201648445354023300576767003988550838991047353718597944957385886223852278197113352060203930429859321791167918734166564829301791149130562358348571879149353012773942146038351762469941642881580375661752564666743030980931903338547574033653441982131905970866467644167981678249152366307788968490641696794250177575780810120407713736130618555140797737263366008692768524440012368958288575767988270029935750886265998442679148268320421439376382697496453118913735271628590065747417983683561988955200983133143863620084073257876418798281872645328922838438353566540178944313762810515789075179276387887978505559602278257752070852307184840267664900358216680206393555248167971366638278883133350157676084139555270872219774113396530811138769285607032029342173307822389041659228546125031119861826938275399623712439850214165524815923813340985636386688440407502529578652553059543506003180150316545583098959120430925144432168285318277911469104939800747149700810320807095123179937834807541479876081074592052023653039749943656798347196652742048187969308093581562128950342354612951321602451521382861317853663071815018525604495409862632752584780575373947014578866396123986086812085624416577643452796398337906135322198951527637341308162283874717305881295052853133636471951365475714162585573704068658844170042423779757020853578915225329627763865588806814157762891066950559755698324565788224205351846883485445064505994388028479613055781689850154802262744408461801295799807270112427295681254180343882636110161842565607923185792086472739566519835791876358427649485068431194274596138163121432886551487744560355006270288914635678215007454788275093052783594838374062228475703357531434226140802271350403171249960464382000922103771158666571370272444728726569232111621611150535021478270427555901890913952087359367062515458334846704293915001782077693927765788402020185824554212379087172452256984475625103410488680967106841106831913549241839753983765305023088381908647130754193804487033140708807939101142364820836220987847540077607253200508581337733926421459969565179586834051851117950083517546416116044099547439829102201346144158773568300066285059013129435754137211218611290181458903688153829628999639723861619743102453604651564069495728102441080515952890421480084925799435116766051876940917482255191889036137076676674118895262178605454335798938393997263157616000385590659477714127531084835626367901385868485560297395316900935613524600476680483871826625620453400831673929505708620579191904739248933134418498303172617135151355563161438552385035314837419116282008648069716567348448800612423350974249121817216196690592389480503752038593745318886051464393424673063893798238667191309412014597917060323162098490705533558564316759336365036577614219806255133061577248201869326995756402371414057361076787658669500925417112847244194992241331007218587442878063770364306912214630797701542146976564914226404887632926650404379762546832929859882509131736176725958375351505651917511821158931930773453411013749860279070470498065817794266026247854211985235462630506259159153801675233102686500878216885733523835468693358231151528649940599286437912117485566914961758975817321378646242125384713027742255947823873225503169522837508635237608389236673114438880965839566481790945170959125550536786136139212877732850882430434162827774694306785769032990539119234169814085187180527068516514215075186873926496219640336763189219870221738003755038809244209512089851748255978082063403760769397413020220025685652419317342564645605888696787056466996482195571226638649188328944855808011821763409001374684428615635817030555981038003048316659584830428264957295768624628185379186561933055066437215253753258683892591068000881684517264877261770245113057100824528762990402545261766741517216590980464721758401882179397355182024546267159673393793638016509306424849508717345291202294233113315457248900620715977513331396592724368168935123174788965702386141175602566226780401257389410620727118281724582303598079346668481616007974373874896916337035765779046872778220233611569851185360817343700544026765997732229482559657105755228246998649349754945134858034558543639667142887830283627949216882561667522371132461693290750092065581853203762968150557166758663813304191624078832998045249001002107329669345552043969399457725224543486651164248321396786275883443814498344646163574671988929461606440296943705105445425816205617094919030237552314850883040939168014204167876540307147822467792368948904668364302667356208711854700491879021335197376767272685891405723022007846287750769216153078052442454990952965763960680505541081857366829442764386582773963790753102570494340555415470516799887281058142320444385987314412831349313949353004714376794483388042707124691230121058231253550883698815312105268181811758575195255010656629894115309648550583288318470504632609571988254542027634976436025161750318244017214592035635245986480108755609416162261774385364140062531326312502611954818469190144828898573249626891983342387280082907618859922168372992534999548724541169392415886520464952230305378831520267502952093343924776730861627397926868861943990069480751897026382601106732130346873584354182568626445873342317257441835339300081389074365492326319158862530374740404801642669604794039366207800886886266341199173142136101739652194607508071181961009753635265146339655579809722437381978487937726920621083625602668971820990328137290800434977309563112547657154344619913867025196278142309526361545873353917499773468421909853171282265832314533727249612185479604075191932504526120952166460210820312508655246216254323285537039221352157564505621396653192076064586890246155383359893078518753615838027166992088137528079850167840599322476561160326697317436362088602933829123441575514353166845358517084980769353194045826623960977654528802031005167325973906757355551611826322305678596993508711604579105142815655445333258584468790783248356852450272690048193100622855221699429254613180239746854354099358075260620095033387264202864508959125610526538693894604282413034862333478010201028661595932693925290287271490322882086543046682665483223743951738459600064946846611736254131758808050995205393445387985274367469744101471026752104662426582307972380774968719806714380960079914751249844987930950678093803411283531212926052969451747740274595724725941511065388902328734286400335148005072742402399497565528183671718877887181701420973539383630690871103919158314820805204440303897156486471727905466558003478787373842174331138189486742947361747767007987461535906334316113856897929509728267761978817713084295233327286129666480962223482324788022096616828798868485130136564759510273165258777058601200082330570698218315292130087045098800106053310104018329352680210078635798441263966454706345528561315356349047699855460955921391483676566727901994415402857511570760622941616014216519564622573784821345641598351440071196918289134775734970137667113052903881763853084956344347688783941143077387745240872109358089163862782275796353511645776533613527872880378834202596823599534389868682894456511442625162768061625251171918484265310722433071872035311063742900640515656910031190183973557007484095272939000957926899722960601669349962993146747044442831784341713513492442095503186931086921904301602359864160832215913432370721536179641062918021092387190139039824292797544441486526409921529182426559487272698586915393916881431435512812471869035307203131447681158738379204065018296318475846274613287543051643961302297900102845771411634930529605894552206328407916025723661126032453048920482603669053113544911314448436152024873096828473360606065579014001908037692158871031436153698361821335174509174558659832161186275516604640016623325153565031251004768156573313266044267720943573682108043993173825759329692158625002686230313913594023785289004770243693676277275367991442186554309065528725508167269748429619757257084109537296752969933424556589838502161360474552228539001607354610537321245708993215735182821683672788620453475006078226580755337486048325906317401500092185299832132702448597472219103772758264607689002965796928794950656179912779722879229643668112953450340916428610433170364514080553010025943726879484570026930048041973422833474148830353589327230921360376218459003676983273881190359730454227958588963911880600766512171600843146833712123860498789862306732604325470164268213237264079340242064928645559128919824170731643175828227448238535235723831170498550995217461705496877600439066999235294687472093885901433934219193224583685640681336340077617355147321286032688530332363606823001405932889436743072743005367840870200806660268521161613817666307800945298661472995042857664670760098047578476425716300429624335086315561689566948355071026348077754711160891530522528829125927736305640273519749166015329446441516827367470128815609298991591651473561862295394962094856708961109049048714963256699061844058604507293487817561140951460986240941652921752484178545923303256635086702033178744971002961489467499081197443060602516315946065492582777009398208985543827566163192154119408936893452568625309341252390752582354332914330336620243944717175265606163605357171863488600000089379865185929654339872288024737386993027788569245875864560515520593620938155464111072298002311313695443949929333452944332245681127406561712648384717921885053882904318505609696211313359487007021619723418898684523122914461080462601953408048267393041081581168423556963494752847605854377512156557143805867699691277350663050006229642071237760611164993714905629572291878703226430616742364526751547299912548015007053678056764322181298570824223362163657869304795584985318171056131053300424546530875049975892949822188900532010699326221348565192004930027727806552864259916934853981595047519775484308259240249900102254629049232922597590304782339339259135333248864301706301028523971892141372037146389947269375164944540615992303975316918130393762151945670697620812237388637737991734341168775896603022127210279879206547596925497673631675143766906923193924132398166841493886304161180079625867594226260446998433955181747360075794372122858663526902713830378009597568855802423926087568158571869006842247808357923434599133552179428472116820209852058873062692455281325951946859345107471936083604085847291682750426745354795100198105297311363077384443379989453680202082879214352234651736223256859694811115985211216041722943110552109493371317837947367305496756705211490450917929614869010152519322851932645791729042093288143994957678386270031408785152075121112011796922973263931281989288322477944009018522991522992778217681919013797441301943329544171388027346953200353060859505173571379753310222423384511855548142691795801699889501945485402360009662684410977400209522830311761797586932000675656629574249837622168512721544124396132016259804530627713420200059193006911649304338603709271741458326327566256544066530744553654733700540554768244815990093956155240962611869722423069072752865639465162153782433468833908724721351830856162427022806572955254125971928746407963200492944652842252249943932980048837716760828805101025899128067474110672162039295222466937796205043624191108392950589990575963916184450171637617722199231054493117966332197623533599701816424435565290651200099348059545475436870182750121692474573376552764441847161235693742662639123724587084265534305725736733666092699923112754245099809414990201583855485557640692709743948826073447744945078604853180075506222590736001691317974764636421285791633099242245621459996261888902529763498908694746306633647222043575900273496809163064170653326986675081777502751709957753970401338816263011436239965221739996917464979338520141892435094861170520998041171391771495007336138309879149150245490015186972240602478760097236459015443938938528625795952316444959863745073407374873347916101853854635066462110854710521330812978996441163229849019131930818261660777838923788588566104253590002022077963902542323560641634310096376764843945794835721042010502171732304190223373901849735290439825927316472575974629305515325278939372422773214755076901886764642829114751422524560815060156104963470055586136061192657119377184485544969257539998127619075565870976851699734389997131663509256257191972372393660923682632969516734603552338256922380744328388505402837854650167467468022403907232076248127628665202091394390143799708130893886329571918075879119087648694901817783525800609780938472424611796477281521002667301741497602196976921291317483520951536989502610816187652877539915677903277392670573952589969936667697114166985999876503327101719522464675282199775145933268347323026939776131979045065324398139852637654109785862838964937708740789353605555352002425748312330387134202971173885990224982916347927915962131375987135118469914792983724188401556300560473804430441683482293108117649823872343395099131692012885018571199899384766790040510393571991637999412190886239258494339855637285312733677864529532709268506050747493612823718632960525449184551719094315822865971240489629057154456491147797133951734114309812332989946317044582337693030080592926888763505704173032033653614545516813711913679857795359132732465866976514838856711812345625592491282097189136351846567442160007646175823229546769856604685574614409030575145287934161117750368943826471826587825297234127788745898493758547039896165242396454890519894953184083040161995402422871994494424928985114754308367369427876138757836399698331768599091068226356819156893416769040297879227533876248707816570632558653196379522628415789953868952418029507392074346254832604069478897649731470514539414964889303738008477476026747522780336549699124480603277776375162160133543255875928962852566507640235751421565195507693648348637617879091636194792903114471942435567978707931833099771829929344487375892753364956477676140320566283443833221610630526189845887743140503060504358798610501931400385215359449213297828772454966140649684826804817194282895702850535318177740108290758303571640144711194248859249292070801816138465791345063698504430511467139492502183569991750634464707479230955697830480751172915352074707930655622183884561194899652029539993858941646714935247028354986134125523355490862608211222153856000985729517849772482729275123175657044214740297756639565492419966308442540313291329940611243750765771023983196381055900890909131619577026159607617041430960661141762945187538222834798634031061099222763991932638725182760729593406928144807428108032660510121583410916198838049091602517393086424945844886142293608518074532448674139055601286509060256083905102863805103686652289905951006441511285836793120796269597433479381350558939795324097248932047904177519834784417529182779073286785872083355070258523380094937900710203058446526599919058095772027872325558161980763244260508119329640265219267908208867721759844535287386783646158448967801132473543852322698334482651697760417580277619547530366210792073957271989037475312302850082529687164259842298912836336777688620316887110502289248182957434796723140991632458466651811926531216455924603750877843746072378068254275553539080990144098571718095832083269626058250836000033705619694939406736635998029677122213286196456755296536089452418275654071258454543895856969379300985272465154517925937138623748585661823735662464487626196311569927771495583548377968415830996684788951922831283753686938528663482144456982894847017099841023938423489983292109562920981840342697910922952468142258533338633712411402654180201622919336413833589874813538153978657082454203350171366896288624792615884586835089062165552230905854944538001385600329877319748094727624817642147743635676838210281115137468828516487102099240277638581932683641755594664787541623330495718077039328054655593377874605270414614201712243863377380043535155725020162809367945863473006155149772307786428811710884526828152509138996954579082939488157148446008732194483528235595177012377025115164384264532783486488673375531808774820510926602343483484394779881087198691460761128625467724663490624809917365392914107128792213717443245025110983820088557722915755825027379433654667556217867731114761242179749970454960562705366661589723582306348080336932177096475523904903182598505766697439534851199272848802755831106391555802978293482111162670650002511948417828598773702462591207654240517166560243401644836491807630176213007300839233621168769993908994145346194686434383138467678800381345833376568376966662400191051653973797403868106408749686287781799877244409068334234166827438352475918759491005646565688080938773332994898438099667047891665533243994293782303144467009350669805348458121413717934008035847962709013616551226608523989713696694759098905860559805658096453044823483299216065172041766395388893797206025420271546345759163906147440775019712790612625166669118867736346799849314560512988805719101937398039941112950971630406154269309755386732255162536693823586466002140842122049668751178812615896067932997678747925095578182025241915012404580869914107495193189994283080958156944188017991520461738932572379935481199435120975985849613061231355009749957442815126595652185804803581151800503212809903811145042802952474565064751613489864990779597845703392346927476353499643439474024356059355458435081652477859932574839355356027006213078956436500609629865208594758099643372126952149895896027467378372161089889185290917685913444222326888906563309465078085139214942124242398764845968824920598434802895360168616501882461950100929582803966095478830587618140680428039806279561682759849858444332867064048941155474319303485526344575848966123666036592922280523919489431033735131574571426265800266623180114225825218779193581150326217000873564442539002976683502098482353729106837783042479229789772175045160478886758189817956301704681420498575028208493527670303701793272318769543826217336364206263769844671100728199366690084296925663655897441662561910218998353915671843509588709390447974468569941267216396536142001467965634897194684685148666977156441566258042628772294904918072408836650048286298763908213453516807515078661931938742069858819979336180198099385651855880381292875224780097921859117444617787028833573665632424076601117979322657628245221853981367889621161813813892386824432039341603758781500986034760963729969626357576890445832385941380366903478849518742122472797198338267082451128199774609436854112881198198116530021287346114613239379826938216554499511735914077465124292226346961814340990819262953771737484538024041245103209206170351449962716217760660197581715087804427023823645381149340621444277535997448139175504714690620000203476094898910520666939111739762010069173632203285179221143520256389883920981199254241577975449778221848610598047682348912615378152385896320608933354196948722547145843132602061306304794388706200832915817368947456984446227166465336019876914181684833655182630895428408434060509127904896995716928406637600431516454066954961297766826344423973711652809923356744568590387696773160270414194604634802244217497782420964264122642647327182974061215923157478667236973955293027576283927559356221194089575878920834626808643681813820952190510213168264298522187448058589129987388578070864004903815493859209726676766675153344369917944060788018462759279813134440516626559103396159587235351459366205607757732396153369451537495439417880248425170737928551081523456381614031904804646385396841599800921910635270634730355292217710034588986870823109634908807375578714422232769593067210249405571314204266827416515533939013794299311741444994544970922711197392473049141392518559126536038521355154680347036070196409616218690313554161913152203582879602009609750217400556882024887951635273607875557303283466872144545389001125787858961981253962242555282964236940615245031158999606410246505208235042821847958311274410161497219553726330388469140292558385599605976585209431099501680900918447180151078569371928610621821786692905082809843246767229137970684537815697952984540695058290716506230073576712627460181290003301701501797289731593319193651654512769722081727490796566334808760857766623552875059209233759112424254074658648181005484074478668766314905443007553498422926701143022846033024675972383269516009179868423126685879405021320417883737112798463708898987770483239383939529069199803987810801966432681336831962029720208400525337884686915931766757169107528627147682478399874861186323309197628950269223788212760162612346664986206463240410615094306133068943817029887683728206890330612284287557503481039445907119295205204120394312866139936197169508298511405711789096295517243839567676186136627683565151993449267454064381665729386717360805320026785073150319194464122952222253961341000415794882511088525994776445288393447336661479763643430544457807221627534477810603675034793474646754107116505653679756292493384908548925945585061326965311939497137311853665122018991564628226911806092584467435092498117415273955630258023712529742255744272529801396096151074413488732559015982236316977243249567367976416766072475753084542142717874444038555188200351393994012794218015743276133474214014791136720139066926853735830008820868986018442823177357368168454837168908303769671629986607792055170772318341621039121287350455238271651816596891871108205769149544030963216491383361660642222653263992749896881742031466413564616127538938464128942514734141240889140688916281403235876310564330478571171235548667464691416580083949276706981300932997899231629355764224162763851771652042942723788211551132732059480366814708274962035323750693366542625718817930790032157002663331601894714977020910014321305995374772245039427944546521969207416446954225159722526659690568460664207772653225488782591036277142434547514534164560297712874566066823350295143807607952954957890116868025999221917795534475897843375516804006197926986808480927618056408638435410755721613567001496764522565736896912784332905737704827118353144693601236469970633911806043887930051974402327572654479075280783204070238625520225797436999591962677254898926164966005028266161314921920757634250951870143883798557388616129464419065849612046179344287284701255741986581029232640775348252649105413554796345949381097743707439906275477776514871205803597566223390650081850635586359371834350313618376272486737596282580750332308784882484906758730617355246875601640130061653865617091282382359103820934179208808460806133648619406307365451717372896746790982341537502647089914236819684285510425443767178637758421760770241726521855687966662014144123384050665648875624871754007187594322745933959650230635509651849325099547779727145249203400534462143792532925081331890813672627827642190142628474377070415924458733717505184840034064551058907225030675106867656953856150628986913008334860675164715043984668039782208249648968774133139466901687225891704653475853471788933659431491429965491972465593568483286328740064830766204335333044235321225457305243937504915022063974791861694250411832156550800486548980965765380600417658830446451738776360073590699227206240961297637973955871583785038680176710731435049306883595692444431750668779555149169650138257404101360266864666947581925409221464741002348499595110640487364468972863658715099603201300022636652408415443437457495907902823738720665609745858027727353423182916651265824267609451559673864396985616664024857796047569845014573762101272174832575065574705083784190554188973016579587252229980749933259129539077674664958654576429222167459342119668062856824578376965587053736159261743321347863937701176208123631813456095872665267872714013347780821144507796477933316195869108330786980461196065236644241269218044164780365473339717953666823475865800903189331022719658913743751056289035937305140859515552015309836160653557704718496288884017513190192025117296609186370580941683937295028393153613454556851931647945199535658791820320924123101374102699619804027398711435692028893907550204298112520556460585594696216872308510541958992314325711901581932407817592815000300702712043674909880093980471230939985034059560508775053886725563969279248318454515469862302977104265145968289291195745633578913992812394144993146197840455387981284125597477878450090340083801435292178132614651873986503235754010361603040415431027621550261422592282280950641609838285718743327842349473715635496255213311827497255041525192084667486896486867796259830443132420448927422079975836497726458317139700244337078662594571752873370294237069053328438306601913739260408565056149135380641648448982087459459570304108258824271182820887485619835527607115096102764101989990471237437601503651864297253241015950615582509003984940499767509226738279606983194298954562013854270379613456590539127231216501583751466149461282137418699119176887673779845402745333345961325399941154953431951478828080704647487507248749622963199204148160755675762449012363564183235539139876150987091727329182439537831607845893541757949957690605419932423276694448477083944420176522481393207360982160340702842548379511960619232601498594455966211694632855577139780982990005462488648169178769992539695084988964233138364984257069205624774152566895561507649860770302047946221198973019496625410226241498721728809769931087111761748927141790507378277884046039079797367226238074448988331423777834082080093953129361136824303639566687061260230272157200370060755340297815032286433817946709497022893840443692671265280582185079428052553209681274690734308609782282643494473601487524777721761531382806357878903243320650909927158363966714997903406143311831661448926831195889155690477495815962667355494354893908251032332312489979711555910569325438516644030547480456232845802168124152080949690783774916958645947180007923727775092763913565508007093387408568717307044578913082511764552330660972963393838788985754656658854196023679403030472282828858627114894600922605089216060552795022791085973156689401321542440634999918597891189487584478071531111327195414371675122494985639632019361611801843260390090776743361582834637860709608002758622960862428074952154968978276787411558036053711209846224718529678812507205362074858362577019742390798749532969528533838197084458768170121893700989817068938877271340668036542878119601014173975484245411703064514180935867248877451635389140808311586551399226834828405692314296849953511655928940339960396645809278068096922640369033463578333267729828314564991589582509900015633648303253460459086754160215121388398527243220535792621895657344734327961808206493702392376756130738456859884547677870251322264991582616708760874644907966324903506083996719390701180250253661210235684125326132029930451057910187715409617572650459383840037363170090610575759849517859083288889914034805928914759115003968614799658397688012854178142467847975890524540868800632974593111394120750227011984468338130067780674830880529956895232120002885175268642650955406666580648828908613431787711711954113590844646894777456506094539215250476196936372831372810724860377678117303058265933039040141779278720800658518173332007021144912519692260783228317024976195025000105021749702206733048420275748793703218900834125601053810510804409192383166491054130934552834653879604548923536953596147410223896941819716746852747291600206619053857621516700527001511043165761056629875844139836618273872310267502177544257390186574939641724443242042074722325385808664499619631415700870952235771561780081258099218163202241213888047074090774050797223733739709280108291199321059090463180245447346093271249437685558670581754435261796894915259922188824080905295164479595760385677242703342545265579566046098023141320089560465072129154886392296731341427705418445289975050150442411289434085039648548509369454639174446636068266570116713835759236937653674423657667387407652631707599243092037283564881212115201931772115991523610032365450886329194988850882716269663534954456978626015072391226791709539406541744599607968585733095326947895898389612605413096342953812308941967067640671333820353584120234246397528685631088335866352423166389887420383501893598180621655838058196088665150422465846713768289560832041091085384006067131602030595375858535504159536909691081116218127491819844585595353719895318639152805152375437297566555290710469219711059832961071201706350868600059664577507204847509077645731881571620135104028155655685012016961723920608081696573096836954413963349284500180292271042413392292841016513965600975701816847568631438108175484788010687051842999511388146286756080464536082821303408459326579159436243129872597197828715400289280202419656086207992629055721469998254425504639242322282566715200033723108765390698209753408428326121470828708655561676592519955789442970913202948890851255734958092010787719522612298942325639613111903912119182818041262479434655919075232871305958784399405524633673070995182573874439461531572165693107899816467441265077396818574913243356849348828491037746426106834853603030458502149336239996154098538233318121118784345284452525853029175472282941093484888771146288403079859838913592654191437556601457593492706332133149270220859117016168134077233062800204870149520066958057507083016332730295144714056963147766939984039737311336533898948448968109071823269661696966201301770694969375398785359949475874088775133222135139244016988016177314832284188756176343045147364213377673427204746660211995114330119768879721953743294828239993599332061372301480606053736331065528421533643144810382143962383025909440141932682997585195823920735130632042311761622735909021832431856452584192275800811610453609215277391694163208056016528782750449057759165726049388347612122975853733102992258993654197632399732538929592787768659644903656103131431304251091513120312794591035182647078395797869414503528590324317916798363073036380918702662710892826865677750895328993835065951713584725256471307027750218874700851135187047298739489015655805775207809026587523515671759596566171442249033267506477390778788854498721939661371535302717205473626638263960557322693622662631811062206098305349836162861481968061147195960686804486326514994699564313783832613681716815920953348283336484094900920125943046588680906067123354905525039347727774337164263636747612680504798417099317602951650838627083243368460283086536581488676865302051933321495083769499124714769158761971001508963038857358168220358486467629078668398237156725345084077406640648433517109293078820159606186993315458321157186572979476020518867129488804934921467038650817739531663077194601344233879910953011866524967901980487695854786801836418991720542438378613053542321745648011117450639054496912841476440296805552010193254139194128976137136030287758855998084596445513127065830681044690049908242697639730401296058669181087272160716427119774054838712834966766224686104309701890266190392219402678044061379144093539201625373545113213117272587432834481651712191857483798610455082908843438904501999972586245757657079045839474158285405467325909990343212387026062634813409945060393873425046543427425386496367402689231030865972634615642986909921078289245897306452655524818541467068589693807075426245758111749955583424064005006009391784581966900897407044355260689251725487998974062363500592981883750118362444268665907101560222201734207182851632312627433318940735001509742961879839375804442918524893459732937992162921204549644271237836239736595218576871844735059128681189256988066459799113388602336344888565395227250323710751418926516652573513751783553014960549139273901385876166793133386787897006409367061375780816083696442717807602214619047243967782474041988131515208098097094360972403984514937318937698514987444629006004525426081207594726544268820043524298952190851224433556835799875446626343854089208970657472503080383136696087057905645272784144548274369409255818416438959705871178396117370759834349310977326624351756282657369994824877650657437539314548532408435029968068211970301211466810703768921759679542397627175406170270139409408289971630910580026327137677431941079804363530703776214134364626334539625904750958805168852080958878317765436401880398413016387219133910657284689207209605622382996783903528233811223004547112402526032635940633656878787609671812365666025982109609417280238990927334267237933178952151589159128395117031541059121203761869085561471648067269964267331854753868419854935825392072518691735648812615614311496975099635031655520360239328682411080624592970385322336077707697765365575897135669958829004576416132450173325031823306276787897802986813895375971953112999409585940644434779197459010855608887602314471140262808573472983510244724346566203147481310431897832495932908441647122381377594863264065107152756910190208011411594463129990074589746090309792029244871866323367425600738479068705397133691893948575663521677648119761849122988087628847773850574195735359598547894498249547105777471978658026546064671022026253008406045110589120897847681638664321458879812870713399017446854771270070189301114444955389284406799846276191864330052426336978659350758722430187381618453231628235910823291574126137064069015047964292767829536281913077095331974514615490569008079388891474614386066333781052210587969121110694967756560587657380177215452034616743815723971545313369218660145455428846260694972670283590892393080300352338715290417327717161523435933107473587372195781431001087153266436992570467685185310065000645767779607708698604976599832674702737703763305006425350607065661308930239081426051378335396815964826440349922597243656112068630256441784679795857492646545074172126666415548107289188524383867482431328368527010545264526086015196801586428999472284734932728335729793847103244380062511231903835990034634645139770726840881588546039876460839260140156477956885774643115551026599827655702335975976115985061196385010733401107338098587139950023258185579167602503855137568070859024048786231788531083864495924336712214588731088068728909616115096050268753320807649178864045177586973106835395202324268863948744493327457453263886015115576228015927089069473683509346265864628083673947739847193021768837910285584506782747111235018669772446048414319345967275654314661220503259316083913199749147370133189466424135319168900429347710834297617956973038679896638530602674703764767233946390114290870535734681246878133262098913618121148791962589837552935413983764917155656828589146683221843664160914585039268877493850476524343986936469133532126551741520876052290786760936851548219555418678227466676821801252795109029663355580759812191269351520329872703963188302999577254422007320590393650631494657225970940837058554262813427553308080623968157415372794984484677395965270636780771422815802581404433576017090618097972308642541624764648046574120046401046084352079113318475505320997056967979217382120147483610764936698226365889922515241639263935502543612311667372084724875925532656318965999499950730137836014231576344335434359674782991789207268305640493527776660028356314722656483500284324897840945171099158429218325165782559085582699544346510999852794269774351929858347070045707218205136929370756590208884110405621705223608698657647208281873252927384795426709057648730266039762519973447457619586071932780792996829351386072499662012382920506130447167261651564867385424972861437458702970394935631450225498487905763641673820168544860897682948700854893740491053174883705510443708829278634102305094093856006763010413519344723941239300861491292879700689037287479239818148474220989691226492596889635498123282151474910954665233444880745506550210303926225402353036468968026622976290616929997639564236587859161801298819786429570643821649007276953068723348757111165794920103406501622394967581328926346782187068081085133558209525444711728245907028114574322847523578354520798526865023709540756048594709144131522763602300756987419317759046220458984698177560510243095320467325452227775692535093885189796386451636849651531533407160949482359537170624872613378707106500377396268505334128733708073751936774198930462331736828730913882490722513039406847995434363579618599037936497991265621658506110092341325106953524561394397475814945893985506877788568145969229541817439615591556069479510250465557509778677073137290079399191563067585022226911246441986452802964759677989618757356465261806860579837533156491943822723090832188748259702776297327765548379864982734341473087563032802120665014108644314043315844293795912984195771504593685189407707998351484276294624658309864030156717372224276381428022024841775751520011561532618680872963810497278119321214622696401302767897552561607959508058427279567303541642144427151178203662295122646400764239571984595500345837092859573975058240434402215904794928975755586200148368035182965210424311196511575695370881937346172742247353163834132097371987388237496965168844383120453411460403169793863245871270012172101041024945470965934994415771912830352855139442857948505194306943959255910109308134171908549612036154973880363287037354532518796323062845464419294241993909541726439306459876981578252996746092525758336693213057621094526746272414446311888669018599894330026630543238716755297821235370435040055939661748220512698721660015605143655962288141123976435352382682325467871542126419909104481660630155176285196235320682003015864712928830410307799082403846024416823842350482592741269598590797797302955362297485963183494074560247985686796225001155470896172819048496455878632005816810553395053885011570239925730122423855719024271993095447807686198446056577880916520256283912252836656071302194556596364053079325785577358193454074081149312090987654512562104738714651547514308778751077407198800931677855651807281879489526457523692205498169094774725960557458869356572122197008462236658081413526608590157592746208991786136367451039612838150362253043072771181306234893502924608731480043911377716028988545773904996362307988634868978322966020552081673355775308647931408400985112011777548793107663047908791657575375044548927347344928323679454485005411099178057528998992947159250753403353121410245953702149431912951707028940073876647009674377695479886481567625746977504363913635735132338859800769149061452547323240448039618419918770863016434073078981802497706205098858346903538480596688596252300625780299688275113353732051389367200024058894637332098864356294435179086154475025347024568527317103800553219774083733893019568475460004175608591361865232905105873889677314517773672831745913794294943040564301132418740777012799306456551927649349586815648873087345835311430028409226124934167692038077597097709795097336618078774575347096657264196958085276990683417680657251895871821412060944263768080527326627435969355206741566358169145715611679219245056310925523082366521624034772441682079834602928248299293982496083065867227611788704023534481252554337141247608628294306862956288374378598594795554241973442900971940957970760610036349746044328839586547163534440325051308615860725862602852241193753179962898831104752650313214923125386652589519315955900172157611374604544229765360406048422801032463909741899483748944774924964050330636480042673458192098976120037675730111311180811453463313747301669714414497741325856517063105614170248803800530333592682196273571105053852610359986027815883087858314628041797462218852035421599821761154361502374986987400345475827065833062223813819334379068548444109266109178935953726990854942644628744591782423662673940734970140544892243441058057629314237123227899875004842310918470555824792333936412382698825724933899680138753386545737073615001445389919133640484379062452621450028312510216112068816509712934066016736152677756521206216523385101614283924497512471807214945994820375312089719924141732506627585029500412030504958558972942981061582256707376810019548130420469933778464657433773451545093527484239674304477987967283892271757505951051227068293578528634953079512597528903762664856075277643359729352480879892595456330629166526311726799340956030052796938538727168152532758007588577033685762381288838620654942493938393182212324496025462325156729820511437405584792609422470383735560590044269113730774616554252826389374376032782131545483352081227445513582340829114347368944690747763160743760974097374207875590535531761073125334215809979436370804927695822165978640328655866112811332965346468721608555679749876851603226752752679479136341789814028714945252450033065546684688304943894216829812947933234280473583207987781738541976160331042125872555021643748713465582638120153352797804986448906026219975797851863253233860557971599087250379508447020639811464437614046130594927627910601677858493582534383250814527200693875915344580288940300263642559140394824305776875780673125124938453718987746995700411609770788125872576886129532236314436560046160942910066753571759592751452303013680164782058705706683997057798494035153685207210545530365489851607090756640674888661537978847342164725790502684285871307781730118465596980433624276149676227273103306875101278182011391789928774732465180508003008710997058263930560874274591897789433391924844096936188294765402723566666793092925774300382523689664986718662999295820458036021202288668634577777591884334512004828250736457842301153643711014973739005377390401507834361231482271643910224286449174731973105377614400470230494411757363363192940428841714490386134293620622609333567912764098469453379405847165412306638116304696275901013444852212649534613899512810634861252546520163931322950812232584357886878680905390684379123772009494136787128745180042479585456085230683352411287573873494507748238475832040753730706533095471032689196806608782824909786636945794980601335048851445311455865161756514166132487601431723294431938868022045703898006154547896194137342463114587613789176591288081023843062867527211276642424921304304611928111620314794567024559633721359481927068387158520573561662529473600275556963388540431727209625211868795479707151708929610835449316712347892175073527186593907538967211493734710419420159524954525843597780235315365592712888015883717045854439328779106935093048832480412955825307433674093881485861271197487445816413847603373793534122311750613173153753660172332864443258697136853581656510061653163706554272378391359358268488561520585317442117941614023348977372563662492345257431007395564377619275423254742786677504515433411989599817609070027851113901363965106749442717171693076956574784614015050133095203039982125939581253009042725722514354234443366038614294406626201352009999520344963050596656810715254468764262145167024165333743143746303645531883205626130827920365152294971147455761704937722337159876341771273867247440132705025263509634304102945050127358110528245550002996337060196230098150247838090771588028696096188476651401197958978873096404132266680290033648759406215835819932890284588875129644277132707845619495847659565813630036117950388642222665030071795392038441692023542856967657931192719271486335496800384434362567939964940310343142139610016848512844653104633151394273041427725808533261083739195103674148129293057140481623106710218691270591658217334917395596230002236077837481610968386127871156222818256513820638361151489484402382137782908597341678795224790613503394789670808854999419087817941687586702339060476653397140192840144637500688036707560992104739643055373863599941133222830030564687751655471678587500364246996901719593047137569892963853733801797486393819503416751278740533454639959404713548719300787336919133689513181394572951082711939812025844014589815596066259030055301797171317663003027899015196095920036903258327552193132889148096354285405661963894124687907371409973540506002351663862706532670768434623542313502707182522925125393132005307517919995574950822668126055637879073206497768355857708843449796433072036514166272522294308266529223932749032796299675743602362522326547468374511534900160310082503215309370430093081163920864637298392488445980546506051657011707341297411382534214930846526198838751245519733341236539865611494143289228562166933606782580325360070454335708289566988666550823737753065812730462842102454845145715999492395710074028824437567768962150644460260178811687282555441593747180415425053938043760761382269724270394817167033464639843652641494738778661180489657225864647002493404430522145426773318142813486479402611561238574073769877206803610508244860260243948197118782684787392494628000881610080581161294914152612338164023494249125393728951736945380262294136289151120309078601671173698585234283065733780352931335024600960081430184138162653056826437763771808862545543154497407804106034422883962570054204553622314114275500304962303354665410165032275024740045914584856449568550323149870851311596073406650489534923678847370933668301923307667720648261443921896226657827805802233598286615503663298784565541737208445096211285458598955479333162302061535871509391896056208584284762785866781446276674176153772701825957820646587852251928660665901699975925118411298464673218420587780871502357559494328978839859487193743071460540588402439674773912291085394537471162109385816874000000150787397011522307252544841868648249306665888078267015896226973032017337619547429432149449055146098466948225765002078774007527332588373987136060291488346148007272968154112039865575410628811461271473822394964302386361874587312103972823432646183389610307008043745100941264772976708801743137036823369546618626536145048031132442799341759239228918693031742534580124587488625762830651932482538127713546746460853816540826058271209064492759102866093253076406825049716307549840642177331357713280548042864959141301251873912026964593261700765201440310318627009761244255472107454581768131969645337449421241135533303870973421644337820138953076985258354753856414573732281653171315017612306925476493751673753283389905468766892015389165167495603575208660487398876778172210440108323136019800188883408039542039617817233990280255889538961042120667548435800979580063292023402013947928972503050282472097657971297153645067711478864322532248632230280459490343472338905288231331224873869077208125269814078138857463434780478417920003019912934624199512382844525495669330542078678589151223952470680935511687776495690897438221958910449524269450233411335375761745077778916982430298301667682964873696659660193941303637564183819360731273600426047001298790723952025502807551216923020743660457670056640013601568073141712110343807029157315910849476645399078985625479607644694462740529866252746072412552082263445422234918455370349723189022731499404199904680646716546036092555179860508486481387249508194709039188571290459907739360403425922832098631669170772104243663597328745909530916332447952469794033321350343940323686371626481065453857294781184080199178675033948674585520704250512705228466104766685607060802145516348397990194368113630428170962660152694128256227596758421435824099891292662552451782077552342090390744241056319539298089322178083612427926796305796521378965051709327200805202891007123284477860263664254830638028864885008718617062110916863463140603282838857983007439346222388874821743827133600774196907752431291853608682077877607309750732171257412242433063794408393741316498185059076010963802852165624100013882997780911377095416632107688502631660684527689708336283845679279234717722014754493103566545337216864508050033074393103541307975571466686701661995133476884428747243970195122684392825698120914135724043509492533396276400021708356943317702488869881843669131712056065396711209413444925045078287376060694416812391709242437248669871736360481346450524215952379832409373292668054123471937792169788544299990742809745308980849581080138237319882373532791490709499256065265010685553933093128994654857827292761534615254795221993489847646886466359787796541036042533024618755941949177113822035444568949387231190266582145029100563723346798227307704055076477447554111082071153429882003369752991849625875527747883509009010851631332415920563722111890755428969157439497309258610299336746254931739973433194465344510682249740389318403239771321534191597355774949507201422458589557470010480330434058635315453370428028867691689196021751571139959326798488458176797432234337231069351992445157195953084448941101793962396418739821082199506906584352953681700488731660449928527039187285598266220921513263801735587180055748196486340322758282941571605218725532528827534494740068715520363164096725817396377955706886592903431875356088020218316205954654223963853949132822134278330066501580034558275594140028871691553121402373091347323072827465482426947009900227241056122282620936040465329056963840082494172289765853837842005181703058587862133846681185350947761298782142018498102136848182423854597120527474120863126964866430274039120285174260618571836964984520230833011818518488158581377005220412030749040448067890860105096757770948819629037933717670695610175159770648081009359922947659854272513759010444904747784331307183702078992617575295693672338083952507036440070467695310443242769728187846515596724582131022497485858926914334370951950097228294777588933642418156659124954491523646423487005565891444720546651041590708120924475370986066870403449248954866271564989945771723302257274197433043874187062025762265946443394034696590307610699359747813095498023463156928485689846284085868192521130038238231839115504966766539979651814607453896946398015147012050347367889567231270813269353921397259357979339628676341469879935562459023076753842538491331976544155538776477759485026147800394721226918022577091608244482736055580809287185154257863406472151793343663265789697017809567905465882542519460940804180281247447543268342313544783341856865365048147260874911814787534404809972648939743464524311971252533722338255249967259959877072151491052058018684049333742671353268248260761113261231974038550417216404923517229791458585236831947978619550299723873272063541430240358539723284084888795575922674760749802986116187489066060047441411227938319445299956182556950574856030398351662088836409775988826993399103928667676735396480303577675267967991610411037279668146572455428656211925389133248383107032719127984561299533060034992265086281969693801401138416212352013504311467379713425310757917697730596198785325955906575602852448276119562537811721921047070467816768321459493967373791564573448853680282635834233702161538257419118756475937402795333133775058778781426446680265265771641404394894071662448299958911528289184877144687796493960746262300180640649309350346902847404503498254673402775041139866556116039457159422834987826228668553916369873004683892822161628641865544216742942159308955010663176699464033226855095575568423217207239551920972242133201459714642314423215525677695654980273447401831119324842656976626149953174752476563109257492018648605074194285838453483360225454679667949451630132694066940920407733907311913858157149891762760782979992710173548995861466599809795593110422784996748632887714721585704803652968636091738389243437065631890243503435416923131601434994523078317025344216304756625938578404573498203740881170190198076817650077574712583347488918684606503363642453201827673067180009642668555972323870565992833462775274013914345446338683376757207100090197312899124440029106332310285320511242073429737155432971070445922251590580593709236389383230437137572585262296640665757202331124223489064028097781183549374394686509258840182721079938571773869771630396369625873914837874496896687050224192615916697097751729713105986058618806445754352909440339569852771760806785398736272078571108262534971459199494261567285147839740138889895253167912018035157684354816769743300855833581837522625851126531657507939428364178430447236721972740800441042519649723864123825868640765128919107000006975863100848853616360273238000993282985925410910846327449330408705607270160749946847721122746968521445391060819446737466892046018454102290338391536775061171758428748365304549744011646508472230419307586904024656963286946781198711940722264015414213202629943092038623313451639075546026350516119119231653731188034895326637727425575917963131862509674823045689175238429707136578990849044985290928656507436379862146906361260358537067239672718958297668335618835509932004246918234623514358846940787483197936811981190756960807892597231491601943223952519623161218925957733790548146530192635677465295479851516272669576427339856857673448535169303695063803042542502733397341404574918871632368379451101019568370007916363157097391893974265187819177981470958740361455042778199671620218195366069334519280625416323212045564049835209312440423099124047023576634472631090522352546809878463656915921966619414355231963720423242436367090880775073475196893358310177186502018261399780010570234866096804830143782211918966211441636866100700962909371792115353645154832098061525271295080085449278062298416793716259376096948208030637277802995471362917694043118935977470465424819301901784630454518708528975342924862513525433605163361986193785529029933113011797405247062587605968030170614673435483522911374164252932861097102825422905885588288403845620122217230115407667723875097522314510732364764569783429572303020039484789474408819170713183920592241036669741242127862036985350437376315667962344975878653643193488367598864641741632341522436527140987402819767617529071511152667909955940947109458007034783219770305418318128561282126942182428799233181050458258932000138383974930031777283217359941454968117640545061124426755692454644697582150826318887727859165840108402530577236978915672351526478356060352091198011065715610111971943412266405365850042388274106667512827547790803422691645950301631115770949233700054179459130294452721103578225092083433473285057270357783438616797521399687232820465307312973434793048423421419538540620253862838613838021765735980078550929381967621496069588813312683463161324750562443831766367271789442671139231854629502245525506379652728016817257510207282429149921585876806831130988024188400802077199880009834170650524302254206783703172438164501524702730683123177271395213962692769270382141264659988404996933659808024365428119286757408291835308594918363215691138240957376053212855223255885284115542919190227737855988622919282134894682731368657171955565848464721497137643624888318436332260524085789537252815437095445566689142929036701088070125524534879578177495700960592932639633685534540098897288142127740691640050686781251178426853962750523467728568027409008747019895224317251229003882886590037058642017101210545559574281787069352278626478061286155144060312967383746929606716412659588195217146645700756113714409000328317582836729506703638353183919984572906988869087030341020628429299877080247767856385430171059388084240618568811113290139317370092153751443443700375851429587889191588977071103420027474640512043142127884215610162847454870276329584302171373144089774701675384219943154426419203936039465164313133912712118900430653330009194860228975395687265840073526389205474629831446851303551465443610852138437431398166831633435943629688391369614497969626615369449601922510163789294533681372423411646480599043069595446503500911977557885874245633261462009713237093137215313482485189221664198104005264635166403779799256128683481725762216873833467910789435658256252225538609764781645052565339229499068545317805709068966772993382979266079649055329012568305208538422293399346274908866957588690902647088790788224748134270268301992189921690412103758883612495814907181527926341875991057272685415461525517701032786152782433977704771708391330805082658884184843663605060806790256602333394170296584016423023088926331760607508089103917726703966724393554224109159209418760075067847936958345898567687213250126215918086933865244617245134186093050845784901262917552960460958563609705437392487980478431267494306966052869303680397894300905391210037743510970654316384919690676032064661605875477916978798610852591586552512895305339513041157077224489345329930256496696624592279084408189563975437696103599811652902652870644878728582987363736362468351998712570731298887932723336202047391100990470066016523808215547726301302205101613735085454288974459501271579531721274302491820578587448680118967495235952491707354567934215202650462779361996916733335433640217705127128228259636103741384287509192796551692060185780909378288344162148127775791573732200481569137337791992950090122168741901742385161208884041311150900305597509687855014104616842023171325236264324106203659556629195485508133311817481472142915709110878699990310964256948827453039037244207119603383309494484905484010341899379451447582593513585795874814331003134391441820802402160364687063890429602835344485159353839297099292295175399146773397076690637978119213507510100621975658274368298526233860577373296835046483335912700477570596384075660169285062008598626926286804508999735711110717917052124707760819788336322865454248703865024593046577252248480494354075661143284334127458453443774168265496267798660341653175810343012943989460265613792970910913822309857625907549213345424522783119411594411567936379361116897131974650681034862514594946502302217311338969796029709159540530674193444450765792894450421868280291349369809507688366725192816738119655892083073592793605943470785112457343236447277506732225991175034147264286303270813776710770091531456127919210579526936028314748422474727471443872928249072993437643256314753443455993619279544035154728385959134270639771457740669772050459029435379588988935391525127483916667743512248161731819798507312622956061716382995066279696012534304086936062630912621305571771954302384629962586034934199239805954779143949523819915715245650800583229049083109336984586113509847565191654293386103402646428724424817081135851807036929056928708106514971726104844337181678417642704072858730499312192918272840073193708686743795761842581445739371788933518671063642523422889702625660623540928028067326100535248037032028655112071649284492683557754386323145106563836251164206432399141678324003740917138155639845365883675555897755206866253910514736731020155465526706138299977756862678544835929636518337974376111571328924292998178359945481297901234366260446871350408076257683946253465041892725588620897436268036679065773741265940490563322139406564033560583800652232957233773684689741164341029181653786564681548480891403603698282193868345719532742936302843071767182191345035112969865394925417504513411578327311064497679268623910616510608175723683732180419117380267966287389510162862574555906114670955042094384050292613508862281830084130103266259091709826941593993007561142768668964105204473539410260146648422534100675379480606525660793726300751908897766850320162358444630460284771048918777732083857629984622217448109140595597195328778253530372894932276011151772124627659722410461048244709424318721101583839493540438604701453084645415735230273185294925898547824098684982517383691295884207432306563083429909206646311888465676368823044171781768615921768017542116057756438250149231248046457859136118870236637226223000077528823432720565086155952899025785056331295141239869519763248195210381343580822122889897339300600704421699368779707834140482725640292268310739962803825478426220866031352236989659983753373562705833943077170110970832091333519473657859608103953390832618369050504940252479954974273902648570348254751374620055581118448394290117797848226351624208969372670921308221748362735472437895900286828619435823673299281243238260747461617913000386665714295987095471523212029348895148727398458514808382383805453738553044629580967146400729950694193645465669355009065733986400700896904865746567079174331381833084518985196158883289223853169503257907854854877537583888483338643049257585795496393133803355096047390418762476962813705366511940765788975911362394460076432765418570047685505383960343645802825276674556026672105774365100558061517136160491553804174583339490517039017663610348923935995373646472759253925386278377775671861257265696947016977843669635241903649890644780605823048635302300266561316963403846275568887650308499174893924026241438413307660756111430614218762557802511188295315112641157608681670826115492324015756640881539204380779105677012743881727719709325305253915215233410539110244024835141829172557074002159885974888792926877382241591662483787108351625847246899277447995152825598603661312143089427442761984279330774265959987113319785261949956394100952051370338690382858248205471205950281710990499786223899944466199640800070938830159288984631769016984180665008250208926728531686399402461303663299067948541060891344894728261160010660679775458187985336785546663956381676408212851993945702520382437200855851911374394963563988077919071570486708217760824169055282207371748057665591771342836941685931976539798939161999091887370917291973030213242887078743050663875566598897512028216395846286268790195408798015312688037239305390312202089992558249201268846691309483054191662252388763896601237562728713298983629698750595642463245873864460155338425044210502521636523192090901787943845916858037310517546752947647753885899526776296084122003583277895080573695081136355582991796028493732458356656435605134707663459980450604468701284708837451545181485755179952937566822311356875886693438227384569947574854626370556451951368636468578229011511087013849226338952797134089294218451214989553582408807104587172424682475219810645503290028173089622161245572026644074333468042548704500772426999508269206927168723686179999519464355492429177637553498668162376361713218422777941490722754578357239662872988901719230596030800993269328156629559648304999341397315200160760817258012556192384504986802867824710900096874447061842456274687911563366822373073451688266007166856289862723535034852945981107840687171783113223446031888433518076817189710719586652457116335616533895155528203953003618353481305376102390749446316381694332661354500551096964928220730449138659025772833767492840390612491028148357322370889551643010726183311826471271526646788305519537911765798062089568841344607762908373606925964483439058266121676635551380483786340580858020926217085090194752284398192292177160962679975211632411759164663959577114877157514365070589470878728438137194593407928360870020440779132352075194171723762143086023009446798759095043516576414049912225298244332442069704377950090181729006989119353297149078385466299597454778626141508706114794100284857779225459299303027607878788796489673518510816261206413660455447139925353906452416841125877752408986634511099047294181283912199596969150535845929560265723749713118617476684295943956356048320590969471607032672639426960366980033249225683949340628770117475141428431025925600208306461402073574339920583563631364388825602406790259889668719138173994111022030875079475597128811763255359584527558835969871447896512509284417343396168493980434139350527665701701684916757593160838195636662983609732602243153747776101672878448348998417835659258272216599191479868919374453403786092817616644125902187609646255834471798187637821617552796432922181039387373162580628281072521058968259356291378722363248523917895216079260019848720019982203109809961791616886647354772913368891872013031289153092310055045919453574240731219248562740112129542669116868293589298532150022839046015097233163210849800866924917814385296867658271953583093115611791271731164659774739947848175688894720968914476532910158500147325374548516088444197453658468301410108282819828477290785762129404464084631491215866437827009529988786732776419343929345531070149026564846463398083683441692441658662266033828222449405662285307593615514341977216973181648349689990916321924840583658495955563516041772181235391968463508745146660333222775265713388708745194089696639015878810194031627345239494707001206870411167244611185569580608914748693046404798575345353574736412451555501780615494918827429265090694856934626999288701031317950053639428310271408406046856119283627715002024014706128286778380253079500849137279166534204535652403807173851042865727647892774755038129068542792512989116648307297602171871250706885084602998717303201125691501967057229511162308004100516826075398894032318362679452142992307349707592501855378193500525424574960953282367042409231637907404619852856479523996180064473118143881289943340024161955534413045293418974040562819883828400610587993522067326809726840481308712917495244811332333701688366446296898898109142002576613014863155095234612299736650261110908164245617815457278080352520336024526706302952524661006537975668224886871649273371664731228248485036013869267155909556088406686716787561798480073399068544518148609020478943672456068655365649493529826468809206082899700537426540983712200626648234382428979956765706395201006456970572519179970594999157836214921556046824772039145428205628829915813850590760479631785655770477963697621526481367079098408674065504364657193337827746174581681538721168196140004309793163658565974623172516818947959270093723856125659147380137079039203383553634178255175633692496167046941116067647196777585197795706459570686309621450700017327196300084202259699128045826871315830554347299528453741744938852758139813327711920800807477452615802466478755937722269508741287352914902737942556755268369953473382462260064779013514208230722238637276629462009618340472925394844505728677713136654798597673444584116958898726549210774023259073075577233734085968830833571316741722042813092633798988496359598152531777142859855984305835686751378505708034099465942916048730267470496541291575767120337001530587927284516585582967918670358461685310250969016991548323610065381949437947756041695034529354769546608217720516280738608634173747327971728117304053751544813701362207265276532451944878230651487011336697076693840370760415585504467482181147382185201141272164935300658638474292551025248776061273846860363041034300518454597769011172763616941058985961826648781580865961225516119508173358000854204003981771628997462779414026371273819740567152235818780049140210593264571522354276752028213460563014908259292764119903161417699955447557170871201184245842956334016046198610970548477994690941004564720012592115297494172066164641726428146064802639262359657700098409623945994468632263284896526976529827767325284037475564649703977047535116072569614596344258199072968812352165139614475667199804194879896465563533121285119080855539203315407001778437600860107601231169243702619704796682975905936083624979923010652878273583073154133469757264325968084743290588185516994723446898452284520960021300221344978834308693832531181914519718219483844401272151044472828195449740258065493095187837281433497947817584136761035418689682421085677880854489583257487960207321733320633402114541922470022184902418287424583598664821417553384694166392222433092491676313120282447989923757119237908954733698743586562508831054420580350344290854928460795729953469353579711322456345804179414233580244235410729135190449624985076608567568898768618251282935168933467233698519981285098372964227306947841697650848739185971467521193527544311614869870452060553902505487524522983856540293187751991291765277146453546566478987879614672752244726872820755819227380355980967735755637012196867377854873848881232934103376786539017971394634887733628539698368060604301193765118359763094950980973262945869226213956882782223169005051887315372549687276107589511276803694097348678639493737515792376104022370464585889734471487502408142356149877744088386862696178033358302442685102631021189233661591669249406011351406482698011802048068333508971138652338898441447167852701349643481108598393496831399265205086928483568888058570774280442267925994174858642969849944664744193371164562292302847765550180560631207466197731049949452801124252159751069032137803900865286955307828942973359634583763096360908420947972940755628285922446764509762965474735963967436190830784320265440680389857729447574706400199505046516242258612233367837053882326767901220412648826438388626578485147785712960993044243518641712298899818067171762880027774312898058664391043141747060287756595278000869843186874871717829355165626789171846601034170405898116406916239298195355545165710153168662579282141036987841406545423551414462978785380028136863268119072389064982125893071917370768974696001412651070962435131128248918173718391350841466752994955582600565336406670524459246566134526418689156089220070708548424510026672300733664314097447149747672674658023758531701187319097467397607192788290353276575096822765453021708937663326530167733495253827379149579756478794679627091101368274486945697468417820887771096748330787515364445029847983262021154240625915086290326392575730033417856249447502258741716169032578463902619298942719590978874227644933016162065054962435623300684937419868214169066200634261768090976078529391652009330490895048509487712526673661033538603419547094818548212045845204811102547923160720064609744672484028381393179663337558633077197758114632568406820691827482772476670364319089170948701144394197620242666587386125946990092417248894641682824854673020699045764190049247498581732332336930831329776484025764044646263065377483940564558892693327592984603133939280195529115020695376707636473270139231682247597050623549947070822774213326030574679241266704711138262634834283454275272539851502905746619694902256077793047214263431171319190674629275606064821572275607331875725999385171296599501562518121072833835025564568037382821458196323175721534366605495795291339987194814256458089914775228962659536964308335401652147754200869712202019473660684504796328836497566092577778284176031273397816761264793549169638158626578133096426704010496074421636711460124784447504571060077302886701170100022393410440772757568308368743577660959511673131361847761557802488021513580599468449509757123188685167664418197672478848839008570374065474664761975933500470161769636394307590278559661968016676997667184195556219247023431675108230835938219904002406222593358367937355749825744967263234447644125555886020609007433693681907849719192264681968104360990136030848591933495032691884169004383510304312974322583425438385896694157891844412904855873559207215656142497536609628222323146523480632552864887927588523674669805305314045249387505552440228895918709938698426015219299656419863566040101602725842905297255256230969117234767647771913895210544371838163522210714855447046543239833001337709184444095218623614997825650337572507526113103583752390386719570031789288599724808928529779956720542337999844133861160722776684822741027804654335037538912310289110132674394894727313514378146358970511466062278956253948083318858598025064572604739360139756086001170050665573686324439894463870484469508049450362372183979479129809255259998638557547576879709746975640112490185786698834711259184059866490035704615906139788810860298923052201086274029891109136446643307596383302886400222207103532648985460402133045324302761444711850901101335987821851836125963468802313426536969467877934658885070498027142984395055734355873826322217184870053007064665054265320843299844205455979912083976405634633133607953840810056631279085339971661315607610041426432847742332034419847035396363500811886336839281008817579276416571385365616485968369185774782292900673573842049657013457189289490685656171415723765137600147001024433652968951602391735467223025770217647859897339051162863494539910196531909295790666631918718764668963491395590564108278441133797994518891772963154486006914389246210484147079786616764233227468613693690434828857808657225986472736797125891809597573594651686772868543822841289419077844321190168207331696433739877300460543701127505580608851651624758759751730363913416060640079763526381093467407926857443499010885368252078955054121422348095704713802513401871826708276772789541887861743571476650367209385784350943752457310434334676085181382123292025551766139903217067639661105677672573097447683211443639736382307191174692310545591455416520191859083168220636769542084619528114363179377965858786287769400840476304288701274673242197264714975080380439630119332020856028609213447128120662776935216125571194775950306404754738139407857375481442843776827759399284978625760277709283045719232416458935497352853883510418536299422037089325678409361213768406842539511669669885118620828899385607357084581225761457832331957858263895417440256481475411157947541365936175997020126941420037248867975189268913954159736451027105199390217734501530651602193737194634689781408701281111817315945879663420589060238770199227179042520532293813216770341486773882410742488601374446690697483110152945480632291904982924347197190725613930937187228735464468113475475042210566972986846537760734337645356583851976881912440362117694874477365686442684006780213011856920216105765092389176887266620563918793715385718435276740481586851700716574013687008741813042024924278283624299647817658364910097849646519409571228023000222155835619694390903910930829102092632002339694048274130411824278211901107362120638643267947005089489500717474636797840530577042433329543060702762739496188112252386560521483560324352741006051215394237710491379299612074513623528014376433388769322293833242739665382331509705876382922206808303205248649477170753829330368849792772955416263413598529908707440191316905264219504539305975547015976777164334098502273578965317879041308615485803997848898860519516411785793168439232178143030659212030137388164384187848809938742719327007413690582759460409766486180352767599456508441207964438717183614449222935890384207750240919038576933073803425236405261075819701121332182484055760209841605262612739808223728941298437659082246725467398383674411994570710296911749968361654101146536349575631170490182549101804435604765652268959401072085632372774930517565791053684080956911496673656396008209591194699656492665914682301411224681489825211034370108036579903925201383359305698325490503218281267715135838045221981610742965029484798212024360276932734501884296770110841993541743978034342778669407061013680245378084931144026332053591533969152033927985108211569632822727836728921388252662566898991992674709433878984728152076745048519489510034085249244317757042186524849343306127045744791015303172798347189044271250466235349201395242619354127663663552710246200409238364625770783700488615349968053725980152673395628166953154381632491952813506727629340618750211713243405549548710770937789101829527948210099329366513336938857086706525995430538540154812664831129859986522294988896979255144350108131730173921050496438545055758223966612852568979151270268236753144834318047006048967265101123736508510145395769212073213422327674426707342135359482357458302916629045686670673130683855884429685906269542990025223286726507329407961696870945608139050281991498898932906889439103587494816935564393474830372232941120129000836146971602324206473866824125200160465898455674172312613901459936424045059327560028703049166935078832487869029154690510785456562703323726062105459743725352766425913780881979142851617782801044511483120426752550907367072961075362672098215300172466617130312280809390203563905156834939998711548404219318819864526033376024476138443188332187091680726052901145794238572741820008667797891826056371698696208441242086566600877062772084647372490720764602265837773648970123299928965037045802659907598115612125037476435424560575916995790374396663245835127631167369692741221996687912374073389950327011533156769102332326481904303852747116000233883481740018882306790469294711056001075894221217120137596928437317930249144238850495643340386423023742054572755775497524519032486249156470968424203276584830609901731193378843506461233706623269269929016667627679580498423305835315596105671229500981542614306159291232306266657240729174587291098139566665607056493359748238191770791063995755826820659371494869166467585010258145753925048151951001819810838921351261284710922225457595775400915391365626013210849804009539592914934793995390113031815204894230150129865225048152146975377842275425485939879491567594316381897561832583577370954045683214097153109939368700283535160890527695708339515979134258929748375720596059439617478840573212131295680289504311141856705438671612453623166958463559089001312226322013136524398025145353428887092414011089976499383768292529894473977653237762067664611625092778298305896800318338215981909481509914484864918812171622852980206150116083146978107874953139888511207631196064342752008650241002319295088600250406067252864986093669892889872987181409609144268690752310993730018077100995673103227713233652132684672704925218800740137105785793506936514221788499652215152350933585229077911636558480187526829677803225900190070047632875228772311844740451900912735606020151109807581531269886277245312133419112918834902078811748299463097839719374109467028148636464031043133747071898782828642627875850148284786694966858879529437269734335268308134330635522971308035467095847919868752154757741793595307206340387899058187799729739830128930210835520484419385096650252519594254521944175777268150197010153238609857776691135643727361104081911355264136678324532917318353898806949954127892205394004291316144061772975319043333311647708462771957736993866206284004592511492497591016592963138593142837531143402487269563950837709350573490891408279920130659201842247808504546484494469915474736089633082641219119682032388442801222384155218961324117613056512794304837689929463740063011814251349371898575883512162947808314878329396084208884646323288687108554070513081621317220707303854405469628617120272435355664278104100023703784763305155984759481466659544845990605951867065185598742939502374999045867468235681472138030430054114032819456519406827764809008193520884526652971037497140508212308672527119706262077760412063262420533607325446921799169151665692389317135943252860886058884527837533828320156321594419869698397167596413813075427099458533987029959055209475050456070605110862206793327767831321054401437692357237766144951645431350273660831010143215142920484925970985387213622272500017319877883357665145960947513560952405411202273121979228780819088384350370471183028740302042617607011456346560854956948501333515379794400298720815602338426922608423025709309890696558680042416184826388402477495909145928317807447130595276713562085833647823122793772168625375196462112115242976406119375422659085906998789922095319244951893911631939015192661006281192917067158056376263718998727393327830481496725774808106841234524217849279142129489365178905186755438981759750788635823691194877793242972010100175995538396842312903594834837620905301295328116777816411569522860406349085613920696905999414070590640379544893226598593684530231095981974244223599395191081969024175534565177362473276876396075182084872126781659705932226398603783547430712275741383579524021318553921627778694867252236644702021752826798837877511610267995438493815321378904100602482414300034066657262015331839812637490049937111765873065729619747922179515330506948726754562432783434458913612830182193647375499154426964308059607841129736179390073055387041106870151046166197698049502271855294690147320637375404827924321119469527423113621287953452385462404666658359495213197490026724190896449517822827676817375823002682179422977149141754747481982740138497868117840283081221412867558271448209652499866039816528765459542905661874144653897817443123404080456532248581054811445557864478180770102722964001370350524634853512132007692101904303098104435898414910948388733463159460462455880952306255814053537585289484269012291077816862371137961795683541530910444277243380062796132282188026386567793045974656991927313714906794805430275027268005044394016362026583428504530301433393854607249724940192792372883544447871829644046005535668629572189203187251160705524909236195573079195831583224222448776854728794509452471509463103060175273748861018197052447328621885147633429636476589678891633629272951273437792221708764952916709734221263994682231827718190026172793516317868519657346499838186929053156887814434891485059524143663338754727644956535558736807954512962038238662619442372292340337139185244799446814814549546587779945038144299311690559408640854541333554884687082306436227878600053891433213782056093492525368853182762893774491822324666243115769120535325364973089827662531139537609147333703720799995436688818965787104914367801601935143183258074022507409773058155806392618635292446651427165695764996820140267342399175899199781421535953325412955327542803159727362534741631590291120642225518015662105125847656525403238001581080525888993988530178362060221098044671598719353962991500572823360300084532032883491522518929866629935546960155271698219132908374088842431925837440257597232473087333106112834928609707738328401330024867643930715731543952218028897675635908326528198420845721729547554036302228864154414481293810036886919165851360821803296592763590255937384187843871627895066775437405167228092347222581755142035864461772135950133165684475767507906444760725908875039362812328646799313980219225311411290736756039516138932288504304098162727257831143439915423955379058256519790936539205101606993773692351611276343873045075416206195326989864317904046872023612640590087583203415990257129719296539201286382064518919203963289795176264855612986605961914548459364919272774208277586864355512060528395388047435279395770056182649957630982168800500506690603239138135196536092327040402715800490458276240187360091407542594562549631197072549433400003543841387116122943402864906652853833374318419545924004180016265243575490346329284171171242392230568669616012930971019158215486666734165308853029076999260296895574044100886002765371414891224406101120379943210582663314231711481975845115469222753391511259852046814697995021787493093456680775088930057601980887891483145549340927689939294479519687783998851273860680053880477830256498902089158699046448690641930052061406959848795411870817764888766699061363615681923311596770976003971631861978530492053338024647693694954541687417116099574202385898988113579427871228338559378891276078076497206073026301990874232954228448564390974525711304634219784895547201737058725274463181734533023985466053089183165671519479918044367685292406588021274867537143889979940815596173824618989216402306808559100662888960624124725961816323707254586154829772515452261520259694434524881724420564106317444215486181079574063904033289847591848629192804538107254997882665026325554747561042467435581697471012702033116420914211758140749117333203848944319768861018372778798380996229443353211697640262626176147563470270277468115578553486111584474063528166751596203104591962520412646740224043570521220172737117443700266771193513461117765395441146483772791450506813923433018190012616443455307342177394867743998942389912811360111423714784475528090558028440529612544394855010595042118453295510212580706800665268324119842791828628975841019671111025577192665784006440840196239009718935425528928049168284924574736800304421294665732009715368042775958485426792031035486900655586775523298584649504406879362870181408156853729626281764215296947959952353280006293790457472221654784219413405422022942531895565411761285205148395004763750544380504580504796893948914192468561352304450659434639114534576542560030776210019063625099894992218013705863444190615420741773344146845873877476451521503839083989321692946024839285850277203055548607197343097830172465214589305818529521758636229757390503948681627551907537607167397346391924698797785068649208944593137812987722145765764332070599122466688292737314460019963555360080392382256323931546846451638317586581986980223803183824427119966271213417313490000877608211542642861018109444703004503621420102579279108619088897689355493029949340231638850450398407696411866040658688059581329898734483774595592950452961411304900192107233529137793823712330422304300938176848523692902202178827133212788132664016965116320037279142177290810895181537129778731965225703998253601563112081350368093505485050808554574974328559080973095453716761249216166012409642993030541680342447112015066115210198244466763364598629252573765536012490832394511118057697707655421753869340222255531432458509356139993464388299082549340278303780353843084874611491202432734582311616983170627753178382603620385850289618937532813596222519335492992695724358404951586263553594955357859046756427909086312305595413967098007261432005943735199530890027687995109848024868432413228266291175284392170826843641839241752770008201851345656680212480110995733952378552905582624454552242829740485670081378569874239000413484468062476091068285080034040139952423941468958072643294795746085793219220522213912003679970968124632124042846619258831423303528582563452929706538893774071681044370473732477747619768419775276655797739596536965787894503740689244264490598679632194776904025260332661590802053289999163910513684391125765681026733555218187567516254634346058023371212974365940035154596648646253056677530379015350402997234591797409010425461368404114102751874394987544840961991941865011923315888280198973686769359164607830910562711788021614467271506728975943349915906925162993631285721606284898071930547884953645008852226268338938725632029563934401558925978067632505850510351162101587153002596366724840306704962967890839119509524556699428151141807306347999752630427269000304230197630218981365645998779918589333444185143140850090175265804054615408477491842409848441679497304172341179979831483544922203647744101264056225996908819226929161591674727120492556982564992496637267444473140741551568708210452494207357426998822169180732142945837700461495100269095416545335680446087632865752765261321876089709258712844546907091578514883913614101881896006900239871387695064157517624368639693484658679535627192443682650692825257745794171744783964540423999121926924201553148074452489006681106580130635690630843416504719763789046442472701578387430651597676799526948220540379074748891860404141813648940043049103859991556125564090436767612820706484378662559921480421443900252324110687795411710051552446624959108034083805160594529730152682598566996340398069318204849080398543163150669476838309034835565421521247319053551808269452873399946520881163446948120884289110681315890015663250783061721759881625132578723177166024309841160504019088093543812111955070845694173186440644208992846384410244286756527231065652551094926025844274964016030779462644523672023505653651595954967956269262600317113431298568239790814574409549563199017178302040741908731392606495918632492794808720734780248466595178727863026407086632654034545970797481033934767643190315729566850346762932605517229662718842045290728906183862054968879444399680062172925779397729259590805280677477074750999073002139757237157378130163864497057101536569293845038869724435293932849966560481535476036655275924222308036115701312939896427934348293916573822180732572747389727132513530878817831247364464170500350434752232333724209215545976815681703079264107834098068299821119906298658029529226458822215060721435870465622888241472947611129691529489705303446276572059576529092464311484352149708958400410751582557297149419326737579014192947356607561649881650508634687703289460770164227741205822878523333739615859689912484188102959604937685494380312265803331156885453336846920839664321061719895364079940683355481560628478035251864424644950733667763252377277626750994196657872948491656495356773401397543956719665905371012141014544565708897320557725468477454114277929290473628159051217214378705065067970101854052269011287715120916347506401373476034593524433421966722781345094419598660585119184752124452556987737080758069914848329668447157495473125501035468047963751702539766980736762485342184889938837889101515308767377219295145442346854478694973194768168045956276307596277287981080706334447465786375714363967326181951351639629055399623023284884752443737184815401524703754147935159457218080223696931316419139037765245349529449240933759148239718840405107965794451263492871394319409911087497145871708026171669811372032436007426784136804880185167359100049214762799021784998065395595099097589813409510042077801117272200202596214331706487804340054023775707348971113163351905005981937344869600099384451942269882732390945462210525990495436530084371912287645376275545245290061694753704908386390616251470942822895204806756993596622308227614742605186073705191796149102991492331693178641226990397259831559452290102857799645735667479837633053060162804215688311608872363441361884896170612324885917515730060354532213009402834341403095252800441197586150204547505852359726473260223069760750398594176248756155164768153884436770888365653372571940989720715957315275225813828314479288770713601291246912077100096377575390414370328459556295612569812713774506532864703540956528321770959031208185728474859072842040043127588115880069246176823379644633614377055168969033630741680695102785730564804927770542270977550708534219306055304332909871032635591410789182368187873286924601970281774507000896466865837425944386766681671185126946168847982917260673755464982203529553782357784472178087334136558314035882531509285337228419056826445007297020372784224407090399717621088825835950051350628251681722836951091535289726059528568421188450214359311918614245310505326472903684341964225572133884486899253075400567182191371939706620690316167355982981017990727689711983355756936178887085273643360822755331810454689375274427032867573690017091194145398114103454900146586319865468797647062291036635389289860537037225359669176516504188461308556998786023685900399233288288399402290016949245449279176798856985368622561813780565162145785624760074446977752730485924101492677574308384332237124749569288499212262632911825535532813150729184866601962093948795724034881916034316975443521826032952825968650539191575720941438857783763332654982180367406260991251407212936535054449139313957042620457379322211651390647004989775759380539060520812381217013762010840817446242710189251461067270170007670020257333743809294976555192323534223773503785247420861215510461729534308353156176915716855321727526946882542879254866166846868910374508940389141240128562408060629878515704040411359114261741515793360499712541931799497686480276342402703325012940608127936972188213834406877644854665095079545028114625620334640625773380034048995327373696849526027150490163489218691990121172197992216804040366798966022288022444137502848232107681179240666569446875100842690543404066335792095155940003597033660102846704438524093772041393072333610275635485748632252441132741736350343055691081496884369489126725404439830839126770775825599039249730719217767724840170432169693209864747055085486574937491062189459350110604151899555534058994630919752392300721825025054649494617615070447666882023488743525187308921366275616236317574830712189134147769736670529685929309341850962199912344297399278399394490518412701273302936627741201098437926886598654770469317795083363851927548016656815308232815372128444912511021401592327248050289297990984519284801967006907490471096826920418103984107295833210506182068829750287353969555343654217198551011215993862468931197991420871507714836788812016271921042544101443651967722836421676628145472781436180839264125775060507860979134820986070575143490687330195861389157226510984160880919342233883067767760709526537951726685065503776054782292076694676556354638974765824654920259860779272911645826703230787519426793567968896875255735460778923317708949572865687808086881955571124350892499967520380389905353288385311849818319518452082179948242743229173070798651239177167448441525145729699168825088314658985073818798725166189579232234406994505340713762145735830368905445658567679561254411116653504814429857551717985051630049843976590953204805742211504779113997630865019171429385860781564110012682033753860694999245092521169748665812908119009316817219169806097964453902797662021523641195159819416047260711353084186365060487398450595654900925293283510212635666320875139573909689367127465450054701832389430029994926636866049274994554102627724449402830864092738415361003232582906675620391101454036593517273187373177233978012386990131570578797010527231708234962261763558286940839189279149007679391652863641814662662613167606280775749944511249321782269539488322838491782703823911374372102265938458803317782933117656578584017956327953652674011382406219606684807687657035175766131581970069058477633954124206088031485532243010898586331179846523286990629447858680339718615140484873232829458195474650139391422134940934817725848239461629204828258913063029670005961722268890796858908298451112483291041050459451778019204712514049734343476927446496761416842325607116548584785458190200390539646675147308088348736969708362483387511461603278029505904726081657955159353818360384370503784695271424374751300867719159637180192899472323493070509979648072440997679891802981428722876107647872593772246498309165662885754904425867856981802908848478727354418871452868790728124970950140718960302648530436636006034777494486533091806344906022256861070550972098591582596958391597299753794647072753641088413218786899120779695722524186076012419563641394496425818183129949314177968467724776838743091743448803548375240346558900783336530619329433332891468872728313367733916068245772322479006177139790614560216145908005047094744890250255508310535104788764895565654088514983618357846507026047143856359704110212262352559802827520134611282721311482562142180312633739738927850628721162442586485014344691004753475672334350006962947280428783582420731525680935467974573128576423439961303267000283647891519453725329578296309273253148096760493366369378418427065167510931493423270619197638829673057146335794426822123236204095786457534921768482397004031571589997288621552220636335362965889943315192344840206601474576995698951184096177294170349333590018901121340540764990957095835756037395613715525537038627891550427804688436293724964987877245049363956327041476168721301266436677988214861358979288452668557971715495838943852982874670906223290254955473229684629473731168619890165237758276334755966569204028739994480465759827535022558586635582584385362676655031280545924636474162763535988508998383409617720944644091549624434673154948042946030791788005452430959277187751231651719482368319132541727621478259796148706300126203920109351910335472042985561508702097039771039185614017630059447868128650560646588989425280869437703636979857554604588051228631695003199714520416850231294958525750871822121382161183560210886827415123792787619525625096306260365090365908208593869494233233548600209451589479624762912607192868819812474396566647410028721137126375390536041320933638090214264648357622591436494769357909034206818205179637625438863752589247788090181510133873264617912914003814855732544676775763959831166578729346749907141608375131006126191756784979687911325550791806720630486070561404038745524537630375690661759262811667646983610049102507243384665691841945095391079932610751769356005398037186366584931638392564039541592725602045818848752075710823236475420381030893440613400521980909950358118433904995292094638129412947912158447224013164093720363819980858807728387351100242262294629031455237372789726685373149902261187970338676883504404710270547629849496285451953114877489579325892168199974251368565635947162938558100667105063659987501113401159996277489036150536561180328793901101552021874236457274105419476141494142137262185813633573051999761233977499467769501645275284360506401294755965980485983475783090134969346624446722172885856280174843642116229706241644610586604279491763200603335984115737722823900571793116463974981637023406949011326341263597420490692447922241256656037883950487166126045622781811037979003736528001231986537573597169580957228394876705017849904277290135285423645940027627806787735476993889637481360574261075273665649674606910631877067302814409421214924647028989499878608822819286036871956527585992177902445323183366301890387444301543900226895927842068958810760117605077899477126965917033701029658369192265499313513416754295534581418060865913812350707291611164198864414792976483896378805067357148949802800838640388603829038764431071747503858650412136364383108044336242841333962315158358460534892204759625628081600449397223958388631467561170512536376009409577571019406740753967226496466031450844773827090416804142605853374790762791546625005754464501090455563765852763041850212917932763158027447465994233536436251193733718234039240743258578619934537178303832465439671444456762681245518177155212496787193411409947388186556369699513912590707505469485346453475306052108496691062817083046519964840033913999566141620385397347332998649722319363998321366071872427013584661390928765172973522820876219645902413626436031794207724249791488958068890713318203890483408528218834461140147932208734478567886949953580637732145405170341355640497955518053992198181551090079005507148728633418268812196082506091106750385227198130872031304291234666029786499254155161723006040590876022661150056058805771908788906231194333038578988430354553423726138591238267526574217797865828291134922010477396239981342458231121747447376619750746967286706666552433987375439532485864153656905222772122791830777776259144494125904850778751675923822171948355681358614521834942214038490331244115290276116584665113222337206188881709647136661892877467052355907184311695686562622157055605247829057993933620532349068829957082078752972343723300072846712055051909943945383879422916929206256870039481841138226940341492948544398599642700702974124804211575734724874329863655083461422030144209186789843259772501908343978575168902937844988466288780074571487805878703304047716576104120696567275594933265027544495861106633015692997871298974837692793321108813929445655003626592918031303368642817193867649876606143920901208451595415312015326556594020820998927510883034269791122324961202163463689718898581270001991183573098015307077050530030117079764007084728880547805112591333210812549351296477000332356504962466187025476332496176610036244333577062488777003908366815534333616847579881086635615758886885383845973619758342540745040095344096106216729578530900225608907842939359962554488886558366193082762865593278235890253378211589887080417329247350157950944965382451009344880485268283162025789709548226907981945404227546646495998636947016185000227630917378827647323796949222526218480162901555297505677665407920331572181913397793321824365370951362138810501948901131723590840742798299900590824060493541040365413357456067070481453864414021398104286564566653073962060372252251586761753930246108948992463856346063014969848368277519291365485432579594213538473490895055421517758458522381709011330663822844562359725262963432857370304429863511126794297727115785456886064606956473196639870302173731111479827312560248155661654592085168268051707240526176726316770905165307580625906599355903330116181733711815689449046958785391585006465692094638490438090532161887829395640082724671787200382989271370209884267882219703669922302179283385414058854911478055179917595207974067869210438783139814655885718407277401802558476021896518582359536617585026362023938167726943371798524842836921106674795466937174176780342974265554470537788607240820915525225994515445379734973343192766150588700601838591687820058924529112146694063585098225746629655640773763211724112495742103435279708615290752552660353556864184310878259796310859514579382453165837955103983360335379923127626593741725842243660050844241557944880734082664335789536486095456712369808169179585415242368934633927795315297336833219586704389201544019036457522773210024996442091188047560391261097688566692277865611025420692624502111923441590358371263598048236719422193991792847638547044497950317979249675255546002041502375238356958222449585454021313088628238700940326693086527295562536257263182017563298510549064452172046061308650993925484399866927668389769945876519008913858780259899047220182009536478261898304726932104544917331873389757360112233463562640964193125428663524800079013440753224579957832904293616527102650480373045147055754634129403634550941815376884919084206651716516583725454981125110409681185193130991817098702198125065109691136300676884175021491526129185413190230390293047924965051964783180446632619067652189815516619451070475913357618474023156310884124656924637934182532611514642406973611266541896286697384860571247240940725794160736793109659054325704836875069181981622344450564877741171280431575560975896082667583828494906074612368283329922504591851947171369218063844514024261416816270783835334751716950708878913376767574658145533064325731701005744790445804653577315613742041443455798866131685596391348789453349311776774611960657005525088715432270959747502302916540464495393083485314768291945436493672636385406720543245155475083771398499315499099022160177973964231286959133355502024097672750719919120267628380643919308937328426014953301723079413121480016366700346433736187257744878487616761431212585912406768683186249824531583815189163791116672995952257925904050624380348674879353639267478742682260575976111608006377272488440914506796317439320526098743772572315171000357491526828437744486018269332328795209929022005292823658075654435473091504269183951266847638246703744264800620250086504546002405436611570140662927815876993154205408601048439156583038303012868474197003633919859317861871856622204097908560149007560574470781432243775431114731099869656074621144166279037941602327239835986860335442087354304409335383929934741113563318835313547021017939150201013235850346376330923211677436854954949968566133808626857406748258571194666835604888336674774927277029065330547478007968568806556699793968389037338562443283867744163223393152993292535952706265507467409346458264763016830816008557447630700306109216994936284642265401165387004517649695378094708593501800227138179868546072697259255004403907219055253402374470991335272684191751518877595521980586888896199353713437011281379594979941374714779142879493089520561790008026154595496376958634084389411878498991376495991326871163121868157350988558974747062111510197213747058094788587524079327375611686947224362064479419658265737514052171246923357417382122526915311150866480901136283775864040574223426005663911226597713567178015673909549162913334116025141217021172176150491945387934807481110999808372606781813475689105637505528435759286124971992495663987804328733384042575847680954327242723868699632255199774153030424732277278057204719862996364125204078631064945012468968479279170402627021248169204008678367074085522108501315960200622807522695027922104884074394980523776827724540648448914379799836171794206786739744943565793264162392703379945045042536184567821209144754961511126490770606304315786474937732340858529398788036697871280858194779030790388607056662942395189945392997963758772085571801132157227472681448931631466217657840662999159565355001646885756591196806439453047723466984794124987625646087550116260698808642326026548442462371843625650499831059557459183111247167290208247637433239336011654657215340870396538940921889395830987096189703853235305190196956816416991555240411363619986704535457352535167441731447888422255745108251112332493107523523833885437570890015613372129743110322058837467647095340886188354780123185322404757704083738597600026598579665862901938913097144058100884967362266921822612669928526835664648701196098382092271704974891366549006799617522277434892283690550190082929841635983054843144284576026803630309933831226571674382312600904274727843473327055623476314640877578838412346452021587642033468117054612794754590815323848586000462686344229661758043321703616270748493985909743383828990516825610677530294486528367353192926366873723837147424028460905489022997774130148971394742074519542337710244004251389616056085945855704146980987232148758267950749556114791052527787005412125679509443102422824289818772064183400961307211274843365879646738968519501694833414677829120775497038168483817272037974394193682710478185469273693366631948970709226461566436585477964753156448710446227330403335990989660239944878353027673494747421341756879562475648387728981128252280854455782173402641833867653419025152770055542679401370442091169169022098763531597562943073825813084636141929352819847195126685835853517912146939823315563712143907545827251837942038497598915135210681479687919141091667449769487912590033355853888106241777204858500939046870204548741963924171608690147220395598448889536229749635464052275558589244211050506513852217697834719628767017243754455415352427722309676354250194243032258392905321467773043209173258425497604486509239892780656340390947297130474291419019092409467728217228756972503003687191090122896939582664063731983210534560764753073328048811998026755973518243020221970780052527762314595324456173560026749152424710819862353875055107404838404791958115617420996520607006988228971693850398739645969468739543223625860280262999624420515349256771034748796780148989565076121869188386750738688308560816910350461362312264704389170769622903737343386274220441118599129407437964232190604713939695728066576092451468082104454869797985262209632586905797717006102852037044973899126502720101372225745223240217156827874496990723822867862889088796072760849579654974767915600272951423544792636568652639859064010344820625146047684490435208184011838420962335479716687731682138065079423727665803301691242651044177657028103328817688945812202914096731618335410337747146789055914511675186030747930462510707057391465176459331126035207838685871723111470564612719446990188980502576181046155122161682733617466061184025374678509280841797600724850532448675747174287493391416056398308255705286983791930270620334979973398288240128029003661217768138336372773547800488190721652481009509835149125540605651277621594879632859316386339393742641454335849199507543416249818568132103938025933688638526555350455978692816672293002314183528642134349648231966196425748492491395273150907416641011309882445442073842323353222969817965838904218940242760754446552936859497934272148355430043538052388661028636384054755805108339931224403346190569201786912438666462503550821181134918353438705496457308030311033047195192093846632686442742158871541837320250962098667090201566579249501474967200142723226036788623538031534088039873114575139747655172810785359034369606611610127217243447983062483004137306125070984578375543623351518640701104472264092044655933570133467548088588118894285968376626436387549262395737915292496050526526530810885402771533060147514687675790555495077619550543594754125453839305288304801725404084717193137422184648390065488994720399099076734985095245709314942991932939520060775622676899715397000108376911958583918380899830423121994649657423329136049747230712285222038020037555433812911300391776985642504351516333886858288924968555525491975662126496490153055917974339056484205084198988266801237606217575308765240533603378061391406687029268808392333156748913840436005186519687290535634858499535961254493395713119970896892537319667746416166767524040095272817209754424788519215281779660759335763096323529343485022952181221035266916015920441084165622428779897136234085045253788494041591637072297342600419417983481982200199255597707619204718336173057689433877977100663895282613285705303114588658395138648725289275046367356864404747203654894668087906986802530364238771362002482125527507317207452329589691745922866584122363277485134397829745754961371364924051575018936130459795979418263994678355914692971102627822877922556639993829727805765664770245121657282557309340422999347899685921587816771646062770461233132203110745737230989348260116935095302477516461079371083154876718385825645009877905765053855787474090913977815974537347654125314585649274571188384331231228661421724769148555715522824150098361078286235533760536385383904603691068281131844762720084872852468428967044378499543914463460728612814010650582384405644709637239352328150512065755594695120712186591315605376866842158689425843621439108225418147073725816369432031752232630591769690029608840423898222678175283575034225617934553724929777605202736346464225046866453694582118725851457334399245379527816764320447974106006341812954094646838061408648010745641300316685385330854188839263829233515755764150269002289050354163965420939130524432250753844142849396711746545670637199771379096791484091192583634844631586438828433625907982803616403970358702381762718899202408006135192663279274701668165931600786549017990025601648227033023741489641288330610796652344174846604181177946391599024328613645379507462532437247167371182416076983555151778607131876369361141432517967353945811488143778153364222025883321195745596009764812112068235127791916098779478836486522421784375597268713612084814069163197761149233052738148481750978715174298975067461127420720292427596258678527608407817553317441053529867285755731428469459617720296616707410513316479354965011883735047261450468968351035129489242949501978889926644605624001877840083604468029027056138291399045876339665885820501749207137530377946216312912461251984066026705322048276835657562491374151291425562814066136219825379132639573827883217297043257255039052040093316830397827803005494215691360290928285580760198181807810252678749738466367697262074977890902262505133662677683158424187392750605100912603452708786825793802850449381941842191440586765654227012119091669908209369056341163194182568114386908537288503702107427012471794936444512087944618588246957249196011285399520163445830351171022474833762325269943009139955268875084241778548971714287406356101285238443561445239684261939311809432902017081248077920547590312256842885537137923299813865373621465822175513157721064285432548271443607389805946124513470329631340977994818231036250704846505168353570446094233937208778449309285070535524236915635933441163795676916605131826571243854040046670668762488970852407101857542968583965484862121004715815869765965358459964835748906034783797171815582140651242029770472267613433039764038957611764759415323448214735950400406722166093777783906303758500735598731415186015487209361486029934839153612022616793937319562100990907520531532214075651927979901401306975126744643281700943636867781025510811027000528115979198680487531846225069838415521599167754293119116264983395260301805603987388323389697123786616650932886174365838529354329217799181014822793615416728841415329925263721548087691123517835372156888914714034618269892671344665899641548608602919313869315541312230743868782232642176001715856385133778145677152224968281720793715257565433857805351338961553037038262559114132645382370231370344551994591807618219293110011579336690017476468109552850969474919207140040854970183927842467240581099482391874107422952155993033593485356994504188160397504744079555682592269353924134098792327860193014925457587304585535255215809620262248728514755212308318678805580396437177943287752985758700543538127899159964914462154642434900175114372773326706776185265570194912474226395332321353346752031369494452158789248047088513485878064548600086772603812923543360112543963835728567792213965682440803597423765868052579548977500199054244655905602774736457370877451825710968361481089551156253630686009883644852990091716291439185376298584519928470496768694086977597468542909252826757215760935699437742276627370357000938693538756863846880031050499964050384628417421209751679194768743837841282577881156722748568929759454571085293533378483099076737184155816220431851636671847679203692000966856918227547006735648450109847573521566950312222552035638163030211424917616751645306167431185825398709393356728536294540310280341777210249094344742588984112154569823294456467940314195396192957446161068009118838741058887956926290424506532943559867158548720627104786344292717576812803877969285501830492321293689325260807408157199141836554316667104267218210069151849362739622733853520367414836015827656828548678087819651091887988002641595135201591157313367803732801974094349863481443921281677325087794133060299913963962229153119143963823405184111470363090811817951110206689772353554474390750862698211724846458826482847422537820178879572358871692188779410002174910746156659019818339303556375694762961895997925071212381105355430562600481586831392935372018220652522277006455193412157732304070410908769297485648292246782062864709761034374505124680552226186847979466667580046038597349918690355655069896414486645167325574498872906622236827221932226281467709389213816942338895948951623034356332312277906022151425305537433648866409575553689505710602469898700037991744189653979808850320093525661944025419316079366410856263891312394171426562497034503085755534743498092137865764682621305893742687077245085305700351181197243269072722255564663771802609271743270175533200444478286139153104983322523228799657054607020089126821349303039494223088181518946744464423919862112497759335744299146717656473247372551540706155329901584410336709341168184542927211572090951056935821930642897604864610651084792821271112578011357925764559106734876843643195532407945739968391273980971007193019585679537639856128428708184605853716822272653964193081844652696756841871696004950710426951175843781623255149557466576075276549087323503780639030370809237319529510384583745209881859179563102391234128149995001872027753890810134405794544469307190019971505928953604477453501840975208940005683912976022375145525210817944153602559669232881432679338460686387851298130449481079508269817086263923973443880745595361707273090952417551920973197921295346621234459690876345095225284713506148963228986880568699309128369224364679669373516634052764767183297694942416843872477905724690286289549091656673215026763325473983583126825633339412915507885360386988986314920585894282882400914193320684293886448890246172128866616926456106658441262689651290200653375291467844174227607235752087289443680178720440998134571727940957969058657531475027929790861856470892769928657182423868498739660364090333690521036750353141781937540224229109302899857973346953686604889501248917360614299992198131625728951536142877310254729433852068099876596685597312901113146195632851713098510796028715166206328824216014926756226080944861038832523693613644575400797990272569390469538917436265272539773813704565908372728223496323292059640904313387348278541355729136951804280503619010637285434175711112721055713636567493960058641546466213144591735172763127684256495770452827704526704371303071999459314965240636624394257915261745467242578583325584266682204513151717817111365610071638797601878289720268249246437615345409808490675232957329456955229878811122501240093427392167027851081728366299169256563837435100809454294427651243342269771297994868992042489346155885661532148519788965866059444632246457794958226772195787328812060019526295847146684687686085995819185647221744774588203231004023941068441352183385287852464931692557936633600685929685829466678590360447696407493737741925002821360332056805389127708279335948963414391993555041983900061549115956813883344346411807553283670339536464571026146019127225435353470790490975152990922922131782070542155140218369896035963533428745342680062853153500534474704194562657054724953316225924260143877500279201943690402414384055684797009701919032188893531233480192019517891220049120802133100928441425628901898454092814660312479858714011694522822029983550082023332387079426102778710900140537563814379044419217076505531383348367552840700081859219692114084784264727207712975720994652499092117700279372090469053920369956046808290107188298398731031202827858643255362628102143518649672243706464564871922115869927452050817838597487632654565855614849567698413525141977033206798150991318127917544791181407811869600868563795045057887945913534582723732410585024990483822091288597029275876955384434761991581815244742599607559440242164600748110007012609379861333329714033837898457893741053683686722226515607591886107454985679310924211962737549877070145441324184882101341626729733040052533970672401358565605987941609534375527796731043552405878247025476089709880943778809724299828408087903344166471491558039658806919451002703553418816264856914010830548912363065469290338420371835734660356399033699703977234021681153279298318134580643090220282188414409662871725228435138431445257871653438350699193390995706183727112115455651801787022475686797232867302282019542703396886004659890150958628308513961459614600666091796887051614099080838292017657552210819400830749721799248994178155836988948293220400098851119024719094382134517033257144145769442528167884845386696844800484243428912292931219284110998307680548731854400382592308690470137605146837458927427820343842142708573666230157528738139125970400691720248766636337557102591336177885698495227939338743298623681132824841636733897500150014248254969490020640490530864993886821512462646023135671941154747490092344900295082615137493473541032672039697604284688417987405779292701059834491823818333343390717705177443775004995368492161372498512080707441663972857758783325830607814242012567188418551589246843532932932071768677227052568934158170277450818726816141260850776692356385821849818920241655581629699444365583557608735667059868600798226048159466786804578909315550148790557048363827073261404903507849899478082033302916039485721355910812761950980138527401848908774528780331443407022198247547286298767262108339570721001087489813588478345361128266240861026882737645810898036742299263118341071981848613629003942059629416489622811063091963997564902554739021782849319413515998037203113529347960272526729363429323947797977420196288053441124408869297775347036462520559484823690030697631657706043790387300240288895949424931072094395102480649903472442804525004177471671840463515504940945967862757872531130353443153192757711865763069930425548652930766652963893670829538675213546812195217512759836134280008742353339653981384992557856649269498835727326918622719810703490787101766552382750896008351155340745450938803596558730295495730269768228741697775707761567477402819812534567856144948895156238060697556535379254784515295848014471773108147053816235881362015366855164694637026262916540167522758702842096754886276572974955382677617845970334198211120631370695896201211060884306732578661554047410950973531641671164522070838265366537851984009107710069569409477763953291449596926787240220452914289308400380955459383999292266779117491630404938172045722768537729507332671947565954671675239842382181783953880793596973476605950079128900217004035470624409710279367908458508144475351538184236528325083602211928480374062441001951747166545359205038116348077593342292706452392592385584796639860485265646337646464818076541796390140408837725539083316542685563989724521942044071475230901228663742728885537382135564518574894271771958918075006013017815288870934487502053561532780491564437446428049769320697306852287972690265265020127233634717646745507922464481859589230442241164998421898974695568887619605810076375921900080654108536102426830417487515763465769267642837980329146625280880583683911369177511057084181650931657779933428415293062554352923643011997406535143020505319287717010121215954311460644823084363417000248768301996959252317462858819403556268688774062603495294515918629101972556876899337736486682640950688457476621082301585069110736939769618753724657102337943929462425009851236103919630796359720182808910821520835680425300782410754675605815124296950061627536158134704462915010248544256048491360170315848261361913344113871978998624732590533719216655153727825725952678461971725622200828365803056601286499336206161872991708162599691423897382589404309713734912944712041327652662430018327532230446923421228076402851770905024043613713388286122613706464188183871444769996517084029431972322053142717450207059807706502825159267645719538100168440174879421622030031877429456742918774019484150071063262785409241628011333021811521807000969841556582583164288189970073770268531808798479532919859593016718796536213924602853529787120990307127667665860055467009087713957651650103279830723771723741410587107999405460283964127632009390308713744632210991715816740517804325710300445283821713036648400468267731592032915573063011854862282789493562283112666225109483854907811645560361982108689276825032845733607181985168735798519942993208107206659702987523533772323422938680961504454343225207089563158681376430841829475084070587365611263423107812392269385024164363335935222883778767838717858053311376290796280507638607433303556428122301865951551171301641929229766863565795062883380297717414500246045397157332311925216497752848592188351924808952965083211729711065159444865123088468125574460476647690093790216835525821672193113914827071452241480455798471879230702334737536225790132797557566366259171134186798617230950803449141572350681541928944572590561072807814464899246844492281236666623224708624943210231585574050827317014683324666434802703875306902910828157875015799572232746195657117771684591975480495948554766541188844962034713656209958255695341579060937290507368063191882327251479497182640433247227669845145864297870240152113102784243689147774822774528728873096691509248066078951784825721771030492705366397971460408230102692854633347511157325243395103042313843500433565777604798790417355780491735837616463711521501372454260682883172835046349448474180847528586639927441279746354395791062795918042233294008629155635099450410466582024875867206575872544834561961695651672419233933685980360125680683290813255196472219765863962596840221325854905561615280963026275653443217058925420592385668801578652709558156683224917845443846631508134538887594324267210099572710184296255839986536225903184577878988126156935086385137333815757840684910599947306440155137763473793235267628340450477604544163440488662057489676145766091358638655433527028973460899709052891197837939663261943916641505434704121395134192974732758649362600822683188058927838084730347996411029136867367639498120915485820332851134486155717265081458909671449441297217964718044452578074710872732263473681999467251659589930247374718129668384003279892638278851655074782810620937530229665594497558645941464727877191993094766491393927524476249669663097282547431014270346180508991244723279008507092285312633728711478009797674904429938146319100887799575385149904256479996861189851076177422457355679233854754309703534436020512125680289777747706627230163460403557597277118455742695564254089871732469454025114367640279344911669416514726901256857639789440958435749156292382663483452496635186745821668325198579150663990507561968966358794416763240192624191983098567938469783692370923819185974682468513024611240666231309794432633112829188845862213385077337159610167092040113724329487108855464459518133189910444490393916414804966743805938195967064224229033266705228550492894992624021671526950070629500880413552288237281563751233384012757991806199813968601962744224636049414459734108720884008127938455814453590758668049609289981162459448354961206294338662122453662543241868674991204310977744687928411006276765146821885427547226484285453126878743766604413782051631879019268276144922553810971564514939178980453738480007823474658720243923596017139338426388939417784841511381893133683117266874306699826312887249978603875783844460632803013327412476982472857638398112907023877597920136334634048580066270846006759281778094907187728861498645938096735561072421006204216510954889691186402607123478927282319299591414275831420500520702876012018222954017944586426705974811623977072006993322437820111010740864593704477935464426642858793688140040839347903208063259590392414131053707689804192340973958613596626297267550273588646744044494530496430155658058630099301969367271013771177153104703915365000889017806455221727290337227841160395291304107939827970475419199324185101985996431936844113398313396453673147400655572918884475546782796795065796772598046585631049887534459954385177217487995134642763406592659429163773174966043060235826849957032828664893055942408965999801062226584627048439241338687379757669280053555911333604472756210301281451982396696037205175056378105945235234236230149558061187872315169714450377822352011457954964176427126221799292246213651760141374803471872009925322744199740639500595792400130748252094101083282594323923009857359904289162477563682641262348636743876321151405712318985845534596193245662941936481563218254857569964893690403815803074101484221859438005219619674804068323943334563226763276466737983900433215049872651557673069096890114513946410852330468000524492142314237444298347952831709375272054747692117453916876669954290816770720299062567087692561339409561356952854535979885142446710770909328817765735121025464896635622957607329294925712308367773515365404547560037134818883590875472663288852298922186283887919604188229508562875223899281415075214257081714213905577686823564489705240023525241367499819522260816821774356984027539181889547005629895488456330593298285774748810093445619468517301583241749336044411105714058793649146066713008423023522383502408721672405816651856784300085825371639634260736096543217144872408171995445538302120098157837379506789185322577265439445471404606233668053644217044214788485260427563117776304432207438568753658962161957644721337298055804735414224298122735525071252051981623013000434087406779401402962691430463682514822519390513493562245399606299973736604587408774827354020502999730977250321182034444606779444233526128029659050423464817167603380368536326917829031588101387836578940565170971324022779622841547474024472498457173576310784408415371936358799587121885111222147411969957661347544095070556741801801987003384111008527140000948986609173369699464935307329010260587688255998379108359807658490281999124368819329441346633653224917707101451070701293327311347530490268549282731343570246617050225707006191237296178277561593883740614319541018979372899612206362958436336924846079657705246930655548443363613367073464417659352755981891906942714254130780937925153912491416387768528763152746791232522346108068856730363907982315484821497084823589936549915157276331917073635079362059246582075741522779470408620046656225360125860912524980662737105776920559838701519679801190381479471686417839774591007893316665977302155759048439962888985551274116978257839601599627792812528214986302090400677459468057314742499253395978787319617224771661698401519834122927753203423538659366470059592845639250548402544912987623760184202596995735381333850890968687017549625271793183823538418022928227451139143111581439611944538134684802149209312682476918612706532639134769367937860487477341447267509385723082316896286922751339041603047637516014723393882002368622845650349870952038141079286544120655945374775719296364226442225056853263717531616285530048267763718915790385449051775014823691527884512955995421546408847260246775704028088704794511839483034261660969061335105586340321978629387328759131930196535093854559314035743316092802811168523930972863748842509771313416345584121643573376528228845882640207838675721306730629262949521366189049546471024746028200767007822825760467055903025523668254026849461526516397028339563082618643514259217614805886289556305644635612088772897118184615986503018168390891319256675692134282787271139284531589576907156225176999802271151811188913594792222758389726805763491653277791343542366007606224506687918242026727529556739183735152089211340574513386520760605553456690304488448119932538733349352313541653710957177984405769713548319543919464272986195453966602442668969137345885045246864729732809570922336594593450510212115542559749526329313083706431998505282485624232935180838459102228224022275228029684084987385688136867957616887150018808513306903476079897927225244887774399450187689875661280306690729794090479442533979417405986582989395319764332741639073582398316198121586309485128509473698689103469578664051056195894275713022857030944654107423899166040062213126202918769842379824532793321186940439577213446983807243274577654834403410261068276349419206510951071194437491775644533319889832200661338867457866489654298637192954144647238434724221766150795885445934608565125844281128619175060993444499053673582398021069324584381098706130822747973984040434958810088929147823875351397920986748299406039232371644500752107749826738666564291612063574932228659465300093558563979347375740339260931721771207092229764075389966708129101297140548242025256801108842445728390928694735535964020553748481756844458339237241778421687413492585248234785978129407728952566960617606385325271174050190816682130424623358613624790404642930726134655934598194821222796991403655144876944434627219208454207431112434910499121991041770168841332468986656547537615199658566928055179368080604679438538075130266435639784536551521029116714458959351146787203625210946740943510670628634702296777093553329202081643444496476502337890068164329293212095314596503225655254985358396364383525102051618596156098751571913724182955222799825264338441085354800961028303746224235215353549324337283236567577372251916415720976518236667383965048655358872053545031095156076925407536719064967792346330708800887042038159931871239387479027305365974166696644671634324998554568793337632312250254120370857335062171140694459516716429063006144594835557470776204784617296976992288193630322737496763193984496263156635019964674135462756818347601946847997333846592146857417885773603958349623365938492630847369660329675160731065671209637284886804805190624086208684152373910555566152613229384636265037589585369606767107820185264395264000988329688742845912131741042593919292219052282005197537170856371534669032725721582742512477561478292809934645765195599338385268081163378568431768671276065394775367760765093536047223908236072743888952365798607219157678261769041825495197340665830816981125941509997179599337084738935160964620587535387544103049940185480309421031478636243313941382027064022620050764236964906699364182632722558365863594688107543431681494412330297231166101374053391815222339000818111127203727284560533294433371475756915465250107128211191585931728726960203814216328968572347205427096459876507695318226227565889038169727280614155646047213557677800025188652888625180206246186905128961795709453839730449647313145613152917104337757643556525348838349000759380402548612973829706840425650225662582202293025100450990334710101856258055967210483103754180279770490036567765471661643889522133894281748747089392380612675098150314560255588833398334924033911692281195344791876359737474544356324697623097625531226889457675826104561538897694528066163962323413914568502041492510679857330203067964494947810456329469792483898636601158659874605874497204500257025054051516857506166349008564536874170022373167160600098748131422175179134013824389279788985806778223893133519739250094313274696939622189041180490581126539766049198193506090416889468564554371158232533270518442130301392069136339883453365597835416338258110890017064912124926008030075311942202924992656574835737963964183676707728551818655894076239549193659355955295491183219282948875151587279944634545318596329695977513132522099371287510962523074486667190914256762029099727257973505621195687715758638099616313078775285860659502539367634121878740895073202804909247670100620157248721288630762432104471072113678885995964709444152151646907730253736902168792058724059428360599736724166784871383091934705558210732216815010894390341463710378936706569925577610611836984551964034444906518789636115463691496613959529435531064285242766309775279476220302386104469330118567655684706652484092201913240496891749405654808332068714920506987782066752401480496791138773451319954594853048023541408660663138144302497893279892310444245576182163435503136780721787053707935775633221447117150623935133839268442166820461970974100192604087203677139993596573051008949206949254992040193821511449799670739834566063210244334727415612376437064226033264930527412591636071553959089148408739740092426170503156408244700680429651710296495914327722993977478144129343506926517739602984082218862670994197851824013190196678208866458851754294238394607269755960554735921631241998601394453517667541078136712161144429158492189024618719990699171836743850864813098636272247711579309598183790013161974404276019074505166202488266893035847173804316167478121994293293300944429957767315396919200614806509476637550528726930278397805069924223884094965765784823061211761277681978107993013113376605535197611663727805032264988470734953781176123281984117486975920101304748093308468534405386998228238504322311047522069093237813022795390351285086132880277308597042644879689207625276258469367746198212529460909202674250582623985895954360655498627936439717264774098843835636378260717556648049150808994006337234732466861334511240822711407316270452334516437896015810023626307751039683441652134128498848570998956532318043525811581347664569886543014746649551431112713807381872293506313375144177307796438720341982586320600989399940405081599447595291310145855751765553662937962114615571708889825067994351628343864300142419885869041648029076216141128939270338468313824956860956093886670800364380361711404541190499820731216522650434159344347331349786525049119209456364771221917708161440678380081072688655316691853676484375536029940475331994970716386891447954500345960252434677755930618306646331593807983342275947030626510925796331571296256438942949608668982791495392113203172428135028556310372429533679948291696405112872933613788134000184072246593397119380142996060273376718150245312281790352011269554967260919655141477385286320366191817057947147418105123628881232321297692579097652657952437115791119633332127324966076240195465549579343709991521547006153357438945441845843804241084202368027503728328664641081925049201927226780356343411985473861174066082643047290348766987511521314011145995954237826441604375455325902544664291067919029161027237782568107980922855357166141764493007621581838131090221516020139861954377335384715523398739468448979568678540833850040952190351715455559062062463364941956338631839465983223519388429371938622327395741264413435822463327873598561739575709286077200596834789589066299621492140046501784051238722880892196194534569400779218197759817235898253588974267036256281378063406016478195344543140236304085148508405990651647780118853350542118994315486286684801032948263729484807884306897456073797745260278910183472020730200672692665673627547997296851746305660413484486118815119602727173605323947404836280937185779777942320698138511169749501854980891661075326194173568042413519728579745349540776781081299004251468509158137958602617281169323047313294969027461007210257995724774251798563364983548560629117378628077624672782369414806535373413359849749709269335140705719356666325331641440089858777013304832146693170269036278566375116915947841267609642443323635102851167503147279971654217207827276455728075248063516420112602715399390735089374472965135509381554730722798919577039838901416150596697713317670150569795152654835776323039935058555552370547407682645525925522729882622519921073757353977269891724318248787177426096674650578083310004602507352912077386925542349789546410574352753855665455668847593283724845236164670485511757499179788132585315969396164626655657817646416772240360849147684400715559912475701718167696389944201214466890527356269994583667440658426516583452164400110436569559584337639599965797528713039395045725523245418756825834586570273166980203632227321527757803769708143255448728258840873922459758375047985723585904965834268318990814342563460212146898759540129933880901326894109333675856886550619812128486343523013115350944888880988597144907180835978383905162277222616846163545707025175426802311947037409970068279178102250320532062831627453452511445861273627093014330459040138885403680725192217081264351730120385321201873300073143603858426260128339872278635601890381555061147784097051824229970654662907130130945104291077062847163376945358974192129069707360351426097462934765670821313786422311384122687818802496312802233184184389954887901869207236070531883877015740494661817278316224913635544548976603766759730635619508706974530878145797401277413893303387905893309884411137875530324626652530133550126952295619803622477373831935262356390629287100419020243325109316579853200385822918712927681098119149013937613584405604045423522576314890098362821522612742323793578717191518126123333341239069185606230359873769943775227758199200510305129298632554056658770314569901780824539664186384540586717385011112698223705026777033099157705060355160342128125621045833783855052892799067097957620116110626705574462398753276640777421259872674966180953779881739079947540724285546814459149409626043963488714007368080968613183735817214923972579538829118431202947289454084832207409653626421148381881751958613304292231737566526135133049406189455502037069360377817941296432544036186779430425719389209203401692353516337892116015654101610952436222347546845440453154167502673129480891343338557023830991759493080230060858254227617040261196338165857980882277024336887411174751688213005400447167192089603451641964647227802955656315492304404201351013423073379410944224121425021261959700978754470439788475726457563727596930109759283775212331419012533782396291893724393444535571425513688477318071979123026605612948750444518437848517101820915546519538152177606077671872315169014704304881196483851208125103427406555908896903397814642090099309424575419386731757104801274734557113146726232868207655730727043930252159363969510549381081702459362038255003836755153981578727189964188039220165501193612321295788805827859025476260849250995991734886123654166504575288661440821119507337114487130585256474905042793908460830775495182662304745765004782473383653556498372177899804673871638013210931778532917917373456555255687763681739869006418528054922423793170324696510801738542968229176594299904630065569750497329634812425423287402134988562981987427658028762614770275745399472150899218214581091065065768639406031331938518214342650591534943903986740145622134535507446429823608620720372398416789988206951550377264270344188110334156264099928280803146516094002378083321335347637485469405296783183812903869095924246640394664795151606814067216546227775285733588038313120340932178957399418068630513034753260792023897183685473608709499869938450079159345622734437480999670533429043088502051530033463569931471306341007020839312622195701879345143776344071997394116134748960711132339028601242338006427628740315356722098741549672145556340588218958292150711668144321463745734704611355263306875205635393197525725708577021413170253451314818789324829944104652979116817843043223645780774285858952470562038961666514946324109824709940818961639173244523175220026128028933418364347737379848429703677004853220998076344019887199703403046853367778511150891244307273537073769768154724920974763782009414843067881784116064957570826170899275084226989371721538839573407017319375426674480395255575991917251707853848852414985443874256132118320329213885152524931419678092024245271118152511470885195442618907114639960175057806384331064634825767996750264793438682611280727609086648522031548859474105972073386532938544625962946877722426696756449780561049765143156195883219912026414486401740949549942438182519766151886141536010644963752806091012631842641061948648186516881111097718356434188191422857989826160550375366793092131744161079580676328695827418129369890247297805872885145950736741944272491730154549668476558760852502521799871485073561588165395171443954034572606404030487746548331117727677365528380053169581592210701127142477210479753574441469907512031125865213521087734488227992159813959232355479895177825859026993813291690975819234671880601384420222695027008412580739955446179253992357099581644788741091039366681311752226701387675438135958714849868349862281001191307700333950578200134074595747345065714876621507895889913189330360610597213287280469140006165910634895463749491287057628013046268266951908485333179622352470523317644515877886614359993250472611228557628320087043340596842196789720828189324784233480659688366946104270801644215453407039331931894152048070016284921146359736526389268169042952048417801880323980707320131798450747097252085736385133843900979143827926066543995095654213369999504729956199032087609506170548660320508482437603163650772712625888888558037624946368213958262777338766654881288583648903781056037865367059746696151830689178098026420783951454952864711240596136059396631115608439853827341423427370878049591061412514410192760166404977911945133504244756478083313237472788935687535208935318913393804096559635447063962847472051157317428161093992910630116246228633182355260642234522138540699236358451435445934011376796740641783384399448336718357234616021398731739963333397605898707387312904000515564980841189801359931518526347590428494494303774620049458778674780226953695884884825810548670691162567707686242553713037363436076114750091290403348030857606291172394571860969564357878409734302200217309486142524309185936618428892728837191928081595958071482083288202839892903958111632422216332112387209577864634647216328351754943185826972264655466213421369699733195370700610972816677917114787524257356648312788115641684653633597677789315146870429734571232828192511755080416109520592182896210819663910920273868265462433420914281849544133381885731885472470138175659178539801242709581384976732675253219501667189620555654739184580061249255228263655641359313446114655946171975815341986216417927648248693503512236720873394572008412104003625652193352296790478096874352050035135694470654798470608185590645839022794265687941175225974409362259278366999124791394376234137594898286327086285198962126103831466211897585694475865280907132092537168415513064202505560556027427191337704790620630270971245422450028899683670951414179080118057129982030612770304481581086687688550451975706936716086804068937149497565665291766895578289835124797229865521854725145198318588140271047532275744058179255749843425326250804841654492806710770022889199152555124113783207259894583907877430778667382711338490172124995434391797349995125951105540485827327772602781994153511915948515956188978133750963312240786196495324652384040778032120521374451134649960383766954643777761673703007857933159730781647349892694045259287632598889612745736968647064563523213251318391604971475857048410675558000404223119987664518026079997853938873725560868567309951392531714802518965122965023520854623041284247674681012545308905913160847368135889483430589784069598119378517803560444779337611062441144076888165068318376909144318444461115367069884322751528733134272462428515795831766413958021698031604001262420044349345397923842600599937550617564910441527334227912529581702879381234558531637398307724765325831369787974918145868066788820369772398660542049054237829160895522557471850916405282020676253870746291286196583143869708644619160188787702232760333163027076886669327218705074596093367089130301280163859547805008471917701907481666126556818086238168807055155801760928434949366693083483306750139990528116875757019690004208281951042135803483056978057186567756767373087659275703929035107878180763460556689767490052160764531231466564555698062786014840984339872952138557662649220668132767028072514193585767177827797601782952384622040610779509601691862580934754983983346529764194297811066732265507801397574607806513943898418223498782110221953943521448859602604286781493061981285406297398456855195614029520433468131221664213719974505989173930622197438174764946148070206626009971609996249777827772328516711403001686014367190175956139188241777851445776311565766244901515407486913487096520302644497561024097144994156996831686773966585065259733512449660678353122461275051036827196749954843738373460545826117628514283730275573669415974188094250072489367269943403332187589020181768318406810459457917155711706451109807887911122102784817543417824682350305001329778302102693234840270255467660733786795308021569068581596908002304897903610752025730356881511563344685495741679017851162255993676285015856042585131292797969286267190230494923497376947686795736633335347492202036071072324867717039102034464402099619671893380898293142829890084018066571215431303031225046412847873686035172240483157552713042077564063492552375217422569894964803260975174040158497281623582567590283381202959396203177751649384489525480496767344597669161246839025563289937108813011790368518555060969147410987653454704537939922636268791637974997229276908945806661055073944864608834541479837308225613490855296796925784137703584327757979983852333841250794253231349749837461119895701347120980195748058201016751327563226076827946938624617247664674543975460329281608059452411705602393481334615228093195707453649907522285009449788628718851598134936153374168750574222047166498870400076387203009873532755851552337362118314876040486256247013858290240550776497543688232442968884163375787856227607357943974680065910583540114851341664124290384737182247275555652382945141388412128702256678522485454795835347407417959636443254609427527674038866315560076875625170685816988071776222046600677843762820863489098350841685338461659741324696469964181251323350062570010818572802601959182167849973589250263531331966241660521707271872768258393348367795100655662230149603287283053530895131636017727928614464500670478655830219543624210835977322517941348180220267057218232903350317800241962000559412748861031823472428276856283330245015063935084742732685655194150909841399287730472212609434703133095610654452205110917210206535432901764351988348142195632598141887483031080505006152077601858935485071636393702897364490561107773427554121802695682313345318898829495864540959879197820064457962084086932016706303390074889936826471333440342414577974859603355755383971762470469476431612872698808044264875847684322372779823957891845162377580964130023332776462167244940952864468517169418524552150324044813667091518945945778002057746764169995737148248052225241176909338667470586448087357848356486507228586893743100267877575606633522688711806820379771276787965068899867543093171835816562741884442232980833909566173784339542171572892481025039732368622061740116830630487014965098547800023895656020467264165214570403775484049245101691996244387833698253674217168501650943140867894554968068454421271762370263350596313786406837675574403152098962461816568368665824927216962602900700315752661070751825798575355910928342812794027490467488730391688373226789831875556835085571682769602935369783678423389149303942956039188096060417510980278544642792495994558017836018021515482128289086165069959732352757058693232058977333853808398763436233265675086463798042702949227675007528722583821838372479240189309928826484426637734048221851194379828985081065830008243610493167069379148704908171454808862344105550633166551683817412935048178967232782832691518574300914944502310251889111386114040957037199546647379526741826869953887927145757697441975449171790154205888679963667285785980120062741448798288824424087623824043338650219748290225356964523067008827520182740096680412290647365361409220014622820221795703020443249553255483335358155197460854872710274970182814074634816926136339548866823734495276275724052444241393824892327140180134149945712860231779861373082804157439383861299352204620423915817542004771294552960202067120926078516838796004239608493666847740713278145290691522687819300862832070463038622425093861308908043397774366005880032044967725414170422750761737523749652167186137219801756661390451429196917232965587332138822394423913573585638701031350216172837365060468149385256188458596750049109436660215684924588384644486160894058394213898211804130315161776751731098872172165264427156836192488254951906801894417919416050583566576925784931496796570001794619235037914829767519585446403515136309728727420223701817276572735038108463039813204508674231782196821433692318655403535087601703882331138524783001821645804542704656397549770613290607647102785528495128377644576821104193179118290657454129372349113710915611860877001805695185961317441203885328720095260843439384177891737292369843332711502773213613032260883176460491411341737994389241055111415413398724520625702149096840208196204909159359663206022458986444596487812709446134683337452662553321880906620819123551259976052183708181656968567391462609313553653295059685845543812048171173510695549088690653347617152157135608131422631421462468116520381258961457325413882306433798670099349776290907432037840663626151407935412165873362863651267938035960856761175187580026784119713387184199793033860847587864595372825596979532012099358081022252778891074392276803977097766220822441231229877807584335593806531768685486177785331102157947651908008725093391288276032295600102446664831529799796680500755839712000063568279884220109950326986505948716676882633623667130315436355676289447636297691839146956480093192581507207756160804442589509545738067621030613911698094779987251196262260254535132220959562558803645312316280949499918154427582967791062196173516200953887297369450783088105808665067546158839373407242323873598349990232097571310836969971206529544216791170936935257845553255988138781975298843594427481235098461626987065017354256948169538820365747785374214667705407847658585136575477088019165477401582287207873507813029929470500597304171346108805724618897668604531112922052874310884997745565955008053250772451257526622756725963538429711663838847086874072156694170782014647997949027639529257989825623806739027982079570163821744786090709350060478703972497026821869071095730464315149033616800771404277177857340229383206096374591215065419058414823834324411193171897164268618501075262714965837438087308838202394900120119323152782225046436619381785062373412252001744304166453017745875144439914776906162606857610507387392696947915754315143720848679318698924521862375634662370696317223111966120485157760743313743522770163000155303834112640004439740432462650016924350735638996418485477787791120633916839386588738597744149649562384205102394086070036545727359033282438985270453256497869658529001526284046199676070294697282173839534456113658870093311290298615441052740832295195936935617957868643733433518345388129114460076517211217963329080090638301388362897245732280364103261671438392191780438171665686273049920293056998964661994998728225651424291024856752427690547689053394771314477141735819112405660536192146027598381402940403530085373412096446068187298407673744584519634263501561830518774968006296575380990493906014377683173907978117216500502755715590089737966759605767891670126700121931204307810606916742783451735253188644654547652191689878993424724802246320224934966637615257715675348193635068811811914869233264205650597924600581723587026871422340291455178951425236349460307406198540955871295235358017144753702989343104037401413243862381640505260688308608662410844893921506570191941869898720313498216137989290734748735256783947333370676422445725993015373122495965585623297998357884715546785761509979167730268125998729913295183480496100322640560286941091710032282910169034974561187847901819690154397912110846139571910662964993545794669230280916887028440256926429469766273251428024206398699154850358946638375456225419621772391970423381423864338690685536463975859263269542940043345015724206967920375308589924816693686225584769777925791949881515331068023379154591646907621402064511685405187230415625501451536352105840055780004395427537279311103068086249671293289247829194773264568876414372935401072958343057004120374500507254497463305566013246569526298714029392110115192787827052224136085772994685099733069123342572468177952997530205597410017535502284612536854125304322769541250386516386800312727806383328650813304140031325201934876726429927048079291106571025717237484938783541911928226501327023144804134746337793787408866629737706695686832839065280717992180797409414780781028821216285362954093804753150852652932057123164051492825827238194842772960867577289052170846352258147455690318035445887062405251915179962225578347362011207740799752673899179866357757553623858864255442679274097418395582840593731605535927899016776664787050640066567035049779997289822046538772504118754967451520383226891010418684488720755101275739747093804055604470444990407012534395355516777285280265756396126338353919434978214196678935470940979415608022452493377140377553019197461535384662399703323057649104614547603303699354358412836542023999811796241038498084487368635959282954592641370578242928634718511568028935862813871980314390506052764260085306674772765900554971313697072877269420353697325451856128021630201278871699664156671030621469147076961354482659960993107807546274392169503930286943143115256965954147507920940461590538538251166603549905438792744647571969660352054160676553671061079441853515171309551005314612840896601910935784410879654114209201037171692014160164231034188203420746015947815291991144779594523671618199879915611764712925224841677010660421803363557113276297122963315693754394092167821747023727292617125284730296147557622713805405930730750699840872029098671851932728397580915308175517391553934312517639779874474889696718784815245635055155947594715094067644433241159594714581127858750129488573195259632543347386796883516289123500715248508651881011403946423805735313007655160081299649660098955462579029682207563454091809943956746188941322155800405927036649802655164704196845348698668512216509839282771493754187030004110023146550594390602447422925879269687958235427989786958922916515211626863632287261948468196693032646570847629051628362930994276862550701023662342059601454828764954570362564692352323631942738833003517219769623056160724846769556966234486086386809217110652420274602823926217739344999535708672454137024750914704185115670171698397441234583081524657208421090297290633744572354908448930020568949338827149201869464572624185957275351635144097167191982642426067955346601862545972884513449343489583410275080646755109829498165014288655034579780031435516193754333283386093827493097052007037172586777205867527618962080596903938869197934623712915537945096933584678726818625301908573910986152152290989837272820559238724187651488707895619391702695331287155029278907147176498657934667092217475645743940823323866730614924319072934933729184880053260097710821122166550713089417028512738115356626712683156052185197916447175751749512127458678129920158439437334656311697789119282295874669454808373822491334967336263305409096044014702838202811885066795129469653132772463560113666987464033345734644807663610783162126216063382280567112065355638404083069418454547328837092934254748618979462623968767815652869925463033469566613690309316956539722446403766920851988821828614721247737212027925520371548513236654921764424529460287328004574596294485674011869546175680507778738633468270971768844034314017505508530647420394128058726701314083281946073024543918379918785364108734562878053470463014029598351150088319189139961477848300269722028537613301297565359583557730831043784838694936728484359643967503551385177428746915522766090141162321893821172991932515476856898634654334225636126089709598488340595236904766349369867442922079375996278027714067348055716942566297826273646280916195154728111200260485733607836257309173048197947322227510464897726075023141922300424092352530930515115954434126222654446592324440925635807285424124772404728776507184806326301043284777444505596946444048823589578942681405604622107676531721042745287458047521012652118674614467204883238289625411226321983295912899215196419512706016337852191889500189748609998056964328811263248129049005922941926273661919476173550430608914774549445048846355463996488436162145408802044243513432911615711262329696513604936767466742884581589478536116532812441878238462631564616949215660025375583588643211258045687261102319096172302809252772512492081778620927728300534666155840129329215668761134391674159000968962136021203750673341229063043906460444138943561182921421782623500419583711495446869275394715503246733209055772969702379556051695799886535233968324185304128893239768305745158043595582480726227630736072559014608363925792501899508725950907658179663837578965281191380883600011387481670330688207785270592754139543996819283304461094925663906758921100080899323105836138577068333996198912464294765640666109395468315458419465567629848455487858609858602459292400055758045778309365258185867363974529115234536768990538073370936858248734141781608335330857998367723908940963632222291662041429401305970857712273596452025253943698516559941789810976023085069680501244580066734310653611570452844112426741453992038769081553838761189469539970292525804258357073941089098637750728265256870977573970724521499566430617266551184269413276116922295304787089227672897683009976910451604882748330721591848918664048509153785017354680383454559084479086022142458366568725944782464670391949520803390553568363592603242838068558118848600115456936570948067456017950330139232106179403489022866327450684540218830488991160696052108147591859458367409422448227411512079076733168021300957464904429542288588520243895538532803532347238749819517262328774311679572868957774539163528551457018580394284680583744071359662990014833873894344084454144823827473140920839007607645223929592760438362556917798493399745572450064867012469638659683996688497050214278815658341099217726572453033621892394541397278355685912122776011542413794832811073742446365280425084316059268903351032110188556835469915074428259658283733082792438791250115654483432140399826539284444154862024142855004183657568278199081459583687548752206145424412887083677151023737417616631461273382391028281167650073243081762641440484799363639366408914251646455376251789643610109599825250225002688397533500708268689173606773997844420977316184691850532629469928474912557922816075327508296665559953799544822595123923230198736061865939795587172269796320148411545635050583073668319160924270672508734738030617588770842622241852150661546374711442411915615058570654997533857824963592603574069865390700052116979439441482091568131115834001909309153585866380928872705982831645996326875450741169628290835053043518196642116970737073481371600457670408692550167478440159921022384786626708072004643616548523602882502081567444026135623480143810524601600639017601808902274242579637408240212697656885880375845720785105484198099674210423902862916670024590499920547925967367661232702590710157049031878265913511879167788853390669811012497843362121446122427710773462867073489918434644974849234003374262792563017013708623148108102643891535340769570279561437707564034126854229068217525385920907202381809083245245074001172778686511697201572275252120504639964386017519110868422019384660776974519911331998482084083710173371149487101094436895905872627971951704265338953729433004463028973464482501979658478767207177479025609618272534489831784815432233173947968132517175653873012218034316452541901899436539003922354849877380138479341175145148147584681881979357878370622754952147515681864564178339002482893712160966611174000463121003236653028050689122040534161858098797978951493363207514879629161368286585244752479627765452620777611202644399805122400537842512087506949578839060435262466463845842567433559104466360133520182624628472845624832422205944944560337881441380956718437895705257882932575514760651211485136579439365154085656558555144294990790190537754664364224425415060289446542763591037551814670762719959028246054917788619612760755123276890312881560820015132634406047737847057118320075412250591394042750542769881964124573524548317893332759520534230319538518245087227963493137108096179269363422625077219944894447700896984749574344341524294545103208266893710820037321470415360076239385093702755090499632828712966901749358180666066462945669010984571197875366152642403592523793650561686817503124980259752342304507383876561527785281392740631839678076980319757662235417822638828158297812645265860323525049323065601390540360602035442012079766323636463843984934240571989009134298680023733049795897014234581821286915192457721843127960405256572308225066036849307756522952388242200700035857855118759521187363335561457618017265012504372893630431505993328074064632230112884953005640243154044511430097456355449919004684899062196252456733035283758421997072016177509964533229593513416134616524582160646789627403735212597456743797456975436975782237197508592549432020192963303078487041669635271059283351624275433310070882418918404931130194340252844386550794292352388370073518321013186160582108883191744304868604407219764182729736175557883932863767756646909804192292719480665387295408650280456619431408269710416518800689022972856694231805891197028385224002386993429648434238929643630746957901256092018383607407339778682274904557975425014268772759917634240775287398426335919406148322043585551309091771818678650023365321749424540834017300527567242545113500677791893495333747567854447135182914125929247269601849236027631618895633091554214760968983049955111504994674422590163860470624684872010031670465073349648126813280187810472271363420461359212990584174981597434744073589095107799633798828273717797099177158424137206056430274794353666583055542902066588973558840510106754882289761704703935871353011665560135870428256838148886571608377086376184867008756653281337726344938169833877734633823285986440023763417922214795970635569670942235013408856710397328099403661441636911669936974854469686936615581174294027817507277057790394591550832891214060016425740280834077756522510284126504024096753906420890027893281699667411798128190274637545787379030389301257570548487809974419865529194816823272722133548670328837374722403645727286933035687430103001420559580627555264225423116728177764920273875438912145017283931386870059718047496007613547444599893632674571625079078455853883260526612905045623621398575556182351270657154656707738699696201451489208164590137738392109364483666551706740452022196927322187077721550078328798798492813379079242637773049555066341509587068102245793114929060349658695918309394538624492395678796320140252485079503170979761934294545582748433879948424776168217528738508464265197024268090911284711569425870445542394940849416206432615394125943726649696626898580700268508209553158287112030094468376384790395766235525047175094734506398766789240130578591944101372827431785990604121334214804195216564620438987414185014983611931836497166486813456620376128462247135090522541973525892621573458418182786044273367770793816523057825383350166101376292789738485307069223813340842028785775394334211633747621873291331500717795094601726721161396177003951540960113636653983796671364256718631815672509746072257001057905493593063641222627869070849863712751080502069260851060012339943915275180301009130034513203747705590551739230721518766558299714707061508742429442188817137096231455484141180962937966074964794151420785535682544816929068172251360396933818482875465675240399702432293273143357350033723256437337525674573665675986763803992438402236583481659359721065763380378965740582881566462948983694439844714931755623343743122981253397302579192058144067721589099029788977188620846303325747178692350856618002576254278600670924183661617762040130587322814662552137270381986540115651490440305104866743239169844635336164489320303017022512696315383320385124226288280010264609591029365431422852486686015783161713481071286715586166266303297540339268217796018702966760286425225595692278725133771420332565652899616608861265072269295749048961934687444343807723570056069569330856058732510003300014822272087823677107497574255898909935099832606915031567357923741686886641848732385960445627570547783812611451647094889098888393413034343521923437607399062253806219232837878436218889389770164864483890857509285101540314723164702003169397873038002252182700673274031363288480151139180688975857969809231023315081867034684025692557771858103184553392380433559935413658009588179542735510037942294225038667075442869131521052732513873827558646001323172497336200584062211595471174399079616616982408020038702584214706696613643632398003518029188918107354884790532103843799686002065998295922188780587242902024735447917893015095212472843175994542362188482425012315730229194581623571579281542819835142029369090894778241135248224114079692848157286812384230192710332408025640221495942329126440998471655230492100121150901951620647926720753712739416514928844977031131470862944460083839507039808082694745261289130416972531129916800231124454439430204286973216478142969371650630054266005916654370002009701533831364731402476122806647510429213854994782110970651288613966455041353353130851748351905645973738177803874940089698578067893112660486243678723253714519247733541562452108885759619295951151660883164627941432896474289978779117082529594594361075192569538879682242393366009195226451704376888322083966047787472325078605011735137906622076360353450396764293749689781325365900553432904461079567669074695306568839617657149263645506787398698974938784979248560472113658130931933740547933637555195218538938842436285992034848770052743720503447177162513592958769039607489132726991636703588096457092935728257387278688161213291585949576404800505500242253733862411105669001664896764161668697946191685407052337575743493207860153412702909975027720198217164702501039975520953916547839424588357939879923917156356785055189012555727006381248388658447473820526185769239236668285471312632257626536236208491735881035514509710606989894916398975852458686242144608063033350770223940915743688518795241294438919161497831321735551903198313544765268629405805285800257474403783376363620432492305606831626499860329727957047819669874718109328541923100256473133887714303189401105814904581217787202458033607401485701455385091075679767797087523772161442829980581287666500643883449193840598807796238780223905401951632758730824188352789742164035672904231007299145114910753699871560783205337947837235907937772258747359467613137688340225029473756807732546322367502369607566904667897013947429552916675887669231991711818845328861912841256726839725505749375522776482478703306142459836776955238982175226294142767462171776613320191386736286016694077805672263313339635346400961067069237102991066096175867736531602714114899472543643640404884064737158516948143472083028270077760262102091436531904940472778997259468173617119421335496884539576950398074471703221980961521531172159484250655167025924068743113383913705012039894385081543635471564421566882261644885273948014846676621759361205312071937775849358828917532577007780286705922063489620158972971139124675295124705982812280857539206732588118651340572188636575466503433309983108508073700248502998864062649954505079640922749028813674296165183478960085034586634689332724182669153198883806719535701643136015658300031646852858315407030349261325541383211039481510363330260928204959554740900974243978393676014564093969269332163917247693386480754647711298974792238907446840639903660940847797432889773427301568764798369777279670519815090117090587189931125926145224313097090393621799066663677455985006622001940225991126959090850942325221423986222490019239031152355644525840074332730275430427915651094984994745304894643778696808861854688529086912785832779923389176147241434368242169867021963742732380710534951169388883782097566704129762920121358196271653200285372950576862985766238142801630279894076097123044954406363178274089552631816530082619186746368567742583080234747110647690398044178385201626507729014792239273924896679233375857079280946169222947003537531619674840485592131508063764075910554420837061477437513460544156624797050813526966376592980404069079536678821697425179754863476060653514205012761380078128710925301896301238719290145427523777182138450982750686952658491151480316014422538084645987173896828597869118170242131115039964883079358617602424839301235525649687789296243929216411963459541019463393442170147439231400413747205956393963206624220315905541161259540473612802292522898194837589656477351443081137581690021737144346958865914038930593488641777128716099846064019357171300963249330580814291208361318409381265757146733728803722539862902193720646650675671828041586214836089918445981181198322484778414058179837814901526832325016845529044180863143353006478084881531793189630769651988149249006628492914486628487862717349031538059726724244283912495050913704779813868987135714044144850115650937569485628618840114227824944458985141961620159138589780698968259456226562463530444295692179156446320876609797329657269791702804704699506036786555671766195108881060659107212283310260180212646318784127273274555344674338326771333994811594607189577475990583042738511042188138194600925699412039768864820256627614665175109886240453708996243918106233608799754839174617884991137508410817351065552948557192460199694661159026596212814789489001986036668334900243307141967593561099289646987281590345362875215566770801397948859607567199128836214643787871658794583267040264217474062676759965574057244418493494845854017963328696774484936441677770784946311803551942745140164277223429584657437869753442552966192899086864333435841265685866543888864385142471177374112488681678195844425466055345761638345404207302613148579527306920312074338832221050428440110727357296344270323066098367333275271981174950596733284137730620418537525504924045816348656069105141129943274700954773881060855059562020740412304292274743550995669021523697051472323995458351121670969427850789806417679720520518152047269824260034543283649403879714246314280301326510171174515949533366418367967773591673977292002080331003806842248139252542204549911525799490405058446417276250752455708054746672799281650129500960618132768079876624907575991946293624661151420457892284516761871387222010652028587110872214276810505089102947847368604279482042094652351452815626966266364403749646683183916698638999423154239494968493146833408408351804325817842855004429633493340985482932536249332536063893662006487012592030613770210687925707516489794257386779451102586161905283440461866088256856424584031234291734584305265952781039045421290250638821228199780056440137736431322432752107853833414153146146918956107480298819368917874494271578163159295916647696072252845068460794515513150177258076607186634232483070871504457556965463087689824930369298985987000992780959216564729866298051460399009940427950704758424452641406515311754291997242030291585644803445277194138030832846741598201678964522417958706415907762319654903677455205526641862155224525589019334181884419778178879677568658628361187543917444247153058653486486814588313207547391368177968273713927421599049057344446034154113215243373168902760715314410337579449448904979186370915031435281549539319381889916457106309619991722503711166556309004951215715145102955549480961878615689456735547162861458392553152661941387830383210368675387148926821582284040539437041208014348364722214134677544738791431337361089920795284612112581884000655436003026510447088397494824839115483639863985122507164006697437096232216935881311698452465989380790024112559079451756190942464886970814435821101040507174971764437580291709388939725907230376152212084711572715203336981448156103783729515198843302819445066292118063904801887651486134638914936604021403544159290520346202775740916212013159124265464785968158900829529831920240136704095322414981370731198946217643196314999976061430619704257506022454510051397101878592235772386437171186988207893329738095928751828356019315018620519347321270977737715994468264771135702440805990820874010382280169710786378721626418564125292073176653458916299869156237813484467045972456748438226522776660160598298195603533111079991419740141334201942002540623481175787167665042483581183946417810112149003455343732699944088339053807922167520006337412550238047730080145811085215798965002262724904774291107034425328865707599267656620548659570230876456574158067655233380209246642972599522981612580244624539981847855001892642944148753650844173563443883811610959954784499448393820786421640203803147190966876219329006701899203898001792604956161652062490914058658921460447750681544291573651109449590458723706084647011469406720765613739145966452704361544173352019826508473753193762300951420864103676492723791086953094302846224581347098289694387525578367519928576903940927001277476173662757266969590842165332574600068266841789848978187401753093631198214136051232481481291678620865149669303261590466969004659639477598252823275247145308013098891618904308786835119216195644497372618259006400136380960712101061834575493694239911233788176227832548586315741078947510153434872621494522985550499416151347141142225231249833332062319027922582038500916499300564371643815925146379282073166336223823231754729863088069267303022787395405790198290372878526814647459056482155079075180566984498715149345563184765229637895338845836194868235139318519612379847038431015776788311365740145804726661560221315078144320769227052155827842440263261364338381064891959528298471929965352000755789265311281467237247065640373559553143499143148367646529600161302351767789130251044587782402397161572908810684417816445856154551087501183576223458419033101277964594099539131070167510059529541331149227762421977967460320810880366704547074284401489851185706110268342293960534261266909123803283492764259916237445353679799016522266929881159929572014651067356193399446958947482875547232342267645552739128865454612187195550226209658950175688954612573720720035076071497295888982641670433949536873378207778094197887075844276651387009261241499776369843361088576470880677907616982566163072810889150313665795337972660560725017819975378099897277630299446069735182861192624682067711758245757895728704497724906364725087717209620461456311100385195055290738505479522334866708588891583424503005835936222870167568139659666495799389981014852926374395302436478557982198729961620780829618881321443974065673584131670556023435104418565924918501054210008927611725096697979895558891907251625099057582059025454517790234669742118038003012084776135184799447578961752007045954147273179787593106945282514917594051286557621341826324471126124591723276373220312298602360462458460618679542300283190933598860606061284375482708507184544010886540147232888174096657830449916278829326131010799426551363306790625949870366770896153220726320290850826973553776956491466387875832132890699808062115418735286199611905427582385900854449553689936496473737753308052789339129105952634891060055403024851217196016759462275039298012898925782444182495754492710285974061271616254270331006707654275259021089993374806614820750924794172332037362002692427914493941105376322706461121102080283927248574684121782495659850539271001649742709598858846933472041043552216669415410860166186734119938856962665229424229260884135612593516384725384929877583098112490674099404837881678910602740807455695766235539181942468884445804585403148250196559810701423365333450658863111907162510898585282815428738623939009726973456243058222258254673547171931188149468902577939816470397027140956446594835887636835267222804280630782223217578189968329585114382564338966066291555061374008357838144918826281283447203912642083951537375787950288213118688662622820106247467635943676236851986768417519572702821537319040731512649448498175737651058133873966381976752907600377268430400337111137399754781995415732105197291544188080589902091653639132564407542361268853654188118917583425033358639004489274895663577459686223498443616290064313707417887294545804878463860150421888604164281248385766917057921831900162602706636266842159423324611013679800777644672813698380017360078517146724824199244539437044142181981024114216943134825249947266536910412965042523571156418276201300915309383939179216954068564959754914778242865659706741721363335686044035241266068097427239827554806902668092206401689950604313953824947445804938082330742623783451144095563918339478963447991299490525254970419426600600734388271148543599787277541284165357617420936051290750149987377329787380705176194401026996443217077313793957695885042297118660092660479406456766105767572850079174994110244582761323869187280841390251740087103620266059130315502552890469828813190657031852171844552616305364257980288636617845754349608950221514695583124273581321289250198000117602963535719548259895203304979551929771383913659892483195963297891743017749738462529589831782190101736148129421693578510955957971771983988986130628210890680811639373587049580763806561096708834328387315126912805773820845265639554632447788534293977247268862533220037458262442098786849697097795691168331418568828350578760352689088093096658974329792915814623599918341323199652497467581593229308896140872098858659665493196371700367085163578196156105380538023423510047374922468922623097937974444493570154870832167026323969776597403486923137467307894383856038920849746318177067405265626820118428477443619659168542079671760299369544138451065832641684213062498118151744968087468632976558891300681597194480684813080264790372107196567798276325321884288091645360222731052525311413786182183510165610000873017967428817653635258396300217552574517811563972584750962463878160915655958085292963075986902715324012211946123903071185086155517712871100527908796324994137933355199630320580208402947122328250247277754797849343725008162648233317540462645256580476294436263236178203680120665924037010090596997121308861780038407331205616170527950826563383078818243571904846361200211394593440278571338536532174551930822107437812579602213037812702652579675119347060246580246710877482063721269571551038316365734676718442115724038326645053905100638901529695940464971057178694849360864330379074408337440919210955276655084847852217049127085690937243323528872206747424402475687384328231925881924062498484717851450387491421773427048845883287238067881219983088732812400701692374489871668690711755251428733353479249423979799614937370478584619035126685248209982995808738142219198629815402860094716347816023536739581173035147529025987009259140532514745371890600417908442762997576546561028735388785985574884726545784600494413570870704834315878921290043547047141645443841583738211399052772989988629025399991224761320357023429360374796348044732023984402278701393066386817947199257470615993646952574828475830749971065481196881010194380016430838840913537675169908743316890458933059661500541790107043261015723207361150143187249818784085300886992488586783942249585750200882348377538210766893335820502470265050395728624672317314413903908940582457468557296362312616028071395407931155104858919819514610920411301922318294320377478889757811454716885660239426219104370328287941044040186949995924335761391030951762539824145977085971273720279046763806967154694666971735958814912126590475442591074030012027923589337990633998774749224794522462720965729055554043517874934018350472144328217971537389442215634246763292505898447275940723073524964584301230713025361623477226884306373801746226171205046747804134937761833091668142971256400733222317346547775744414502508368756378098464893403550416131146540887261324505248230424603978715663651328478684396379412957314150314395472701176803221906009495584275687401727123845573216872876399501090905066185030632690574019455471855301105378343376318548498269223605157714825051544251559708341583101439190796717845851586086865598522090818331493148180805536955462425438738034425636155242114609819493041633449221015819277834179837304868553563637752562668669020253262823292224872423102577074540358625310192512513636413206398978790398672387831413558104830325568528608524150617514762567391513447748938891723409828037378673379569678368082196053880824538684565520278717507575890926894198510494740882663572555629279592265860533567949897786814155282433732740266391257186046904156895210889000053660580528006527138795231188224379614740918297411076912599561342760532565864428869633454474587705239714977075466861881466281493983923815241700088608354984888740750537290936197426547302997650836876516128270823902398523732110679266942052305222414117538197053977125722068128054451792050154481301838935953547659914998358531768121960215234831541119627919540083317823144803088653680407315924524428376872931072029633189966915674224201273344045178215655029501536212559894885129100671812576382161070810351497395360934106552754534048004492148128176068006311927427065927305856402201483914005010433122153424513414990024029679181225702607619838914454151316134134647748714795308326717736703537339262537592550516856329568057038876676066981021440528096718915355749171728847592312229039889891299294861856140654597993835624270165421776341539326501720349687134586266824939827223204236782697303685986533845480519070197570396176796447939127441814884272376410343890562180349572998394915441570170139324481179406155614282589880404130899450926574115596464157427829503680476134704761776297818515994000699860487517728064754575899427018833762874835880719184456708017925619007354041353821262916734159472863654987933032593526235555865605754127975890360455239246174971754835112683388509082614178292862758634969162978823460465639500465833301388944360330773726842187107376130690328861111552548629192788966336833833048209305091021904139638246908005696361614129044549275695049123936241278861385036411115779931855332403909054398646303981566042290383949250960815409980519473133864579842947735903147600940199501898937829325681831170310336639164611520834633359491820555022589201521114849165549988442810670530998640539065028325534487668643947691999782781545380252060201958365769055426243003527038812417782613209859062629736605913190812683221491373290694322838824725720032107762099435621498364651553841074064517193061067922241891885295732629666782997766861111852789273293269705943957460401864480746401041761947079891316214337908881009579952969613375823180476142022865791218156376165907626326969516389267377453661916374651436728594504469070119789759802794017853391934196369878862810356114839596042312410797143423808469102693667388526889238833808081487617837261223540183194939744903430960160892174449572280545261847802144771361487359981083166415943983871060493016491960871577118856508834277313625562803223477897016474045158903282226449304103632241778513178462994818066787380688021542854148720445531319001643141146691639593254722940454389933361216407112817357452468761342446058926333689423896498012106315001150571926894168369956096551643490173310437294605321799577193627126745004239257868386317030293526947845419945967705966010991657946129321768799534597575367939222461337394633871318914617630638224972034305880486996062601288093577298888805512742333968629618874297840003009405625176717983564104613007177012966825481084028065818226171199309502544486478783247844092094764785772605827837216487361997859356262447135147295358355200251047644945939328072887640495191825920846595557840747759304614870317770661541964039463166724697632983329420586207108035087448961099839909819285131528586924932988162651288298627233178599105506715348517133457348091456610988822845622063717665821022425918898799853610219083917187811559861466449903896471009227103918980354478603519022126164872605622087787963178708920461050815631573324526367270296300130603744611520097222517254865109469551867777303043259983825969842956693052584905605403005441579726750976475561907126784006602953145041428062420632025217045421271333954021306953990115132634369195314261532898713153296029275153433964612968487612826746910159642598119395713130467717295481246926428925647869186575170922443077175167570263669706328825255287381208041574706670598057968435247873997997405507655091346221507775876686534742205199910319147388674877363669296412306521740927831726961289512073535010092945252617055259245880092143158837633349757946647963321850124915034190969385291253796233746843795539391387932510384612275400135408276745671253777680867696640413148003670965859838826585791529892348005522514460687420429001172346571387189987940213647448420214221914204939127734387759977151772123329732830265970348775910026039055400404238738431082987618385709056395074427458518007148095901075523273175666440713801204403601522564780696220392282135661953332796707326333269816057383740715059700363797635556766215217904623416804899012085095506238871067293862446907156014853493832955141798131694358726799398717064517506612283450241991746858494292457719982950297977429603935741029978712101488032311516076399009053424153823856452030689124207070574924071576734613009925930010933632546212389699168425925096056247397295362876306719260736372298235049794856170953355831701362722206488497461535266990530337244898596059260184364598637711766323591974943063308139576263965668487837822913326220374641318537456894332227266023297579282691519952106187554141700183129688548974971265481011206311399259346952698288451021429900391319289865562586226187254862176232824839311146816631440767903798064063723006717664635096418159784927335547789908468800676312045931288625211850944268714783223312229337118914749672272854990200894522116844535448767915431039592047411331803522460697141261991042322981850177484419723254643562609342977017532933291021053693781614893076332470921548856431745597883050698241198115961291573594004596946746014002407392516003860466151710246512485571385342836111283082433417737132454611900155843794705713707757642372647986957146845789693322996138670066392108886435962731249779433130262957510225643494800009254439809707383021785969988369273063249000234772020833614546998719473803659486452263180881956712665323924142437998648923051191309996156923912266300145950349296090209004202223116794588997773621994585837403421753860203253961998695236795303472535188970759554397734106275409799885215377121621913808924420095690887400210486268613253228262031882077230697967663386754595375363238205536261491148215262599993571900481930851643696168291772542479038013582642102344292247476761350990914457684903142763668362213283609370543164678067514149235413657993698297032421284911478750709245806057822090254046152955532401010222486635429297475500751106181007976717293477734092572741217130490968007718729636487598500594397293242893000021987971645526569008462712906540896528697690562870786460630372504531918548057008309654835765343277138787057220973745216970418199217593918448683340351696773595648434965737593340988310230699490700182546821879197195775913646990334225861823363434184764460488796192296005916862960908385636775504949751807575773140121369547683421881245153106738534123690219955585762117695281006989153733464611632145616487938155965577524069288117322392151882118661225117261395468652396649199277332076815468418476765864835735127376194266992294260237316215144557987485893356293892034119237723880040881932298985228180386653372350599773604409018795642358848896929809766800115380386859737743046734892489359441864697095835118247252122583956387959805510386506413046538933000442573565017551884291486832532020017410881903944237554256655105038841804032373889429328256490584746345195226887144002778401930924612399942890069719584975460397965344910187780018563701251541090396667487669758318740010815180454597648878325977809834024265397905950918976053303019261914969074417256952878638534499257324528168170135889947007694326719720821346426463203855667383760611002134796825679550806317329109167498760705755540504124792258091340556294629486359459364576254373761090617606241898093824864565862009953308909386973344325490628062377378994318345675873260084254931900098147231694114894922228135910916816038137363829672604012852516062921944661868294748003206613348959899198832675945462467822530351474860125212532072374018374794295499444266403163191365929711929663407883078874022618973880785001866541783290029263065106784239025933098366663021376820717141784877435731148666443020487040314443043579903658320766156481885533145645629620982235657115435962423162679261718167369071361107893866182488721023943647979043619665697735479632405760914952787909291370733251785334798080868904742736430648711145538520364796093809053587830478803572767752853223439406910706332837504874064587996109219620366318852582647961560042495259900130650342952753387453985409540045117501939668856439514666370984751854442158268644465541981220319303977311175296416260757316314039727018790533550309803093790118756694468711719274731123210149481674904635553085353120137775563823364170618903099332651955451799753374204206002884215890387677556308667397034205326721067760533550757446667038030264547265564808170169855864580009324872528968102193561316247446164010920693413894981836130894775333085779401001866576672605835751943734475166861291830500492581717007803546429204177909144585189772897983081920278635815366132307252666452692575764178804461664997139324290690933302430461775339010617910618218705223608066546730621874071097776587410682013233360033562372994802188595840220669104712473296019719723485467682988990909229386772306544007021527359664761168527154284263812375868591219706741325895858434872106609713477346591122807320590602942659708430318091758730425505846120840474984035237934712144794259854156507728640474464013674195777747188783923088612908895498770546922980088546744119932629491230570504763871752795143259113000426971147482212849582088293453040811288763202134676281113889657219027400738217294643716264708160064270140169228448913568512314347587027849349517145223376035164349941531474114184686882242388609480063924692443030687627175463430247847256036165462055827770188928016550436110786123968650693092193594390346476892133830967738839239044660709471140735947049001983665472953317034653835793873256039549739448982302234881803309140429686122826465753829091808843932907340925319369788495204247327177644983731231916635991908702064519116546831411984385910538944631984101852764744286131692430169548981126101888538474480400134068165979542877727844825737005648335860240368197637804736006094915290047385912630794677661142574852721335925729988496943395286778339637307805331277902443522903105987660343406832105898473086416853445625959396528861777623482654308631931567723955622298473050654605575254114066863527353698993292515701209718532554404640315415192200471948998761839516068257005302258591841447767691377082677429818426737966231568766316995190241906374199375590075603934573271286491973664681053596898975835401562726322980175288772850704344089306126143640439442357058322432676961962121941104911976402676658282793051276536401076580826704495339640451107980647066117732352618459944151751919542654688406414400054725603991374900582211152532496793887862010635962787348817267307009884746092517649403308798044785073532247352519213249449449959579059993375594615528072851583392552539439086335533193901574223977065203708417843198841288502166081034634595969895136098782995170258449427839346438056821048638698609839396317081890795980584745619888259880555290938104589632203078217908058069075064308424959413405471745547994221817475373007443116804121990827411515602573146874903762980937434669960691200106988820202060261645524470488034852441731933691997568834024845787442612679585109606268854799790375067273776527927505837223996576347279214956422151544607344895590056915693677226672603686926741547745351217206017886032360249274160145194098545700689043965430146608365110441232516616270299871199822803754646745045288229053710698228211553596200957029517867399007517816725250817025658092676157266181757849587053519085100069054175856799561087957805441435829933221495237017079466621278726621852643648491827589206815280294591545309860359661121653293343369731667901734568764095828482319485823019400757374894191260633787546462736330104533283048694371911140625026753388731303642444330640447646251712131493537278517123989789132166863940815472559392244048450432791139503811757084143060227578898394629230139565589424525369945749769406140533148128800114426483312250526914945019197954778321266888311467985332841666843169571241692909937284869922572466134150185426296536075954722138465359837608973066783084955299734582924305189010912195025296508684396848040303839385008234438481519234908101362933596298428853053888754107378201093427051161053298745189720085920984829890070572366098970984832646659615692758630548218802135374789878780214316591928163263001190058660426617650384533997098408042091228117706718418386951567671457212698167317584717648242356373566191798952937539126146893288838825214649601375036340921090342518976882477017943637401380464734719323646195720945849001211289160495307443755135789661794186401507660928121132831708175218811358134767535043764567383979845506105255147140578494639035266827610849568378022148247269268634985407388788348529580142017895599418550942386705201977787851784222064030002961336686209521995254521205756481033886963906060843440210407235640423447675168280875122470043809441905727633567928918178837179986516156914035825362271559924381259469678982460783373535554980924554719602982398741335566277951008710285110744299924434941802470521715546860809716598417769312772508432509492159177802434291291463590760433850790684609180257080843670541880328695429239639197998337095645051954836197687565790138774473246269046971239068117974564118771337499345150179249083538107076723412566100787393343098461592880358734358785466383039965674194269839092083639448422019900353289565275906359824088637746456888566909081716759192004252190287430386609217000827022316140122151371520789337400884758101815577233548339984430004188055485704249873223923823781448960301307908584667161354265700245688110838523583544049471365874104288126440606260347849076465198375676609975083242836948844691759074437127228323549201495743738613727077295494845526554640181928299400305298651824835493640823936360535254496838911545200867847241082772200703914972172655109308924055763556100555785666366625219751305615771919102126077575927622102108975544760302426916245239596449156736384343406043456586348480691225870342172572657621471999831241287864872327766517573130023328387837776384853238234065270278549654791945449311797809469195139491553366087296725830502524067522335562048581803151452727947986649961216365016019615452622725683995941671031350504336313249234967134942367722291622952895973775866256946300839418572712676126136317084040478642305440460881334514772167030240768422084579308052102038936807185714554377279271429363368445714191453541020005537230926582393869122889628949614553722151426715415039089756982774067885732237592132210967626933290345220902720426347346723827932426894899627360488783709053027283501777254200353504148800994458945515507625187028178317113808751449715397344185682644285343871122600085983431888058543875565279281675057913790349201956621408591800092930193765946337097939770731126300764624879765453131327043946408540012298032558867048655358413649618836598359187937907658233912705050841900438099739442819377841139278738841740659194086289776533511844593642507015732012652709176529111157651212092967180220491069397040215015005676263198518270032233727986158549121286841638749646750739922260209134117698376995605039312037319932674068494745512758218932541592889408154513634591311913772826582785997318421243626269079165630435748376563576998674724082916064612820744811620772776826849028605878481985723792920266822424261213749911342610126711522701029971475586621553077205639679373598385232387793248318524636409490211267336158397205605179843640649407175480614309974739469844827745587982549083599257676660921497324047460780885602503606922177357274494405986067306085590897635308217119443065678551756578111844585061350329047644248311085137424172536621465500849697888482130161206086975768137577393575320721544699165617864420302849162962306080659489313066972468730902907666381438267215947879522593850272635308290289664262859322793185626605157765291891525769393705774117163003796811807776625581822987069154766509072216068519915786923485972506992393530595765406005926582418679405797892145318372828156461501310439232297294331291862783902175661780440105949050294958363420228838504233873781978304057227005002577347243067883265127028970016078609106282085431191597882589339773459073909728233864822561021285125834384302841036140398902100168667666342442315610392562947277013809951156476580165434821666190848891851459036534584383796842208379788190806357369386795631170468865414491277181060724872262493770855307560248014894649365214070400024249544208113595145697710248546748344784478601953905085545996221710571038824151264613680000007746833693099864641064279766488330593867806051953034591929926954960466655110985995487062920735805001396799965375622101177762611407349043242601349117157238232298235266058501983157824828464988357547651750496757291554721647626434127367204021839180133176050818090338806815441245102327859580263160968713548546335176810636842001597068678651773548437592143762792636353843806829792904945495413006960777631021418646980074119146586234799790594878334125136191769584856125764619739764406694105737853085027768038397024790080442853325054738249812305238815034479420076119506983020210287759353821882759586088769278648898398736245789776675799974587712912639463963628749765014594238104640796420324733351322180450312616736227353559204693880833107182650349277476962386999379395320988093067447740504775781544197928149534796282515187886020617777130451651513822644821650748406525879139952632142857354569347042865199124196527196638286832022830627692212224696275552919584184633460088083035060744597890993583673890947013458158228065531458825852329507699819346185492852308128481647156191947227981839461658760342035424228842385263211938690747816590715360751527046472634346509194324373447601208003616836904249403868766756189905142383326876069236324084789056477250545860872009393655669130985448128623655520992768302660474044698015529337562968643603331205096662241510519574310858406331716941024734793364666032449068394774781570065909391771753887768569039488596535842120588386657922130731433918480699359111068159256102785563526904401872835451244978527115004464529615222266501913956733826230203643614087689753224616535810118508768128657229804173879271632750314728832561721656000891465993920205736462143641050523328171927581802042326494995847722936753925635017082457831839946407517871821435795092752261791970474587773397585914805807623012823771921615161753889723549445988621337570541127667680714845048719837120969451381317230072847562970945689707002560529563794187774505316568493210798303534274712656234771867462908813066719777363670518796101781851400994887311062593190221957672590052866175696010508182045239103781202476151774944764261226065128697104817611136176627625142012910414273083888273476923476952177465575505432668614756783245454688779261423570633273235846059124872319774477276456487321409551254238798743751529293649357732717549021984975444758887298301374179393625791255898839719869290619677435243752849651611923862902633222760661578673955801609613792683316983393280867259952827072939894822914646512732121740975110088798986410922029143779752481727480917632347975226853644444373829895134207840610326859320257525192519452736306671862222280795362320880971612323279155520950362533722547712578965320544331724170244282168014996705587073099853658227223296224452082619443466962281109533499325591677478716549533648011843228827559035615208640202285384139021616180216995896463310083285314219600897921450081648360085272913707474175457375525599043304178090392154209736201283069385055663603834448849250911451844125712855165505314484212236553478169032202385648438124508643319038571086123492820480064277533882161211707641169485591510128354185168361222403336877466280292900449391691537948980350226419767584785069652814099884558777435960677662176177395138647373913135118837721624847272797627367456974304227357053498764255584552000069936448124078379911782582498632150591221962195903013542491814684497346083892712101186665828493150081404881207412501195530513535211080549799262442364298221814182739644633776923011035598271424089861088425284347393081016802695107830176191124115959758197955633871252070787683663131911491260275093333499241055030076175690842449955305631043670036876210756935418097488018847100016032603215014885653297618145064332656480396424178402722824424003654144955329181289761041188652178815326854439274634159927352720120437158632622537132667930511647326328244882234812864718069815919474332248589820248940667530270852191560937445948003138825815234099083317139433037136200400164229607529930541970206219418094096333881265256020273937275562573913843754567528824326967918980348297030984912404776862540646606135948609064600768787560094827017751061666259752902427381729349513897928000465707846525941357260458402550354135832212361080590073202619871937945117326198302925433567572959309579105216450088940206887299544195352790022359465878189752478172654864476215929509474846595273446690628147235623225259814037694307676945866690306312457605187653548665766482155003238509424963229979068912723146045872112832868328421764621953404365548205532771187743903242624238313783402404047713793709023552611206487356026758910457937143218949850096897978751565267845125845379115555146238326969085501129617766311949404037057021457244839083084983903422279637414875828523245518387686707581782160014710795352931946510235418603043051988398026218809574964724397219258958126517567451366272949696081958334899084852204494259787677089332176454191688358226540698512649431618900779457003907997303899323098674584629970920329007248744222900494748507694655838062927605063846284777491113572665694760112171371223864008756211015540004071600492921236854455225618121769040933690585263519179046795924140400122553026513867815727651350318868452246347094455994937731395401013128555933971462727560016562295364215313298778067591112066372331103659983587054516192209573181986481757674644911343943162743713851821957724233202591619705558311768740466303592195223503939998122224892041873560296153228746336840431036012430867058057087246667669069601000752808558737731649274452110369342234186154576317299341978309647927379207878408587574022200358240464965015158685289865376285990485167624680657409354775019848591969739400677428040191496180707819658298494100726989538943696470001317673703069293529582071188869924995290664431469771076427797779749942100110957996000133689333541637171200375111007986703200331041079392351032945257736726668705627843280596065526178213105846802394026768030495867761479427511524647966085219441266156354787990378118002887489969792153026542225185011521164101291093679429950345037919975517882180539064975208313165026557351681196450215197300370276721733243858613809117885623487883819384326209379026289331500624481107436209937417292269143939028461971172276198371377778517324307611783086361759708174960766905315932361886379716959366423234032532337052103163320665349115370760632845625101665943096399879432927052257872060640767228062597483436146435844121235374217986393303129211024762834483733073261808333869411253332311919418628075215045865497974749826125432824907551844750578328399728645892526427463491587426748843284524175887038357210560489345486355247448763244700626522828676151712377839573570982171792432683357433602255421574636548799020199659441396254066478149224807445406293509027431061139703244591242326885925657159592199680361967436272130616013157200177989662618030752313434338161680123056223704335444751972265455032014388142111980543162379441292221449013402454494272282047776392317510078568852757653191399366395016684895173833572987076312593503830730393785757939993962385937929473815600196645250825860524764942240813009600280115708335338402325482716844749345960742155028643571321018249008955626397705897700461881537710720281653176439700219879471694190987602150191785605358804788704742516033065929053230471727767586691305990297197507630360707485115153338426954169764774351389187341512717835117884918865973624281786540830734110225944992289603284362313959858148527138338555650046759662059697776550232066292425340500947211507506957228177982176362893575286855755300063414215130962292975818664460455331754219279370800017402288683819525358571255752515341924592043170707321296834290452303508096024585903528811678735325404477627922649885657713471931446780397948458766353332254471086848753906441774169842857693149108739553044844024407005152002649580694902795919503931642495606248292551261973427479391338943674291764457157873467673897242683239703298852088881888475840278542276517783110158484755499547714821100805725192648293438121070952598529521597816931034241032555419850073937274248856012010740946401812200049358296089179994986971645051716816752807703692766755959094481065442074925208406303851720079682003824258047238975053106476512262862421068232416993685495086262700999167586983995643336222277432199264891764674927996993529151165447976444583040536925473491627474772628297082434104227244707933981421994742178628095658627668875374762969702183566065017391887649526693782364929338460198131223389944117935151344198979516250946595698331040534104124814237568554313903262799472123666090455342104521674999225959403787115856446169602469717446582573327161909610286994704418442547924649987931740085345787322977689233324884226721774362790325069219752685697185750259949918508625909577114683949665867408620568600777194753853031544440695742088656413171933485735181643426284658619215676961964871761380653623341047872203917268164476802380562302729871285977400360360700080213643800827199120794901398372319144469559145924436589342706638112172746467416921830992184135293197670100438387949250265535645648436324150385624895094438175234023754537701759311231685966423268679697319437797129567875883419863905360891757134888001627155351932903647971488217106892927305667634275345003000952778071839079713582389957551678465846558110304540187032111549004788964577411588201486687259085899111552294525680389797290284610108917678193042113061518692937805090270073061952597895532347262833181599809459458284498990324685100091872090535583212253894399809491397265083514802163027927305571400661591853019198975841164693680050497440420728261242771854714814422801274746612026300462983113133704419811035223706139923659572814251666432464512658877845042492729372316707714184897639109044314092643709156442433953312719991687685812052996803114163390167123993791342688604511472758570927094240287113086962245203442009601759047307509469189422629455730867060262387112459410793498181475546400281178819942319612238712843127382371924990685835346368742983559720605869836967531507390595153726994748758169536842717078539671856303658440319655457720987241396222504262654097458613188882494298950384943889188919976432942505352978212335951645543481804236818247563204222860608059358982420230584561840593564906369679456314471112279656720014475923268919552722589537577170523791501137499185376749911431432242444511291612377444150485222401254996370667933100066415390974618142802356353381727042369197758985902786571381024040169278698105394165964410431040021378571759364399168291658818613493040965912560575877439363825913879597211211543148242207889278792228771475257393541550446590241940133949066806455658601438068463998829630138266051595150990210701971229208056922723953141800561948302683160496171709100182378519576005926119124194949081367855174796881221863779085525341505212447910276312894218786124469651783144062759227213422330515020220234150514198806568089611405659026851285327437510592877894857686241330794140060925872086135471560438856670667816495514984206819942610764622906962735641874693754355836525213162111172016287290361691614683457596361748029048162452682885860767859303631707622429974065414249170917209366372169182263828350182665755676236662799800628940524159877785438186854674874864634690303318298686724406311335773181730595803554028867954052025122838729766646829672886223804320310776954087148206659404066438728124015453890479061300538626425679174412221277935765719993622566671657142745788194904083415921347471585264932340841126141641775195784396292456935551081030568028445694816239643540475183120108623220386741083008504293295653761264966807668744580562370620891909342729220544167036654720518441500440480234593625870144189369911107215578966193609226444309599791066571076123261145145174626185608506145682154078293677584042807047850541213349160417562599190755734843355573817725182128557703720264347732402291788036859508091243766094114662592474790343505250470131674328198572057368366972488361867191524797409487091299141811252356597165920469294262431463008469627882553701641764632081327730617402860793933846361384637219451885418377958635372612919524193910188356779425658726819130186403982222667164308729672999271402168363447876062419451283200361078101948686952291774847711477677996194327266291089384916145808112175989459991467415337686484539181011978175227578160825942830180094389561958229203980313166869159225034891034918439489526112801355418628656765134805333783760222277521632058798401458547206978714402825238771001050088808150768166421030208341045284188011973095863926967198595915158811169715812326743665415295152620986935157361258558395372682816224356683071114649120496334495026018788258396609400380882964052336160985247592900400723363159335467047650658468348810072165537385841929378827320733577363625346053095582379732653473375001461352467394781478958676253486629937314721179285169248951566728053175912539244012351903585491204951317939240466024424847791652873338683155358006972236487878665239810247179312839961415684964416481296505697003956462268416011502875965290483805039153958595465318342491126698627306888467958590320476360376274750214416053764164436384350292174369092062830969459965635998956412075706149024314285388417104647811719468746842169488565392671510082881301028206034239336866841310936964053343489072207735476751044327941541880063593102350462630578258109370400763711762823106545767740402459331352896873799512708989417687784862815649937842991960133404127670473909590749426110461346581399899327234913915467046050648321248248270831796180431538780946282389198375754293436559407594815750484766273932161965058141490810471465074213145338881524749067725700623330145578304187679551061034159686101160624703312558012089563121661277352767990406286651676346481517579074661407622255968022607193351270061014433242122924329475357367246686705807172171293019828628535964367680968884812749494630361194214019953745398783400117715599662871873430696773448515455238376971658093527181179487255240948220328799118893831883282722284927624515929355239071173508143194645132593119607180499938518933969663095748899727416380999671018893176144267045434561468454202174492475702221054535880339165978851634646237077549064511053822881576387201594187181549264038090103842998627854695913069486047334794156720428903253357461180730444748612987400647347911807741788848371950215490283493807045414734715575235052945461831244957753241296684945956289209322459435714577531687238758261233217562380155628111706008389094604208978768202473844556082588051990395543875879173435389938945172308304400115154252470811639892962089395191580377887165595621258905440005805912172572193165161803949123201414214142785387507591185842296848658667095226261285968572458910122285244304564254352160633590269140828689749468297208267045389052218598542741222936588602999810281672166475192755911085165636913163613839325888218509895360286545407623147185834394064991674791418852484188124377051151258870892853657747877520460831674067788782620813740134516512704671838307967860277201228654602144488888918759380987712226877531580728196845360957335880730025376260634555737317467266367122909976952899026094673485166428030761407300197199194793183415177472882219169373734753631403615497164983529820414196158308833999359938197988891612463270235543135183695321104809748765112442159085262333487986271735203307521872584588100592303267115151382327086475986653965899922235627382205095855737596165068818819987477995002349923497105187053295371869694895595571007108436900969201605783205510706822546259412950596926734648197738578435237731294253833474883507182296045678077470695289171362780401496495176790421511964388521045475240753760379956561967527195989380256266073486907496100316226563884058563667382093793392383754812328233269647065355486302963666016789232462644900529019504288821914915500536452677333351170238991215039475370413746525704941266121979583977645047573353497883073994070022723636122884605838968658532984496435376225258480176765863308130816281637805933169597091352191470168138894346596805632766739432061332744906343409349361958862603979915361502021052965584323680561737145453274453513240958704848354537529789729442154980380653223339133292745270637325396543053734672859493397809896249824167298828880804515085175210121387808661475637957493060259132218517693859762275292273145986937800287728027500015262703906627546833195414654724577758911134907779087028370992397940256433381754055812933329862572007663765779037686047578123855507354131890600495050923221533519840626615263332247586307026875250246522019140432334145740571850629665056950320418392253867908098109860425293615429913961335619279490469468029618427909814759578719829675395966449344840973620062238323061534125664995084534524573408892598832092330342055487814019567558566184482945427995121032779282170976198036523212904080509703487601296998920442987756777699430567741639433025869434756180340732649421858943982157896340981563778293741436150377079551743768576389664716926493408755824025203940815337608143492269299179804533202792206141543567277919666957619419231388031973871209608615624820617272763960362653799980124840580415222484549072695139795695507202180543997759939163598766147150846590542234096628108351924456252893869402590236611784544532999236258551581215185667426726031843473422487681002300457028723184056631984393472529571683415720468794521711890694740533348276102966212244235488234912133600162033131091161746158423308498942709283687989039015632394189115665005959209270040229585100595593750883012805085139475043437528157079497009257172848449102808419555743454753540565940452521757802164952406109871564986625884717359600850762545045059833115876241497012847740417114484628290243640743445255690244948316954225948013017500349621253151444627850486994566693162380469073310643281327616475990700417810058835619626685858410209271512336387584216818811725540755564439301103627637307190564149949032667044418410885138376829020100868911663110166805422476925606430959261802929366046399541871394486711003004070496220120062180405784291006567324360439120955040472312550168798293763900856744969707111969543513479930453032158426426190780617081895039791614981177970369700728218202039901863171502988324071931393934104516963499310597731561971402705723781555261436151070533815453986498980810079512010022774912153020410516967196627736471035167186427741360582204438560765726597893229539562394729028347651439108417268857270707427695529521807539912308325176493736014844316030131468808344212993548959095687131254024775152767770421080793574179505651888719145022916761767589013555591516970719927506459138022816521364909283326586365485833752032449787589520906454011216083313275211057203466102196812000754092073176910680591755541544665598583983126129738427235622127874691137080543554928508386623559438603206882701678232403257647563286163354461865858769210652369154016826523242915014091528790235983738449697904865143113400392218378247787525493158840526226097870879963513798501129787950064950353562344725163409622856988308827274430477717202354932371423486440643415782352786605200699766063907286384780023754250288875885923084478775834864604502706624504785217581864522525042156186840453267256808005694879053080933013052632105694380440815212932060091782311952480955860258928050939172901010600242968197569673319982924767970824062296933179547971312447790579536601539095062913283183819569116150121541176274870229935852118703819900399272727609372700498751729438128937374426862553503943497357516316901060170619807777696298338105384635672089689887426200959025002676649766314811957148880553741224238008559577295923823516691465285433125840759618637895918935116042574397326573334708172985480150316836427357046647152631479004627269785369374027277380010427115104101116285370204375905832963352177173769861836273768822148505975799971652565374503481504314333091334529566393056475342396282656821072600201168386667687907233838907867308096212176628752227718878314263388564997531661646784063576486525649944299346662800390959565248573913410063763540249586354670808285234472047779721114612848583904542574832089848722573395046401533839085763782581917013003865408348610622408713803745322813635511668967725767027939619065611846495889877479350437587531903340250691668070387440972028401058326917412236480087018836328934493220088946744787939803792404532285066183387747337677792592404318061037151688768137735187128039906795327896436612057882913761526194580141629064628352754034376491951342172865187743436332546887071329718287243281210574778147038329624733556727529379581971754665307434799725726954515906829984155254902918522786827967280683523537063303304810834039781477340915168989383080973680095544172828393919391200143515337034842640081499781410133081047851102656302036810517684138478116730839192687250361063202207911409466394467964900839865823457897991905918021555569805340588373331098974298054967443525107496909246099889375499246394376171897473114860256245361665604055599949215034278398644568207025709681720452336574345800641098819677099640646318525058901535484184842544900210875349369318654356107412098553304464340221777287964931178306382353877265363286113052200532192122349343888643952086660067930715934695484190911032192895609800692866047376747337240665951528991777507647644476404030959394792331201590513349412375540072628096471543127371476494174535082255888838060922169093031244038377161677885108445489079783321708429726340294726793871120913500954372882807596991857487235868751481369457850613849858270517404607038603896716212018457598240721548081464414785906905772671518487804931925823026177314346653899730048940570416376306305863405834904997841961636450471399717139747689301731795014593490195241424134479627185430179312608130321761222837061396114473525986554588199227993758320119863482174043948253866388952899015766181349086375082378570701598812356428145637406081324311692672022269948754853643797888506432741008198164801536204539374831916421594144974572658074647973695101413572047322678834970069476842633679108190575823353821291851392183358965823094233443942734725229495381314283524319790800883071902594796351034023370625705608547527064693435938180087033400925551845436450960435561014519850553971072521071262585612490665994887571461511435833133522593508643147866606517945752725159683093657950568017929457090256626919853785621669178877421198626707378928583723239155585176557382222462385024716011787659171297174991186778856174280733083446275208587492225883169954022885648814533407517933546323646950987526514089304349931954739084917792397881803337788624534366853448743881418252249846841634853901320751477089769614521384648218708574220021014181783137022849197400310110723679178677593387940161904368071459263774583589077466714986237416273219262848042727937044475081506685748483120071672503443588340115723537665398896619104313385557832575833528843368810851886547681856897708756249906361696117781208826803528915415504726482401273417129732659578807414628016122626949164473833479622247201186317503301546655178374885514884995192149199706471375840172978309143850034118481662560836696552985865258485204077855374757668498584022605224496487317482374802819864922522473727229638593918318824358104652561502657458488204719285961892468646768292981991744655880983183799336669841176586131564711659068712679436534525457420984762080357838880801855434478003634717977625930523453927605631657544918325866599518235024095527788980503670235945520971014262635889756265212164385631267331601424642273557460457639815201725810527345596263283478971642245305110076567384533110892966729664297632624577142657945412681298111755319453192965669561581119478363801946678721069717937792503839433447950129060319244405112916057605435432392933792027125893000639136655865060443868337618199375454081032751182743623407102265958933226279283951460682592738248670624597929724643548149278337042227941593683767505859491954116472258700667544875705360907804843922793500244761990970284841603454787950437241625523929790101938405691595552624755891986375355709845812360769709915026074861854197172642131804238527125458291792220289241691371541904638597766851093729655063127669531912026884410717880129815740050805256272226727679714004220829045418667009873803315838472714899360857860863086451624632454530315089303069591225410240719604113470034593577785732689497980782505679990686804237696788485173487737176405345168169554486568869667046494746048206681582854588035477145388944033770301309513693124416949826931093474073246037721977121053666949028102527399591504011996318318840451661629039222398176552045303098471706364834345854529381817260645225759243447822762093521118594293311054063532835769193968118408141195429241736190266001449312291497815593513175318904202188518952757880710729139934806971591077561544739284560006877911113305590671374782220055665695205802903492254745905169260252393857733529217856733655340516087804113339138332979039165805711753853389553953434395294367683725513720683341332449702792410471217489461905626009406188544620578268591541555525523464203283333285318397559387439969721401449056786633502683126326121088006091781057157510098372249244432664145512270884647540727640041066750957658972929522467330851443119683085372199414878855418486857865593050190452612130813425463508067720814174425074491506528483232920651059205882511683466090607365824841818782783745068728992096779238648845305693458190141628300349839771917665005072847558502492614589855928982737490992639696942766039447842285380240753079644568262249499608529210392769868918515821152691575227107949525139425222103688397475001428044120253102297953922209716133849327368928356096983560173125982745759305893867866971976391803234138096896392837160163174633273417818173597711418287176462418374459971598421854522682315689483345992358725353184319148707787173280800373529955526031312801913875451733433031351653160056526756615726570786931701648262238136835491805173140056587020838689831241231139019788339829100200640081449948828634736429306424188424819185204423895754502812686079632097964626706793408066634322128058773210232676611567147684968055404515930952550086429504356341130401310992788900071729277632548717098746585813173128833335577637176670044751501756976980746756803437186227414166762374455024986828140956151296406162000323614492201300662865820749995048967409082575324098095919265245098504007202751729189461724360986740786813681405056235690343172001195320201566486601843809426884163249234684413882109830613499383287626735313577652015093021342014064697992991265150969061846864701458645976974046123452533415177546852689457229365397484022748164051680094993204389707324794852337388696756596241351297321521061741051461001541502825838310390770293255550291944038766937239273981115163642926444249840424127984158894655653445183454786728007903135078973980517258802852195963980134698329770500482895073507404780269481950221173177688360070554680188269798379034952582503632288588921143852340532118268893622655965303191445197653554814964808816733800636911086926317721182766884478810764421066270360213571032797938940528802885262198014694369899092065762836297317762815476454918293362670720020720575009913031187123865866011442328715728854202290893553755088359919505185052208640045749479174363102185232374030904390274949150560714973912791844542684184597120290887356571703237876876974875018924797521165529850995956801550725346793032812816961312735338004771238763781146507355133197927709964475415714760627348284072797274420978872464782686839788691722253739779989738203264318684052652924963124809314122948139331568705980208121440418524472001784625140839878071946680410696091447170186821269847405775761709311834662817096933940577875978049473990601523593203993689244340904488622227146296055540736558823138503768036183424792223061599734983401787552271799888357437612112220784961256667280714499070275087439765499649266668564155622297286240061715496221557396530624391112007904885080341726575940592094146740334285861615840886325138404837139894295168362933147866163393215738044915589668010004625292942778888587732761679948918240460693123041712386426506324419981646108809595345293238995321759148716022004848644611274556429762364103121324790802444403261661819962050121061004035702652265817804113643228650572605577215656094831865665665816854097805913708871356472039510543682481192589775423061261248051140060762278626527930792487968388608637143153345370535994161111541814200874192507151074545548501136855130358184636822651447207843510955293951486297556860671526174359010725992642881639855836650920748528719717789540813308683560249962206680751454467318438530993041879654373756514027500430375949999669389358715945379833034156954302184756881645804295721799256408930996915411343150857329975339508308936152462615765036415102228806718796829932149945733998142958177818660470251597639166390966622704910623598593068839759257333495964656251025800646835473278607038530819999549449202010863129117454236288859987373617131161807386418321316071363947990845494559615594088668653315867471022704664851933776342303393034742974548368382355329821705333995266555456695386683850338223190077022919187225421517925854548077716805173280787742638806804998420472754160435925301167674534486892649581706705260549296074024271152964257526313144088036877774589628923374214120291785147980490871781090601599841055289073285309039778274858074584239851746600717836619649389371334500507200991945789350455448391633673005343917612242182634773267296614670770552338945373385290166440734059183462623786179106008511037032518695710804479688033805328713318237109815683971296508236006600790916411863952640938143677700475866486121905085003635616813509901144381701357039025488107140539851463790879044482249590323329360100407388051226512113433549560088865347782580056971039558919275182463598322405003275349056327419376176706276633810542397186232072338827558144596642752300799889018741807397138520073718216642977214869268087556248328515660591401867959354437140966095028981598680048783107691325854050426656835997537176565308245126231395455877846259411894689235734296652186337757877717515744820799607927816085409414402180747154067921247234105498082195728865776091519515328321356873467535351270893297295014994039343625049631682703970675057463267599166553572511116640901981059628378150913923591412041391009189486384748402281491668806927552918114861418872566039261081418453046404800410895552302513560656276103567805323474070231549562392398956829926121078691024247046057594776047719622925721631306739648862265845373305838298573233284209083230877510266119258476006154007661755047674943995395396066352705802082034884418769687739724701698337789556409970772941531526153786323629496772773014722058508287748232101468488681880854746149122273639643088170334406792751373381459694574065277833379588571865075615024557602561773364858786840466356820549434460056353208537486910463977590970819505111413549381702206614424759043031220560346615704037960369994576151499857748134494156594299052815797155799663238655091870921830175227134025771431944308391503327766788624115989587781612744861164761621999100737552079950522545851129543062718074595603543941391812311977354811867206137882165442537015478152679276112897564397071227168765161637876512470344983426279685136938128971923948953897932877795329616217291807414750072824499556185113991679410714483821099938519649680326702404215077163595432337023854548538183636996878606601444535775832999734833991120143983741981260355468015939643339107869267211372439801335898972494290004163096680818573612337594075559275846118763316537928214136585086269896736776168395606370149770977399019167588902197961031319964706891193485997437327687014450730769315463010639179474581881689980248385097965251243721062422737093234012108267334096731837268830074916709691534948054750303147564002375883037516567795237475082792908513119048197620847842807343809888660754552002405133122977137820490529364642123191790238163612013176717497712197009345366531078496138495134226338610661056821425324152176288509280908727625212372654896989494531899646742338751224698322818157712739914499343981441186867350038337658527051649826669017172459601744353359685973819616738589687586720262092486799891136982706274982516099468200570509942031461403918954611108090388354185553699553209061167379100154820869788721368045676777814090185557250093980981749595452134554039471417109255575508564557107758632049445912021076837417367108859452928757660463031871737677400176306822259650377337184989817143469895803222951101565965982331911679372023396155528256565148036951131626483994735036600111262754527181305354663672731548721433489612022680898366712856440248841455744726574724140491189019049537190112260159486783124275705736959323037626513616640662759001451562349433355312436717944815876760225777125617174288780419305206589164809171588626742171438711068384022426432299150954470782632129804312763446729308557397987510699223189319176437735024072861743569577149893086408555275546139192426530269715806680648983400658192778015619770287829626275084108527201638206018997620570585407817828487152609652619198311848436213124530041686626453663640189979385697585687906083274689418563495185488377565405023742948341144517240249602678297158944125563665882052124708181492795779081661111266499500489936210940070016718577101585107595666521833913392307293006313938503860561066551368497877380413904634982366894933870924895179536479303878389260423554868433658026662063482204634674042524054107095686191899468868441006571636652433336282033547806348952793312863915003820619295751765635485895915726923606263735916072914817630392705684532776353525142596052272714976632242810457212192535032186435956055189436208558636114848754743670313934471957977871191230134260842869847937641043555401639346072205447454561979772319388375826014792014117576889823112389586237547543614859565075688904965405900575370379880370373178401686780370192308554189820961895528813052136863849482580248192166295115221146653791058716073069695528516932024170853224680129776804572024087857405282527434949916919954117821879728683685588198868797567544448246052683292918244667760665050171932346167419213240255322344948451102599119560877947583257490421464603086599803037168412903619390505637095365678252949669207082806778919719153821423789959117637767892440887161499049296568079393296711532495793193838678212093270189040807306748704550513230668844099513315540281583357113865522544357398875414509788379025876660896855160107623070891853916979097975773799770427964190429143370699870087920726464129411136943502937623940424970104158328302127206353392481429160095220124428590074896249977500880533811887685934452135294812490402464812936175011996009770779995566605811593923678792216073128558549264052251600071720563961678014207460369385425987825479510709759862402396021200042436186704528401806244668564193153518389144432672484167074114124978646279883617692866910374906916638167472927789976793459120589530761561756165590248602935738840827181549264351039577640975364003855188530663961334859142221129879045362025420743820527343791334660476352069066439120439355280721264473641472027539891190807318187062567770324069660897074778502666951654382861616275046654146299803818906558581936295073968436360796677049902398206698771968584547917407950667092052849150480876700783478551956479914017328424527946898902031712972320547012338653924486684732485589898231822640967866494747016430825986208783222644193246999889325413647200597010593697179187257770500361873734784489988013442461596004959312666447656168016885254614167742627243307454436589416974019521179595273600208798123038223242631378765131151848730057565856828265239196062746870340554172341598588337789461830901248661627758081941349060632536211858240573023064005312862384765695137988499012071751294434478648633014974329853475963756581891561062362960782802281177139789976376576583675926705509758644471714646660126092305294125018593322193789888084814951446247030575674445227489805747489937884620798517366510966434395253167614421141185904397235997608575291043323250433601103603348350006642510383028902223171451341229624791126963831765194385678414206110118290026364182975154991599129857991814685437598091438454576949205644317765573803962917604458239133048202692917078595066927808721936348384387266388369789582983948768277354079948195109332668515818654840674972783423418499508548586798047560331804469367542592448846838629902402079806826308081093336295999509261298366488872824415637502085791818421460283290579619066127518556272764224283786138234347566615732552887028214179704157746963900679965825104306594692684160608275299353428692127489742497146768046154555176795769848683520058600202110354553126595444099400813105237645027216841700260307118029481789657660515135608439531663779145759763029169329578440399026754971304097461161442203378773498830756707063671354405490115828685197454619144615077281662236076930071698077368644021936291610291575371429577142134884219860423116059036683829645238292634711658991941106957411034760364214439528668115552741761302645073943732190651875090834077708595071764200830435163006115843988590971994689142082361192141117525099725499427959663115822098671295522483327685692627578640485281896728601100703240616106228504138166133581241414685383126925169211010905765942243407105579270676917504797605056312236086722248684102555747798268803350267708121653984784058043094253651300098104067020703687965537752415071823954831734613066013569276149069774773509571794489757209688581621149946498846401257869102891132192413712880186846722141694654230211120944643896151344277118337721713067629752662815979315144226738918099001559177824087096933945884032620200837501233412723659682873146734632636360627449703630658719439646683817878421407059089651076005174153737306312874638183896399356005382382780150013111522519867799662252749370886010780878549389912858463234184555854951898899716895468193560446755417655951885906824312514718328584887510221877957173181836632325401543811810826297547335305129783919198919642578464566364694534674845474235963732922779704935265754449776273997049153503301363712013357795661556086630249647574561594084305147676964093935002595907161158595704603004141008938657677950617277586305927732693606232976775265022993007133101790005631816689335342187086206121459822470542726754613185590077336964431923107299867410189243820807873262668008658868780141054634902049668654719035731645973059081307329553240420457596036127048083996067637397205733475539455487319478741885158257152719647625858078300544885843827174653588998539820700717032385968449798676489558652025186132636967453371944294954812297020202728395853231640628499379059904194593985096446687560701449239435480679659054435248242472117186401683962674479169111333262893134800382735413435115426914604562367480616732425827860344580989035527968342823539971189883272728836580512390748415727951607804687986360466198345936012335200013911128003972697156377077040427805854793509481461659939843051056579032772593924592365769564385488264591045729140811504407285000606683341607187202081026490814710754351185290855111368371842523400043514983793531790050487270052864802733997629929661241888201159500048762019425420565432217221158623896320358917813243087205230116774793644755297347400204549286423332803824392845043084222569381884348895689849040636964265425094991028061014642912350503341873982776632199709880220296419144200253224334371362443834726468589077522814167213216340452523144048832462961879289165637617309510593916979539980338311663896330216064007200630006913581903455655926751524769572048883104346155612570627137389365438629909712141574117078839540026871178390863848400664859544080074860851678901381915950232702347459987782958232625433194903312991809766885633535347569259463613571706614277387146660006762723672070295039045402531731285853688425433566434146456203580943753096547653488786708778935985338263857604789792609912160338504033796924904259996761072315707077925109936706359126925871255536657681541790387891896252893439753148153566364059692785866249970496263286532656571187685429567018017650571856078239634887150976834243096918441865680650345754900468054809646275821889624029762461832054269431003374444976399411152443447173177738991835293870051713570503511501243196640786877427242692507314353541852406140738009447258635272188747437843701646229366175343458287227898014452707938250640630491387622122543426876531616713120318401611703210950076955956670801644428364966404843577097346538842589856008502330181325681204756737630654727592901215534818859163604492890964291915320315954839614767599451860457124790325913163322859035791380506484037624073522217229813032293899617437605883458352965721710086968110364223002048339409535067833311568979232059512917623356480523726007247927591957149411503384389888637139725304868987807602049776837215922782582184263528148608498588578541102276942595076720374694325816848522955548993849449774235472204433810562625803561442328985516637329924635884748837275227180140347341635120724099954330218129217352850406314365465077313039398411917168951362451769309067940750513531909377699691679410221407869268237690094859211791674547851376904104870147123465462560452630133288707663432452003735358137902380084540424773832082472398731129533959495696750642421557437558654833556595688786702674694487053932960471052598664845960200066086378756356083912859948702550786909853198745343414008086249711841659312016609536680596180095659058394730414177212593829469776898390578283249194008144606967278916422814079996303146723655354758949965131658477227512283933959637973083772980053330887076292495725887874638558379707626596299523884781062571522685705708465326719375868577168235169812586478318061851250177681359311435880680448936485529503949451152207961017841722522347494183182350236976117478525866381588531094233201121791833848656163284283694776614302704571391208227152189434933793569580787188082980792987897844075234667056573595725331319327897533424038442491887072396874462983212051356887719201169320155468323167157998732547190957356194470224981164287012189777616723818797384193865568559833916674515025636825267283036758876320112150052760588757377754581583513863178424565913437974910908594133164156460587565181574854033547942550227812729922630572522784198999322413846433449128497413822993949177140666423246080444601635425065436931639022393211323179915949633773481236207625189802363514256536584174180712189582730166991507890830183698577684935995862669966519013073314158514198647817472720991564199449961986156356208100181893770940726071208422248701064916277573244153168219498036871458123912901227344902607711288192099404371486885485281247887088772108103556615961196040830618838714915088956272830081157008366595506727967822184386257473890290533677081956940452683689688338392098287034434165335845055707575305917132209945116044172592574431110947258191361903624336101199596394659311394740614498185003370701587494189374192651912211663368168005240229642529690846758233250973892350267642982185970238796882792471371051106794123055386344321204178547719388103978100756998051805082098704554904088569682624666331759099248398921964379600637804534516434140625250597809044112359103871124766933854790979753029012110765082940703239777989579927829747064852954428154609047282399360099348822260545808247432495658684222672075850773723632684303386862079868340616709685828688453525140631604778360696650490197848268227991536899282499077974432404640407979791733730136158297228659511910017628655863981329722267857963678848021481188513391208359165020625982627249118463840515162021157657749484481369717300686002852229835511196431642635817315077267720072066928571030984025933481836122757614701959603268112558479195021058936074214006693374639987799384877400537831229015620496793645835621161170871268032382715601013895293682045963876924681742113204271512457018073255531152553709088338334191082808336547642362670290474559430070977382533352585055125698674377735414266408555261303064440841384088602969053101936869364698596261020971101387195406927441704608032330058910615882689109409510639164524123367301215864849327169304373694710202683802899783874720618680855636576895888416159793970877896057031472288895836909622257811389837333659049055140684015465948380748974694947858214619325625176065503656425362312147916790733306607185102635184060957281813905065349074233850528223344181358146985301474044671694930159452197606249652854131657730274772014857398785408925680836499471465446294931665093432173809189100636148921066646802311732789302413098820162512965759676055271861965487761995203693791989220208307741001725860121496108022289481995226676709303217398012061905109816070547857908983960449214717112305378451846061963639005778820516208424050727846867587370047745990098522138777198653153746133507226916029642232339598511360443837228972852223771046446805152898462137325112988447816065416120973087772798612371948313875340013472039414962903364904460866586396633291787369178030507044056534016706529970121138545832046176629337242647319025488305066700250034947866934965346560024439142096995326357527033219683387147072085771520257186467941704363923014703360760574411628792289522186848636085025699255190522244948589668079206035643857021879635675631083697754213337257185641650303593428130911361755336406530823402867619215917144171118268799842444258109279655424025028040537928719892443638901243265232101107191943178590875314677127141159301349992600030766720689476444498127390633246250149800445981327078891255080594176410415011045153315325620034640874998245225905542350483018797322838178245027520844237416287879831488434227705243742779605919545508091073186831370190381172462807518249009228837114699753266748049839623109017319056468830340906688153072847528375446606895716954643209294543221907864516554225660637900797110818751346580242529650402804247541007645222108299917427279321155947371252807897212942535808641535931010647801522598834369354800035253148974881625897235615351585535018790454206669815960804189965744801703912906140775143437770470091482013231942499528669366890001919478462599234971560315448888810804922301619446055735013756121560752203094481292211206519474775314492361133038915992240199071013860190990508842480381329532650301627909702063800183261713628140620672779178325908333221357652803708818503903943377082194510791066168188902552512164673323441324206162875595391286063200353260447328406355916786870648896291407521650281379240216058368114637506934361090750484914417005498518664249020757009936452410022458808043333557505393829964601628391446553697492249102940772513298390974557343487586103344476983919137695799431389060698699818362437909629318447055573216038847078136758758814947742449688002055171244158936808570614135219699280911416050586473224402167200386656569112829237305665156211266315206506513646784437992596306546177441964536892954291774865857695905264256245477176148794884836587508483251115707683227003566270029874912666288658138794554493981381286585817318939728819570862957550882011147724223976157781822466901754907294796313758471963597017294789926605956142866638518277967445494892801253645497887144095257892105692914183861175447234620603915255475549366753315458460693837779932839560839047881581770528935273118563078754114591127612374516552039096626916989981412090828699899508786520682270899080715855285731857065771352319507153540470855542437181602391241574612188455595988393534191492049218544913906033629965975034228241058048076075357499334023661825442052504411070144108874464500033608946694643164703537205237643217926542948055371107318539707662677317404830806453279352027511999153866975755380597514097656074966008533707667393857821047802403371705684570169318252044757879604074172589182860741117956866595465834678025053265497702634416410227052526148083999697772042690126891692335065234993601830615020446746962569055517253586987792212020642410409425492862634666605390613560775485570007194289404058360657424701889037763444022333832198458334316756853605693992928082487426969572181596384444107875084783765467793171517677312998522122101733960502833278844836333955951898054413064854570773936767542819138361679108634126044843933397516321134837335525608362258659703440992178323501232014419401855362608002674036859725650683684635903899284766268852044712786782463298071113608475870002717409566271804661384573073707740861314479350531904915861838536217058512298841424867366700685267402594142071565505232996674988565013173951742447045353127405825448765293514816328459291775307167849483845734015919149848915482467254228903406597607013048605800738746484966165595104156385267948206907150566237314181691649019480316206170489859713184431378603597620276589330975188125328622646055753651695615291540631415019575116877603431772400438939404779213819496381732252456236931056749937645634566641679075979893553450786983626929582213432617043278101909448661354358825751138890759892437949904296668698981800627448587962565791173461849806694653620940659564191740657581347987737561319055235038171864141159204991125252319957871277736964630013049788151801985581260108717389176420596334924868387340115788684063075889340517659076232878878326673513372216549197632663573069809368714567402249378890890606174458148134032737765513377717595103440903865249805795522076697115056261886245219640454263230237911065660900964348073684887422904500901329868519217056170627095154611091911464926253243349870468417968410387337499136545748218665658683701563460070469530132169318945119889918572257019698715491471178140060795606379669031132211510901858983653557973828367339019811612352254510881412603883708804553905072097817219687993647090891881855820097491561291098340910587748738869388996155422217872883307060078917604713789210858836083529896852897250379986705239688379626863137883889991215001493960883625142785934041069886879283899229077824463806120537562787545895114344106775441867533404457938112949982011780415892373604198226050760997860943459076278454651208673872775340767443596249141799511121334832686861511000525068600783960906269752834594240499550322572333973200294219588587605832332124111626782927773874600595159085723200560266848187458345164839006773772926268094232955909098599993903924392396255602420442908163724054397783114169656042014064015858684261610430874049522532188626912454552916318319284955082620768841186557084758359127792617465540753397340822654562171047007920961650965707964787984228874041851682914727568516300940066625545758714093207727928353270091758543232123222279827526948728701080427186389165911404689297619173578003632531239078188830493758428294893104719168121408147122368048828726735765188412051753840234897208395994147335390241457741206604687659703851244253095940567850607556104222597312998315889133335059116807804857404107862255569664048712463435619096407643736594325018285649940732446851305139705805951866632625096054471060608475609769606083683208238857268520396707202448896518790164624265839923862621334219035326115280676118281455961538366893240578012100754101507136582853296019673104360837399148265712071524306875509030540077650366782322989698873141474204262296346009405878318903435247069370888792319924621181332244051778600415305872171652319006553855823460555295472108999165196557581303040324215023724418433534923138512583268355818986749442473977087225342229401660843853368532952629282615080892371233536611796538722700431289734581762370396771160784795950580827836608979613115440209362794997725613761695571870395746511684637659651773065212672971398311938768200610651521097406771510387748960307388167637453297732243244401954543265516800104370436355886960674006188727537682746733635301839942323239163341924702894932912301332896633818195145222012136859442364846668573777452316847771382441254221417606821751946022295825203641618420785562893711581080823734760403123975475620957055587523937041831959434824385747204420751359552736040169953466679909350314283615442486654914122823585813748146583883322380676296632435967774374478422250848074322467353355929246463793133189043268794190579693914543125098836032456848333414352436372520947366418787797006860969817490088479945025516514665225772244535192540601430410859451812727010103739018642466669277934211612543768431746875740852737500010399233053964186894203232508342032539695926465174963868714121350085997100321400744901109896034080463329399244109947207333265084430471096388318107126576794984942160819841248167658320549751091565375499760998365200223963633935385810035483020126337967473140718564299171258933886371372491839118672969549017288783511904897806658705875569238039585316429599613040728298658441389430207086790958848196718370504992944880037108791135418662337996693490201045603845714659951732244050246135863941244413767479143597969891398717879727004077325633604068503125152963715744317887490110527081378389353989016852200798195807779563932890162701798717956845825342818527196150173177465000130795859577721381732569851797176001433303219259124422544074859839706615771285085336526812676806449772394074281210703420262186003281693306670259012819602711227597862862352444719601004701492505984976252029955118211912908888923955692042636804610437498206038407684078729350269623911830680550887443500849980936659270352710019319103742900508287046282996875013663701091094361274427247752147824068659704069817732946260862324768774484836764860000566154958751293165460536999396020430336057862802652590532040007273267200945055044296362331155028848593346679780638683671570701945163213833694284511499706811526399562896881465134204114554955897829447180391744393987140553613580661385011355689525953195385569657717049812857713919869333908738296841788272197869281472546071718526173211423366258655610553116450478711482454048085604057024800240833901888015078176353943542555556551936424427742651442419449047323168427201613988743523739814735539072931667183365236252399377177099267861116199259370606614821658026747489666975587151503135330504715234431237004668740135363893684505775023598929316248403065490657282705315022379408278862546429792943244339282085004413509887212886855512976598788773359959498696549080756980433280900178503257130664966415437186577396616911457418638582726228019547180378601335686378148206187169023708999751117018949070004487139031903441975286489955193052709537396139602180159496615017794480591650350673635451862581780413267287467908607247313389155302056548379896579992001291806646997783120466379853993574667490043993017592338641444645002987417342268731088947738408260923867588695760165701527216009288094858172862130356016606592255261842457803482994243792532089012338060195577352670219693842865767896171947607287052754554246166664847140769000962237155097462516201582146444290271518246198578941579306607358864269292131832564572665490089835610595475409445109856390205366467160332327697722028161492752010250280590185236444816753094739180022021010346486197987653943499282501155777807216405876244568096072799775395648417582383125068746889682251274934570217540313758772801454909785308334704221433281698101853008615742427107409865300570167726130903501629461326755979432762925017881303301220060515907348861311631415423909049203834029182046129483534900275567920858551377960435940118404418086528723677214952826019285515256389565003782311935490649565302461944155569096088405727249681729372008718571571570466792130268490358331558107437119723745793584721629526669913520890181978835967495280044300657311238679122860664846382727487804760810973760684897268731058610462206171853538606379274969584349641034644057464352937315037053660562834823351651252199844026733995491723875499277992759424780690908911138039031854294322962467082456759374701749619117574822840463657581413812562463179902410389912684894297492804665665874171270242322022949406376226108301363870347909421066136504834167903433129047415457569887414177011841265311225819965031486877249400281436728147648866278644041462350061018110002299457971268067816687507934183367794976270566954103739743007395829037273531865820521539626425673577861019532646695007774320241678514342145744192810113410167649381979901299891517311428600169744102918388719903304864350901110753558013482418589138779686279717170270421843473218050557904376089242577829333909018039168631696922419251965971579179309330628870840483859266190698674290925063754989229454999335739752207571376565925162893526648581748416830289319522732490500869349173448819547564005462388435416433079600500623700783846165379445599346677006425966920755145488055007123046443397619630539236265928758255896471875703316225953818161895909117358045486616836734075116736883917463953649766634115492067432681702071768271136772198825442733000707921436943126220619351029171003597936975801539916994834672445323918271811427277366112507450107488084512157217916069659512226562574741559111040716803124782742371048081379527955016326596107288891730241981954731536112090176270318030161801475869212154726148250338804082154548591051476760914856269109645330190441185508022654586754591463832694724695316927198560280206370883661598749847296867112294383036017752132258012161045352005170193740574166173742524610864332786888166422807440009492958222456280096767058135007040629589067170142473299642601188727065969505363707252318128653568987636225723562581371931180700237418427994106055451359122984448002021800266153313609593954686370830820983475635907992137478241510367916324541140791468331220072442801548371409351672556920247224552894953486010898537206373768979711792013361811446586435654763104854814186824899762364195746425778923143668448547320841640731426414715459969941898545163652602380661969247596499140829952224982005373362868263471661633421044399460842947671093885745338340334326214785605157160137548321892245693618735087852787368354046580133897196586034870583474396689394281954848595650194059594632293572565117008607559696935756657496813108046534791145069199071641571875016488027897462657451263003101911726531552296355361534299405331037313279219516561176087059352519857019474053529285034849089459482522317210901133759740840726944993326899745566276296316400312958599133998919270561615791500539161724039464420205185438056101331277667600713344308560666735155879651632884127424544682943503709170996519478065420477095993757847170273809254371011457591972132832010775974567393680350780838500284576417548992739353956084955532302154946195298947226923726088648960896755425535856292335067505938883665331098246018889641789109581335188091462016746316339936949707968072192584028324418657952465531961230506760661100209182907902457623567119263731624473885934507458216451927168034535090403889942650003298943018208439584639047283657173846894271167925235405235898158258057366247333097671492951553503562317279789307072408068560589883195178515647619461613060071292085233290555433258593176788194403449286871505608761894728055419105486820926628714645939895789324419186420477622019214076992140289064205516777898464045496264530190033887595999793599270946961009082395034949650031233189318199451125718157722535792334253324069211573790531184430793514153410631301009246256900547643405098685811192157219679895890326259637143777496244463974724761125069113456861554552582662304020026511230640080580665338243184530170391656999670736822268299246020547950927247909432115587421753788216943052147891509527444795954046593124315589750391984127763890186023831914966827106905013310146880921321626216224343094113377656230524072522979257744421468259245080337211973688125276575690013095902061675715207813201194531203530307403117217278361723038277533557874326516460477928684357742963369701483296558524678174029686094309198948860711611668332915495039290879314176252952228905650237469258324924389969971919238435347082309487730728221249898513526903597080730771283599926813669794574086955881832033637119122065392839266590251890547630519369969099728176859026582236975499354269968744968790333310072858948762659040893024954774870425903701174609625796654943106542837823018831054782794095134194683975501293682878465220505970533872158982094261736178067276569910956015200421229702782707002205155236057607661073182967980068829362547986236562899659765624507633647863862669107279326970524250078195582710153777730877650013287536791812922098093168166958706783398265660120801266286204222319330665882596473045614950194188371550827497847929509409246833222799424000123504916583053321790106692480421397861520780961948349961314254902917790152789496202855605496855000909595174694466424777261658888908091788300449370778764741650377786705301226379104694978585687980250281451304853147147294868739863963479664753624538362623341220786373471398526748581139368099516805328646875778974241925605811757850327404863690005707915214903644604773227687351554523206810152968128301565322616285288020516624582579744948495266945845906682180359801065928663878593267424345676524945833912231489631895933852295802496672798137017344464501307162023149083451552712094931498426546323345022938752571490875270343683004726910872421633270877419103017611613203116980298937619358415194182681793338768565891423941380787748595481177848091141663695405984776882245546994789194745734807220259615888068686259661188782287908802718449973091247362986414485199646062242184033375460587678202141498938792793459988990579421632474425997448633674041264662647337354318163835309498321552372186190294970803367594579023175328210756105139561285722463626072931756656951728758978850605756494271174616810605422684331340541741473866592893184969678763109359814972999484598395882403819087210251719345687302263407682258936888129228961959839038495576452771369907258270982307537142941160694116140596284262356308373192888415195301579702177957902618389952662697771527365777323720546086564276996557000022876737393030472719246959878428510107269512055501933984255296565343712812272731398953807869581902762298549360215684489555914743330750422509221839024860425287757739896783353193728819875536783156702120344481188347589744511498656234125788591707212079204034013599190298134447747615512118514716305693125338798996633767176576926223815703173170783062691132020807731420980952265239360434646011749567494700473508515315689210365275201134395259630170876945187466611841083290586385006942830689467322546179354395435186476920132178858393601461483173300711118727190344248337789634312630967062325259514400806620870061034989434602281792678476442387979245397157858679839122084210018129893432797130714840737094550929732067912660362273158657599426266755907631315525877934700842404002749881795561127512048934480593350684092191498340544394585548962496185811410418845336973797712170562645636977263676868175170908228915584640219962603837487876204049197829551613768328126874064677894123391958689735083184614190003704247185272045843120589369888510187480995355627599033589562979396051811583956310500771367542917777847638804010930746476958075660585740484001407183301149132039944226189272718989511537117331145044142027693967408041845105744991703764838146312209246411965555133027720243225136262918366513039796755327858115102590100189258032249173591299593252069009882116544644637681022112662226228843762816084685055293833636009588194911121059079936883502405866119267932393707716968293458599065363012380669606866594775836801730771425614693146332419274678135970090586436858353848431156482664467590563866417139635622226243102722943291329312198765092216757308584591516478788319193024120605647001618588411887500792077452827576682289820991063216231341474339456099120176771940684115616017033747088031126735144615116260014002728372611283265313151538062073444328897587758267426140944481052808176983684546003170187668333470961598089648005779747184548203665873822713648710088104454522609748791157376724609080192845866193409956372680507725377864931926395672420796090941927755977123136042203800363218824079887684425584322384255843797853049630987093486857664571424587136295316588148687027424919621420738368898131235110487783887573503866946723721659487358368405112114320413093012372288818495670450312090533271408527537449353666781581679784705194358343344407946714810849236234146680167196465793949625048208790550136468931922973386401130040593328827735952009133703182637364626682932024705101863921008270496326686282458799087367472344429478176502915559912843041289571777816110311018052949362539140238068202177023484515181230130149484413635768722148238257136396308531719388039818665240654783646928962868288537714509938511801377610405346334313593998631230155037682753069020683493023505811244215849279159439713002122417376370623629196810414405385511157373169792775514045035528710717659653249212662362925038301288745652297218713433664343649197922128296967987175274772345262817502161547358302333281583668589623390493394281752340033429119045565182572750595455705360572719982720119589824081289948101332429773511584252674973581124988746821685411632668397052672329484144804328763123969713489466701250339262125218624338547457862884460876622634949013138095417261125547501285187193861504509054506227864763815643134688958093426547591371784512412740336618250691584869024780390901457161350474577762559819395937201364974706436354429550576867499480179373203332896604125333440386101467086552445635255227025971277481201747604117067762168301681572768026683217099151397064019704284688157712556706047868483178922063193145068273275362694618665572445990899687816238146451072418009284956719218325012683837265441266949835704017258182410495667250738023357010430994377384412406940595161187787817460399229353291796092829312472837381906307305522768629546940445188006459446077573016341904049680610170905279342655369690288767343844145569927224590856321002493322882613569257228443256064653453400620302110838455240853201660189076000914857378657327881138009271472133370754242539211068195984265914062638095458159286539424418223228856901298908205228460186830067855621058392400976323816091102538665438222246477189231237370179804775886620071448429999283506483911307512350736171515460736961217373409988690998922708534019467314614555822731798355113514203338236803447816060240867334608321633775434633675416619651433361597658679144877824481764762387170599005565430309088765492580778387104107173578255458871743383310660829667191314535376484826284367216793674601293680672011681076229188818101660483379230841739962585379374679771540611864199410561731759652227205990657971779723280581450943890838562624381801336240102106364382856745742449266550410452891292490825824608940330402191784532681394008563838321904980866056682276083495364545664363937572105127336973719516931603279694628755906634616243211360400704582095376051137666254399855754186602387314127105922152456968043927006639316525132189667737137506341213819587641979019680222779254636910739918262938371497737540015075702019006963476877365748211027645669814309132883785339898351511094800852518247913900327204700426416021580908007994060118331032332930469317988994130496968640207915233345213008431395264179092670951727863910910752720906237747667011122747085711676459825950285823698889104948296126316360414585554152383087306438297616395262974300976950045597784771840672010953126139409624792325627707876658821144861916973802923365776220116649139618346304128555961659445660735180883284924935559757416935447086200535570568472597956387902264831148395536404441902317323736440334223043594106616857296008355326688034034750106836395056125810187437703028464129063228717281933918142918252752790370032750476765083353893457140529065495489472591428877912368562882756304996501988820556287143143214255960327758134552472559195534684139472886049213942234423130565307058368514319666895851291001384601537417332325207171864999061726117237394368845876048691566778822226358431833716889497710402859102514870997712124275189543629130090407841159687167353617071742872793458564228697355082882892945620360192579028559049992960708959034378351800528454068486841903908574814654415753438940884932127570026500652296685232857584219180370784274047743764958623375999819395428327979449478843645488060451672110590341282986793269208780133629775791034393327606901170919537333401424176152984706168616182117544348708169778240011192647879273040967552374104165208711136636739532003213019699948002179317777923301807791387425876421535141608601016995250227728020389753044162972494907595101427417908474611662611092808060376400201567138177254119020502118827832990617086107547713572075493920842718434528417936989506576817603771941233823860470274024985061707191181674525339813891594783767715902364875316164402511236530997868481139162591445714668530470425374228785857951783698080523802753536216985950176211680527064636606139574671187362623885710544047698075761306405326714437084549245604558952064708668264268920332555647163515646197575734998680717004533302945830959429529653263764581475721069774705441397976971488469851000315534905569619565939339565411268115186435281727710019596141978482877613995133911938982989585138663564791232192557905640117355548423903501548451852434024560448851123476630503172730388880092437784709744145030257278381747444029167798946887143818438732449738985228308391563092081245811848680049423525289476929114613247918893348673748903945582317669492849276666238584023663299427315239874637753813117370973798193805596075752122797011073200464947619147714089608944313063765846617987307800609725260344681977775964978380576476668287817351115701282358007330231229947141494121642854396462619219785655290646687981052602572672886895482681693797906608143443078230282065469814710528908284865265032548377155148396193357918161943525666760272917469982413843149303856421415068543987889618204459458963975388728310993484696634040531440470261731870742054590966888132316211460448458263236155653249195798002180063547110043945505663192715876543846944489363764648206559730091932447304500316962782243844998548906127805199506042978595858983734691529567411741325743431495280299051198874707529861727858246770785270126975902464302896025920854771176430174784027436206323739593835436918470878289504251720051437348990606942820226352839403716158157975557445472625759149352350509376256972592169680898346582560945564361476339669666942292224635776502474745335239971145350327150976259351081335939289229005225527959061181446614275957676135373714794242878076924304011781745420268631595345139074035928520935043348550775793651541369888790727562845782628334053596372925468680327351197076033672567170043851970679118910489412537443932551257490507460845395435740433246060405000094599001550292809983498182747551105891872870754346680857922922264207326896980294281575861154398132224080489340103320610541361335588106584158123464820768658801668635913615714855753581811306738564526266104841343473469458180012359093900360636493259192622622886713824712572053672555381477260848677397930490002751668138015912620782072776118887380127503952792320337232155052943495067482036858941869074174642729625287722769523821383886949896951300514126008608886335478658769043821618578123016664262438440837786448617870009763231962296345421861028476976282854265320997074902552324884783253429276699403659566176577052191773058749801484713136054947797033596221145999606634329680129757188144529881063347450824653072471706386539941917058698634165892138229680966005693443637953321468976204920660386393169029285400513403872724647445115900048876634847013930774436061192222152584324654375859455747514980512842975107253206913449550121773819296243916784266792154928982340381440959784471424110784488494490764406151000161679539805739692058672485255526748216884300137970664763165841697150788631867224315847447632308834257834859250736202311489233200511436631564488256685506247443089628689287350697463211856097276842562579295134607479697927238627220313978621256471727367243209879469493930165941919223063008437897361573285024387596505971880224899074365651367731848713546331379608376431799350281343905075618830244444932843372968908069571101464352651592605587556505194896603262878414814626943261772655648889755078031799807720038205238694340892056934927504855268256347106489272087156210697460948014331077438639753373702275532111016990716604039355974431349229590479444599269148223539251954080782571221330608347756016405179778479845326438769270947833042221653415398984875435591188438612134616529617119491957546837413168109575491921538076929453846888337163362732989108698969755832363496463658692349013064443914661956763784450315435777191985782005914557892660099240112726289175562525310016920370788916837291750912323354979549351848602491741175907258226756620313665737984549746113748572872057723597063804538981818775846903278619966846658808634635308310826445012927686163335173326077070825624957635599954202585390952536592962448447829175699306727467564047582024027858462893276347808370696567266342637533372524719420100218687529643881979910455256099823635725998764450528873880778509201607968356963031315406777691060890432386172585677279110170164333959161926295408105106208028223423461043789455221446010200838465119628241806359700034656746305840338808055498038218193178796318334534291194129478603863292943797893180613692791985303414715863550666428505622398205973763881939246662549768253630184754154358975048097825879181342498075078010463433987656513575128159395211745728322567699705647263993512435232125246419907925607697903854466313322491947053505179103695089842261605805871784925715287227308206949170039435834973066279321701652388065846458099860717832812729443638518531481001285740291432221726837451848544379334975693965807278325375104440814018096263558730213161011025780350187276504310917874322764960236487570076927072833198589250785629618134644867336842184108752190807457512954249767101940785748461388741371360674534530064504718215455180229182672613148025461888356820899085960770121036186397222549445358906955211771224828800144580704449324998249566534530782597050565740626958707567735178832000620759551339990743504639158953488946756250638821648552235843593992796813492903698896621337792696231025185613978184554779623218250662593077519521427701700094584079193717385153973597907562909197273141435901365112617137519487474682393400281956535520289912694849532727102393800177355262731386176006013418558896324427517338568873569509380118709665295520190509494459641254922630343327939483675845697102352521557790498726213005717531605229284970760481835668087524382844043525198513977869432472343756945496858049955117471329934354505389538418663228061877313275306153419349603681642015932228706015547143106430438225224012246942485562117194550927239483597846456817079082428421905010948418780431605838436337298268893416020826564420247210958554463990535662981443215073901325768329419922489410502609547223579738054222264759106816334254039128594988849259990658960219237300136500135334709569467204255390396020538178908841693604668812859786307085018050268396423042087966344624529346303271427391838182420578898333108185113110603697021678116334533208314800423284917183114216501492741985632989095469961058133774412918682828840037303493091088526812751933124530401323505300106728658646457916498637581445531308257679640032735510500979818281896534085395018316816572615284995605895055792052858342106761147374667057835400109976655623596515030422995227357770935454818332128267988650763562235963699163244540652852438946003677379648472313422753698043732065364914332025338027728244574855486003176455409243708003406412343740588242774124835356702035393384405075462774772396646904796157126325598835021034106841568177738366255148570186176289239748109315965042871414910529932458140888466249448195056639056952907279465412101191821093806285112394463270509850438122690864939344048773389020837500851190646660956727030879602825171585865173173704284590652111633808846663025905939139485164990368678577020651412533449798394737929253472593106369322898369518645822067423127689036549362445945857430364894143802641917993899579200652073230071229769317264913603286496598480440924303522414164623056256275432915744566259331721053357244991321005878285564502155136030421360186204116681010998893400893099978546571123537833402938324777221352976325618052504332783729715881890958667304688734295517363731324811252329347104803116925879784300059285264297836781805691304612837984237924938044510330797645096889197401157260250695753003007927645748551029478496569419126583556789092060813034342752955091505010160328872762451742028517509903074876893527031463919745752485272452743260202318859192776327676598333857525190425730112463622242908735366026718984014299513622717223180528678291712768881815371377766199252867312047697670182714371631510687214775474732763661908490532214208283261042650634207818561327888761460207325155989082095767011651682469462298496261622966022754698588612653738442514950045357766002912682288237165817133179630829585135532921232831548731776061395184413779828751167873794672267469154954538805122391564069708265290295765016320385293263094935108441195394208458206756183305719451783157693172390431161898748649953097299708470424446864777535996705565054190618190414180233735710064723881470888086489116765183051946317428359072639364166762095716143236823390634174297287226883014075332248571183726864967800044587920407569356028025960152499436195527151792128891499661454683216343935659851026363025076047628264624166994571398912570451911202543250314859354373159497879331888255040785038262568089740448625139748280205615348833963911039788653242675673415289209227977601036383747615039805186769126006217514290506708635002097300525557799487531452321384543552844109407915697070893602785275982445403252885540122239033067928602500349171112848922018593409017065597038137236709016038571297300269020781579075588511156779772090664958014469905255656821914136055166520824985030041336529821420860614982631161965937293595938874762188027682426835972842509264577447673050561370531411575328705656291782222541008776978995548349836973487039857899229258090986155908881544902192410691569307674676327568181040405622007854858348920921830711402052397334888641332011069789417648694252827310663559307895001281391577747788306825360389963579321063766556147244646227801920865557887037076381966743716820735679824471479234566064881070006982068664099019564045976206635140328377598520184513445071511507170990224543693569533432856364231659181273707068207115274525407192124176904192137367073456171399441508554460253122889495223572784312504457634705608853081307086236960216409516154684700839341147048860266921543350226484247258029392935783158862704718311557354101840576877561219893854285373262650421856458484258102136742666908239406652765092675152134726677798481381260499260595591239431755926745742305958632452582564254561535531326689520464708475560899954534219310095046090944906477206381536891528031983429220506054340962339531314245079233858164666289650748152674497530838232274629606438673363206902228993677297397479607307241387297629860907969868626897816557507444266503058160779324317590116959684732409182843185566747430461569746288769311506356842340063812834142127901335087333068948337900945783322753411142807899516273368857861625916596332186486792185445001888739608677570945034809885091018074181890325660994270350460152888470874958354041794964733922223483008748693168786852608182880318421152605726154962526701696755407155488001140988809377490587391787896922567257560697838190676075442242357570047497665046739618088197399862570567579185815785857313628991483309152116407234601334604103674453438698619815814663132017299480017813180339120136314215779259332168389295935099088301228626639259242821325534547191980225278135058018253781233517429711779987976217830641254217060456073756419077048143775170843566841576694645928320543116939051622628769426251711482219903223113403640388688878100244586313438639896191624889019452902063118252348082825563800535668165875419005995767184972019162604507348277342894700136328503096942005230847372604552045727017915012023597799231507927835536625561650513064957952121936406319125385148639433623795776672702206943154039795324649231289592828889570031827025257218691159517563483564127574158046315423687425723533637410697998127191360736578735499256456275448142683020751478089685967289676688771984529989819221784814768030048968717082638454344659409830544322115043034728388749127137298388527703309560889891160203791840791070982822913788246416064945902082106123371882409382731074352518098457049882078783912882965921574309896935320603063394233681630942100492246784606604248470906714262119009668744201768673513147386289671800999443229722179589515577459884606277337530531424957940115337029547186422838474792004988015696847625146046499852646369644349151910374272254891445738638740243617707363639982789929094995708056304289177702403678865059255900166325103970780251348352627099743556847115870458796945984935620760825311975384064592718594210317599864127002537033918493017344336193973927616742644298644906323069088034031738460915922680961848954529866002739466499213200401043576612663797546573088232786771983823731566159762922434924725860188206818339828810936566351058041245192974084822944889095198699410275677444780447649975559121881804896604107729965728158844866983464719506993845257012997498205301975898243092725127237016943298271522552594075809430726281532048264885983490680329354770001780249973006874795166189658377669744319584630679775357628801683631458589277536084736079281760989769527852606565339048649731589498256112310231140636695711444871790803595722735093070862337996129060031507195131586335370083114632517305428901931761829697459842505129819335535779788455929708600335609963511519291190530313015500831206319394207429616088693195780489689836909038496838530521291794857919015963816003290006406720874412578394680548355212291777633811881283728914178114028551801714282545788981425040488852007268716051712292275915075367203231906750650069073974467666485484481976649111113957753490964015697330839920147581976307036819268587756475305721526068655120774159492750080539794873825568369829034303927506749625142579166573217844148882392658050046161608624429745484149860428856173578566917361144648087238846417432598585610813856660030735828003250929391501151137724490237632428240915363529111383342853548326439294344130512901528179297466796844010666752146278385613861370670976951290024738938428522250769314061343178005531525660481786159977065691245958095930884799021585879342029500984529277887593689308742149712658251453408389050635861205725229398350684669961020401562232006349895987986333434103910884017290082651901319327781985594993338979472090604844862156876510372684450569625309375425789633236115680478028768421943799868168005929442565701402957089114435723067404595852262059550662006121368523108750739500679246502633786444717940786852540444643130879826761139257948130222359947984242783565950155970144334981049476476229237356700225019859990000504831183629252927615490338867874473114827036438881737057679794010339466038587357143142327584331093918849301786230868220200628884256587059210564295481796588999632639492916610981323810459418439510645117848847522871618955074297153250491578578981341775762317479155252530179041995926570418471426226112899146274695227521986854940637082021267598263338285960122548608155500635934924210338629537471395806236793197915903346797434760266982925309249200875582223087274219122337842511166291283763015357729083186238029451299825918644386368610138106256279052973355430510898672230080009354967962399284527373453494360928715851691881608010891424446415209965190991355108948046950413969295866797889327096258719797190235327352363432661934154947067113457329738493267042498538210874843556087415175871864921371582204365801021024359281484328180116409716397608731467658173407163583648212843856852121869734649729184782562360291199936531647963569389334624081764933600164657164866675634612431529777396661051349185084718952483116023611518971614688740422599985419834189461442937043657529635350843405776118254569043524620139890794798464865727234794721463710492312862554610360048880553251984950948061898316622468656888226689630148521632730256846827079137747964018108963519216499627534792858841863832095326116093754636176894270650347257637227192086893723345369893182366887408687543463416899926584347968923674263628543731757617977683311753854234413022044701430456015458556839522615043781715353603203791512495952740529323855575329435645521801461440119812008811595709137552564151570262057939949649796214219465932519377948707933168609281657144152481947274917619645799615265536188710030183660810168567084248283153164127256186912352033745875156809912722423676709258598789407673205964259277604834088615956541279889434088588274383556539839407859588045923641664095543794883058197751038832056806580236359170623153152864831834730581649125719713600177026468513817515999442840568964663822881163767669075101213235704492525500324584486085130540573367528181072569732409416910636291222801261026648190420030082449028450913337318607417472505240883578388623459416247247894526088238080965770348398719992920575832482220513936657445302469120924191969812354520309637952846843482900081494701899681550536437791303813991196948375026133469385904753611026687330412131494841342839060115152872993169104497030584760639999546155801172016778099972195842604154987245584522155995170258606393189054803678862857488173653511673378382668488476539957100352092539361735160825418116996498063833834457127538068695348453922916558383697761603426705861147977229359514683279911883571564730263915629364414465230122610163714130461443537930729828718471612160550924925781266337547896964979731242136504978580785820426458193538125518280877158985133859590699557784979020803467554067573633169348003658531508919526452068945003831046179654813359121428416511206993616031090834106395809087671349791819057139731806297759026090834771090347427731398821435040242298421287233456834112411010814321951590293984849769582914376581134484893325919631270867390457042942309857450811624318723722904806573724431216553961934330524838548108454499945710947633364734477169073048623045781590732822243615220617312497525030040704401492909723954607573670090717012079929625970260414012459941721813063620262385553234920267444063255931406493242907543001019472711843379939598169428646013713785647105554971724901647335171919618756324623770389688180514103392624086287854040672021088143014525449662087253724043865621569704479380765260846172605388780621418493298484302207952011846303367081723822651031271572578310971325104643857041583116759236274212128540991516919082182599272168857951850366344476852454224617558925704762828274765737854398655033496403878688065473705880378529608656207790712724137198591742059601291516505129637745646398292343190491029495445037997957821685305192340653415292222627557233820071029762624216249184448381213892044096014287170676996063948677214274439845318563831286097535836678500817719754513180244811789402559961541865161700261950094175564573600072032607328386683451749149553258790225964602150198969236733114818175067383838415525412860415618725021003246542307418499926264548461204088393803094737818889103676743692864348702360866576199961009016989813105143057209729553661234896552832689402086885743603043346437299903265625584027050827885262614295929022314349500120543012248326973496122761634413084021148848037716774477024089479150458835934097024651919815690411360110763389368017669481837948263418945690975053874839440872242036433491669514710230633762834636351573652110908088366583641465488450362255092731639461281457689604758740779591451844347610895479271725874461665764028986945858124383650656777191741511123320468170142120447507402301076286931090786964364513337442452965450376884798541585593527818721838863232529606350225055204092356500854905141378570482150926853228438042680705308847944157116820605151443994814869124088617648543293157705570956429293104805213556813304684176723490708550730698450551328497909005001952478947468393584732361157199690754463382136388159799827732443015421074626546030031342595087601083589685368501806941199240783616873989634704820930506361294819734292034188695934692841201279816770936076718495087736295876517826287459297178081475964573270635938974328485258807910443178956519814588250585673871562204358052042164459692154043185660678369088853235224365196088311522152203620068920960454465452065068165790639980389540469796447126429071886142419626711601047695750326715559639967456515132092589903257721692144675554539009270885348972202813889826773805210357366117403330415016248428757408148225353064517471777527433029633637027003579936548042922267800777791618301717727071712087555895217595319675693446526958526621845868678894856896050877074909641883096335815477488906081961672409756715384842054484500555433977559467150197947185717748310053425821779302276133475486283785589958457314263879933366246583193162462738207152632889553786322420578276735298553536988062591985421643566601722482216123327719726565513662203791427348067946642832203682449372989010670525198221930754543507235630685367104141453523108810164636606719177363874829991772305277503101320521090317461043400694525766655974580814394455561943783689785876867555819852480378877280454029590406695512620708158519193403533504911332859013207349711245059439180548954313918564083983275956272039480853421410510476061879060815113755807736281288321700545666296798137944350173262725248642162411182055364609785341440953145530789274804853098068606313118947766907023272872329763135221538061449721048393978224919870138131153902905355874324233806295149630269315088941824137666781679292012690155839319518385133478749779734345431202193997063168694888954428234124293717231721013437928557352470655472455510565077543082863755054306983375483082785058959668332991762402822345627556415128429489566150497414834780352717469938928092941259144779521874401075797799033629181226181626601526868177485796415108274784845353370116474124826269669923127081207964708358101374873997356545538367753659794592592024933119800633149711614996712761548685361024073761328228367486343092170184409081039343969174209404269088414816863213810750066206507177264682016592988292304974004716847031425684391564974384157857090018326051930514290372835459923790060328701524442001329486345822650874489776630231687659266257336604140859483342275970543631649879705703866572360525712878391230222966011484527767032293101431596879514830399662408963578460052378830777496928414979423856906333811100488142067933968605946214683094695941138273760852774654346583238117682751332465690323037018549275094503895396640963016417076489706626999723162036548767157504708785688281589846632100626737839437950336694423902008372031453742295082449502659940145341972207730393324125168801478631277637363186326223307147271407944035742617387969885778707955146466726389056625447710056563130499259925015978669039163969019322417960651392235394587956199038808338183086401554331655987406581476852434635828843604595862947201378274455304299906030790493812101205969058850882000394983543757885666161285298283386902888384008153470949389717946495184679678070030626195657043935277452091119195384714514450971569908302446487841289280686131107472883617599949319129758437205235798084483836377572125455010327573042241661254402397505110576696857484755037367511070245133385966426541159550912195520828420600027134764659344341669749560580477760141770574391867999129554556634113864023192165960643742820411940711835390947881910333635123146346465972015248213023972206014930186479461327687096855706774073629666411525389481055677282757148401034473123528435083840570260616225083581673175273302404570282598248827569789005264323342197656652329318201359798965369489809245310227351660766135741655744436919742594173747958302325812378388002340468401911798583841577021036093240554055220767752800795084240723180845388573553961834028184111347344841011606835387140504678095575620371245088615290468203617690304069355046060244363316116702401915828125840686237377208611321517572809369198936835394049627629227188252857771355359678899613993400432872945253736633448337110625163039516062484965297087216489639172615486662748510145971056095015601038871180802916845925964490498232788974374108082914800645469188967672780442085939583498095198138443621313904384288295241824225482187327234546645789459570040169953044657276824035122563672654136554488974575008192111636865762779471118972202225076093329141744564978097511526244194330469141163102435161622757039100498630712449630910320670234486297585522472309390293493185831588379302262915611956411417385166459096072227121732967380517458010113967507751539707458005244789408040862067234972167910112802172562140467199568721344579183325549465526341754764319091781257229145432093496061927189175537711211632986513068086948666810029707160813851372506165993799591522677409489270195589166354493864036898179578465613057978395763950676054458314874809203926406693497480770562057158972901281279263545951537459653329738713945310567536173200235981386335741245892667788640711786726599099951056801868477085079752637050402202722033300225847709701616293728093751137680882599190916837446192979931482225578048379636073494414565929356203025563376673354661371666722157735579068073816529442295333091976309410924709576334385947504241718507836275236794888176750509587787707444315391719707863981143048458645785192427914031008378502895727155178994169258430995108599808491954182691697402282442924263167235706799905682652026044638478850709190284564229052262209175740761976895952646103586386664203592854501623981941771520557374670137676755316612033401655589704413789319529087188963197865809601631601252579829243042393081027068377597014759774490288698839837437196125483686366128877082610980402852838795000084786366938662868614458887610665755660677887802305096200961107884698047642210791833339477058556041111469492384086169059084325024994296624963178463191395487306723546372927568915018017426489222275756204218372641100086254353823349602341665216284431669831487466738167415382130492030068039339035851482958109878222249428130410348509973805008109182920409365315168714464036802590888713868030413344311828781367519641880819273032782677430050395322352271747135195264610176648879636735253248531544899090054532541621785728530787565864621725932649653162081340981466160562037769197264951801889914027160537247292977142547880181288503052698018484291981183575185801896008239004470500220795740794288688481484305674859197942114492534793581606801145076484897327851429771405244928028333321037651108128478414777327147431492315081108691492681993669591921703984903331605879123602253422073544982602484168780845818486928157229513296266910139969011408049793430519512500435900245595223587443615491143701303367631638190023691657681597643794227946247632378967125689079219536354834700646467312550639786819627044051594615521168470307372723571036997574533973496063596893824566129000069494817460758746946833231509133896452872491593922462016687168359868126790753273197918721964660111571873066198568318669760371043634644283771046283718974191143013181382504623303317552642267567464935570505356455438305327621667361692761631982490865384912702831296896976210724106307714223417850682410447747718772185881462815357940597887933133826992345777919449174623034993405871320374257885920606093329202463027024285838508784351480503244035515126234477140469391927254718786824778914551654324299158185435013894364391880000877058225455346415378035365852739703157446115693857711645267071152114771640479490310764291741675097915853087594595925727614775613079022354483196414588382037674500685399910561950667379598853918580818251745667260008626639960043265413456189701624192517270100908712293719209324302999183003599095929338914757118630264195702680839864323616982233129632003939548781508367981429110549276576614506546811332706799221147698103214448167151721583888849219545032150458634019751326365037069638960236842578357593497178079549159600031763085746697574513101303945765023918325462100112692969847843627194251153305329751298335606877021899593499068722650898690732029773948573028795061717784613188228221922326385371128704882403787728695458136748418601372859985930209780922798154398907273057163088525838003671587004933719773385132444255581093626195324188142592133050736434354145482551228655864280088513220730842940592926372618204773326274602767561664625164596084366973099415084235001192933974796439226840383815353573503426940199898056055753067212678232047045715974933766901124685064447693552334003934731116379003118732031751163366449442639594035333164083195157599829967100457586654264642998629213871648292465314603944222783625575562176775757521565184427929823482656652883186204194778866960178936838655925278977930866987759728864916720921404766294101405268630047503424999566779667507563675965034117135371952031078270743433459005055015327227143361389062484414527332950828736858835850792976191437866197427918182589225880735255687230048829477858638402955123240247982164706661296882406279305422814801855652726378564459437191938763757960032518587191867664440627739069244946293025747402955604228085061393206040426865184740203515694396780440167518298306868306779223331591685832677816669350547941679908912263452757626532288943549709451606305423112739126252259475265929277101764827780311444580717705013633704951642816701259929650201503560001662483447233574814919120497895007067019947941535668048334989340585653714387218888381876751774644935607710445482733643091842376608518067427845552724026030285591875968018264851176569145895894477421751572171444975180038517387216994416037531605281379191001891156828162495518721305688762619505793078186464928855359825701299361666700964326344547240151910041093962186510853563721760177856111221447030334405772156736147343873041925230918207060690285495968500305293855858167105935831475027369505978070843463409658192939338463744933993625297721349246456766925251696683912498771820278749623744452915955477869338345774632444852825644764889575377516862941088355171792586764467065404677542983068404050170922614082885875501627453247328372067104301641244650120916957262243452973929055414272452768586607939822778729072406129106626341536792890178716074145320712444565925512097686051729958889043845223312206287833548642738608430737582161521127493443851125156227677582704072289141395039193378831462142734621338720674986727176212208563697189335469112082832224690114792157283405618586011479142770040040204427994758748412499493889761845899360640237509048288199325639158135497490635213438794873225203579007600642475778228149762880998851189560384511205849529431142515793443512492590630998584487326491430329014635180334937236337057337393229558892823909009586946685944645167344367867181156188620934313979346188389746053888764152162841230167524386034994180149826551891661018815552484109666453845038221903082006777872511833091168105541925118140256050604259365879570543257513736392197955967066756327108309041315478846726434135097006581519791508372460116455233108637520268542428721219334848923302088886778546957727360619587513883286362287650749208806902632616441833645024491918153474068644009700326595289406306197682537366626149421811175308287097731537307832076456249776588275017682621291010399253399660622355080903870571201969893312810267345014041279264038860595523433748941497989352748554424935849095193560607637661378172829930545614946045848499094209404196645889637040550780440482849048966848394383498985265714574522090619254708869169011301108645467283509495130079563042539349542688503908242113066647416095703634143215177439921503383942242564839072901992246738334151872444315263313017048984102104327961200844046444650336208162275784768901715825204330550718401694678922035015549549096276312179686366656695540373624280375373059324637482676032021508947471687452583614010692069069437930090004191822219450978289451118666363829275557538625983001632846527059159288127207747950126688826045038169245652347594509638622844548421661081109318742391678377023902352040958541060945075328981184937237100390390723378917525203917810406336402025881466066849748739868163321220234577552988545065884877431939108889654505574632295037496213872734533159597845595638931268678105190235873518819550754156698153346532671408434700734152566448902967424099702319273106058923742318999204995158086259858641246924443543117498715304267430365849658127722355924035046822236987472534698739550444207822657419408225852699879695576077311725573046052774454805094351667159534447680946970749299952887126587396578522333875385608731557405029835441944549648130061256632523493229658590061889022797817566953265492005963098634746621716476319161183808115974593996829368490467334082470820154402907688286116066136723637847397055392482238968508537315750022389269525607284627948807610669557907885329778703696178984593435241349916075986524624758449811571627639575325319511141475964871472269206740899219488434983017293073666243817231729477839568480161109075905698304047789153565663479707587128287327218874378085217117031962323545275972051852059910797386768347367341459830194513869165935855003701437720765239708685227424463541584968801464962377447839749427491189369962954034115554756905823562656924256798915876238732953751960173213065356065531377294936511017784563306745791038496767251991289471520244567776079632089156580873706339411665696524385191076459629366944706915433823855328339036620371431840667820341782485742284808588440947987669525961360524241920738982963531862333248176056636352712937761964839906730948014879304739824654267462670422571979472520296283807079428807791208817477785707463315362260419383819293584504924502376098814903959855556169601210399091875080721582326874668337844052516442519961300480330870531017264477782808270874236550820058123322072322010491659302400728381602823579180167233163745245416762554033670861388770784462417691488161507903385890675176487636879074716920572517137669223551741497377894036039012858084932432757732597729195079109487469331288005200961189065358190602799452795040817194517961850136990203887525024985375335765829805545390449015909262050231014791738690601600501792115483090990782047938576970796066867833984751231219420514925475393412441726140933704335031780479569973230256961110812344590857368306476866100277815271940547008261507359496129942718746506818701095181081234794065887782969389299750810559480110414325877749044627162187704804831936175963755323250097243391167936675235653530011643654608028157243482770363846255736553366161432949996840732895026820094153419297497780433831632360993152103924768831283896248833246720103603933210495726037545827020998569942889479341665360409598386364263127495711991415109537699318072085202869991844611010735731312435663152944436980176776680352134457350451279117680406691380583061739568431463345513686814460788535672628261588451440572714651772109901630375289459627483869765244249673762101794423336141543926350288217271775181523548493455889013126879989808285560398970585933018781932420081201354590784501136887549282915698732944148006039873517190492166188580285809849518078620020595636458374080544566377915178565365488697246641348787152296143421283439571893222400476853151234682260588145672333180535196959777222496865196126423829998870970001004837533175820976944606562103685473756684863810002711699894475688759979587315149606605941561680632633775413470624444823731428835451120596544492301224185853820881078864550627573087941790903648147830977351851543281118603995263169509623867255214264392737124199416028255933233582804075203820920294097006268400207283942178055891673174603775568255402074613272265984799119877861385035130402044512059240265861675552921092170381904097989768302963999350747170004598500037610776867926723512949522486604384283212741396298552667213994424808559943703496539501008740130632408336596706428937563021282404691633896840466352491488053996845155443536330480396585710051317836795519936785512753954329732611393563056233401072348777373031400557471806490191556635189081467171116499002051397535785457752220543306790587225030866369606649538654712909630126317569939285010344984176061956707442888853459830560199206219831644100465432405197649049376420896024108842647412815594224015644765209409971712382897198662553750248472306863605939774301688526761181238642313746014884424196049368953760458347305869859396329208761605233742411125068794356003067354423336206485909440572266609020905672300148000104629883538063950268324294153283634332074673160385288934607474701367564755977665007380559038871764945626933348904028619475634249077389045715294070232542463033197348046289309171931946882492869550317102350786168386863935313327149813757070697425502018483648327618555348349461213951615157203057102620701456036093638756150418932476691127200269257404033710228628546280873065132712792829024434014816282260565644089638494976504868810683261408125463713699280974031850351796424519203221428031268638539240335324163222329031595444011651615990846841208861618443316850830500917028970054304989404678451590133924307701140889089428843357441376278956729050134418883020649603916548757773952763681175446666155776344348027567827823513848871547073420677835249363396857178433304768429513993108213290002211049244078869519129951225323634548539344872477532930441079921058829770835235389274588947244030044119879442348010323127361324218629326257213122274366464073100944253844771082633358344167409601035327603331182524223978325215410650832975578402858476115138236009188092197198360056464448069517446648979126991425811660094942245615646912038885505048036574144578411267816668663885000476395466019961655539653997219020479852657071907509250028265769021959364688615343157887963528394582548429746372355392762368586594221269799882335274557759630849498018694906082301073379837545156217232178958144547122612243019143795945754381247529723263225962283949709654222273579083755325882610799960658821080207634213740961445772629979832149012817551544130929021322202919700141618224180262317574647659309431828727339782600547751556344144319269837036227736005720604701837835747292459128864143415238681432623663180393917366123867390601453451344726549561592224914603226828643597556554173420515462450323948280622914379100728880504695495950420638129187644634800806443551064812002980954116143184824485738576122504152530848736414957050935411693896166021376230127504262267753156329169296721585755409079773088618935980956195267005546040296605245572322136421744165469547020826854180571373301004802424397421010204226412135210542442844847875698025017221900801051770863727063806216265597652323970302982006676430051965140122976888610860278912581648920545514881861756335537397580204892171994311320522654910730406100063194907614891063527693613173453894353446338656037483267171537898969862188733339831465904907253742351765845476552001162402632227441565090312039485634426287338274355409297883715698538365589152706087602918666432985529160905786332830620397538613480037674717610118105981790200308112359318960352809894056650355359050148079345064962820827340843380053256247850309755021174371102586287696521295025859536547682818469569811530669831052973192515018083443303822947854501383277224807093774425632358529492010307787112780235370075767172588403603533772727074763090224093428030823104610570967348934827423296292804882697163809390648771549698946750308152762363073346348938637632780243420003419902413108329734383070979844583418630903837311815258715241353044138903021624884787168736480300611989693937682865371837509966239734185079298427717415496854692770812589411132392786144618903211411038784295697927014836554042716984311502605632628296399140930637437140639457832487700928668588184125624402384243280943098266573939649973171744118328390911663709444413897589853036840365426029626376738019606608537315888374575163328727304429136036001407808738912215319225184652704873863934920693478583919797530885449029125493173792792848535960469575309198096199484071006100559037911109473537282468555428612087874097967263299046288668522487122926774965058515508621988656294999272561021048574541604008880950732810503873567633328622425756382297506183903744719762419309867622712522199732969166715678304541676339406062268109094133724848326081976212265952166812157490435584212891721370760795347280807390391527114943181478822051442743977905524840257230909934294678419143019054387591417198493371086817734115821852136795932733511632163156163408161455260684491023512504002562024390106308319218314045474453220382498752065211259615561630897540921922565582087555884465464921189755880664969900040519287660876778042144319975799095843419305891389188074319037686702613127834179836055540388366682915882231059026817688611057761487467024460281192421095293560334704752490767501626556728866525750615626163960797420245828786565340156678723269879002791288122750463235964837021156009421039878833058633813755219599836971561860660489215755031833112054203146142003441507669993637174921752041626245504805137077986123883059687712662620096786272764401380729363226359800828679647999810319336937344707673624183243464798000933975835858184447949550908019831710778743188254951356876070845576337607483547744084767152450492765305047001689158034374517621955486810465329709547413130562543550369616103882253904249774831129757420323122537457598131456599908954977018608033183422169580887973602972054159544947061130219150453775977415214259604961644017769387402264956527864231948054302644161153841168767742823460218980550348962733414338137379361447474758415718524286266062748809898008363453203332906836792404508530522536636687882765883998005801483088432663820581223627333410077645306693262747790434283735265455829087119687239086922971285582705820263352722362391322781868635536499939003392729494454348252641327662684143226671561872740816679586557801772384246125214924841225651901556013087664663464929243233239383583341987374512740763632854605388226424081283517289385297575170145137307350353953194942653366758580745691968195880268377763009857945970323065696313294332803888558454457870202739808747184433203746041980053006156229034349577257086474845718477084642151464157168244992097420805606243314581234141424049064367516450628202007779708479627376023801723005866661058388652491319748443516449451068691712331254084365317777983087133883504444762045137379659167954049557360731794441606460871220674030743865361972448826313980080625422339569612970978647832966430963426516704426902777480429662589712674194630158987586542805048453994083222393324139182485622432603113897251996718877999249872533006707996285793854595324382881357318542503012296717953872193521433001042893563435113665743994383291107304859604562519857653066085159325952573099333793999096320300620718900462001071262440597222496724423231099484665510710047515476301660002252270383795169473953565824001093375967907854046283119912779049200571071877556784223221350449266420000345705809248395180729095858008351736495971655621246150658504372038484121708391194070740632804664123658901334513224784087664919729166571369562452003441858479190696230745874183511210070071750268890895520544151287657165823647045545947459548644036536237709009974063297506088814649250668987099082886637487315549793997222209199787495821961778169290449993216652384613190424009203517667657176047238019167520686491268255839065502831240076082882839752494992149566704940530094310417412385365428333959613160035923203214433113187237424919670002327358946634099418912536985351157074415101729061584583598724169824336636977660817322559365701608082562721351890387232960603365397039273311473129905656705758897701375533206207025610610447669553068930779980463743391836768999607594353882301350066289329646016166846252762152583167823552671022924516180598787416980326676222754446042811502001619456072600479067499193900391780997275007665095191532724531227065442851715824124858750850889410602985807868916877649791742410552399076804849907217107481228918163765602345434248024729668556399307251753243039742013761467559047970359832296784588003011028849473489558081936187211420837182440764490003282443189482908726538857655789644950013676106334100465372931884029497811089473864666960530744658726255273043066946947166468246997615501515458248886672411758591139308026251835691721603956216558552539268615230519602206852000171414836393419938857103575427619711635542717123845810119597069600308936688301364379722812604684396879326506926417757554642234490601785646941712331128115784537035716161781581710368832783508193163318145374556661513235416222445443415170593495481310811701308426870903807963299710156240506462572394485931545008746718653905820177248501695120943477661008550770979409968409073360498662317438970050193974421349990889746495179797208615093509857314474295934286330312008750393262553444532670095860900795331690461334065165850451485475428326649254015452158487119934050424311380089774101624921205531893592859209410881826417926292328432764371004953541701490827763227346829907687227762740334130507923979515161424914266496490037189520588520923260058159211729836983259505577546830361815183164917678079469838872330969584814371696935399827171591748394759473460469290208717979933899815952776323179560667061571883712640169043072104560378839743505581570815387485125289255809432469958279280171858196690872006455784294662355527188246880167482855098781307587709894336254373903410808848761108605824562290100527454827730780322117035846868628412255183520307616074800643711365695899665243239883140823831749316531824316705498260490821203617624680647329782717877039118444301235050657040643064370239833185490808819015880949140286220919128897573860257075150470821391599229832886754742021706592877747164710445945357061085227711643605024308160888755172701240144683540972145663737374568315080376825456930162170324546221282385155810285621359565982685038711261083230697348922219279358675686068587074107950031872494220409414359747460463039152460338967999887312996808828294900294183793159948016647374207651114963407047540141246044938393522130915778219684481925340161510109943414334768138660645335973150894007797216232338342970101831239765305918529013080410398495904865536880647523698596278777163526723156233281190854764523450494073123516471651239932848747802433802538717247666909040679614188803714287123732656658028352070603717250334812177265407890792331744584967538157033383281173431088838816310058784010445555018351350497123862141442498567154566137761738588681567945359511553763433853141533588360558015514839405023221573815023206545301786685929564444145519358507915495682724420198928861699897588519268907058121418235714016076108596711065561833498363458495664692429698717477029522608702605338077228146416247951602900099407903385824596773600165719124753545572026673102097112214499851753140161289918036637716492305447666033137699562793440124285073089212560863452579379082311903892949783956909615903613454227542421309823353041655914356283108821983312885237565718991969351323656668044291923973910715328235045282427849893500253706934242820661296345143979052759223511797743131734020358726295804730072245213615546596874240249041090159270198470867246490242490578077974563336808808858983826726096704890912697007651684824061669144978552064628780368997558189978090114642836418385687189443192338432355702538792925786852803604349588071237150480565421524214189332901961966568552607493441356904385557326270855273010768112738628271208769974792672061279818021752903178006880467369312936805154161375635395800470172172249213726500160807274374863429438044079522200924466143446891358180391373098017974622239059420270341055973482303165285825237824970987924136292199958771053567831241305586374412992873390994894483639432378941783694532293435917927960695165685924361749143965340207936190929374594306036507348715222283425225657452607620264608127179122483825448013723740231115690747877095692228945041092097448488438069372685103798077701843783890884314494914287298160889462245101146871239948902480393020380968162828056413367689274679896724008933504324873584595692601165044930898586937060831086289007763142980450552151167469978983359082764146822181795094056469754968543072261161732199734786781028578082181388396851192604611907269477844173428193628434210403521477157450003852388820917602595286892735169370148742114347192610741508667083690351206287679798801822346879978058606037103182495485983634609096301417075711720572849329721387858060794436771825552883986062699994162486059603552172221091521439075793998086061606444907005220011226917549433626546893368699899540548291465017417589023987410449159696077531128230700526982841355376478332741719322953353926267538207904440732451561605139136724757978636004067885513580677087952653826350230837550868838316860257373144453442564407517782174747120997382021049002038196876063899690119770839538725356433256517288163871719742629360426442924016717085038317970773459529505274588365387570343271425169220032845384886523132054827526496300341640115129952549585756530642018257977482100559989307127000082550942717523517989002344889357677768841549064611758366464962929398826783764854998144685872721999306309908777202613792109296348370801557853541441175804528998082217795059437155341886021209965095647537936430380291181105917000407551444457935890734961149003580333302440809676528077380003514093332036673747723160437989391500258076141178397475858641290524354487918301784254821011912121598382154781344048410451658880778435086021148532499981772841651152066954432562504650166684165516828087799288558863737477562823367255905155395863731527843547636279050032778165775925575352181785483764098613544760721291905287954372306512455048708093086980341339871093848237386897115090872460996441634174183747344293301297523190439771962156450301692221146760675840005129383246823485810579345610381717250710981373567297198898774197211802846139586204574420127558761435767044665429420060791318152908372172813704816862167654743939639345186304646454222768233210331697085649657931747865571051995938647991000242634045944371736798746359248610862969308095759321558163699821826235937373805692893322716543274668101111596847561237570851941181167392360579512396649756124225623132404027841562237236536624929262102624573565833146000510273562654761905462276026893564261078895683793063201935280125822535535846835825203006318333161810939220686415450704404683842106804417072743424267224343146732666685462794203929396682035611227569040058035161639698097809581709325787622627812658846102828078973834772723792081703540808372237097725564421639879383916722750362160235993863772713080101599848803182809876948865123438601919856368492304281010724604802719483671406496424570653712457091770819979302277154024392281281421806796012130805200157816473155810172146868729874001668088101852714693985479441097288922068963955263417926638077953135680628945020511073726509162608438745762525447849711639852509461018612592074356189473851885253761862851032516682204408753207562922375478194902665919835988139883869335635467295497875865421889177105107605339930419951297850745891817800731767606554658897141406228575351095078359130421529267663873803134472350228388483212692575248884292580500904107680917663411810987010624635551633717529981302755189242942980264760539438696376470710002033183639244871283588894902334992413426931696846917335897426825055166475462702112906564226662719131112824366414497178091232272361412770151540292495553373990722006153643941559646287634675300204930478283388600211148737302089371169923965820158927103933512274766352398931978696705909529293269292214020801637914394965608098650254672931409019440741032137808726138122147977799938912137469618033852236419262618072785612734914402279655520299845411688848250813578055602696217598424646919001107182174750995977129845168097506220480036079805816257114010188561492343569856987691092394372706422700142500731805351594693260800994894485622267732443360937402913379146606843594609897834583800122049784092503921066486707233396642424358393745616015725099242196566229644889648519217189524074533423277232826792775160229723210758165071709107859005178154050338427859279812567173125558104977426242770178202952213863468305572190664216604238813319456295293055246123471037102063629539448165793305352473576017582719883419589677000618412116771180627282272561499366784756123317806842243804924564841281299223548147846853384310221451288231892892882251832283061416268014387470017941123396516146419063515809862113115948040145772388187685999708610764529626996992047591471108888487457540940201724126006991588060535365373063072846457635389363255873467685898887425528771933594103913339836839601731116353505166188880930549250158547918642287778646928048561028305453904916553671484916543353988335821501991280128346243479796298887937671718152634469254964022157429199455183401329779661685598421647144785208926934077397650243221359258078432161381794130299709017708241346154071454087478417864458693670734362193475260412575916149955831301242463010585156935503982851805618065535395495546253951733282793156927475536955353970259197776994206858117355264451504964207350400864516822109429134184851452685852775715206161708552869130027935757683131957128776787478261309469426315139739294254463157297106681361862438223666084803329663520119444770350557258184944661781456813110027139082008205345175602555156234883859937764975289008778789629395166415433492335746590457374136534281432929899306640677759918186498251028467969987331732169309214654167129553973593554533958221437648621486280180511423083258680509751032766865513545990031311697648107888358660599683956113388512241194711365769451371732225931236774637454321390776388460245936732348390772359888049182381076306501817009229772678986035329812119278211191210845002498375586572186885403138330613965970861696973545719451579009520047841320390373710241407453037665320536653984823603091232405747018266468399680767487899827884655842824631680771910050891193848024981761915695779206349589244738886727098861366280343561192698190640250511961816689398219054100394686424543749669659665122993886962154186301126907926704000753132474606539080186021617086047987020125345035269474748800992107299889900122566243075010039022275163758790929636769323654011340847278757414241765018589647211088081079599416828970524319332287846980899632447550098623781215818047683736881969741789064316827907249652827504324296725503999232028182880509969646968849045607279960331561762380834383135916179842141327410740292786799651612396238757773928231530924713458344244905182820958512572589061688521627149381676317929035320157082220239618488986251513202425417064553402413350998859051530116866066512709821278544685379862997892696870226277091031745032800933617272370289372941032468011586277162946868178750795063124094353846128671515925649790963975988381420738665386752871255912171920490133729440337735623352248613630745237297856269851714260649862743062986400891722762288398312400261461508089044785069982387024835548390258661844634895149335841739383003837540212367412676107798260525346415347269796884523890348112645523535309660129465967267541437094940322253165974848074694219205990036130070490882384108127509246867323122591340354932698522857600037517241784206488964890641518138157897237995757212595822188000684966804317197261700526370668410113312448672633296645065645114645961664670922897915883928996834554863965725156958752679958224213751513240878368184469128572658344750375147529367983889685408194576326546755509907305244747490286003619879125213070526588822360180684725816716346118541543268006575746429249315384492010306228236096730332276395635025852060063860570228425443750049729691541492545419007382779656147592293087457289498042743307234114227990165113902297445545558798655638196951378315759887407664418565603463545160567257670399326309083781782760900922924494335118851386806582749063919724208955197014956109377450149117369972796818954934464218038683286016918385277889731206584490386931666804950301826847534968335570954535742473013195715471158226571358596674350261656931058621330908216097740607485630552553915526087832937483823792504857547008552356316629418525135440141241852193178529778330061771716673450289312922468907560428269580622506306498743147831256858719533239006605508154895616167269943945736362954441326511001101104994136712605098608524553559114267901688329686995661608271764999662524967834867242147317585547511838122955402113244696990076481197976050214015511025549709664098497795221350093119346486991346349798773557923610179909146180295791286255762721103867077463330492940920385680143173048441729129986620449476568453303199084208218681443761274115808101827159096103494422536199200372247590485824894070537584359401198087274840069105805740463901213178601407022857733959676704040994074800355771077539594817532175597723960542858427688237441553359471126527275518909633116610477545250259635424155629108876375086960815695638610900760885629893468550899373202068908730466776217040256088322073061467975602261117411484297461116782077632350004563089145438222543713796405337833881291258364071817355527154759790747554481410073834853287675246156084858455133497591263716005072386175144345646853681697771079277383073583411161710790691096748489627665277716768626156250106611421257171797834866329986569888056856882037363315512918506319940420124142089524057912078090224264376842549242535917601960376915345690158005758944993189074831176097045792799632452673151164271755376714540113970564502256555902950039401402894829733589849560396981286195840001220260285521470533639881290835922102377785134074881051580241058725020685735513909160298420631107406629911135181772265576760765052072409516088583388684382780911547151530845717907930229231587264905396277015865517824075360001643152287509065908468788625051381403624893704171101100320613247344851715761031511208430646381676917469339571486270684150685148725793544865129883993810567975355973050684172846837218774997942200874817802110334747437648692357149525117217809387347456081780176971476462130103315600836966278294832686994693714657059300003226538480153211861411339602101415358918017377902140200845964096103365405560579444913880830842187028714998679726982441756895444054856341599439153411358929126839733838496109058055873669817918095699078613898482633376310075405541414973614133500457924538072290224926637531856687818385065849429832589626812749053606451248567325165913991064869726397490013829294308444524151566741046707840821478180008690192862121016467036226776849755813304890747781017501415348121143868541622751715989271240637346374197953204773646511881092982358190052839945562654846600459420306072475905198756314088800026544691326298533195520078117675150585960931291625561210916880657847557923515244286303812459242403982655416118977883417204890082024038894488753253933773756800982435336242570439081962789866066894034955288357305009139679276943540084419766578862567453236560449592851317640832808824372690414186650313052201758229084640675706833457300261328045067992103156490067982849539005356091716059699210259017433532311651286325924142923693343178889035247802638664075077465373613478898689863511013810849003601106719293269269340243931073798285063814737099795627867530993701861332754588473399967702568403260859994733119035714978934575122233282826066610030226614334080973266741662411161358651178077050779476672412640889761137303344453119460378005054827937701524107671514223843662580419979156334220832111167099722578530971927406884214142229189121514435845450952535445001280897001914515911971175981194862288732562553938017297077614601420529990828644183355662654159334141888282492113135059134368011497057696291264223509661950323443284780391017218505550102874077720688322509746717243902508146569466282071437192440702141644379299885645504008215797098864546900952275276191826727491553522105946252199183937094278294133027510116430716515255585477140131699881611572291842458697688165705358801246938786952522726601968196702879038261206441812398275882813993952834756186133942260384143119004947809063971010436151693098066304609192634781390887410537010634015915495564922161756883313456743384865904959684098285101701138864198374966815565134201227147139573250715814266270939838887093054375737480601899816996856925955332321805643061035190657884315114301295816151598772952101223500598780363064643124660733761290247053295397406933961937516308804535491757261877563581025479233975414182458294226382570108193013993674707730213024737347831327678742065876889083544649907368373522130126085373382076325327924475753311059978222266537231752317042831172169333371980196389198179387627867408267059650861791527055814267458066094233452172456645428210570559060751120884904402094262779309997703641735978934699272005373667760051876433807787518320567451130212978914813351090422462564329204848884678625655161353065811554183953340175743436977285661015171070705451182837769967432859476553674400393213550724611467828884086989793772352676045970762304620931436532162617068190112945011319034644658996077252939761835136314473399361325814299192742312840449774974274387478866541639548448562591975071785394277687366678679902222438416679960557503703836070959845568316690659921549029182280546944367870939307243239662295732605357209907109105140973255361689620553459995958873865286504510636108523164533535678828338720548840927737258400656277985577129283035920528460792877718411025716357358106032066516678598610754838999424047437383770566240351121121167268492841959627205733889658082802621253686894838793754411759289239519099666304658060184214784297239184231088734032418834581917091690235526913199843047651824999587999771818236983686576420580679946491098582127989991322442629938782963422082806986764831180262942954064152755057254769092976881853673775634914876701927106036867009712937931201241718208242196037962264089096126627930119438074762852954260061643694956621022498284637466874200405531260922740736846381665870819703342047576166866573797788164354551891376466235862272443197014290714411464170037273544938629694764120065224320781635883704641258207004106031453264823442239665546546163892475813161550601451170062083484115118343231233994024245207069831285230745799474653477818670953526912858815150963386017875407783450905444020613208718174033420991874226317900865673479966893455316465969356892017948803911346837153219489310573316662797569087184915733658709957663101998353642509917643616319073062107647582461692343609138619037571283157666394125693441443988078485078326220566640112048115200822098450806209865984100426641127829853133090814277161899675227510559445045162275834112177815413351707276573099840769574108236260791213079793059341965817275508588832918509230630393565306529881407354738829012833358602091246066564292157829176291419198690778397005410086266047818082825181458413773261375209093083157933097503593364560898790300368732986379086373128868920481557555223453645534662829645050689333743464786500168693512135733648367622155495992857633145134184260561262888238783614658052030893930496434972175853462335016841220789149012714985503015319025036398198926824452558780556383404988565419405299061702131648104752914824959364344312220526490550524686633159469706763814504816876623665499190835205810544735283137388008544067736361235921139974731295160824764432629619629689935194720437208988364099972405487474031845942246198834811986788437475561462882491177106344247995550461168873973141266394143570986899614574473793588066298200909356311773808957981778413842494702847374595946773588496570508300262864621049302011930137753311336538057964295459642918693781311066873701748793878024216769157694590459673087364291184446235643359618641309041603321438476051218250067093050761964821340717013927127479323944659330462132231592108951357059354922309035820813924325875565446957058686960674035979548066150331604288675206291608390552769077371513081734597323018858877185442972402644041801083759640170077768407863583155547930665995091426767494840308522017915122530215146569325284955346967790342240950826769048337371287385621771850877962186317027065717714205845587237330220714709004822945486092740210260948036010775625027089666649488409110927005410982240935853133950303725158190979192340646077980478198366592907967141605332127894636035036354346299062928954006829763281029983460290923116858473526837037454264182627642610987546880669569611494261794504810536815813253822653131798236382984817749001778087355658627018711709138481939015504819783392740212512706746248563116660471839941421959214668960467922132385611780495054939937534286030626147596922729578529331257337627705686980974058669585136444411465268986855870056637523337226360904686698838568362349586469452856877368277140879598092606245813736131399563405922520804463413461556422008109039150910891187601357567738011510071310084389486818260966997800748197361091654403343984627083734563197070420296234780090517796693815591720929906796682182601730315981484945798477762461671281132227636417109217404216608770685847981174316435635081689379057609219587258334083568023157394324049687060598062527993130682026109640417420935794284046197787733206393066761227701881084083928786537293855403363216280297174286429215716085661601776172786230216576780770327660312903224356529520997086991302929785631963156774541472574826212775276497551470975167709730103602436021627301060621860529991755447175323570908814555115964926956942085920008538434046444031688615625425968184373513176990380694376984986289546876192216982662639291459549207782814665929689241754002699326452690861648027263730783198982278413573123888247457710830190452587451107649848903824698327094022408247125560865795322406025136315062192757463157055188294490833638379600933595314926074252729529799229233762583423912680147937249358210434242586192032174682160754995680342542046019283184710167806405213257987730640622200081054585956065851030355230046353698099618383206710686020794561398371055252936157447660229386462233407503076924286738313232467895477280563011286074799233382638662871747191921412270441485934352036086485069265839680136401341459677977949790267878711511680301905598697040535690800183193324546846782907828418135570834904123085574584578964816067056456047683924917451345742648743279297547888425273139267282539387694441015973511324906602127157802909588076197502404925199438325870666595339291342733902098336311328518750302000450847652929486278869373808995359107239132534329183918645279181501178866039658441637295150102791863117161797357487402575258818376539253889364715898061007968619686729420926464364325886158134857492898575311312779228451881438188064875804710042419284589639497013048145362993210563320884817861160093521130140733936397405384897177427816272084212985158285256895493001921787843104370465795263782651658907304836644693265094368313285109695968331724162848699276323614135827674241165313699943514201226394878703340576543136426817976883700747272428586528601963960907003698656068747204884557631234417049406978048387451424434530785989362676187442035659649841276852980608903129510815435937938679628499475683493784566103864697080177168018764433187498102721260703175774165820591427492624045900795649786751257213610261648778427880492779748396493221794264699188428540738814140990953262893898815969552699653981155774496820508098749524507268492581309675723159417514073361760424608216767733294115042426020641953291549760382151359649515348455213732068585296072473701276249569819732096705055448679112080356129674276143332433138938667686516970927483560638492286099292601293172371770829830552241106852666547965239201843246160703073331529296463778527742915861066894682195566574978414879407446088276196233781641310769789132892949329904127236471297064317348771515021360727039371070540854232989006585283698108144190995741182910531896813613612256116748393995757582093909868226611025323745885614713139065393434904975872527215580912262035526030993945429963859943654837298067075067364245228230132866182753472416286291082870977552819684334652764945806518600771015490808741714460094490609070373502869743096286175655715201695994615922155014578509988459878269072277135198353391557941268685704451336885576349122352597739112443266843657805591869042027405775244368717629114530168781303387258741764147623130371255154347649084917706931178602565075687379469086047490596903280760168339813589653887342276412063514733581071908707577365501185411873109633472984618263564710729080038701345492188218540627146452116756027005735888445058313062785135634274223517881003514453926895298590025572635035642387011464416095324462392048789622391424132166949904903121906725907043678760870396078447768489943286847450360294833008001172700336214356020284680760815574360565317391784775941977299029886236862815644097225722158047377732393927476035467832693253801779372259660395997010366532099763193171757707671761141187506466931776213771092772504521225626669895320579887339296404945748428124449993075172168466735804523333002904462563303248161507745299886428557559879061666158054678018247408250020468516864774907498214055482800591477901948302427893402150203386463167772725171286720941066536985853602014153652368127638890365355196034447905000584718141462549298176671304961728482749971095620239319464715691352596033554545161732260488386755569895452353485999579661803007176160794988978936827715980297923194882500582080100969083403131213137552862392232776410605867923041157486339917233396195263901614235663667432289038317671556416626877198125636149586022961480833295391848336255089638705536172133848112714296243501957553229804165783947857638388608469682995063842705333480895385873033818472306027782127582939981071397950545656417357716914944066549169321312921080567685244544739216643641128361762550159174724725088979727324932207967814762921685554499006417193121471894133833795901719058930714134142946084680397481222162592374313779915466725657670442088901104534421553024262946452751162883006132101150318150802013450208507415151347681367558487698735135494119863921042060931716194251353371794279410087786616829291913211257050449077718345678304082347836734550482944221066208579976146655392260325937819913030998339875527236524630932028425220272185895278694859824617353890316025420187203260244998079155129762839597996443610293278849194272229314431907444000289201308771396440911408032375611605272214926009252951278985462977266937604111979107490522003443543447546066121660842226826651194838472639118590800077752054709650948052733614993754319375256777915128926876259691603366706033770717748182869320326169264248982637151515220689034589157700655757048091499664716166052901818655257301405374153421008688098744662686979887779751881959760148136105370146708354944450428085208971171649946680940626173318841444854831131106095077428283809471668001580805092973162454753922461611939425601746252468903279893905911986667076508832330930577325300253381068102502772203336288436020054530986014406631457603510006991412596940733846618948758132914344713440661360671518890046858446848740782516548987944387961064980841247285100553442356000530894598211228877265483928611069047286671007028982004745536938355618732358061947943408628816636834123067819933040047739306520234242732103452050375279400169076347220088175834883431701225899576583310105217908944798880910497969030076201926373180935590439024174168831830823186171258237625942270144146249380986985160014586427249243279057183921653734951491228351784890463608291228083078276733464881299477926498140270834268423828427519451969609425232087543991214868693717398024005808260111954883086373866942008740132398997502296531448544343018150118606914031683607617714786408534546424045298474002957555390959427500220103266949044985668668337283916824633291526302313639695453279339002222269740087218778455648038188367733941937742176516489921178960681106548653480162863442515747464350211641579857570986296601218143104231873540259061028780834005799699875033897508214533511023718759677273555760040907271180618415112932967771096321021842975515479472394799543887753646049975006205920293892467457861680859865244362318965054337533001309189286868249910246701759587645343361251703094586627169997665627364748573087875232354037916497334689274563503934118865689923339002962093845087821505347986839015001220078246103206570556806159069197317010005446006444976120909808136003153062075019518040998859438802495546265460381724125092468311064117732268132432258581731482064642470591797863381681794828932757439027907413272434114982626122666769593401502984144678106670612638905752869885995149786150938429302357904449066410844426961747300698599760292670548110873008958652592539820315882325408660765959288182408345173642422329982721539913285305173872838871851407968110438866540170428557016291917572870119920206739268124442017912674319234456634062602175961386615925663398918491518511295053155775094590027206085930922770926982626802272575945050749057027375363464775585905949764182914958196250848090909896766401026856510413541192546928148069190242380383244472988352340249676244541421166388046095563254763821318867573728552510345594026661158906085209223828513703183009011131407483299046095473093568320611663718611585907471727024555098528831729826084176030258292706428991686689543636668021539988827861811834025507630881752735136801857687030888911206154791957854689769334728019432922080656491919835423995059794065138094004273481352431068004148774951888188123210761397116470554367759403424604908340762660518902272069209185467180746068753337106481433953469620256062809570238925113168865700223559918198147602620517689299062897365127103654172884546244006623498229462335358944720051232044301858197524808518038228355599325637279993357660727559736644368933935644596840806915045809052458889826098870902778626240851679257270550437412475767961723235801853090361905250267245385897643735883081972465226335898814800164331448954793256963703008780599575781501697095681962682215918614896220532281229069784204278574983275251934881008423390904316421403609107844470996411501967768183712926457791790804419825705656734093762347819225881554021064482656418074609382971469558099170639934124250648609668995321770963806965327345787233431583679321499162858187541085666349343197746682221812139801866720690012641730846960759869345103870590500083794187344897425467865363158535652999487120660372427222921809118910710930053881288696436626999160307460889727369189987500093753831844973551216026455632619309184048580817191112220730452024679131931878876327412200374570428409710219880261847429070901675808908482157324167708577774831119321591591640082954067244625052334824169131260971945718954904582569832715542703291269832115992457312124635195783176852137924239728410621505416660393829296640158964537291132284517865578697071224805505384619176722278367265222362761795578370902496162946677996326571633223232857740925892890165813371754596195382098309789207676333440287058465589904718334300567979138056327101351414281056405167249620426572625165794408573457466094668380420121436380598435849203136653423547864349916585284287135581080541531844330862059694558216227725522858607360403862810592310342207885171245029084926284407950698328815548411412004306856741053700175176017239930992561915918707321658923684032095014261346798519259102362733744935594866321882231824420994321970412713932014349435277849229104488885798278750542845112291009054088485857180750142186793965466670202162759474487866755826278389057578430664354777202489129704771131999488522445455109268035589255786537655569677299454978296276580704443448140710406147072786209202422608880804818524903389483194918853873047143526422650859722293768849318829317180487106211777724388706002063096313794744301620264434763330881008308114731112548453408825224823658914765197969920875906537521924461008588601368178899513214138731586295614070653611205672296409879795097568834809744952274666553390320220299667208614391378089186301992754835486267725261513117852609311035832705945376185438971306816075897424458086051532803387948102050369109171003237919773915486874890967422701906640912075825907115822947082165839532426344391989232477523769042310556369342781040325684159563781656695359933729111811679054580064090030690954680733142134570412150593279046681494269501445911272850863140071769428449536127043042427004029729892585356784879552158639616405032136669431600372635577977180976579448163997882729966438684803616388327546714490878006942574341829810239614048415583679804173527110915726547640074977467787753769638882563697868628042435155655712116476365773368390663431173639313621209449170059041118789265626219653743097738245243609174163697668354394209386051053530545492577191600111119498747049967377227678774268420626129020632706590010949950670453628398534619434321656722240433829559587565212615757969602967039125949385721858698361065942849585411713639350939924252706849283813680824907227597420389756134845854991593731439030722176727162218171031245845855221733635875217966368494829767979693343602744279406253404548891601771536199561430881173469021466723038525150393626282756162459555007213376490427710376833529457404768181037697918299475839679842813399420660131825502502327870412258923518887746117814431089588573292405926766211608346551610272821636472487961703090324118925099008211707691617247242583679799030813663795503907500807023650270135760493586309795770034467687484746208072532876358403796665955080785787469682220393012659092335861266184689572391810257279817779359582831009390003683448572111860800211622644217890738165720785158045518250951529261102692709246448841512543291961211577997931714690895812726174348370149155563632440381749724202292772972769263847165389782372844336162736399452794666719976310593470056897072582910441077083754378572099935733540097442506805733342141022093445718023393183445256316707057988133455859680312556059174238139184544891442496527408005241393981963854689540337211917254658776854840599775658376388083663090422169300452485071760725594118775151567588661450429397506803927047777723804083628421136465015362070423163858620654256253454254928863860695362377617586872122885381651963311739123292797045945969412586471234241378034536763842610702137302082646762654516418744529021451632087037094636198797055027821951624064679737983511585725548898202499706106234342491925412357388053194755672763126666417254941920437943019779082609401124176415797920783596133240045684746882440632964705290472032076517800548419975160979586449698834590060965835847870379505023393739669003219968043165251017683373181276905971242349971097054232383436346541560370790631002244203980169513008481384575794102092125945692955117391333544602319491237412858356273529663553392976797472836838920639745802603366144509156805111920657538932573815285742825090676831664005996870296508133020205964105168245139370285547103832417756387186094264462241814665241631374365362769145347406708260587505269160895697759243116675042731520772058441032478338992321396452220105749574798446803146263243424804974515714949555875023801765825001786569178295929073713905252768563922915257583646890213788816114251370876992165464301084424124698550595865864578087482410561929534373242574475313206083984319511415439884757525922322223331650436260274091622475086708581860220449403510532164616125032566766847888340933864891526128990490423360512276307185711526869758894910958805253785952022037615503633401317550116376203636476749344538800513689191413945866004995091502007800622402374078653223692847870629766480840512477569768405667234217135561965872117334020968399584560139659765801245994739243155260930507875675737369947862568650929241218435393276814315682477961279902041723193260294628549803181967770300780079412205274782646916734758380792201846391911747881501800049205398753799844170091897708223890084653328861889718405963437989175572456813504234368977857784809571884687627548026073327183482987656446949260693478940315446583548426687245698139920190022813081160020721929386120049875890523249269790349654867853219128643269771604540658572613029826653514256750285973346106647953980773378952084777574791412399754562112595863632495052040839684081904764817587946628837404149297627120670612605578657119039492974970581311278991332555888670762849676941393285212254185880361799396488577774216610474455481559017389827239702842706683196810064542147185952130602122814700792878588637158500862925640199357922089043517641815849425881658873251497481743233025739414226614119167916463620172685338992631199625791497380925760948498621773434058579732202177501021214454918566531350518569027494763016759287348946797922223173374579057525168571813556990109767930081815980631864486729354260232889169185909623711464757691024721025861600689951339610793500539207996610212973139718893005169644496171531002005603340117045414526695364559218955752507449592897190544212816652773188820133686125072518684101468524255726795102702678586855727211850917180969701110723254127773676006214365386417886919722403451433588994920500166798790949568272544347942320594008129260449773050260540980524416396086798630285523586465590754659584116150463673240638072536891146271344017136705356773502753177971960352915921955114447386601898745975793901915664538976115910978258819183628363140046205818823660035461607581153399386499560510818717841706730751835906120978991201008185048813008930062091914895442270648116519845132139905387724443382329235551209315813139409482422037302469384298138762415155612501530765081906351169793864205974380014932530009274294496419362403220348332644203467060935229702758369149481849989817160948988249060095762562012526945130132501948243374646464488781679971625418685123703464998533051448407003356821534599031666698317687698001305690922618498290518315734836871388220471601214241392143802020339488439633371754960428400540661643563682675083927952562489747790090126598667499795280316008602758355104935941893790375621332267676634144208075791494466098989668366986060775991392700791683562496326378070020525283208281891423423905694835591022447827177832801466318219752084757563067172164640679259635329598576502844812744501676636260271511984244627548214198206273152444341758341851365821330004119177936493937114067629629700220074780988216050159343090011122083118833683526803231181078526129588305344859721828414890631997572444351307913644763382566552648915454035350432175460847307498185126646128806267631828844944379797550990637302369872273960805514339406614166616998292729350810819418877475808298280906284062947588200067482382460015446313546808253387775339659334297768595864598228118012880656410834326661641205320765088485498492055583538340076852600263593371768621424043049969503363706717812016140262707301241396043637736387324066422427266043879795497848755028601257004285046595861706757927652068741359827286014853619841140878563571864436690819605778516555553726583652669135635727407791167943499314004099811116504645303705120257121502096701980191097314257259814972361183280841225870702629910012003681599100549656121785276541198918119159957409187257602089941693784326872602785465569542158639427830582371983644989784903656429984396849322670959028755029055595266694686196494174067804359875057883840360856679096844744104649885961062012340026285062020799039184859118085501160406434700279132346654329390219321685106361824529606106105770161487341155581446729817894159642763481392961291165114740071321224408146614963805117014048561194238895140380152977580016141580342832685225436431049491105726455594081364681834431456750079156549551097366188373863924030054339936586335001183673692574836555057416598160263753899111910009943180095347331993682622046849059845586093541180449552384573951815178242893003147480545279581049872419672791280044809135713016887338374202817205262485788811050169102371422906213909264692469277758277657793992329663553851747171346606643270706587055471173689666496045766106310259692964460114107289802463254496199404909303143041120247303579688825128349253706347456194356598964047104227407935533704918338305528470219732334873797275032009158654572750200687799909802953703517588808530590548802097628969004843654359303021276908890171875404861370502497599904051905855330046660181314312021527744525597606696535653728199473913776739101405633654082030204370260009260155366771704282906203824089405900092934858952134473312731906219875149177167278890558293972468185945368820478797437199983374249685937652111045006100828348081066423050667793359036523670978583879952424801458684636007042405234384418258414847783007094912226231824131643336372705923104409129016201554558721192043335829442941349473935436155166016813542453281570643690419948691291999607414730122556550790611685702841244749728240386703811740537161423668348691979344454491372852517102865910445657797392460296655272807982519369280261572702584735744655633134836988848863308053542246314161276030579480649588503823095266599590488348105055979389001736894694188740566188026333107098836087802060344419918452409634261527644581077403599366805839070820735643983917123177639162260453522011809405359707567330951216842083334550893342164031170291455644169311384674377748459737904295491775137627496616564446324310035034940046966973370281645717106641161170827309753232827329837747204515619556326019998880928164848120079594561853511917529413698391911579597703193531625286416542427821531547486331607027713845525356491425340426707141328748479890417404715461937152754295427385056733811297253316853363836871012322908438499102635802427395794654909272825662491738685873728273987434650139152444403028317690191725677038872422809622619457456188599392411623174525153033038857738322669322016923700462489563488833265141226868993699043712092305659517436790092728302299479980073512602315221347758671606235501166972315192962070414252582274139315197088989868412609761778826961979321476760535148463548079852180817538345282263875296270013750351988458708734798440879105077878080029848110978025544444589722810656852205724489742989126539300245748574722946139468169592010699396853764120803643032384562871067315758945689951203142971050436899445246154233708472275185267217167920238015982786146795221241289722199818561412069870327989030884737614685068875861665874798068827323991454436852847578825308559256424856974176606735856629821604140298615926783478509887909379352467641828073602498422176844755952841162450171493739539981403946928541507958106539803266828493751716337550954596326442426704228800646616453103434060019794751075672189225335874593755685498714776324380690678327657283652282643025703754384445315389171371027773769679560133544195877816815199662302429363533064718520289852650886675655760366938963152695130512401573585418266192957053777557778146332660963406207529875542053841317494628810525464700669823151729155449690824968233910203954959234510715753512849789683633815471393719777596865175444140205701002193713849863647359974401351749498760650592528537430801570404949633406485811741178707031497377187238213915561837497868762188338403463292845041470070355217905464504899283318823387977896513071317461564149849781307670673454160111517827378613895043625060289682471658334406412287405977632057018759526119994394478606881210340816661615587754561359314635906424789037542107157139716432794687387784138912482102038947113911715713463595287430023929736809457269990220958150254131070669206573478644190028954847571971313398296719582779647622411733658529129933536406122106537935320605435685945316681536254051823797176674513985206020375741470072475527151540892693451722715149384649227857331407130250228526740957982561803870373218222620593083253998145947264349754595260511703941882838467313315620696958300923089237300163747554326186262300011408590678979413378898506611803722492565793504522218772967836598054007367522859258077310688925751003011497865309222703185053000512671378267320934899323293443416723794579502463681561381450380268853464636085525768787432219791989528423405777062013384903174644793013444041567951982175079914985648902782107376048193322421116876213324917681965292063255220247073187340088351487026992162854861959684469015585538699794750290034048153447462217091866245754922794045407422453769815833663383856305159202890686262966805137510913898952619711584536127247644762045777595273619271484198585300544185719992766557511928733661820642976219581886090204160325590032858979325191780320786717211428863363396557258839733123295746926082863621386811951900238368610802711543315290513275840326060653142596328531211312826004710057498892703053584842825316476047835097143730029323584293971940371910422774247196604603162970249852755661125830987538321290520785891491866254464228138300848046562687877946540465446145089931363529355150588514407287462136360114918418984951685979137573903948989378745387244892649188233237246913650871455644697913618354968216273355323627670312938766363770286902186217799478120629041510193729894526497573982877774029784175105574639556152483473378327436826907255339390813269178521292113181369684447976606022410715455436286234783548329295932573307133594094860574277800239025232714712550050582562998387447997916133007950003387258729534459866680518585087579338215677118742273814562363785806240619495107272671128342995568328377903000032589015019090059348322851977153121968716252715139789369331740442171666619701564077760360961579252118992658954151506230487802484179566919481504641466451186686311451298082498739439718724437087034518249342292693075812324748714044341990009181821908212837408005110145833843090583949294598202467293841652849438934443865317491316142412686154037236715727733879900961239237817033396505180435729229851752738151717590049875005870431406920319212499183385175935181845594276083294666909275488410131824425928280295003197856064688092563780638116664047518253858364281142105984307618070071241406380778109259975783994992224938185674764770751958934815795443210791951375030422241230228333484069688956941273506271245670527443704797845870538463857206102963962864369626605905310362230834762224474185676889021504624247409453611091935540760465243748232536814453541275745126967466779470552680664507502057116175491640359105135307927053039973558190368346564861089919095571199531983127556752307987934845491335282038841855708910851286358894802861283950983070682425121009359485455207816558799082261788148881008387560774421975399090154862369806193698954820922640786481534492128895039017351745954071026136958429167192332650047464899152994016514499879904816562064500892800348392710850720047025249822475255412523626846543069649847134201782471762919144680638617571472920716789734620605836841084523727928605325201929003714464609215640853763258528422270637971453171283013611127187884268825687946293175080840774518921275207955060514450377611817506723455085202141234528005317311756014770305801961854935207924747779448889311989408302971340575503961876263645621309854926691927032835090088144285118077963858830898986752601017396267129601025468848023915835258559810380307597063387875089980794527259573597972058959320436105793049650599996682852010936751380577360481186165938324428248876427885473650743903206164297088694412588184998606932824135973636752344529805516781811717625263844759075283021518171119318738126431682599386179881443917843877682370492268604183170309877263250353455015120703743916647624138483995582580854481105623660127752411972416682284271075375009459956479153333155669681653878957580296148297973037047438174995411855385171591214428514127801379478888904092408334475704511188522345628233344185645335939285231061403251287926160033197707333688522053926142394645319287656365966391165715027869623807828813491635694360813955851494767257750153423917336943713359868358350131252581514316434862438241565647421757876694723177417731977429641529214746369690738429263643606706375021347772066325493180370592079898357784392919959290753298556758136586170783655972485173900105772218341381394471217705954190007950946065331076862585151738437436101078330362604675461905828791250862478566015437630974541928145600231561628219622170517485001122756020699355472875330965186257664837529163543807634061907727331638319263081120930644803924309788513255532002929293627337929461840616960087899950578711574228576151939465356672486414679519857153038599762403913842633512518306575449454513487555850012519094956411148315349216226696346755307352374825833003160120472494168790657340971002533406183941212440549251237813909487602337728474578750979594110738209278119910958681548467519862290832504620263993125628504155327903896385325182829172844813396439798504880216447955712914997987064092653451839655048840434835470164331899788941436331694486088530163375938318965630235893520486642112752141753859041359680480559640627164675665629048676490008252440202666046818029635216094094427864680618410477909392075193737439938808802058709733219879095137205874077679052881234039544177383231301281378567456152509068876701329089177352959288837872173391343149412630065455847716953719308577583452220600741042175507841378755661484880742514793373212475843793824718722582296220621812863385692052043281009284618697822198570253992769523353426586434784097194714932537049555104053510163948249147194177464388017301525747578763389429498480045249879276659443168858160362176395669696271309401809261117311504926557310037457096167100449412210283125643940885250164966681414591391354630732899243792084759510708397329313251399006560727933682827189145243854998695000988472142992839962864894837980213359807588440338096741166092767541261001564636678773984165381786777347009092891749896161436544056017624495404808108140445707449815440625651822444419709415157000747259682270039254370375599274264985533284708874468068085419091598248533803276087938535126643516381010586279012399380540273999382821004762855110777333695204604804214969337560710121798369103792435336377860190279521229192590607255258985561611242896096903859751017120261074546124587246053252632960618795364379826210312321223479186371459439073196645789589608422802791198136105280116670388076646463439761040808676229318737006820787866714066773271439602198966025577120229131556440662137542468827635895202716896390972763219231720688177321850173130002253623181539430627728837145185043686151272030681951593635333944577804814511318478262380192413249124033122614431376470998840509131990402058907877492012564333941671431356792780280732632358169101397905415528974015575289235731782944907219004793641073989047309124615397289584040860693865984804546612322001279842309760898398168616691014138430985225883235018122624313393407216148753710616942718462716782300527800893549070812890656208403673644488293437219937460470688256291877233280631476436190840226299918138312571587499365668752085973679293263546574520736286380123110412132773222505719275262655708629723013681114782841589752469232693517524332567270943902228587660139553963377122629620133733796162911893262820680121360351179509608619670885073745944385364226481927515005939349716017588853188412109611334298348379073840258121864728836906194006192175605098202401423835280242478540424375390942359547693023598937683814349741331222931179137293962000651921089933192428831654237715076271124999093579324151104338035422619341843730993282448278117813598485268240809288241494931111748973819878600695994648801564508125396118354606153004493621218134908054760480848073310667608785308305845527122263432994072012059013866326325340914566590847138295100739786373221924458450547212732415881067543711395743918756986631884067330984267828890697537196795674414593379724514737503094903205842981717588093632198033791229191557392539133417766491811786197852612450311481595862018676644972994936565680600215362882859132308646960721170130464028729480342106169905644390827520451797637430439218397520005989542680095776186172169474643122501302902773467825119108475764787815613859825335259148346434192929987273255278895223738330120804665079752207537638162969482697115399632415183536848290808244072741842541757177687356530109821203450305003139695585300632527359856147221942993190664597027762057569575659388362740464119246504962323309248993257162147782964535331167105560227482293713483410412583827978792034051854065394079810360076374245636813823518411933576151559873615406854293813896687321573699075751093136788052944576227132083006193770176366275972853079700471073049654819997672247789234826057703484954138311319987494973775213348992472943769218759680149400112724963311140562423577813075442679163562139622376416607096939988965309072249975398766828469010182468266396376096083514229734869617123156100780471382801410119249462157379100153781873983429978493680391809536845916547067360288711010255626479561017820783307032164939344834799970259071795291514539921904274808758190780227878247712328527558107962692865331588682728615468997438416952936591386655300726154391367737283328323215151940728041401108037461264611853275588484149033428292233073266300460660980672656936830710352540623615769452916822498474114133286030850599707976932248618496928516759299318966795885529700893335193052056925073827353877108255067782294989801841940670486487930628617315291200617203495907314077487877698308947849811018214744881110759953005106775226277488863087600522340215719549378299426454341441698321582011506262906879255578098052476120282508569278961499241985484029771236525709456636684106530535421283179325635977468413603953462565284453477960857733972046161801821979924285834426143489988719702478499724723258370580674548811801693641631944083026256143548262374670611758760188435157220274760448528221492457049572958206125880384942180504113935989898904907612403187476552994486482620390388144704633304863938105147109244216274852016238498473386498191052466729130595362896392779759293082839623028016981423787308328727404400377525570296654856286068007507174571255294711644150281682082326949902050291919600009215785269422517673758914014024095975936064845910789618097856919744756161727357597960524871276758427136592973882806638456119877454173317199436964402370245289990957907801486692522209133685975328088527478797553954117081230144308236591485273932334992044164875319388677136853727754220207035166386944792316540318394245270248010933638290509784486567036456170856469158494942255616655923405009338416197444705712841344988512214498752104868311904646353291224023464402143327383204605572035664577545115047042804856590584846102069337424944451984666476936104043535502510158227007541325620413115973974115460771270134262989720145712183816543244206975270098204746913502605107904278846307461044974880707613595036952411516989076221686076919838963302357881170630020537575428283457790837731368714262811439076523117829531053609892565851499859162416732387137571485361780247574479062428268890973749435832252635664897753622128737013724787528846021965505781770271861760381043060083811689585395687470160984621431817895464935254407079636574313001750916857361653773449812444591972932835606897217089771520750818181746398572292087556424079279171704016530835698534061008286086438234681283199072299586899236058754243912946278322223949697431286961263452497996992473512736266024201558714688112949706197883925105824661069304386891169693531628551107845174138583828739180574574251325105271185138215978939231758359275279827429092959412395258045669521523586911277366306230444328349371471442907764404869127658998759907233598410747242097742258507186860664321813949925331066303783200245762153149878260604022736745934571007573776221765877473527253272977285028993111055228864453449493375024356453475585938910590673907387590791613307064826878597891241770869579831147652896000628240522449229433167323123864836603899001382223385634399744062760810652086289640618931731765301038745249554418590089174283116835610439109301221267118172173729733743310641623028965273475914159691749162445617958817839419656982738163845389844432700404121808984619487345499208495095578582020248709592075069819569831053988945265630326094417910110055370625738392705910403648361873365608255565947515270449007032841970651586822901017649882065357573813806586054951024120608748188421902145335150668171607722910166608698885580555189353331073099377804194666690100678905820022824670986051232094180988868759803517407191198760757159420492817767694547756078094631920168889071073204027312874520091684861579109137796257827380975383263720671452375970352390779530612409370377807932498112722504063340465158286569373722169499274533613047962388003949277241272441352002165437971021449348696608144878069702805895288730227148042296765408372304659036551638843566314827359725756290973155836915600492740255707948968331597442522348774680512357868456809460563164659990509332472747332229198790611598115292523075308214676257720202557453449244761123601675239897895012790778048244013101716272304408207944591556343562438601936171515790947003345300944195532217778007254319633942411223348995793124776205661403961426998762823178020723121834270298484910034699419778617969126820175855930270415018706170787841573503502825163071409271477686313656039335136405687113772867508412750782572768845744657191756493708213000203797737790217405760307196986144049623653576527925996753565926003845627930798882526667819246319013370529660668450945206619320035248100102356785051242466852102388415189325264973294483576033605533796046854593685207356617207559014068118085825552333506163869106493421806024067354679044291107396099743074815188653996194383592613518998898682790134234535907213903119688000092753951759457030521285820359623750307940342784007862238328027628932408148106578777813397420973250739414143795123790212854460960647432110453567156515273601653373218242844586370283008929876200078276406171779777467424909502913870509558643128053215174155441500553855970030908993492798699090341890561468122221058020313286641386040618081027858159555974751437373554829269454553513453725770835456554826050130826600547436250895104759162324727386633069806842872845712709264236066555030623703341996527674568482519570424160950046332433895995047953867018719151991626271932980666405626956515236509358455347059175544095970966181261585707739049771623728556157668046587473387429383612131406861593984584263094137383146996449659138555642615632455024871751488871838057380196525810152892620389911382462553919197863644640125248096433803736288162316201109379710075871506226324379501703110244699980298266197993965501366255321744111935618782929440488179435884327445202559830076931483626958529594202826269097270981401742568535693833814774956813442903401450646736485991964546128366185634016213923481181083235706897650226546158697215884478698258657549018688270095798770773006836372296934626233678589894140871891621293495833106632946874656074654793191589274435015486053796058554512127442486088375763619416079358696446362783568441119567887945560630513347053724003179521467964606651507149730964313978209164531956569157639622982782012356859116908518219414627150017666097382582394137073055236688162102490125500769604294346396973746119010346508676879696665093168120664774312352138574501532974034941777468073371490179818830686173800932782059870883029356926145356064165607872138720304034910368017791269117813159319359156601197630815778977292830132836977816846829262977713675618812889171186490233705324655522915785816085575379531444890575389661979715035147422656872836354358790574475030855473383582371176209121395165460578860773858198597762736124820503383548871971308729867951193769969696088753642089211954602648959584420915286756181089787983831368407131415217098925544870544988099951960573122720440392303165590334733221669706312768647311294509151048666427768704998376207838484542936394726949652673892204128624047787738124603468072052463305431759712778790666503166534713725921541822568525657608859970698192074664284770211119713438797120456884150248680972278050551159689497243913690696285930558527395132486035161751339452751007090090197168239584096110907873830215349519702892188318077605770871827515998343853718196531461829161216840692242114395628155025376821147988683341298010799623298329014384742154862583293141113917123442870111188550939607335679001119416835463825372232401779496358352038276325212817204376940871662239563265337336456690937681805934623808705019332011691446017161595219799681856031770213616808075605797256284321354245865873018169708161446724730616694481059273381065939353571457855124717891915718410273431925066020716782052476858937195779050301798487732794781391891591793174555824165171872634502284144683381982969226868146484193043480759238288309070263597851278987309980317324295195582770694987736590149892173339994759256940822897973876976915474767359607298103324964699068900825150212051334402935152355191752712411308215946139772672253658820254867686170692144914193321801635254500675669876341512520473735434217804836479159453713923708006874075380846458742375699204726389368968108199810750192430593109766214550154658619982290282185485965770691638883086504375097235687750289688011931112553682992680902572597695297600694846200962354199720306120154737765338836243405754904830228180746577214066542115833865507670655844929613652765652744929448712140030653436098479931285525736195165668855588136388247065904710234532738416985716591076332651388007051602920373502446173116030355332357390127170364200529407303594593240020956297653473948407625574338996061547612188329741905421359153573743377262979627253760453889519533093498159846023890973251459888896820148728896855533025010757370955701382075457286689531826349658462893854691737497649374891828735121224453460607834358787069043525637765366198352471303645607405848643633485285957012820191843781221389248589440755590321580478826741135433905707618232597417515910856525905706223187072733912044591913888881536419255142738879584305325166119852986930661395582016603797093797737373266616212143140168349207136886181546686599678377412321305831118654600842156124605323210994597749712102599596924540811824627923121681947779390263380454746656951261372562307393201005696560303554536095529653212043118560217556134366050433249005371849420813453623305952827079885411689292966466464227115094576153589596697398795754353567977918603684752148643007836683984284393434244564186883295648917259609201903314478044177746364313008668639897078963436693818844856633474128149198844388182727525310211388452907718129976833843050184675784248771489509972546591948560667847932716038611547911493289430430757904716941991975408687639347471759055578079089201336053387209092812529446804410110876018590985590593905292077096017804712670424516961658085510579392161332786965234357820902123618134900329704269338810011773695551928676493825089165470239268843872115362884826401332580571871612834916360969780416665395267815680991226702343653427162600718012859669992839607161629432177462204711487132815869215209508102300442308209880160403255094460824542963230077195896772368315015735165885035147474801444976657489839073820383249589601624008752300429273057348485243451165652187782257784033003387009714210282442073050104314852801743579408216658152625167160012811761261737872515330042900276988290117367532880863184642860099507587873377672185256024400492199339288591007098407310643571883816469282143139940792449679126545354025229297277335211949422439250411741365701432202075891541161406675849707113324947938332326907580060035045527510435692759684910183910395370355509723335254478115653873365831240642972728804650688284454321240760603960222836189446460065012342648406171805842569622725852976618149554154823887763189110091530015116148254498550237805406443140913000275553016010050582997376981703994391595340017121907005840399501928477129646268262933633831585267721403453532196072401589555761826616288112936160537693284953034240594873531147112391374187645319557784413044345728777288124625084845616838238423116994287304675942171787884299106488467884046311704974036582581157112771949758713849557903604173724393977750950877957374532015905335230659281372716955641461600677966169332143810823327617216407808100168546281731474262562058321617863682891776224573474713815508771562810008224600169283651359419566800627383625913423604974205949958413802866960946887775376857164213529608040750072266837944108603492193735276036358726572074929464609220096940080822651924700487326670021053788718688678290238071314616049094527975057838563020356833405376764597732811627996547600423484259675492740952183103493291767552517640083977521315216918072478209855925911723752309523112079952794846731501131992277746425054637470578522838120516683936389397598495884988681886065336361678445428980519377114413620092585586712344623183669237354711653651740028936329560995434705422424409400759095052718505241531915071115328504145131247948043898825935186813124057952694972537802867871152511414725559327116439973361017658939320872933904941102357005917798818368242403768356996172480301184182506986462167045023776064892978857172423755495996050012066841032295381162844782558543084817435035541678350560276003548760270435888241080497607154453538353514124825791556841411665345669560618182827581533429802289012504065361959229322618723555612418288413197275615896839549311583182821692833821157879892943580347656169067215269118029552303092429214020206293722798652372205386900640514900917943054104009549374853110927832536845126807252186128993405320331010501379329449810219225463269127708956696230785132531115086656126449314230794015162115306040894472597095679989329578099852003096060603040161828620896367571101382862193393657712910225473319486335380999207797155856349257569382409871773905062270105649343223056875879275111725207101681627032139010740953958052806439672257371198143701180552191361433892492800677318673326726907028456909376988201809143361074667321719468795491623594972562812298723377815940689726393211582750502679784698707499091253403764108631968633023264047254875754356360269125019650449308903100996133097412521119411235151473305151526683747144598134290433411683698097920073688783712348428366339110567161482542751305955076810893637800735651695043779411394012935981267919810077548732560529664590372217574836400239978914011601333441826851270325376986653565821739402324176526287728277707507612429892087910964303119365665944438806644579410045323159780909247206082943371725952686702129391384593613583588623488562389557918415780648431722405492258063182791998360407449963934745175065717758235493104548608468052898930796191588015303469140183187083026696216730713710696902409524536769399819082381977809525526641662962754414118575999435629597566886800587593657690000813509814067402088303287159570356877996946063009825942848915004201631534187742854685195530918443583534252857041010231736470314165337319534597130321202300583222462516645874048786944903326260755737547762894300311916777390852133375167800164374367946039049562508325996358883789800526866248023397594652059191383667610617332657442554299949684987756421480058854384322974677386057983881657768493371422685589102372464921187724368085130873473330103304336109573257413261723855013981225771381707435782927881525334701406357808886861192569631032070064591970705641964552294910791635842377124227159140423688672444449953237445571775515616633598767568476252117110328713510825370384336442742138861808569676049208995455168098575252038956058237641723385951136679722115632197586957236247340903990684541965691943488998111377373895972940455275510649848101768575697111099676050781059384829630860782896125721141613460450837606923983184827450878849608239834611689538710286206915374815128264530647038323938539240636497146864157309951910301049645923023243202345553754214089548477237695643161194553038377651602447599409484484760639835325336417617029083742334708048272230645471666256554654327818427554890904504009396140805812337626555690511029493319061915870187125588867694491620111136373951293174993793115601768388465834259050242570448536953557783770953305608735807258735153667393675943597128521489676928420964382514810689927819797278903405986864457698798652850472898379748417838706372256086075301311868988587240252881616892415362387877387032826550884900312631715364924561229040994180493758152871854880912022486489233251922337022843342860813464962249117258564691792422496768389530862167035894764055305869754170141331069160138503834839016303554063251541757839604815974698513663649958766432589337753641189158016595341385392664971469229830407821189418005968870291200711242235406449163597265437793157077073143137901403658308007160723465348104478979165146704705245995921055397538748952276351657391956995786992407004353590513651877456223402680807786399544597491731095591606869622139805005766625530920012980766503254584599289981335745698506495671928481774011930059105377818641282027133169217270871928535618519085358681661504771929738843033561115893452551941273540246382278239064764783414376769271766293091309481234481745438847911257986336299772056668507437817489577664756028319518278539444591557052201200044294638334230810611348939945746227173842570405162428539521560442468934140465006669782081310049233071479990649804463218167746225027141615916732628061607325459052689308731930801640891078141210107464752875871333938007132658670092042382760818663370477386073169722157017847861167196933489868131254570552832685639960317057212544664787057017179741723861737759941423832214850788005299882677160371766044481400895908427208156173169131827882772449562424189653536248881172693421216956535467504812888902438043080468689485810362544270245338962444717640198622732180503320581781310192101528365435904417616400419425686128713971886428363770926823342774295028139216886779435320531098180543564778007068978707804141893248948765222776586851481196790256456181260296464925530961699757118310991926522471511576811643161456838769450898948293476035641128870441176623220686057373018249072330688280303661669072697649189133109472166162472066225082357448263898391755061782655605261144699285434241964260799477845975210421333507094101313592860805548708458361767827058924424208503554428218672354440464829497313979660246705625494703123037410722103224167863909533321329181566190112708727603196976040818122844240428381241419743206843489323439148143016211747713172743072856311167822383345932939039590693973376476124649993180926623053435651270220899283483157434876755268493099924799968468019122581741613414862949159430795306187098981673912305096657677197975071474625804737033362705385595322588252284007892354673291072794019493515611424052929795601444055739375508427772030740717349675659350257787767407921916897901958617756774767447932744008458854647639948351617975585591226968444787829317212247064686732041349962895544835032439093179959590974934939504197534601708034875924444138124373880840036502665520573201724116476869749437894565706362084590682023294509434295622933011985911592711106148677394348126139916894648271455362129558927244758337712399189421635959109693918813733293548051937639565635637912798010647421715988741132085756050889669479069337024373258520423407260592384504382145561440504599537550291340424065452648529013061027707270488598218027988962433029252896481591150843949486845019744428054104008502854479072825511141265072138525824883990351418496781113667274557484775654032462867498612426219066739044225029372641471707564471350706878103317989344321405502508048455234646942884722311326682105719343171391498266111750871213668898589162619274690660740147381738223146025055093718341751021454447533663146351213205048744848006716255201602109815219028936545051370945862696213457167371818723106872678785416914417842222204467309347076916188221893431479725562039021570471756776009737356416069616669613394736239506617846929509471180515887863385887311887216704162345413768934761704921768123776297117588809218175954288782411939121644242793471257823271907580505591815328322209520066186782856563287339842945004045686460977359162869405575741257954285415941432619254532819836938491209009280055178073728864176951521645238254247431055440669646726093089450044521518415033992718229977914455843276244725246390361757161780047847209659675518131031325090526747300991404898104209158672012559598072216111695440150037680989541555996511098143263079862287270860152136929150247857180605094120585690641285072969730517589047216107612148941489522031577287134613430229170933689696514506088783418631067204660021266027193976326912520594980175690551999493066883280871201062526188905617044580950344153400752060275145558698586773510955158562477171013035962935877402562474880630247086092015802909706196078195994738877348567816553687190903451915749404881568252013240107513270944554625143941577789855756148355323238453193629593742787615328968868909159463566610901684009346743664076323958060578793353863829595882791795574126569073366731555242211251921598516604948573406944792412228767735195430821973079796292075391319688154241875124157967677783775589011391475843273658596399724283739452669833376267675085049174659206541029341329291694108998602051156170692965114092910934338001999457639440344775146842144985534336928663100756329424383685038665982023411177625009460426362962515458236311361719123638574269273048678899139162822069550904753885668936857050759517553801676366104438176702208454715610338908654571594912199399405136712375130215413071717211130224133252602810694189226561223214582954971726756605989105519354529381693746763691396751681689281649125052252355133720059429651684453638726196401454606771660146016738958046651784958372675346522905563196706305513825308330295223949578675867864535960311713709431557063198962578384875798054088236406919112276823221856737015783127487796677198533123405893708091307211125010198363459815986847410841031712097377133257741104679616356933077829638966500839339951931669751247366030981717195192194970814902752817931438680886509332852175403939715556888329120466745636397391795708084621214374939769743496345581083862593612263897159383920359278580044235029610691090482942792605387511920793293971601525963372027690166789191670488517414563016311704963831075461910230631357885082832302424123359931250025901845677575782807594784655854718478298830080182082415008556400101063362641393590030983663779966954906617885594704844021887947483362758963415503718817332006403847962231765006192397800978543616367845660153023942351734884849228407344547708548350396673121158120843358479032526601734686373798005670978598228094535378133203188748263630274828284150984701270082546817652403003739104907747041434292222635095026906506607893531706369909699754336839340973831031699449744952523950240285024392949777948502104795217809315562924148616269364101235287835230120043178253533951356179795273666100755396264233424666144953600761733042958832548092687531899472802540782992131848204504787377049904443748794734749991793966579280756707596589026585327923184115545395860209103463031410544250782565838423414972974838391499038473767359423812296440140059481865636299066260987376885252933490416874359512348223677903327707612843735783545196265029281923932741187699838640064521174148851502423560586228093492195726138754072713324166122894073313540305311685446980024722442642026141967436266213676807757782636000989235545350251717415248120358806374326778061691830525455356918074144574211977024001342967532123217274264530233828630288745006698066271557204759962684109721395362391701514220570045064311556647515847146014416133687966587703320867430284228910191368245796281898430833188475908754945229908692588315482594377563041414332290909694185673295855015060738684357933313665709029914128056451808710756120157589760763122268677133634879161645023539099841805375746483729210064644978352443954377767023492936646506861184393657178519137461570439124992964225035800557934021618214310011859399249047612827546087693342378439609617083223656222740741432737340544981453063116890028758520283945911130420035192253236030766866536322513707790427748093082445765035137449157987565345510698293344687018944950891151061335151290816155665448225266211246763164662180906543262995778761153941253261575505492737321536963249645770646458598652075487643213373560128443829714958978200142649563186393653073936813268098598141771848693490092513401149961202539198417372604886888218853374649730351095845217201690752797444494221740844885219473704135550168440460981267584212212488068235456229801040055410208386082499941249302792821277759691799548553503826188646548317863454022558986634506313398358677788433728752922024908938832342564272770698128779169250690887419382298202351952915928307116764502733106092476716381350398507279304299889879457844099085311624662850964057367761694514954102554323938204899919615049312412692624321680620369708865218683393100239446386397774090523022852072081763314031838476113545574652307751503296806681328287378347038741421796784586927030266394495806620377034554444830162806752906123255209276648222762318214889308303574824207257764008935551395267711939367744440801098332557661331293921898317594602773068517105788060618128077179125810042684840390800678427804706032646591794123296876423995703672017542929197108215601005376574948790105766698288472133714828769893176237934956853993012150048218349324014618289032416122790769757459390366651126861907962078791727357390138317293322822226704321173294812534244534494709773774428940740869631712591481851892278089917296267484371934944365757768254171694431330425128320281694473404030948025203995976227699561752655706657177281335112999637111799173028989432655406123636095287647320617197761673911962023886511891910082282945611791432874479686232771807516168719776245838911198552226967503377717303063252634033241682989429566478280021951847000391249928135348338192219609340954986746356394170955151204519784366822348116790365504553788335090957810999409477861775438256162541768234438127535370519113008890996497090924713215253619463637647822107879693305367054061913626689127479279996797521142715122438170077251348845120231133788980389285588063191404549830214850919670344753554631471235311698394182208769043601718809452735310701730292951449916610502488186823513661308827724155783827556757187513979007970266843372147224626948474314532016937882091646134870457022345409125352913316719751622641137913677709872354434509754032474529913016033611288052625010738262024619334076612035684015562903692661347720286409702109604978047001307004700876178275461194981365801041587871599265923035281776454900023462121515989274760478903161660480541595017092852646851938282763042384042481725132335184200806264412622993750929889771055845785184122940222768406384322083994572383450378512226826681588665926536548096829427316517412318117008623022416976072251485015220903599116706306938686639261950132721432689307092163962906354914605081822573153687466996569106802104967942472819177256984469563039300386804240704567436525180167217750892011885576194029682793822859063945072580008329075370925406736605192717226554529401106930644077236734178783884805452536547475598884097859665365550934060281521006016247511173490353233017963756733170935191933113232983455765970711792301269681556305174516374962604545349999213594088245273932155954350592216548630929376359185987187428462101930256215884466811268184382893171397233319981086479353100877289555255470198777911037739236771306327491694501780195350172068898067463125289737703556456414657362625205109416863236884395769530381278568104821646611767036964497065343806934841925297817519026154439759998077705839264483777191006415984795861802283411941683967036381128581774416857477556310666831166637642464107899431497106557149161124538595977255359587493353905283632682855564905040017651360640850904959417017243749137894195752100741332877966473242550976546627686220648039261423304042977826465332438274110775311478170608096111057423400288485597438999176432313008226986689476067515711959818707519989402155726479287119844646877996243207406734430119128467220781993846851520417091054999319771639898807125537714064494559576148007329973981156275264053854008605529534352255714109358853133215658680650389773306785702060342657579325706495855701710748314251725080312418660669312009191766870963748356868347209331314564263656080070410370653381342412902517625492848775323360515676214554587204434952052999006454513125654720912033889691032825027472787430656131257976811960460647888858261939474287246940738881455776827446462636377946297605518152961348417045928551647945561183752163332924995607393976671388995631895265035918148593074468306147727904094112595802920319632628365573065109828168570958725578450844047358778586532115792728467235777882540688176309653335737493632736796075657523868976849817733908677041179477307413187489528473128901498606465977770864684729743169771349274226073027974260625998964571914411703917404674806746937744860334957522282955194551266342429649216218324795905997152013939161502772374666483672923180049052222139192018428926963219258972987484736811461762268400017501396186928695765831749265609312220173990418575134145632298544607999221862352382530284824895858999490190868386661642176920572661987119958862607764344628716010059975098599523725145607349439836670909777446139771768966394093478285039053706619410997007220951543287810463564870614894145561952491798627765180713609959687432730019530500100300836710076295898780029826331631351463329507064831810408142305072209452478174214736710131709738334329691931246228253402090558978655896144433063456365905398008642649853019682482774425404508313844981195066634380576947612321221483029114929575796720955125452855894004281933616340068855765840121317255561591549205847991129597623503439048737387926945452594589184448232978676207350527102819543469272302467310402980735965713107553603016855149209198705988309397682657348907531632567470463566249246145694836414747386309519860957420803705052396733987069888797978588981594719223098591043338131139983792542890316160547051834391442999169574970075335943692043663173805981131636294934412821593656711489845114642896455508770431485741494979365907062623063712827364188624729722326344780851155648518952048857587979264152330208961087505514989674741852007935382407930995934243127477244640086104030870240223153323781378658700461967032793829725174023663061701658307439767902717953446643515688040933154749302921546222735440388608750092223907129947741524233917724670558422071377472490956134143167600147124788886679403276576199298338614086563272321872731835760455432965647338914795596610308617974869372432910296414353265884404956635616575732854215117695064120371810699702389636925779487510049102064969330879373241202694110729485734630443602780059483832587280394706653498394304920004106217981583556312520054310267926050610601183981781351804263467680678884547923326553086199937539721126626054816870565174774587713888251136194650462407921346151627898729240881567127583709848013536882593004740146715585976547939776195610625915737434805487592296256632488078389540207015330329535960809918009670058802071806578223991922508233419900365442942658128650853717854789603885849596433763572377802603406248744459527471242290025924619086345140411847029495825320929764622883501017320339715895783843964717029834836322850133837710058530668872403213077313241184850030049835489618916196290756341650980030392650983684572197547830350025902656209748697802014727493418495546913895487920263645215011211074996239807391066850467370051714982234326524510482301303159456673351087947129111495818257870290874721503222768174293837247738636429781611629767384444518956013429834747273380707779473775414456979543856220357970933883757559824595127057589146183253229028319953023960839249200547155984955971291987784286738793686178496838694068625453410465073459706858341570549499920449122481367984134887545272776996900496538676063772368574492039127155868429126866199404145133315070702487100028287635286349890749130101146006183810141952320695561845598562291528779375012089268932451293760097007817467316951592835120826337029279007927813534326356926173687265545147426265867345568627587634352209096221256051775948086814647245920299268354558760432921762577308912054176617235131240310362174218559305416462184927480422948839331108204284525745399785028323330013364620280350070656000258444724507280952314376869887798480837866009215751631448997151930427693911509460673735342093451182184289905465997086107233743695971421459938144919835866381515252435612261977026890130685719513908770490667183162547590814224607370280066954093680772737014016643976829626907414638039663306371073178567400898796329853260487154064266563036634060503463300525660777657803715498988113811224904628179949507484433856798821357855463267361753843169603236052167580638956936332967152611561308605619227667652975403304862589908547895455275315421252942312261222461301785497591672834073929988819341787891361067738301100442717161052021510534036169300787514070452063208404171090221008942616441638647648119834993328604177308470895695674344737636669462769582855800816025784090527586322882875723923398967162726526105683482318871182161548234975338892314175788182782113581488292017634351852973091597752422968617060950104973802349768928168130530148503524316656274680940909643138882342115289951039490571244043911528862002329122120423654107872817892822749472599494407678080250445719334764625952784757067931623864038848351721231401745145823981370106588074550335768566629666851956164559390038392967315031662120697808486194418722439464113611596939223447607473803875355503575671545105591637538750036804974593065554228552880510945713462471599036455974651624952304467489600324107699120926042208947021674089645138619226518788185605660821818818513257245339766544102801430299757689455969906581697203241436251708385887021957977036881776056832749227548274183357867105522605392265725940822426883085807403312056015387300623022641378090669297354155411691647273055930440989398784586631556439576743998365484749830560850504766294343959380302217208039543126427909963125921411063345899415704296275797437184621741922296718508979636497358098773432513977601211158979706155917582608032091866638353874275010416536329995668881734229364317946728545188272945243831007985654119874251507114927329834281367089512844089579823352736632863778108023828487262526221367871972770563481091311372833956384881931984251810532279404011442964886915122974358586748639040439975380333337995407176055691658749237835535911531877986253466771157205038438871279522364647670995786103308996614993379748172429385882088675775263123488866387221892184856835980850277794152226347190322843297450914649913258679630052861495995532297928400494112019308901082317888609067413262310451966517623681028449711635499150934188909104118260577639468983465176108424010287596092545759674601216784426251924812000615496770889661966384248442556207926966299841722028240565414578246958885023952672152643270624813803222642314789102664900848439310123244857495902503339231836098867686828937741182452167176964363949711454448166087276549585680567037950559968020613249056703897854175595472892482110454952182307505241956379104543503098469811764462152700583785580435337357225137154809212551047666002426247537551783250019061783670868080833445405199446204962154903821277225326990660439483493273772931549637812128121455876619747237216526736498066616548225292122153796083774455969974509864525742423899480617200283909801961899840134871019173219781051042860556141185590589391841481246801536518899106100061437335442815042408395907464004783640745811140313965131355321778711969280091147867131333216347337555360840671527244006163715951532877868765932131113626163801061833256532562830555544928590367215442944758792618273695374949064305223840764031999808269499953837955766104135478476900804926037215994976521638998755344085293093446839068239335359792128888271160909658304272551252277231126493432528726742917752558609990620942370525699275623969064402812165435157946037636043525455535907545273149010497483834540990121605563565560631190650210153773084226309825595641177365151467624955338823761012714006290658807908708076757717243235087306041511767291989766340979380300706942375623653424930258377289820678709201304268172641444557625378010581012607773649192262346236962664122708050661760695673447891246681642596347433544508232232304655341524308710770643985604651647895123048258399335623323713283477409635270943463758469067259553371840680920608968492821053011841284371689110546768419173508007155138626012413118813730182046375721934844621911885432656307927959233492111048542424615565657725786371127851286936119046020760543654884149176558688069245765714850369529769004441284926981993291709964998558622563521845830619577387907120242170375350159072382484829788162151766541740303391302966790684503313434430805100510977742870554313196263349064098541671979820911213321753482589170199057872685553855351597932523251604026852249461207369713332204297733324316605651463851727513871892432386265628590071701056336739526138964657755516964379986588689140407375716816852345363457782330489870092389124679510507075796604895154777910166657188479400245248373348241523020299884681566399131398082668155939554721819231642544675880891102074261476004979225530994058674235698168430984931412831883572363279910471115459134974814047471572075016242043734012329750480391281370035380674497967402213156024679943466050283040639007927584652574632914402701417807062132802661476160742396460351262541864305151859972456194545938784006395695874339228784426276851802664811008715059260268362216810190851261076196414131393489535919785464251415449724851157188394909822042106341127389172163711277703536918639792846770760635937605468087464162585344186680944544396339535843011568232183019329095677419344093012539637711779807394291307391339617640531688862391384553188568087087339153111013024478255150604230499617036787620839856813750322608273602881015291839454100929225410146335895275106846612108817344963245339192141460424479969097982950006081576598778629884745154824376339168890773669527593676000148104657646028305873378059568651939050445264547539861624650142973753288126627475396346840479562710122210721297743324073289292791414616482769713990246514481602111881104593975025545143352386593404243763675176116965901383661234875057678571877159026922101790287982316864906548498920384217972627777346936140826883767377912238333189244942749203045319452404241475755052618729048457704518015805246217860759392290167581270434396955481458111048171304921865820294148868796538609692337840472918207078804676236829299563572061372300821504896741716141365806099415539392734560833433945993964563543677492558930909498311119508456562960780440360324965472841131251093709093857510228180387651701521923902885020728939514597319712560409090978534676333721173125247678354980617068767489854288869689259689396657968539868230225208309850178028648916926514602629127725947641145819408996795364563605552016424623168707880644212642778124710504010709222435174871291121968806020354400811496251433764289312053676388168680833606295691796066365291121216004557354635074923092977137855951474282516235520379391870091025761494989932442915942539194353416949024980596267297075942516470318900908332261436907920227712764605796677194869957580325495702077918052092598763210083005458726363235335250852512349005372144792459941116970370253000997163647156223311408386040318791312376689483730818198647318704397956256721330194951436061430789035625741688461686130480609744647556121002735671140499423297648983219438729323755612092407212642594130453325889026196442451479563191564651441228090132339625260584974757516113869316419649330573974630227961229183761865079446834316281117270336601505521202468094654110484787847547137315024302474030648987192554985188925167578264876712358572808122769956553435280618691687626642190182036320098673786888771039325526358088030323490074878919268922635020458501293770191219859905710449812146253523670504182467459013082251897560116488443251310901076872992919574766092821822076068770332762858991368639684534881375941251042070180795286563706501227515692663111153516271947979939928270036144072668432106605325993424912525978260423377592618452147697373505895381093567321565005081547333510451907714467582202877667487494893466395836111216680448394461784900597508201045220865311087807681746281518300626805724741264671093253698089664665476887863480475251060884846200083847758169317052981800476344410257443093874996713659256046903686993420155235293830381237079262083104636765489476425065813862546721896376609272285113281552614792078677621764361354699015677183258520143254296173945075151405828711870558088990151564563560224544087155449755365901454771033076782937272691820120444468657492195895845102374607693088657379223791162886966270573745114883545136761015005059805670230350295350969421718829353735426133705694503931535878453113062082942704229150194133249890968733497309788929730487817663860514557450814260841133108598088646126541395431544879515452316249065873528089187393519388037874166762217902808461014039484846472366720666148661899417773007698082387734662870947435031704126126041597889441257362143443222100559622323528864218873306748542330472104005789390680348227121824897883591467733030738494256838725792568272353171317893699899878818476128677867688986908683115149435990928790374675384157319213339016066693408332910357893197758267869913874861740168698780602422910634884501238519693817094284336893359667194572776064164078762718933608019181727620293320152547639578330413207658248373115502821363504586395687840168522587197740575346667350317907375740593039487471932757817394615003381265292979807140097643334386438594687541034693993827291307897587506563698760189231019891219131477280548469434398827560524534612035706633396395360862774686247029054766108920179681698172293903403224115878476275454935788150743755151702373697797505990183838014504427082588252596482960819110845641014328296104579556265062401227124216510653652476242301488829521749330857825249679680264532252968590793791048039518270850554204815116015525385408588778826636793036418552973791921403685626827799782450297083298030189706515784803542623102494866284587249552948857124562599009359953861815817671582508621936643482598053070053574852745123975524320400111359537966956370918106344929851307799803990528530990056532801554159953501300322833777826068698169248237653547138975711670281491803243801704793965295443684916631148845313455196337771093737966617276175435318768161727485442914808343008802005967110712085836959833867180540724242653745209224898585436054660787907324748172707922378656035144035087998862200349360326131359047185522000014293359867047053204324341235238700521284048301071713185883336048300284294145765203259504567230061116443533600405689901327292186085379681277204969653485551387510963147665213645398669256710070519659059997242832903184353775530456001063422169899134173056223638455594710202429020986811629965041050730778460484132173487160449852448357305929744996364890863458613849607247430728608905388304562984692096875932286585767332381331375011887802924296701517760676565894026128380943398400204619932869240827442366008789095030272547778043492127148743148435515100385287669604245276532846698902854187240718035598836143397669270076060613458187349324548718640687606954040890100614489054859411877846743394316749934033267025796499869369752213049754261613312872453353859098331900990495907989994391226298309875117614366137566536914646328176148129345614722814037376193650210664118139998574543001206083300701510397184424828644644007986971603333061014803015319069599249652120082148370476909749472262969269652550641728479250903427994726981160800276932947695422083935973006869165932325486529606828526306471856988290691712929582830922730807041503771673635952270973153660117144186569376980499162142338979269331238040322040995999120701940181301529342163131105884848574119340622091916648146011614693650531440469363811320322549860051563105466923271263458828054245239305086915939044920055357269576195225514429201153122531470303657449037138992558789938341616351227982513654969527069511602746610911437931254922255277327917492096978898869114451203167093133602779399224754591161211704032198626420012306475452704580384101003650179071239083805221355117595014635445590842595692587905675064964687376407061382446350616588799891377948333776101650875496657591990007187271032985439714778637259155795976232404951138755314491814503890838696456034428475127124619631522710399945557594332145104783106720111942059039370761583817078965846380535822328230179473294101797143327751907034622638338015136548940563677566144888019484470411734192511387172005947592871734630588605232836916730940042540735047749412280708534468464920563661216585373056854238815483790292326057859266390353823557619070574481964187500598463965277065795862722788116992006993999768092793709854296147026555191888460222702231399432224543724495032765692645586421728230826922017075770847670133638811529487698442712190730857860288325891188810907415240170760034812245664244937298419958851709793497685852775779993570034405722469018346980534739782466709640077472673558646622391357399392952326420134347658773925711030210003612135526718751808397342310097689623684995731450140540364863234089304494571274132615912292839488969192601789827538662852807937228944762435898820472445108425544961295665181692954061532297219425765694345774350477745078960558733161453865374675327968834251736880899584273886698415738651004801569926003756413761191340175472112462217623503080817472620396984822980257914173079227099623923491598567017159576973973794938145601866285509263277822051438228895734415346335759678771691248253301508428893787482683890777731324250402431584082166429644532948737680407089193821110578972267403214733696194173182133039799031132524374203296938934732444523650641602197599175995677469801233462991540494725388296749798027799810597962417830041895183219056109344840482339400457835822803942029587960819416794009111841444619646541151766010214679420560403099887421976111540755085723210790862096553350670306981150273702465314224266466718225720506437957244880220091367729702618798544969006148843866506490351165018513110410950822183360962541924816148876153874277820936220613000422696766880488666889303600425555566260383667577787840040481479967711384908561705354343991918670249882031786853864170548703300887739000250867661304070148665277196107595179393470879859206052133667154773526871886198577024173165380290806833095120539826345846032071805539590193915680596060209184605889411576000028506881443680924317484105810050435161401046839335533833286146648835297381098886957677411732119776796592761535042107389012069713977262207326397178868885416022192269927715863895082586354728242000128070315129537431117481165642047995922034272310542514920497944281609070872747628330707721385067995301186303402080490305558750380689428755651869635710817666536274802549623820514352634726335009304070525362133719064156980733308686720838116616154447045789044232426345523397427127952737128747606066458466668947281424970138346160010583908555337946778333787524557682749454850951129474271201682725642612810715450387915729133303318009848833875889273843604727920870759592031016186827348166901466815989319980604282837243427812292002605733059767086862176094257244791602506995573959981840506373027851813402243468091662124213880006509975157017170732557357282095126560174068112685801826542250577892144277685648729460758081743328093347698618692882954930439141006970512974432858225297646258635535750089514828888324535899159852169408814535167417632027452324652379605521957332870622774175981706705700786121894963875474820865426162430650647422585198631730718508787223360831379665094808336392634157864740237846050605809458321328958078247184618003130439178993106266453316436017024431954172320757130550729010973473303644168325857171130752135603880503982041440998223846169392622293049625755398768215251689338819088794672052691803163728758279379878450679133575453693486575638765226152497149641979931371624378000081102190933740430546175126122855660123144199389014509106056897909737598584235212336239839003284194228786070519347628671453813515055446426835474968547975906230313549294410865313078904797369252611641550438996819682923929727829543980411402749677078604531429959336514618838163551171731123387875313781090486389161345067074306783695843133410310881864902415447652927953118717268811850501955163907001393481660386353290790570586045405441666461728914975270914862898183766661792881651874926988226698324571115947601649256312669173271137362114284002630097924163255257771008018123822256522707640383576845759420445133043320113026935156719578081113764202087708338433120979624541642177230591947608606568656802610277754248682462739517138973588014864734369187036712785383459414086331568988313034364947845030012206108335392460794201729755450467170159558877429651046716252960992655791804529251988636574904282134264893762278496266622962743085816622651540877313704848115138474498226611296300811266686567976934737435425648956798908686164736879433591872105803119619203592684085699245168567781965201126559656283077350410909454242901129582426235444745224670781863830185649379474988946177345514346224187417791671983869095797133473728911279472965110891239058727650090535589944816211656040304598393675576046924626304197326969999740229199914347261652206718961919078203476731467477238373896902715575986166929648163484741706809670081382613258353997587827743463240909211231276238927664179973331874947301858856070294745281565130244786727134528670916506966826628259470230183589771283125117083698481409598541672433958043474616788815416355200021207799556786000807462633527580404709412783054013392361956524111524840602032599569469037475741993379063430544559141304197295676441813688197806352322739495978291236276024987534826746922012879681016405700732115500579939187459638292924914243903439793992159590384126487081466378059838649164566592935453760298780035909571291001971746845863607381503626531943421040803965904657633744116649869560019466766596506462013213332212573758229168321303006313396678768284040964352457779445573792390458940100005793066517195496555833233391817408151346773026267571502409618446252451402467301634810946863552063945639566508963893331315475836052503313960514165170127030936087556996367038288386746342340427247036521260662417265242412765031192535684592118969254455539431606322003890467514608362217718433398018975490930492190986078077643816898206504889248698327307560717920883172098936603146248274026506906993507064453471349489512179686994311920046603799681886364361334501520319062821976469964097525216129352598931766988612228262884584532307642434091366998044777925126379068177468138109644973198845359767487132678807585674455612506352215540626554423276891675352923076831326397778177748695173115996756835769077776057837586286142489201001900537296170564018325165071005116322809325094972735730633310251230427305861864533980028358804042387766649219935260950840145408908350314678838465324159321657458583070011321711211352555895326372408004961183502440060654735314500498710605330618766749431589034413893029759257352958101557840044582971803244457112981995365209888838613113652136464582688356632784618951891218481043036480630591515780585441086775805571368431654169297465362393372069486327337166050089327532677413148049891400721849964806095681283492957938098781029248210190380194457611798253866176821638194218844707350392953267803954415319625507237019829432591962552300028256225459609754868714183706099690446127497283488129832308931882938617787180652244145035060271651590768475524478412674978918181168973104942988772178483480354059579650950509058939711694465889878401058355567464172333326669328438833501928090045888598340512672402167062291959893871956720632780003079290239696371106830167660536661713811603394279519145608497213649402188239794283835651120013382181271751595549824485450755827169278602696216006224830634585387555346455949414932348858518677809928975640974894997007709417979748093762818563143975453580665981425552615997685215047314792334826475008476609476207237653897238697183799791972722920434749949012202855048951706344325657986624815633494204716936592804049249381474031646805393583064407915452696979748773560178060023678478501069519446591606347095014145086471001502805457337873029195616924102309758060646385832441722199769129896903048506899268388998800657095172136204352093063690252465441347038133958904870518045065329426544591344725895655779933741847804260360098250980728801023020811807759227416909921156570208550461490278428866509111158117530333109013036319570526810381342898721422698302287068135902437986886789229059288448191948251929734012140183849659863131187906583048817827029121552939848162848084529476828255761572209635612339440076429950981079006046136486215456308662707638304785850566804906490969073945125873068862530644321241192565277679972188657173259073435188526037682470006996845933010690162503877296799308931850611743605569636297125157211156765495469798123242054776673886935031338039591120710356582293266242781858222339340512924459916970793664280445445381540464403622652057708420933617622596274647281118517958253616314630537489678201562782783243415503786162425710348453600042380998164222908979055569423798597944444782032363145425413261438230506275994562186352160416862282407071445007203360923977671455590633989835761923867598694261925363191821103083553363283562576057395431382508080186475673681616043930448512772103850856639515126309429851309420344060488213995874010399465740532832369361283879981793457236749166609855541370177127036669359966330308535823003939126570465933748559576531917684145437543619723754218810240374704025780932217735338554417042642871642833530801294684955832119630680831690507672771639024182349156323491002563187611454002607629053890243144026125087300691427812959707725492787204027269246138172263723736568329968655709562620551198202361048966460271531896661321005777736546939192822230179147617300168734344613516611846023666095898737333538412372022317821812057572674978638484540969898670143358756964372086838096747223517318172256919564446056576062374013090514317305796204259083934180086636833240982786608702345723219988078383634194297494600755518542063325057644024068630754133408011887806605207718959687083798971296446867700028545144708992533487205958464105202004425678367799881242951908545077128063030568584592670499049043637101804373753664980532021674001167428754854879368692375641063531982777054002428748098714041661251882718399368084401770590958246245228921367850366425854896009347585161964956648246078166387148295250969908578612710405969819568794481417785036403656317241375466397303176883990123494420902183432107345907497867100639080113468661797850668566543056029194808489792075046531186165369683245227062270171645326739558261016151323367247145104178486627636631995176952360575698056100625601157589326959201691231937461429182760707220827605664508039851873442531845172782145598915149322804261897291676699862149355340855525130343982327561238448323035852829331586878075427342436744166821351304040860225627553933039172408679518691659921182099827969203187615305728767809980956869556581293383671828449515341989086546627211502012619273468361502935737009800413699043172634757146888744694425768462012045358215544536257133741847547238746614237886700677525666457546069720528391621549347958639062793476374540519113444801855493699896404396725622931098863151502145750094723618545499132824939606551121111223711951546669877111628800610799174367928414510162424566972112512991834310736826628754412856345574464645771916641102647286746208431163675918126446330419738035027726086234260844915308775080391436403953871401877362039216138637558205828541457242158541880969151037350466811636041777566581085325040765308472437244978888843148444853194644307447034724361242186896904527381963718054208483800264702128621646606273977682609752195895522114735740314930132896791363626821204226296698457978983748680405867313893693593693417822869276440232016429991973870426760146401375085204141353976369296335987197426171145129489274138512064777529314965718164356964194212053755234332883223403740394184939099078220822640768873697806220121700753568708297583253497190396484442073999015574630613500351544878614708917655261440450017534346729206606815508957982429788147797022046031736630749456941336234685434424696450885695122183380886125063039764270122304161261299565297721885674309338955075574579517432531644710631592212293335548437021090592020269838766477179717350007625200107187082907541877921134219526817331664984719353065456017459641390717274557755243400886979094459124618578946312014641269071328736144934151522598553347982608430474750418036056725372711921558666249367358218842658950869761669222235977172337768497803786512975715660806892170998436900426555165249181891233914475847514108935645776903555604668257076624823125566626584750763547639270356739628249604210502663394916272882197959745177832760987360381402342748829528943023617608819344256301107838267946881388677698203066535818703763245591113042766636201100489999785632184546811102726762162585793986619856244183528959585723708470156714768880129694018636561730554254887024017698453588419410959510928310946211647582212422720257620730919908238092098206491652611071696852988440371419622533061449350066148088565030004969357307567709694662549158123845862442811130834148829398355403332886607911715493772091855793938201193801993205079148715455816437221079114310807865939173582379551018632529176970793955806584344367558102549791150770134284867676322856264308243899613718615679275246518003636733535371907818618615407717472189437953981362160223280929868500917195805815766410938620980407664974452760213354666520832336815497135431152842284406892235058237591834387784033945895668580021510917420075849876886042914112654798761657009158686369233483444706057788832215609665780744060619820003938530743483087404244782509038878670635552991275931385038759767820454882580687054683806297279113812375908632813699615708680254899581074184053258180059024967634533578389856131878943511818579237482987332256879168381468646304028901015649316245020262360548289352753267703522773264875511466245191466657860020520131122331523279269726229476757908832857334930649153661134956689950029929976727151489119089866828402124888901541734883507073007549382790727222140924800959829715387966390313176459040356281437979091757677342446147962460406157722840397789402025615181182544551632510008207103781140961335987310660042952821211015666083843032225017281000481416138702017733928269450924329598235748211220045794474027531175519275081239903663144036514480265686629677474258274352495823708877901258773761672137194997657463627485983124774034167762840795202693194268278028549855561864189826033265075078828519836968371400339196548776507976150362637440996118801563601846081966883707458071151133289379104566384871140344279919319857002676058981526146304612172089697777735799418247449415135369350201070403528195022568616111676257970189557857160811800680499970221161407369585612742586787212613082734066819641580108375707662589521896006325735659654723854289378878899179012819547727525116429053580398765886362110363163152293113158858225538792773274669970951938286704851685615463310799771082605671486667070261262595404876786170905546432531810763015139868996140560795955075215417201535368870505173573526766987325951419401424687996412430504521647147138400669629170547073570788448149535397805941433140984394330670271069701432005047643860742145740876584528519331093987896013769584174704775534569611622289392172872235624497673057180136619082959056862087907305673329200164632336342503542451895529921730683226520722758549640945792910930471362972453866479078223577680900555116156292106885938068671064155654154753394345073553384256675972636424969980179267268665905403875082853669050669566271508264540225814933550446993258948609426072408420940288864495707409713047575486190067658189500526304751604738183810371866724655659268228128984400703418420800505415969199488320768058783407806146716460782593172210999174768493780790856209857432037709304046907181188322692484086425927811891860108081198608264062393201641506395707137794382653103288263937505826949457643275231647936475507243060524012306525370198482539996454688482064298356733642020122943065548512407350187865528737711504056178330395938497923494559474082415870127327691549307671226262494087094992492329526392457850104061821338542469089157502252938891245716442844653441628853123117641853669765621577579501573799261888450077273360869972607296509257698071645030997927874362638340226340923723543942525661906417135514143180682295170004406085398159220704257273792708086537131955003890260199509575048286205119321720569807642114432867780817349794920407531388995498768289602405203369590222178133797534428084925394058244575537653380101508128821328225171660027054524695121936735792083958181271833133287173022428876643338878635836694129820827491483270600722212378275789889052134981445427797596029949179372400448187339186937319307615689427347511341001309794583613142192799432112916512844755478170617212580975986084285135509585173203107673880676049054074147177266304910477961061755625739318881965164302253762650900029708717857516445012419369421632443602867020580454930057767323796781634323991322573405864667642177409899048256612945850535804991285039132897501549038087509628948263199363087824803007887001102316447203942685133497660002846919191941119106655050637984523081678471746358544633774662342465038684667860630373141819803425876254435238045967191165307930642936016461053707687847715926097476465516423485991761958607284753352311156255339447242640283736221625693762871177034378164475638950577581049824707036481227626893584925371592545774109750519863000350719263519564341561816109029491418313238572730558064317390730865704839544024870691268309559328306628881714545336989202445475552026527741962689886278532949266915790912158811815917557773121759861335671335935446749531624926091575509657691107556163893650887648091107292883155915557678428395596206731279375762670675416170593076715111527425524801915168827915288036783634962231835872083928694255071318744942691042369111837883152318227121414636410381288263543166424887903919891943068953936763784360616931515784400274563724076892859711918579293915184383830777558172109943768903565038152135033437439699420892495214977114281403468865659790067497808548338284162732898777436321047437676058344485736651703549424311165854254136880898649721775156536353281819451386459925118226088635591327749192175826385219790796297698274470566752351339034462326633907892605136244611283570143078004364914479712045257403704231557147941179542920270838958810117033479492602240750953837241571107248523505036244867743756555411852383964759936480947762888801101342852209580862159724812138905603644517420196616324299790298829839123717264873632527510582666781920073879976828854946465587677667394872743214016709643288989598072968070195470570105720876905376903569355625674489600735633713621527449692819985056700078754970729489891182006607791607201650868838181797734254119047101133347674034097346359861875608488929098251420779011178485923414290153529480213993136976361147052870741765699826679243721094772996195537486612194737147594915128278248412304065461670617051940396241371226061321865120729475510006846876116724720055524741210629395060674947729603927014834731596919898092170978837612417128345333114739096113321759431117243022880899482183656249700221382252658075532887186421413988331860825112257470031384362264214776591598878971364681233561400569044299076150127785730694734136208110350762544219178560561668231969646001277381239163668999290784781992211042040995587852349749822733672623284345016573430751585131825500235584440971036399054793392091497909351530713140684669593332842801018267752803555757394653927154305026825581323906070347324498294482220024778424651049683839102226672827244721825031539116100391299377907488248697079137700380031549534943195288980050601006952970057563231802098133938415122783430050357391075228859696369000442521400583875801298274053736615161910384385994744248715171012755995946840897700129038516327531609065845175673588859638060963731453201024600858814783049066203008563389126858885572810655143575868612493965406976949260467505170709228483795433584607080564620849842884288058838544573670974549304771233456584085834898204831799416973119036639325832682790204006726538817632631269507801275541546678991980788182821951728913219019773946917462312488853826793138533753636135939402317332636340095731754023390500048869077691421737218820372373810217852217066638409717796261339202142656317222268127993017834783162120841576137207009353480089740593668871289850754962621537324036643511435030707592603936162571608920110409109483632340201274794118488623135197180447838566513161978459081910653468762640370496624557328803204455685077617630200104173517579272386080440653419033682139397670795973829634783066303296960260770649114582334998097182577336894991060420992705587727535302837299810370936342021820084916277323234721594286192541255605839625232387423434234578896193333176642534999873292266705759008930574786012819932558215687219244615060715544366401279753375484452714705239903296495199119679408384903113807052336710437590206407312205149567989844873017500594407861954900783778246173357721845033538271858169987569460227053729637387093002681861868685757927786177791063042102916807419455121527054854049676127275121899543379031451854618281309256441148279894431422190290057836971124845549215832966055197279024131875713253314594763851265449962162469126471491786092837795997969777612242944234454777773079197876023932705421238966726791596073684598455809113059787010085985683890677874911212581809426130238397493352894618121090896905375241756399909534658392012022569990830640208307033245115429837600696749517051209243808075142825361118843731891402563204464589875299773728900117242975356829930568624303398341138468547963063983659215744843619514163795323927555155657220826001417486649691558476074657142477173779765605979818043340065213269724031297329534167968780319777987699238433079391543609236761064433855721322098736677176985324329799297635979421140033061295644539178737275236533756977655469422692768754256915371014961156776497539632706985725712905645608545073926325410765489398410670935712628804347306835870739362337790744856066577185678300659072372455801353081526559599877584252702348340792871486219540255832318071229260571260391577005545225696208273699401116322209441900335820872692491220959616063554473030118821882801423218751038246561396475876552530954754950322354025585148967423725048749760556442277475667848356107937163793351602090445150511619677689192610137541988013313821443495975486596050825154171461265965420959083324361449620049809210123563411879561738578379622279274611292166999234324430341788908954780432770280328979389381283396827991528772836472657578407209123270526207431195816775142777907235431917325947206020295259956510116489392388481683924663173618736112434744983089737174702947566164932817063672799399835657474476083806731986845920081001097381880094844394427179074120175553210727810169349096487756441827544284813338752681320451202600985864294695549941841868945349862090227524663174222955698873962175502058709655172264863172643607619706612655873490178002910380880532484271688415188329158202631723238973593431765908458313291393272737999194787463652952104241226119368514325889665181758589837801805078519018751483511830555795520882795359324459075210895808204555107411532610860055172588423191870689951610778890350022230478081589096665621606252891303329255102946900532490667782262525104335964249108087897844203245468155233991712502509655406651460866085183729488194747357918311266281357966723876419592980745235266155617304504181931300749665937043076519360197348077405338529959933438298253115598086148538186944240664072198410975619227470855970539970714388491176947992483472281227059387970757764885007935401977837756124747883435748098326344395287288624131944331070691455937102405924785728906731451379566180146641066447718595322738747818990407932763328465662935573124265765399166048793195072791699180815097687110796484831535766697504007767733825449856702984352047777419752547466075152929739094661438395324794298934535944266938096586368232706287127891505800588873140149724153678893042561917478460542410359550537196826682288050349263472191912400046462550257444793093814552875986364338246863675648399421493068091531783942956211938793629541628447143507710651469320646329537783385963880105240551666452785698447179187374263066353033314897477260063404888749619894718668787163269850545015310740779540780746345498423159639115234613508512266359908264043521470778943599500525669464863786678726785243042265599166512568127036420413523602124419543736114764143445334524969830673409516943908398075037886594760082400832844266112516749735911922159552861081517985620039451219706653400144899588455668646006274641675996938792055961804451645569589054207408313946540893556883043910099648628676998696798743727346850426595323978417955922949435033359478280775136285699657309656266773435390718677558379916242617012505313230631310984953852611720444237443782045414421974985554898636578621185102010806041091422749699576728757681554921718981316327804281343120193493941609244324390845921915316315193576855302263772406536988390976142210277037332988543072690738971927244427943343539120292735756926135867938649011148007825673349722642222992168813933793192460694736147838174911666243155827196241615749568477480956347631776794096392164465419314760285046935783198181738939573410371521935994204131104588262673817178268857582538017863314365207053207839419168010052447703089431393229086937901228114081190311460303532853977826322917892193616974261034238902071769042833596478717854201805998787074300923958443849391718322881867711788597080700681061840100075767944316871135326144935042761168348384819309627026630378390112907953878685022216079135179743297193341125981118485442825197432733803832800997656097896070679787499502052778564909211584039519088486923031930731936911342651058176056800152409493035867685945243929745695345948815613124719166352599842221907742672016385392017284312326629936586336314266598732332048143065800075887448867911393623687120359490888758729828739783512226579084594415465255141654686662030711906988802356279549472496330367703354598384862822352824823311633764467149342287217858705048305987023365996493866944188834883457181644189833491474456070256945276420753636351679927033609278313226535854722392684349792292208532094504610051848032505721091778193144572623323723801843347013657048135732658475510975663767846462589971754985881873706336417967236750558886460608131966209152352145040455463731214550056499833403601877927760594965323996104386134080289889941921926046701093068065262097587738682200785127283546032980545763535387667999968219680138317232636017541006948299269100504347614454940432413225126793137467766439941665482563239010981942717005875102226454786132809391001274957636174837234853279404310318863803925268648562953129422101236887761019675210402718527480656302943155762788462337002458431042749394306007758941308640187859429433717576631984785574092573070167488850689681333637557533359503102784872424484969480247786353547833242330966332898002058046490347329629497104732682997140813958572625184813092975678967422607974733445215852696841946204767261953791498215732328176593844886722477268755737552624988182273568556694407858584783217846566078940449029755277191161232404862325946594238284675687383145958229750460456492902593069099356315453559452552748416262998180654510322134753977421000042687059313406793705202801283859509260715217097021173253422233051003598107118518480548847533942986417006512569092186316847324754360437420003812407874261870332823520035776721042978136616989219858612477431636332090814396473648775318836054152204035579313046329977089615373507609668666615519644836452757328851197796611269256486821773411332618874420942592953008938344672736278585553744663143234175210339799251486737063764872009018086301503633852237126144105246895476719743694434478895874333140003822672831800309444995682656068877530008165678195169715611374266904373486380911342212610547363125172151719422475415669590482463564326131155312077088044384528349104648954808509052381292365358931799828018164033052106872782539953574984798457177076846768934828983285367531444276075941512864437105804648533339317744983539484693913186730652288224227533509950271905083724056480258251818556056069615255517801619321227445054888513996696221466429822819585426581860417273327682973434164540729144961646043458901918243114644085381348131086109252691040939342130189853369288809527401249683193981635343743364871150506571494643058405106641352014447474340706162047525491530459450756888021941377890620116384471178933099009074776061695259093999602706912437856121817891276843423236963245582969327088330491243838985416814482867287657973322505446086383778477788966201097187924721940631735406178269333851625628772452683945937176956539317075456649777852154339697590421053782640858831330117018578243482317718285957312263119544517441658805793186989929309081848149888369133978751472665687877483501286726978182883719005251009681585724236294581482531054970135117273709353316529905070005110341643990912893099655572259283143755639939224265629071840283681505483169009269326806227118265640291414893862967535132376969093687077361762019496380898555851273673927436217703193578111484829154252063717307004313053423081633191586250061827811610632578961368729369475027565430936630977979894815091078848095687502855358312696077953590922147117868907312314550361017802983452109857379886973597151592559808662355225249087908900511527931641984845460484179551224288206350026295218298939136017629702024162736499818451306657752356364424976641961461925094296495572389216817836634170131050621715535380113140993731222504637412046801687631689019512614905977480356358155862898995931646526240067649388900081847828811926454957628384685731256659469361607839672486865940315741375919954840850188851097616924703464323168064233065064186330427926155726437545559310279334284521529192112056259685037632211945438575700690574907678171309452061605887391628434477474252428900439111646710384026150695347938974507963465982939644360453037022159383986105054617893801732110480355849205007596199598189815909555131398051907624327723016769094496103827340816074409446131883313784079373165372757712839242266002485268958126247600124619449811203082584542612372423571288271947698282529504704726323682996099529564461585735479531442694662096923034713054565469566108504564718519055752301130166146359040003745466679978543491694211718289735904888344462001739338268445888347506952977847439321947806288971989758130801900299567768923833744443345414681252953679098397353245104795020928279310283463264124807999382830528852705984497388636604577038838062153384176942112101486704770917896980076921749259486251474375289089901661097589889763803752630881133310446844458423244684648151361344955415724432394979688251383341082592141556417159326453993856003796570111468218901531626303101225506339574923090356533974586667110380551200499638793235464845441295938010117967059776131091574336812854835224671495016379980310230097664067904207543335304692826609508345427595249935132616450159830789345883162175484213604347879372522730924911646171581515750485369330031363952745418006367001241635843570564169165047492446540551478147479463486283447125512406906671662065999913920626575032024906816724466999849159159732420659785405750641941391168763075586716903195323846420268529568222189113636609177636673308079583798646639522140416293646649609002905262209491747117231325439860907108827304066083634131346229582686374926789135474760197507027569256284867791201773670408939873060226026881172689371247422579093995514396028538681387688050202256178566295889799141851870675032435794969794419165542874323597609116971949379354124184101642613144775418481261944715744453416478884642840619318860572201295966962432678988834549672234124794879877900185352044603302721457735158715418410530148350784211083056188216311113128920356166317373635982261065774124151603418043265464961955615727976406745612516323179817950595675728776156255658196217573287740518113939873586982774431580087425832214372172146876112347161927180266167497029869695228913874657626270137198907875341428344817953751823923884044024658365192723828239804402135020721800590005255516781337059754869835002693485643422897663628419191721815830600126378955463969318675370873377043053336458462591729758681740885008402791888187661468174833755132915476044908054705688283966545043411430842820883054999437927809931876909012089595865518695502787560224305114208205842665620585899558753436818481171886957871690466089212566576708519252434796472107763723601889786042845651238052829029459116885068910467427786084563632308862163450910722479578067867797898406208811999263339914593224424118696577703374711101229929490142938608664417651267197861772740951862187342690942243561620102387874291735007781480867675414512757449195429566748950081784269920418420934407905542119008033929701918321311096897190593392677134560692555971552659572773760255867113846604063966453698589857327425216622467204375947995331393073922488435162757881434838735114691991099377622059671337695502464865835107297259507575034261671267417808433262254677843715965351311367489045705193320135572178036832068491244648442518603874870035433995491938632927012721329239215872461265150158513918645811805885295833849577517870850053323142568253693504212168045860350831525281288404500504994895576186883053422304802548857947138850174406687094685982189113621282795315046424362952381119496131990156799407317865048490118582428296622386343166341081450011843352125362249984026378416881332627795395963526660722381405460293017945068413570842261491780090583942432934981967849364952911948348456336209102321134690001691760174802753678582051575159081699525217455567868148886443130732387440883678699115268498261376707693591610227005801206290095032272716082559979353146138936212884910161100701916423406658410042104446542198161078291117473957470628117191988699347960554196004827977687153018495524084476122479778366469877764805250807256734984788842835988938464281909442628648443486274414820285813275087326141345779464226948958228342016069292330440298902471252080194411867249685157272882485680948564807296717971480475683059840692218510024481704536975235408220093310151590029650036810530489025721805206883428363135456028644363017493471194718674710846813114596412892904173561653344236698885214885895941674927665664021934902369910056105913778378685326484919956595887660829768965809455128364989807794177752985051081188824596046079124691698942948401061473039645979293520981697330639093441741266395051352647231153747009636179456820765309505778173632303623441137083040537010536062127835817343552014189786736447558182501314594287359998077602094370249355734857320983887216191603989191892496986240989936596039223807745487355584044355066476445374513700454212811827335826648894572537542588021819844338665237549645537381136876103507956756611469914000277598319909733716002998975358937314745110042244649691129647074872517681460489812399904459258761316491806103418361805971931344057175072582108353059582641873095474604652203719025912176655743462457614434950983296886775439197738334619144015791357705168337039983860923025028547943609348809163343099024066032991375912290792330843754461169475789063383412038431346595192873070332662205610694883607728552164772229304084659174696593258062384115148809473534909536971345482878995923003314333630806732690140187038937399110912192975754024511097340262045790375216264489108532177786249245341141751785608078384533066705191347275164219127949242314360630089934238324437201044033244087271652743769131925674103343418607900838601443484887135702499559800026282057130320126597782721204397457130629343561118190077421114393741816763752899945749690527612749735511109803108131477660274833159742623277676958493996322199685614925869668062276783952878521152066157011863703654357079064353494106610802104368363775096406490997077659302122691218736374687779589964024691456792739878781872503802457356235318634416310717904634594152750003413739359317967108218992031693261158667083110142814779773188173660235511914926861996833358763440631191119841005833047661863362867309391165050658981445866597613821087902544764278231102494246183079637862517354662860448802836720815060428002514157329664364096465211405782799301136969650717136911130792802211181212569738527866587559807547860903943159227172862582242665000799989640257767844577687921828018714437467504931856754439039305079672784609074371793568703672167489015367984925849884806295414754870513725058736731835700250077207195691142883667219399624027370479357805802802617346235520566844307476918022985689444641590870681499407131227179237417545302625161485807855781991161608945165594766079356256373773163692912113692047947713160476984642592081106040062509946807003372219543325948778552313542293231454720941074012679228806938584995079600977132819928192359039329734195520148636179352979286625476271844828280879842466663112687450883920207007401203826759437500304341971127709527028114031831778379828692292046598310332273185757820274374539223122546682387777306150422794786373508303096852769279908330158173137101673701724913276900251950548445663230695212368864822541544399176133739730469671968768376259057443913784575157234912202967725057997853383495023144116414892461727359207677946814190763179521433915641861579265162973760818482437205384912372548323034720597103115082027583270506397744030507775468166251835369015220522987366049310004692287206279685696740421497890705236942357626637575962445540705412142073712207358865462222917275465137669639907824944482414452860065280944762094927652624901047348287716006314586494867499391672555081695685156637071634991264518731085910457382889218721708991750438376618072637098877335518267520950652865368432056087987032466828348829418416698433870928144665582368282988126980351335547796539751722566549242825831401503059980405938182446387749078898575214205961089580820587590700245648223298234670677369784146429055158948949295438662399303600078625838496886320986386814295354399913326571447526661479233363838297505925767421043999429310570967617734965106222269775702789940772368414913689590082774694536005692784265695034560002407151079625302192106764126288099268795945330000510832616867061624349089038459833957476504316907613469888340910543664876905975119105423036563594155055278409127360501535155234193937555013273793676823514012399875281436508343840362893571300278241098557356537517875566767978227516111862144062268371280325855240682610525229809684863129943739035127179837924248504211767354163213035938929437755018135197011035670976629357227130453771885633291485313448494339721358181487592274836222471507093064135810552111485253589626670957760791716663456010746020683084229349504122032173549172104802593285979639188424275110293909185856528044793065883983821704084217397429592905830975054587592098158623830557860974086507113447764774009628720291473284533812044223430904939008657724183952104778633078192657554823317114353092647286043110289171959729248704507450948945106330813384575871133596305189579022497428263299300046994453985017187988727556351565599078665339569794056556390871940846915612759784098566990280643634932220262695217955759857604886754511848692627740282766798178526932540719718280428108232014518960950438942189920388915899727260833829232093344404768251655317999823482318059078362616722988306213786421009239647862748222606335438728500558626894172054034380854382685800874597636339596202091168486612951219436707232397603643551216750062827730717289541092983753606423475336992600685667575833648998761697031170458066583523835899290706875151865309256770768966201988565771244026183183952029547906916723180233461983815168118225112258994835596989334833933690234423722336414746285659744287402405501272081589184656599920666951937532949781911933177459004210752553445164044199794766779594337858527230756397455665364060550869009172832077174464731297633271110959371804227644668757229118422762993027581588804508738807379382382322739787511581688173413694711127824377421168106532620962192478955610747419162072468760322316704464450871786557233015221117790988448165748320617201298968641029776072663058624981433901863544199646430805266983317137994251947789341375967280505255333389503185159117418913782104891509233567662952149579679954012308295501745859134895238191600089735039250601303520179774587004108569218047977949142716589374237593480849591984206031908998378039563193400262227594301015475434239397144097775678201732533830025270051859307087160817643527206722395439086228727701381224742122665387967843898201253803929680053811776466058985826523206496282072609848776580187065370679521107537005272803932465884881859703342177392191025062962869995967518340752562924119158207297508496025290653443574204625215918047083916490790127388426396669867552126468739855271898387653236717361801712476278957915194467662719701467483088608506037670673972924537520027427092029795361357262240846914270222661676543242320589288609963209247518080870247888650759383940567686388308753788420120505423868241348597350539935265286661234153664699344309914383133346194985450989805750006899848210897110383333781256770910464436079777291649788521148346117702895268461079848429276584498516029802821957480869096335545157557644146440551265831768508816375240149323918710860512809174767979383910421786502817715956386842120472178956969767784090394025971665547732979825777512596684054984719658593257764080598352559402304179173739890069072898578152378902445112265365470524668919052488583129874324129609963859303032247737140179165534109340408159483392971695357509855865799473666803264459237495437518405216849573655162162868501069560122215759924193520996199813022447675510360993080430804021959088914170902266818400723999061765065296900905959708912182015230427513264288389359073463333955224111783926771766878942619487617440920187333111932717621559130129939413050678853370851258566934552937767628730061517499121968089829262341422512542123000643283746271697237198228080038377665522049779284269747485043850547539791332008562502452294266424917713031804189813290168435076277001517074795008890611987480215637312834780224337292340536757226480225975677622152109229815752605697993642408862046547563050243223286807003064288562420129857781626060706939690269168440817377477481664127589711977209440828496865796815505762440803870178601229146602420399497150263359699299594418212382547673189475309224510734611110536792712177641408446915382978992876250254173778835976533080741755151495331745283421163063414872394374469739853588121965958521867372986243213189467937677889120967771357763324586070535419811685169403316570838726219399445074781518899344118314299135853806502704669660220360045663267842227935523961099822373974503812740244631627579011671172006239842528962367429378617421129645779472160411001251069333398204007749009794379054024382018281678163346311254919515323335608388484280026871028144229093103197334152959817280313131600263505853932737524604020770510349436379868826009930940753327086737618879389830570919254890551101447031041307064059101197935410807082168893207256384692234486549629423763172228046765762840371361958098005468778099276072101709742564827621375959013699438057472667287547833666085646514894944834696546481522047533869300780188033442165667457758986096540702063352017672552352430229752243901980272797121021076508188505955143715990831954433330456381165309917649786555348429819766517462217292687066271038604528250291198036138179321837152691547270697081246306889978015053990462859667589489404143458023562996953333336535975378674882301916461568191740846243943035082135089350589164014198543053983276703562339348484308690742520318590749465528225959938229178734982325996194296053519667390773054327703317316885809461218515142861750164953982923851906115219789174706202139227097327833531828398943157644256509562263360314921855599070918620211139530178811589856371049216414906505469418961359631412565794806334818270903033232506005192172197859994743668475256277297508122744690175480168205599483959139169617691783898239227291936046527492390684922213606109474426689080730282074854501217903810129019101390375118218554201494265395991854172013869933164427291939530693648808539536412392936324053168065469193967580131884628755956428224849031332570041100533577614549044375080854001637112745963073522552963165097727486630930208345563658998326454498714648606171233183371795326745309876915471278176963942804869894192400727574119514430454122496971838813480727028488112026387032610267966738665828021031957282705144680879172059680343581372667724586039929250350984899325236311998383595652410977876499413333470218240396809499122669500715567777494406268749271491779042195381884362138696494819888952163700783277652137946600893037963417290111588859841532705105463336386123968974785705904355905030673754614780715057830539830945023791860306143142292693704682707737075968712091083231293668746952765561691848281989987768781241376863319527345758563030922039455147957390322275075314542962303677691714093525933161036136192967224936186314506617522515175083888137548199331607057767853243504792612920194351876991022623934558789826997100526540801478404013640022119914099235391481355323984246788857840053577181707880545681591156715181547285834654071988070713659366773651118253931706747130837457905588950291181231518407812225927613868578777280573489519370969927642103808755888281299201690358083876931845760982888183250071382179782661496375487146796939494053720408672849102099173584922303693192814358976326523214067516561681847446652749970609741665814287517092561123628024178726657176313461665690192503759872309447488754539849521623992594401895210429973074903590395070556666578744007950211487134112454913689141569375526018918883910676458211061128403656668221066803051095958983431559823374697595677648082493281060366544824757762188394373415873101514268146463516937404960743501435946265492741385743184587006256917595321617597881554962653477552174596669737880059066904764093096920712073385417538234466832620668592891519144521645622211392909047747940650720050579587110921620762172041084448729081801643699736262928755109535374849390675946553770261941196411943963880755723900750882911929960639721319592904400915737630197913750424764490457329764341981557866864418697442252481062026301225923391492751390736941725350235976648226744666436197170697960787876807739534918405911586911690417848456746673109832237950512885492344496938375936683297315896955932663393467236555862815937984254777322094208723354087309117577373844223340261266875624498337308730933487354889358949055692090025137101381119189133800513552190480372806919861811487101329461651660963359617490153778395093400929748298596772977265123534243061866624300378639001657126832239018852844449974337001050043746758182459381207919835433058846333534954938279411671579031394254573041266900407678569051461754307232883418409151073712711105519332148632584054377829692159695104890705736820730767868243791557900000291826357150828316500042759025649662080036887350634756117435783967370108924531174261507592860470941063068240377040752224305981530946596323950766479380329288508516674427107601538139213752954505020422431827461037990507554499982112245821236418017995601873143565945876939553904427260828363137997708186727240072245461046360558785372795374614991570213502886269930902965962577821258159084578300269206577823064817371891215394815170016458790728816513652364516005004925916152274494331827444413680714295220190806667212440967214872454274172431194271412535900667896487238524380456178660838818943100305228648751758211591509449621713991273744020541252531564915585912405063572076474494622530384490806579328713951574509670604553024191342750855423220889473584308833080784143904968922287464875292690251464866978657421975879916345408364444849462653116362558741414653808682015091133126370338040082818967634587900349258625822728389946059266215589898505756687115573401286543165471032624917486205053681014604746629598245116591607670414987777045903183588599717259941378833464154196695408553841382183596069657972250160552987742789495047142674597377669106455509374774146971677389819512695288458933486300277222699669170413374978690475467572475146453655475337605652125216458013563456424877226531168392577247102248467459490706270248168422660147694424206934765017540373491234091421588498707860449687641031251921784247503887182440759000009284866807545347842278579487963096322214576722692954567209263642272195165228168257434160359703955679583670932654829079622760225366168183485236443810180531223171456010380629969576534608422842748657029762764715283504394984276088895415427047064964239993123465019385497486690889505328718182957627173866398897275399158654373201133224079274520647539140582902196287465917511236669477145902646976591280609491533202096142652868374211454099796572144970940939121887223277012252071894573858180573170066430831037951360727282913499135152055759801390903077673467082962673542845533137068776412889019519534926038550667242991628749378442117135076262723046573475909299745331940056234028647126428679395464363418641946675261869088453446960671335559198723549886636329007955360052443548106649320605819909177479678585881247605889609607650768337172480509628581677119044141613495881530715656059304330902660229411993170106211330488777806633375449004005796904868112216744024037998123143975606504879587908936012170009363460559421473786412131149164921103260404036442056351920355214761987901083315992917881491397926936844616528454773116370819541479579537772604711386387904083867341135513619388201603916166168474762411121377132468377653287209629671829883913514254565972034368525513519780942798361994586517326648700289671942290409687687924974912181199755128026472282697545885285583372764849667211430558829404332036739939761843395595738827419842829375804578382570219782578041415459341294093110164951226423135126786810492514937793047486854769064231722212164256872136660945588670685473809954234661788740416515059813054323408002546583183109187847816429198724158303307166008462463515347894583596677430956107543408852468059380640953970854374224091832852681949039112057656919479458904455036337547886128041826139134951864872261791937206939516950247988439456764416079812605908839882175301352373172439403831302017428394621156385844691842387231251458143223320151606252885970341488145662350622444106788917426758842194794583952756948412792765199989273821541771900590323316425151732691656263025309389769249567248048018694605646259743536046429271148412863368803366584686207909785882358299103206347758771844447751985283137270231414078336581841668334541461153443170023007589788587372790062637491520254978869306696421325146379762208901091798562694834434868057584093206641877410395699709169292249662652241605928774619200463261555879243229546375668031363989688450636064462615398204887108638359301951198532903519081046723058632472703624771004805033645736898184655601756686698833398197043100195009361866287223010476299619864856698113856025279659687799834053258903434686671346769759391405910418012767773543079062733851013490527583810703033348738526600761951147961051893984337718391864882050481267863875550830266532315545250701135341370717804382242044893927668620439880695105612506646292418805316000390905799014361718481888310664400000605671598212813952835941616012393525451138322118866253069412145581654178988858007340657810892698869025801005324466847986580731721599272965251897638837394924880176912315775826560967444896782309334143045877021381889908844130960369192057588386453502984756288384038531357127493373094747240784332279916269256596159756664371497479077081441124026177307973962057130177139900526788933332113558545408099601152708239232385534635884399253643649661566525577513610430086597887223464709523450686652663275534957025240397963223701553336347352172829577702257046726518504024714106843187861000859249396553978196154819033469045353354431905161421312761930170237947668649562500666856275063915974980683178734656025469644794007844827512040382361768362099113224940206652237782988257047937107522466383440598646050385352010417384434244525557370476650302349109803376685705404388518240167034006128641713664077812710278721470686357012648723389437710806083111948851941301176035961954250983656528665502027438579656592107282076846496077708366354443617891605061927426435469071122900062181273629162441104536282300781186805904540504097901868113289740445002249595049420674105938732693689028193453494170405700754923842902892879150540441853269329287367359579638330375894395950955003971398387456591153472771343297146292072356767599654103709680006490620614600263506871061911314124115945240897835839649240126562561470400601109374662078478665513178239807412810683841339675417618664187598579836641867686163555269387980615251721497418279803293475969027216313459321696193179082277721163644094692568086757113361719082678366242909953176081094638488897527377900001268497365446648919691468381515571326112233792260236299597769525221619352833580319535680942246014067953066007053637734117427843759925210915120515105497069080985820613437651912227840391922877701855295246393187629282077720679443725990420967991580601138949169406736384659376351618554104982307922643694246872288754981803008993850377078894792734155875297794483190207009764667852312792265391820988533548929353844201001351343718173161128332964581091348071034222983274736715549078971262914011582365411966506788225766478408273007880371414902116772030979238190193766971793689765245695479363838571392844366486840277152340691079578331538030253115370006664807373953870322832982676027011306204050107978919607348034927892695596862394991676691941550001634174213589825165241305541971796177231133535717465475602128961416841252760359057591993295517367308833716741144199483029460666088727205884901166967139424085802934677098009371903879242174610556386338276323924927827315762274565479727662188820028658504873485408565567506431514528721531120372106477702698613261895328770592364854845558886577988414987221111484654645655109890998317608676358841943453888837938019822503189070157021828890862843339110726407453784595882515985646325846903104634965682874747556669518563096438332786078765297914395990683856855414088343939686060771851618250770497740371610950115743622279686454761539456623296670812688037762202021481765798331021849823860843826739771121119005310907068898843632579215176717026345064266869101856031636640095762038120539581255801617403611213189535645584314393057625516849673035410525398122359973368085972898527072391685712799616408683124177940937776067582953763976658643022996804612717351591305187409520611842121750431520395205467630954854331225419737008543631932602091222490354799117749476637149414149528153136240042619158379040616721413780042856670898803259020415468696059056572966107586322353066884326616717977768992980572584164626240135023140924398174606430778024003900544619857344624020150296479086502530934440413529925752658967036651281287850654618208824547931975475831478890167064282596543697632400250459936087412921966095507882246751081959976997118270723068813413159473371858959369583087830959904299222047937924634052417794630492223032588850943104186717969077819312691473534751259658733304054112363213183706450468148445329532670944204119109606257566992947818731205313050200452289803239932883773074163929395230837744062075876176650670730895115864531649893465680071778815579697402219810629213359177721322354381537570788907392230166898363142598538084373135156850623989594426758569630149631110968814624911166941179265446531291394421035381887473821574464756745525567758305313966613239692946139775331618654471343843334720157644953530900871987454799585284879961311775996729327734645169588706438526112509197104739940693006069054960119332945195250955932678334920892873730108617329317229070474266831624384380257548306630314739110403173025549276639526423170015365238862735808845852232832870483386865104955251355292092225211173553471179924433575494666482273070853654377782071543835994607567117763780117347939929647128588794326139117760450379046965864201056483004800411643104705107463197890479233163210183924052383823112690135629798070623344431806719787184653030530655900675418872825778368499704017668167352968032971452011507674681444141025098200145307482649445002537390653650840766862911662929127701661647192448781654750466136283457219640868902810073374908509941795577167130681071408146034330314213726706800775742054403221612502908121479510804890703948480524657755720363120780935946577967829146127624295117127284544152879851197023030873497391374677308685856837079325815449856907460275241167871947292619382965797421965263358503708088327192778413571820861898524728869595990116594298728083643467896984797903549819331852076341299674226115424527815271422576918702556616088358690113567586785453427679665294505614373880757857539242663645769256746884745975444058791375116861138044964777681333057074882175269260613262100215379009223382708771408499862950394145196913559103441072483496648669400521196103204952813318688325514055826186243903795181284211238361896201532353292764979601223481069507830627766928371299502093046268974740067410002123185223769847480780538810978907870635026627903101139738986205175767092390014108061392476247326006699959970631871597183156836765906749885873960134871940989518677074378225764145259208552828373019219173231592172627560109385786337953536376386560869673059270607208166548715689293231900673369435725101990951701543994900980664123336932695576514302507962596059253355713617546151297006742936094226313443794598913424354107366704665775018362483988922058703706275733330882680783935080702114187961136263734485519946526448549616139226065182096893606163444251777676871940367477381196196021847914222260250952902170345370599904285128937806524717264158872266220187569811860902807591403537791532221158304621554930252496603780978159747989959990460138074531431973280397767475360283770287812127734011619554924094581438453483047687337269582293752530211365591171860529537638939193436216229162011195663982985075398684334502779405452523414633403970257164399526342933297471002866653900126942927908780006261321590926783828892142899554796022763026536556489661124727123182504258337463091623254014635566583885224289509852003499098542938821097966438949781704809323669119335584952348601402065172057458910480592182164626211635990423184268956579751586648350032498913171528265744632464756247878063597690784276950291257115060987744814440906785979213235549380459650343958627472343665590233213692459839393561786185005131385040201085525707076137454016482608185880737071524489468689746528155087901941996731296802174286903104316212468069644381784458253835804728229759811627557306277179053355741504385845291222956041546703365450097422819757949075226706614118147160324227390143669287890431472465717376805676899636988871906455360997440833080242814004237133303655089903770569318413623293580579017015253811904331656314682626971995480067496016466028204206908722872221005560488783395587371561847680645687441980632135593664189900397282429328519491389436189426675159268724192973080196636883161336719422519690655727027919225168647194241861674600908090003761022179092405093414350131931532507809312710135512242272001319582737330803939261754438671696239453141997259184063639833407941019194793693176655413633063921293745688612553292595793932713831068416238641402899947842208105514196709174535448232493329036012713998788335378014288906298453064509475464269078497954115459198581607901515966248586764830434035240598661762386405954110978359610988633783714271966634312938205862938844185129261040340612759450069042240785931475069432756396409934625844144625797366650750061700170683595572760777544734308780775659756891444046856007432207253601041138361631423491714729834054726907570323300062072244648330430569372920621800469521056033152702722279340732515052898034737414586209753128943184997835646522676156932372295342936186036032830777488958216506925872678408495355797355944173788094336761650392775950435008192799271416936930855087381151992399566609619437736536960453605937861284218319403407040391477172109490641541818738577372191682121070471977056290290367376182864986006556721245319815302340259148420689274264893076754124319490820378636671502428295569181312511516225549340061294110199108335965086264215030978873183547700030364675588307619529770528274137699319550374387020894614403773349412032673217274383528388427681131303716972400084582483965923856331441268112596805093738202743868387952442089529495565713051496171514921944782079455960737212573209869037208525021338442201125068604085640110067646711186533128043783534936143577534742057642987980703934043445202550502049171311994239187987514891996835533687008866641858847823112831744770583573875265352491875392750984878988925230047737441044178540333977326701541269038455060757482518826849136562714007587598370332543197386931395412657590443060651799096283288137324784411326572020750898269692500564604473482418035951740577559454183744999787951397411585888021673413747471329168106776926407057467793549000925649856843337120448415769939346587693260434339172468508649592273558041159344031663805341262125457584603275793819316560952821707975783117561080345529191304522399810616320539789772325964934750222249063433363203153694033325869877217124958623161811995442950006067071154634493143950687207567023406443475092219750642682347613879064043910029831354044233080377322859502630927234091065585567157472080581631606060767412032885113047619369797352057947120687279456406863125298509149418857059885564449709982821961621860583560012373626722294614082176039742850474798725154193138058256245875230385588803208100799608634954818793976381368236765970677747818457315110806691536250557169607269285554173408898453966398967130269486240406399238384459355260095352902749065287767581866457385371558728194888691801083745183120557911944625559677788917954073094175540286490693678416010815628755982962726203270447179055464692599192936102421709641396750590377485880006573896484547743985102972441146187401902767538443046481743308191563048933801090102969143588603674090900671975264633945158708997978546477338359312638046573259920988260298697211572286555732173266141144109810384112511167489190049555423195714790080184973057561317862001311111259952954230317893293202396623778207053274013047180401684456610744482162055043108296336265335271223887424965053031977224552562132507278272470488532038405142046459451175568949367699522069194450235547338397315496802194078898761331936636002815465767057182847072428918289461758938610226588111986145965018572872288805795535953662404339942406595835502020231845765492046141190477404471673300580592977160837766080092186548383835254242794948107198506175404898306851883162936827716554237484986510267501308951571771952215326315581071612937772162360555882939100584223119339984914292338834745981151910223267061314386532899215395808992773599287757019869040839427061123739667311981051846516866164940959141796349127309688696865871049858291402938751206186908017160028578485505629899659899203236281691295267704483359204189644770599535765382789051717688569392296090371432522048766633800931467404943395598800169436546706048022329227683645651538265781828374466405223598262351573304891737899897466118798021635425891261977079579930540920085872662537475335489363192227580562641864452084505641493630114264350777970084290711648357018552805420134797651997292045977075220427155985874581499874105789793284569827622057676459832575759780133209587817330090256657343950627864932221025132995734045659252411891681863640717703902528928911197935855029065536927142944066524411775338689874940717597355122836156649635256983685360063443685899298877559842825399924372363049227174945605311470739121165730678765453932848433637627406279777046267469744595436392040415385948432538472472760091039647399564371243783404671506925132935552165966072164989556395858804542352760301517597593089283388069988544004087917209972268099212509333194832630892488440993861155069626855226255736939534798498882249151088557688411294377874182709727944179039646441507446115480950721729898705566510503632083554583045163239148603909708104022286809301736525357036854914095171749048929380632659834127517884989557017933149270037204857067193803967743873418357445178407467969452833059896482383045385385926554025844770754098759532064483090882143270234360978533101683252485035105017496403569612809499442304093168990809356433962712739311736745719488284057133556470000855818956953221830433491720138024891106134640007599322554992547897767920274522576062972839169658087755971311872555563583411584252026690441977136574079998840210685979332028424744525819191405740388661766427187914576272527509991229458418162931447860179475270828715745008600230270010840600568961506896529312246072840272795273193179252657975299416132983518676763624009957039509742826919170547608185527804670564438507960727121655452340535861318167207265087775502373717182156229589652775513232238419738825607477898306269847471874443981830145317291195185627157328375004731419000772785594619093957012677930034215783646472869690886443604974158166179876780743903788727610535152528654645740320231539785670631420376952401618376144926878163595425633119480618339202533376222685029595156346255464565623302358774745657722226662837526245811118934029098546631333820677734303803302883447332846019733729572858635656736529719463823408325206542236157006696967554251159861604639349956324805618917361429210338657790995491115310798262957181510528363237528258950821523932373502690950500050983671180797454975220059274854698812528867543181238209870037785054780399469400520426310155335069133135650725297593822335229162457173319366262069346415461583261712977116994975488733254827627186357156116797542265136116427746545999368578153570507398619651652222798230575590850345792640173357521999860205986968947929223674212878983976854168847142348252924477945459097802732010195756290345806782502513190720779538643845193413067747479050896734937707978210742645031976138911681602674906309609792465963296680539557905166596356951242085652973169193303560091292052487390568872353079711734682085827441855991708259701211067927389446660235442715391471419606150767843856595154446142090050532007489237976347681603792067931824941976834850231067752916784654981775237032601222041009989971497965019519476531032921721214077346808387925562337535855496681475761057127320709849158685964676122951707256912804994367117551896152095712758177084189503297343179502654080711415389342551687772100454201625283648208419810725753302912001076218278389610417107531995574803493931031629788283636239926110386377174646654539203264428774773182931372734657550941441413347585811492680454900673166283134973588055714097012853769131594173213896011476450745423664959728638777962216176202553295270768128295643887422996780757822462967413573519462820166795731124425569913664368399922072477582353726923332981767967167847637217283103200527460040058724856777987653908335968336845684586368196480241539270938900037656175965452002947657197417628257104883820821734589279335371276500166277062694921306288442501664718547068809360330803152927388332726042025539712950023562511341659870047272105261600030439615957000188630877047095594739886351175752630464102465533686472808175101429423378011846617639630550136137721970247879247859041183188026402005693221397295948836348415653150073378190884269457681187749943269180540147076078695101640947102995040960899665552255666333463562080703367033569027154050803753448191754603949930583335060460088308596458073820257699148695977524836043032453750801321311328345578855944774155141512079793099364382893789133900587146584512926778363354278536444626541923514072344129877370406882001582606684538984950753057620213156924526864005685126992110309396321899780965490978128891601603752713150878510812847485114320825852402492162512444397892397036034596790681666939076512023367928508455210891762861551238717110964730114592515186418663519888814537516091274592819508197791769633831653459002873212435853567835208050164677059554379399089476148731318001491287773934691697035854473541755470481806981619925327375121205717159947066607090584936412849476190011162742881383503190355650314015013350365683439742732457228438788048093162380476350080841044641298809191559944369485595681759665237562723278282115526098020260282754197639612971667204527856882443804801988869212213872233709171321412176578079539135553657254018796789687927814698135216714873697092987216806717940374117805390987572602053048173915345751223744414988030804474549299613467356878931431792158274816035231912764502584931099967653098969841124359177772334785215879312688722581327159107754943775123482484290345840914147684525985941312410575815245063936215522068784306008966510354969031418780656876223245305201884093398032822961828704332850900838133419027258951541012062391381929309287826201134336235035150679112393626057127420912552823728783835487653002474081045122869755720517952727135446245555706141169688490037184609106221567521911690721167141490691265369443537434426112215377395399083374996567372147275966237777109932903230339096165739598910869754667259977812166366604010805112980369150721527373222823525519355938775906646537430438430348381647671640218215565923548293393308018381808971662813238946723021818093330226644555744665671161077068146823624577476647258957214405985788169073049689432978765395213360444465300985127897990479849543756499199464662450794267204354139846114485538404516767854949551119307016022302846851237119908666592192039496279770813297503003588206179496112501515677465943783878750997717037503000916758174808823189335999164276581054066015468379949750803755728555454841003925892100615095944584268362864783071541261878856925244825058884444146216062825799763456958848216550283140217214705663293368445302011973731196251375554773125666016597804263227663639539614574526373814829449842851358118584061365763876676473238389388481999433412654057961257326191802086976471642836010948257414567755998568615429246505701073715163636908330048078639455145871801441306732873674267573967855885533684532911832581245992896413712645910816283825655355020306838557623683348023886573840115237691068070489730088928704884262773708952277758039511180795675804257974026182735922065990919094296127315870199914870205026827479668581044802121042425769296652394008999406678077244608119092708066954758400758375773001186370815690035981577402090362018577599676668252123920600839562699135750599268021238306940998411293881392360530262359782993861410495691623529207564229581746095592837103940398316234153596861203640773737729102033267761759008975690528402374869797034666706180063597773587836164078846381039992659153331909304976930739542757488413436258200709178562962644268417775683711091604551392566692594127964654090771832259555453465962631710466499706759370677159926755947450076085824157270054445548240416833264510325058007940613312074916623228367508322552471520701228901127027613944045348533124512469699776928450030594621442903947985610063804712006474005976784294796437744148671429308133229992816166517657110534346926657887819604200747858133271333364359182035408885446543404653894238360889987170315498184346949570219441195191852273494542670200956405135425928535509368402594015156495301322707951999717504688913474160069810728661001552372038501006412170473627899439219132010528019409813596538333674879228196273599080663572128165840735660692261358104886879235304789277905632100413000141101990440478616111963445229903871652496743969598330063304124546170755602147237217386088477298339715546303588556354836016811132123637933741961577768476716737572960393757672958821605139964213634385447504423612852591584711438756201495229496879764976636325768259042925649724003677795737855716839839394811871746260027031396213689898159531338633835405504810205690121658571690558433402637656119887972178348946308073283140533510424735718175765704716474097424774578294613475566345175708218867072058954573232365683001864724592370123452816466993164368523252082504102516071243169331889134712492598146792526855131344400698375210788706545820263260564455121290819345479000524990970871329060726588587508715695969991222415697876001584896987505798855869482078719606137890363409056657217569973607087913257636616258028434494119783789164998008654276509824059862693913998381574332874820872990722391593145817961794052397833278429539141894566290180834573831541131106531108194459099918067858518631524385385302707744131189603306588102899381513179356969800081360668143558113042926108085541822334100067725762303429388187401800818570226975615988636850501205631011794788256028003701875325617286954763546973460033863028723276930797731949225452659199771360264536767648187202105846705172295410722466854049764072617925890055540282982886279676064252237498131511888840105935233291220287734619018491264067385574979763994772274669530010692337474010375087132505856325665734968573287817438611610185094518012657879873395867918844783762379787532599365521040002267614492742319739256301561347650119546019513210836560629815533049785216899983208326882077707966252122894584545837864498159802130713820638826986119707460136058271197928242509598296437634190920434156887448691555528236908575975807764608966503299943312924845302937373163650515950875952531013528791733231461405382829606377069748066046924967379110342106131978561244644679195703815022714207187462662245703677895152220334755042645073736629615590963504289875753541039282904435608352989632381792685108430431484750115642950291224396331643063969288393454420831343389499319356005888445851715866560616568223837767746747012867600479609802026517608334166206754174621726611184367592052204766988996944402101525899283723617476032724018245664985849087029707244762369461747112285511546025150452138103586564087188495037009773958472428098290117640255143296155780995562374621161540672624706466197809400688523879639956833488116669052458308160175158461681654704451975018724685301328118907804022431247534602977233921994191914758238844696596038835227616039885773388054077717377570205662880457091377493989215029913693075540184046157588747032516473994578825840367512855031936573137803671148937338892617231528714364621083515201750836843972880288816050791865342601013380322268495102740577429437616046348450169266043555732334895304216873333358419010756251190780481422546373924601133147732547667158686166368610482233481278414835212529840198776387789505035960426401473392238152386632853761898250670966568189164399218864798684692292895025793432763125753394720574404853106802305776661680652572255823288723190877171507484254044555090495998989467804939982893426875775537743761951497483807873113249775129951688473698679357793878424891680638963577258087454147344067266368364606558457434801768694233925398897208680323857866162156604053005267666562674061480914612119174536624548998904402489918747967304676393475335149578185592126747432327825739089324129545344683377433394229262798058253669943748364612906871640006265354333764101185716426519395147813921314903442067662973303489463087144599252455484169616573325170971126979002451430754808034877251582093679289097934729385206921086267485892867793868835230572809807038405462074724446745254241148487890394854339374304318321328910356594259250911410257534600240800118052766488331963042725884050772780895141259734871394575587023814002694460297127038741368406522166037173445570165708231642245928534070243115077377025905293361049218378051007842943115731939478421386620280473110497952913273741111581116985663997316181099558854653505570789106271231300218566406901501659665828589940184105020622498041706412708124186580096361389018106658492912256810421558439869510404529617028195509497641458612246607140156425446066590844444278532297251608832652549695185471677161245059725073340833799238337613298926009571906011862392876117375430022310434632384887421778289486305586576217976409984443541888608367534600899589282191615776426817576757094085070010578439858124453603986931986935672345119057110588198853371070061975135277799663521848078197333425056267389059596143931260448854956339899792858320319878026547192196120355765031914195878135124448957108950634103354913672392358338326410948243337145169359604680766150815912563007412098912524321282560069980289634216300642867002538855386329440395002211598501685099870883904707280649259859165515819221557364875680568470629725451655476321984251438227529648441930450466729357770971035835342824187145143181981331963013799098736563064013770431456850616911919081958078945846851450906938722391510270500871978488336590158934913552870767819044943843442616460282405061081580435744701621142343483739703212980374558818925005497018212922671913501840233267280057461449021732100849307463346166004209604866543313618668709025969237031231084317888942077970294897171844174601972802869186801378886920255690336594709614607929822019996736565711605292414755998399000849582767463406399478070444614875138647071774754692970145302650816942132177001248446079849612218083591319281764718770808330007208259969419884013751984548250576286616786036933664779844057164933304061101002519232787059569281817005718657764353325790535937152012233911728651905927768071572046327107581882384865541218937284266483839838968548532258726901963751144738328653018208533560849751205546572527519887829089592718584103368761884182637766041786583341562623549945966881507332686168703267836856645978805100755157872595474646191597538759119784456201485670002305565627214578893604754356616419850514124041446709277551467224763720833500100128792177769455452652904162992567263127871365796796378547667285753382260911567294124371761932059417578045163260640641225933566835323241815788984366241371652499028487527381736502242573252875814699065984878770021491191346957571303700645546723916623333792495901552342873049388556047577997801484965542113009845278194826420483238934621231855992441555187042272637661985129263521687289673006813256491359154854944744574882853629659464873554276943323737089451852110632405633738062612306827605413165098523071247023064564664639761744698244605764424655852640473154693011286365171874647826560475560602860995224348524310074002715330465298336563328772094746316699290098643052598526571816336125161604826987911408771448967487420926339825467344064941511330137220566350675016008901063305335310795241768512498713507388141988075460915044663271163474862165988064198361466835208015543224281845425563054482081441850185051511828114058864545019303356018597584097484530130136199740939940473620397783654481558958453905431776517569603656317833906761929776954642932914400074801662860724427004051158345109936119945904115771876739838863562596799549221769836674170352977486106841634288960765019038447928717723394525668440292133259744761269260380688291267868276918411009127772578773686948404340991444980788063272767424323587520707739222761277709133873659078860686807007302916513872806900889706398060642159494678137315051778986132219480440535283184505678188666755815610860872076969203389449821518265070432656011230457522520193691447082307872889509877467172299894841504662111612882694955058288908077999564681827249898685291705643114985892544564352195711922528370844000394177461267130998894048582189983361480631416082618989236093942150611628900703720798519183024028252787293480007723774311451141315536614469879186591215463547696231931704971788980794755731314573114556156042345293403938830523352164181772436015397390383767211154373891861066816541105306321554499612838629498864788155444918438790269239870469882445607752249737663971613068982054142683059575424858158566292567459923060179118126851972785180135086984042615881145202917834416248312734398429559414048597208710271913948857867798279303950256829349654194487415431262506475725675539544462239924093019641369536080408912347949207088261217238611093488575095419977627517883263255805286129176248706921940031703769324575342601521222468657342400323501858751365647043107068692809027004811724738750886654775473449249206083151459996100692126294968221408242510848560741205505164216895126126712200292870486559716145651409737048964294266390009190488172920963350187410971927552806132509109994175526805825891247455480167413750201973123510294120443228413243137370859030393224837707476294981645834456906548154371931889627838240428547966762264874271648047589824191126464568202963439863011909854787170546570603936738178011093458018295732453217306478802996423924587554313720877346182094571629015389140374531508799051188155928863001260206759242510281421459358150150321813565133538173036685063973387988347555661019672394398922147434073832496005025844181984137364852109601816377268151614872565468711675221255958193369576877483196612105082994789629399784147113833955243543194386204052206001940520290558658546803894006875018746210822033993894721085322271720870460668241032166641204798315253718814683628148241384328194000004261717440483621439614827292798049848063823826849854247682567342630391654636488854572259241943905142588228505355037895640655714180598569508599229779117079317634668225285135160972973159306501624714174691679555059440094517506135920914615827817695869727781705699180915823246813738529664533471117715031847413270282879013737410663531854302114300752961502009645635042746508820032666740353516209608967581797027062439858723515429570597125222593530218848479478049962581596009462386183063257332618879795548461504429022293901222707276957834728664715914308170745756936407165676083894316440532511997579072519818877358521697565940923706517148644897882255840091529923004693831894174242370494892787436245725777359081797892314110672145667421291505013158257293592014855988062998690832116703381631534420576958699587659613526909508036760115845947997516858058640484264503513141849015272853201234731305077655676013830007191383003135099047414889948635157349433183055086625522397801161394285185559997353946771610244380661663927423594843796091731909238767265317281178173998759085084303544624679139649370338483308571489601705098768904057790339914009974809266609021848187219559546709068449776954397737366985930272636772491619908466109316168689216599897960801823928181903350081923483791915368634418516567361327670951574933833246470033964914833195482972036509890000756834678908643025132461636013958621670355734672817371215522229123115713385023157567280946640178563664131574098846386471770170716075202301333067306976582623619341414096912577365155426530076433502527170935434233484333831545044805818256978293053211633544996099387834764486581785314620431086321927378545907885217131518921862859935260818557992285084917330746529461995212109461848274957219286870418033754271607849254538280443300966419058481193956374725503405386082144199254365947957992548261460812221947375682849798219830921030262670665959245606026732211185284073243867520498322954874131588159156965850265485227010385690100634707018070640497732996210174664962764660874184183462857914776560876090735387844210346047674733553364565235058250707171788157400805676747874382469156022266130040186607934811806436632749803755852159079941642353950687055126687617782207730004293499532154750025506032766944896708016884775933258711396837407587474463394564357363967228450140679494288134604120343149664963236479512505272306744795637253637725173119371756689681570076712136170744256290128832080964835262775131752120733451619962823567843914331649530921954168705831820306481686470891990116006092781145494005367644745326734598023635844409005299517740379870981618198797903532129462248127306751346122108318786205624505076956890748323016406021920767207595033468473773818939370988157684355889228368611599191434299633765079807410243676626001205525453946644920075777621233564760821214021639195665865230597839640888960162033306914815750560140039401377948932115537398213278077094820409404634528342075085645776460682233689883161573389128156229648466009036759924962080525053864950856729562164422975189021462471071758252958280917769557423411788150328076728729597365181537530383552864001726186150493976983464338623372623461697500713780486751588292003368511917045717206623914915658093346855859033562288358068029498865005573924976387975220689804810419879470107722916300366655468716770577606362032391465314060296269905997647547903249981461763063349875119548548523773501274033495911196849161001666979822772303773826677457157993511656670287396149897791931190725901841125309376809610116376471042344450992165427682456170548012103380560525958569794108687926022421273751059737355421424442384293806823824878099603525488074099106179118736473206820551072273408516281608493799316262817834196443833849321723976993401965782322705593192548835837461358265240664433472140089297635251127046950143152015018421127379944950732497746396043006172868784809622923496308342448447424138703403702464238049437604896388218914569608485186615621554283401017073086694426286349819375759621952745891611574152346197401928312625416395488650474647223177010646402390814321573094029112619520198086498534110003447391498810816949711663493327335457567113745433013180230658253717680668768594144241928388700413600865674007002258835824044852441453772548832517360587024309888238943429638562817333715860655701244030212547865030929048894708696020281174878691283261297959105261793834268777027171165966334342577769236490445864386655965178753636418930904630217625608950942998053738709640856116512964341693063810567653504191502286792394301274861730233926626720585871890728287225751487944903443620937188279619144879862963924664993160367479484042047097055632362654045099065813437207768108819285002907748901709771311801135828527967605152829341305481076006481318899185753479122277083088397198962076598394244923567255712696765936486591837718049320326438513034962699111562990433579225977939384765673410019708689769028490331637397764410848632688085797863382913937980219298532661788156691028487598615387095663319131643003570663578733525510116820215087794182632842459581746433924917252635140455293858495895990529667306838876274064126078402934488855058498425033333818042887614898863475601356419492693211481820703783235067843961177061813778261574734794901383424427195877262078702268974590951507588613435550622640217856220141889171857129177910232636022569943388220027805625569969144168914134757449644509531501053213548372826813080984397972922969671284292413574197839197538321499836096837167218767971819161050391199919410695847736548459625573790287805898492654303588597522526408817472579860375087563238620170020682561898393697936955496814673002219116918591794574553574981169580147680989281100292713885032942358711460411389502436723794789290502978235887935269100176719410808540975454995694923947123100151267590781305130350264885553036055239513443887586320943833653668935993437946262256474692318933752779477370222069798836243695349127802108091290832406997401902907944595404840262613588054382294665637754845053411423174438594580045035730609121937280231995582355631822957629449837949910374945910305984307085909416459917814120637740971558313219449220286414316911795379637524591570683541750399414070844481068278529733606370640606081781076684110840429293729712197115573934346672449439180837236439284384601136274281529359990285875635168535013716769731822208440129590624896691805639326435849341101523099692983828683225788519273345579823096420639642687678913277707053598111633913426988360082553159058400352444010398011557100183070360381366502832253162804297791337377166805112327273560632273768816093407462511023666638090648197717324471010033226369071521950057566024172604912556811696412933478594634346060298979853852461922522322408884564639963731014968956848574851915575712221499658696358774807614664821437022422686748156096738882991177998182744665903539295916197681982979416764168186595769746557579766609177373019632482834762654502068126899741879487134457130159072399594621973654540396608812752148870010388163652666705765121907766524670386741732163987021494259922461603998367391443650159853437108708725307476141382839748629890980859152864836087569795859451990902770034168051034097141064837814477272114061059746751940532166758885796246763695127375933964028389025086546750722832872965297746089453667115956819794623776669252781924088906543289169952566523542248986098296020956459523121924212855187709033836512892139483509301441777013731025382305084667178769141117966946358323619424030748904684663804220300797449849781292005103944537182645144563824162925732911374602932318697543818480943934387133680377179403220060091052983220698261901118756255131741934126045551289834662380303025100982739987837744964596480012062428672888265827548968452123551931458109918620213048792601471222672088633928929955217948626176309425386014246683758865579083428417378552465020015497132534510971859004543853574776386344401797007344608575934559360294540197029303342716815625520049351417401911920906720799618276747931611451565738113279441418285601004132704744044108922928498040481151087917686572511232827758223843346181424279771565917083910784399935685484778682317510422554667573280903723530903109806493334989912254669781771208004239099952442235412289908839566940116025794071149474160300460424061802760621554075906441032330624074380402051143508306315604858179063650262283198547222364957537518370922165471796116123784720717168631004186849741110392980134715291167482347556243202704299246495646064578471932415850554839728018739592422184768109383795806915733985631256846610745902898579861780435081748217312857966147532688577012364516216835931227393617903634048395803924272014290993566327395059214623786147980155741365800770210703738491449608491250321222562381335801245186053402612483085760061933387494773588894791312147068121616925478417919278192169193094128615491448209140532977433852317631963063260113276312517055890054752914513012703836205811453489509799410455758790225660475475994473296503122302413515822863282082347630091544167608658778361399816750941121093054484857134566998492706311454371908795226464154868753291960885360864361677881070008593775838644872872283993852146196287468486559377330226312697297847567093860744889848069517618263953863985746611922321423088705378093162367576849219747057584318838389645166372656019018685950316229830773811601995727825410279688210051956974641088266543704055642211468324917389448982978100171163625706335573208127740691937800568120065501992778791693798292373948844353157571721147651242805570239334875825453253691303014801079015923048442855158511431050473945486442373650249426681588822534335034516425307656069985117857121591993260596764305040496108938024989389863558227152380752957682650088996266219208245602153848305189440386095369956907034492982539203175396918301803239455658636920628304376175899525674776807934466829564549035910476330469622320344007858486751867501178731744333239628803368048060658874173221417535892654853196176431851650324097130721929180901843845770487751975224974543058203894200278695658873188470369226464510480402738068807623623957399795218361229558978634307452322924823970530598152762229593978152172226196155713795508835101227429567711276655694853362971684356863857712885006119962436756548514247266383465829202972114204458938894991567174674727857498599776135648569472400163153360660185157119394592521842649130593625290436074878498895762845800840513976396667490579872711856065954636383867501374794946749621442427389625119235335515832094794623866389003196010978237406297726200980759332875676192456555465256588652648953393117375104533179278883316167499993862927010412169594289027154586695731146224220243830407202936018907298838193790807423689559459499534163110037305733957285533842833567789328305944570277939852592427292869112117807024011479408424280638662071257315182278633456381603231427690951223480295873429713779497923125302079730238887066267201228383784777613877550309676291754252463924913797174644404131764916387395185657081334041285573032439209367344869861281848673349771471137617612489009411515298867022414460544724763154861031371320804216338144684999893618113946941940708065466178826369811341893396538277031266131532876356356155952451683856606708523885764685157976906790413888168686384887971412341436554037329914083431624240813398062287727069921993006982279662834430527654985862447678953795170707426457069104906185129969350070566570299300028796568156787203139920027438737776251562142808733681369046190063052622069125349977926883824280184521573654909144998626300918928189606442804604825394979584796653577885091538233191714465169453038043613755240030702052020491540697055042277533395871631223308759294496711934042536909243878955229734912176954995820642105509291787323938312528331536357601753305996074560336174744110819990536505286733490476587865187974617321916192387793417749410505844122257690840652672288136848356831315887759817143495123326972847594079933424372481838212332987531330689620929223886536238948797848194981216640112898213488987316149247656698278511792129141859186241679309516251661091160632013018470973585071565182990116327127007904758845745275886708300731537051269366399397698309262089945495161057407970315823459213870044572663392609093012734027183392223367759547128205762492066000559440153895055584860687208503614136220609240858429178467092068012463042769896251084583579750301690980246292991165119404372575563342927845115053447751507761221032588480635596336172486575942054051153795962082454371940013737623128739228907778144585847858512513384471997268434853348980007777295154116282113202119298271281536837382482667582006601895916365619986758955859613805755619906513497665356762877653124243780653238741428346097043665820149398932535426419127152577090766150868861219817546002553817259607676413372838219868608965546059488985146943331166120348304347886643717553585054745243339178791713885757551120069950414069547392952208424721322617170971774849496816070697290498747620551562662220301693745840508496893239399414997890066606814785938056642934049097113850626538686125592298115005850045657179326210854918712321299180800958609483535811822821115930122350846813437701150221863540029519323868600278086257428095816359573118337519711951512938258638951863439178218231951660564025105744870470411880252201537576765881416942258443968546194355588202930814942937564242028925103703164548712043180404774512439489426662434544214868353699644481499680985185869628322627884636389322336268451684187552485169751641112486790290762901564391369861818993094669251911482163268164169040343922131660268197009150300732846836851810663850602176352094468395388023240555566886891034818950103979347975887972040804963679327737381323593433656602387237144540290161486774588910442595460953831573341820754628916073910204249695124142100899844074888345480600725745732951779078366485061849424534455415742428519306875384599477181268097527062854761976253391146155510748852437907927092164189748887330685381603103859401172819615154381645326762274892215312372377599103768543764138809272617313114380495183696943836124390827251892053323270691454962914674150463137140853290696292073270014089197685980400495273703628025839220110855045067970673618868406564267519062135972166381094244194801989421381869659441150204881353039422431399026503745030518077031378494832643042987294902057271375108259470737763269187905729445410422047255726443626449954962640431508404524248111968324184737577273785319694361196234167020831599674733472962714944236024416142526063324653764974452277660279886655329454382714634109374270691730902220347028734715200674616762863129955303765035196806183977830856760365135543747615635351567281519554306471687027573635264092714120768095830043821692723725037973931158273926238372314092579038107345565218136366313992933807475362710918158574222812263302771066933369814697694350791779286010895468318518404516908862070897408225434117474163756870679811660171987620372137739158678397793780516588670477456869864959355798308268670275610949046162535235471674620034749241468292574461702015072664667442326370028530645031875455202866685743054063688858562185645750982579239432159544258415387713739499574869957279872496806066905900315750083644077010576568162086014982296771325039248191787788369204868592028110084692604515484450143688183173874830087850022869605794966496310453129725822054820353940237973051946832843671342983905153557217218229063314360765740022133536538946665951523905465861713151710060034154042298729382621078119647638772922766075595857478818801534607592052777961958469461656184936300381544985675294287109601578478388757514721614986992875326276153267141194120049683226283531331488473867745551330424832376921760093528373324344752549591674689294117106672661224237874597062817143982090974111196332720554817167550773909831300422647660221994156798636317392451160777458644940194392417038677159741250477230488238700610205911843295590370922923194821632441945665880497356344054987767752269801121011047785686883229515341980773634872953410076011070078225812214021157526721865134699960678802695080796197081187933089869461153013540382403220375434564502725752088296048495916392890583668874445581701501171869835719235169978936973879301270305314170434706412414031626788205878902674614439346407521518269049515522328802027769936323902048521765609792024475383667584372588303051811631776367074984315291679947508163511676560983615879244183697380892522503484319555871719189817910781119956741056768862896955999820840157478300501150265621487140752607718360308638392095023227861195632075117285841142893309983701139743141170940534074259052040577538144701702474400840608167485542296114611365945179279839320256685550800411718089567847506201353459058806417264119305592613927524823225529994879824085546392841340745576828871446927039970603531493520332930306114736795103663284758847003236495045013698133324064766235612238480082415259914161913267644657274178591015686730880099114551362712547538996680648959110815532012757834654055961212921649659277308025533089666586143214852056257332736204478174654675999149647809573104027901145941112865843349399884143244718438982719921965883181013987461312357418631898240155422316402962884210418125049823922999808602980736249026755129748166942518804512962932037849310407012493367520763496063987764620549434101213524511183901465076907184031369019034487617808494355272276745803981561550541012074063146203293837972349370826393591956736062804906453286549517718444373885276104266261741133133749284901141469400379824860924173830027569116073327407539735392346923029165236038931442683176089268166251208351333299030730385313444975841356736905616995647224427173483899188814816199202816057787394986848637682199187030729052209395200905784209350483112579393011561883712387006142292066669373112079045280236656382238205309904553875257672978737722796316585380176072868612882935422787626933062153769119443114261881580845767645436648330441606558057672081203699851730443513886691013244412330303090633680815007379328859294372882847071818205251562687774999256309383263268454319492662276465312810145677363795386651540154574512611745677813004068121723816647258787715624731918239458104033290335454284323315166303917185299270408958105762964913097625162829275931989557729941400486669747161145706835922651588488738522529543534982404602296447319139555757965519980682501473039529541056368145515532541864757388088708586761748386532226711081403811748066861899907912569279494537126094415969963831914157174429598355018361119332981720077420934575656984625762388567883845552042125963630494657683952505598713807123609215962341413459483416527512635462456905948081425199949298808942303922239912641035523444865138666638719091393253350303557626913342531655445758856403978536073380433532021307190440238311317487483088387127429248776030313111178180265346637456962513536442605562362524543145574331902734411422422622247147373038585616687681270077829395011734302968117292791597669316273388519839161197859644157361450288874581864018678991351624098967691620155897751551046603505400504331355554697643401886468172209711136488610088265689935058101137883725149534016980630822593002507883878777423348802559112717293395884049105094723639991048904201943226497055159157897694568926999833542204081888096157278841511293415711716182123551615733901812021107586505130382524454513820805566862130585641263070891836357242039311442174063460496547692475266380878754609006735546944253715963529818143665964051394733186957822776998820173960923931725754224489386384825754830753898283985142064648979901370481944831283907755267609092656759151640863925652645717475452499335180011986823393873470425515567480224130114443258970001635998764624893350061598801176149982820434902992623709004985504796305965401348065158411921685361343689950696532050077619961358576397738996147357666868932404164244460523850415919796864398939044741772876112483839952413507634595991465261517694861207904097060141735821004770715363261120714904030751884224559041748008779806315054191265317849301176507464454746460132323853514798254591041178186179909268950473962423686189124803220637864884728747647430874058292252859858609584203055803895529384920217679216584033762054101307713120888839114111847668652651536258568237453958436988148470252388786338223762034542197760296324854326051171965717593085446014069228116395397152245152309145035170385457326807007767462480073560453585167287757771369520621706679390131063635567296938162015694391697578038816980629177913334908533984690117826684404117157258086458526830215414670925763485472173074507843933724227210754611247912767552600423146081084546690124673189742666828833841074639498794082678790532242193207636986080316846965720323466476968161838945890062501870390321086361727165029168249184939483797132770821626936843265915817219484962471720805992052473036934377840593721765968304428404711271706911679620015726673332305551827161414558693325564203908513962358646674550028377281293926931351750771512210562419564584381782996007612376811554456844309967319047520605385185250840673496666810146779828619209448124778159293519616758794188816761346695547469219738349507768319613411747843697204835457580207233914884295068319361091213331096234529501652574177519685149575342522214774888013831791340752192191535467332743773215995858006807743769466938763740174903881395884950715781683565936657734092828736592926894059565773593969559564324840830141414764356215635171327296902194170550195385401986300312455802939068357444830836655218680512984267991801247953488161475130505537957146224501611277192271785033750826931842021836826971359358663752489276609217020887834050950523403669634175933514316664197475836541855437705403606050149469315579760133302361255828002346862868109094476127108243477403189725085573521873532863713590032690315493223747341054169060510331773378080475225461756168775403325797133186048992819486692348560087171829450762982139517712460495233289519146547315336927237012778605111512791568977225414033256943749597423280708541819544436554098278464869863403612811661851525487896788335879586741185376295269092807967081599515745780064866314758096295288279391238423148262228862955057236247639254257738907713141015577327479716692309579857465022646596068402906340448253080574653373446226318340953028406341459534757871304229265005374762340595526536678608413622034194676794505551808017353913807247881426197534710516287495730648499934291118938576776945871421988457083340259328783844268624462614841549858378935330543985025896183830171893968220475671881028420027648950772912543389341385871015150952299788999214791682511519917303260256142941723599066474598370518463369493402025133250864713743510835904506606730496208117865402777884542407894454219766270587175456271078949003774541438770216381824091413608038567406547122477312579076701721192622007193553092710466281766519194196670157107141611006388837924704911313757947110098388504419028450866103738953431462365820000800090951697814980871372516987172530559911021940218789065982580178957012932310058451513332847609948019429396839837138414501213541191495817333779590703118419702285867867287250111946109697171583186369288489733759423387680011184535385033325668875268110719922082100437068243639296651094916248763324862209000188227289792643821733365344260307543354083573716861202017301418749013643135870937094488238750191095898867162770022165210803966305583905315928400707161495489940286252144669983808965418826668699426126802960550669823670954364782553976105434692552287346251973791740717625776573225895178182478403531152411949541817330502499596809235656204407862774286486077583224950673782931757021746659587081647530038834949093276139717652233618367544624900723207200247248082145249693243631602608793170734838287822574614308973311962567387771812347016022387534179950884495121186861314895397085716148819501707508142996886102196560174203442317905159069796237579082516784977547195423633734546229208924416559090098208067879869799960482939625643604713593572682248172872817564728210364097724400854703354018583246468477561819101399088056234945887290618725403020528166982096012398144656307311286808930515373868479516817399880133008910205548136519774881988930469780072526153797278937927895175470055491691510337562987525257089847451431799925656289862333390965575473223722638666123160089068175418501406317491696476144636162483644003643352216001020483460426193838434488977340353795082273505693850111489290948255519068245563867790484439614416831992072791798308846128031637855362872438730464692281394346610887290173067464522286103831637100545005162733739115352590325384754849676281180313064947743458991663338086126541059359806376791624641770040607335647995360237722567898275516087839857485036072394963952251914726868753398548758350769469435903220204255211844596547117527373962822316955119440391130615468501213636634377852882744589748439486895333568018691061492012683592890141465275345658279207935412374626998052389473564143394478310901383187986891016911844556984640991940236030609333460715610451268304688396729123870193677538459672862455944671834879800402754844669515073268114901463238174355551476981272386729319292521157256255081736983073806929684990573722045467294744019331669693242227839313033212974052234981822904776683259053326177979847005309383339640716766055592526666121945069055405589473117501187646359168416569127610180260582437050537711229069875498063016500195920209412446249122750878476631174172827632657104662486615419152725868365993956020719327019402383395022953547149886533676755275058529683040593900458235218598964168892599947016370344169019059097578175434145148233105258728984228171298296691459816206649823280817649470404716056470911000896742007928642620339114843569141189605739538762922181372700004271268907378384920746335048927999786255381469213157670360000350355867552100835584252616830787202909864439608371045718530227243034004061367605261099804480257219052043529014004313560471275566274455608166676590767902970968602684453976700819100727883223140147919454128795130305893492191090160514122061318567996703653929481480394275785689274083951443271800742088042892376008891558783212054149754828171176062298956200310075036666203326546472050324096792168099233673254569848750454731414267130994122067051155147768892575409059178826352991905477959341604545948109326220603723982167439032493452042870763689343736138705985693076258062902108731488357866836251429510679089463586753586461563777900291219942937721256466642018107976298132773188042525831768399246370107483894881613698705420135122437957851026703301934837480010221322668005864086579966286390817279707617005655154010802065976503706076556212424457692811735166450467538881088698166343094373280890544252198718479056758548202530763108040527240129282477791027005216135295347612165156836592212346903645405061620867350157566048788761196390083322284215923900323198440623462887945393251621657872457911732505786207954404490702907869872711797596443212406490005726793975858413945402871860084516112396257412027018507795232062106935770813814383678834652600319774207856634415801719240163911386917020376951251923662188321792000477991134939895919838899573252137073937084259999989009153715108690163825964225758505889014857091198656837745188054812062373199499948730576699001074949511060742310414578780106630181295221777642842821595660649977880592292920635514335365772498077365140668161878204037279232647062959723805742935961338332479850033321768021480753140941072090470970764824287058915736891546054895277247274143679745583126447003481202429437963901191939329603817250778646105312419990176895315694296147201514254297779422929984252306750057766942234821378572060240019891070504063361686897078540009619181993321078387317784579670827597100141891014928196779260832250318073835711191844530630816518405143134768807674357859081479701345927952728656050863855047763022210274459587268625790320489695563530597316199830804287618062236452540212407972741619008080428585630077326827337543440978445404447941246787619437636310228161725101565604121011193678983926954422492151625423369797020333330711511335958659785308258988257161924236036157845586999183563747658683160118260168625637247227112077371000244597191070426056358194138963052281043678727621579482041446076439696917063935595511944968742115876657276410580793747195119985933284712529079308125879902005323554869525154287177180268681321097651870374108098091869160654952032785523439820550254827566129074650992908770763532649149636307309673463261811149568835702986607397926980796492747404411868411063642451443326429952537055733829780677963987755576663072262561871546010266424358837586137483304974238284658579498974999555700502989507069763237448960596117745667759329465318127787428998662484770611316625918298483492223036453433755776888493719102752451264347020825033345410304844299587138989611810893618075946227869579363538112990922018415015689055106820991846650950751083447416723768896252955999384766943857363144594468985727305271943071154929814438092715133493181436924561603587639381479385253304832507680378499283056073777647027111969403618503271036789802133596049697424409240315313823893617232752863920907249378431909481756164433412594836592873060092144843823665214036729590713500691391509096514229804951424455041625628461732870752469259705482663859526727390867351472973715531258379340281895162394073971213064358909089237119148886269784956985166525781493609586674848635811580351645393088483322745490424289715717552840733818440032041235027368911509681587787130467583341925269243260973136408208120803592993693659068139323086549162166941535307406159409832380895678905895225140654531667569539639229621341228383532438419666699800553463165273921098914566880901029795831029253138252901676813536872779073945342050468691362600827674442628109067791775496533759912638071033047344682486776679330934991646107855569964688172324312561728995489087180457411500093095580406493289559972833647613463017864905949373658457644167782853464876676128034975278112588743541990632177363316048195067767814972413054234772331973014114943763104790257809309237048643218086493008122349942305330954987720885326108067703817005647936758042822392591883866975988613723157454609295330824399982186285304750299492518788024525760950959563070620922063531887529796405210172843163512496853142310396574539475283848849029106485679985366007965551100000859507046767290388421389602325835297839805082529065722247782123219836608214020969752125350274287244963907962889348722189399462138229749463039494824737226115074434415101066578840143184862847852262554655799924978487240545113221515629558001926725998149134754910261026500759473134628823470741610663729067608506771613793547289258218975897948180349838537347910594505814853654136213397605383953036563677795988254863078062248373459447275300128442636247414565486104709579288176080990914825216801716500594330695489031182248935717361093647637060553865763182464904260958565484899777711972627762891810985860444898331282878982348966614140063731821333267607459781017298031223095437631935696950158974580738327346823208616932061672832000454110685038146493875634568112736150136456777739624324462800536741440472836501724618655038852207661588071131718789641313798230491237100014420844936604684277654407262742404215772918788780785476602169710397677423296584731980814698194227192677270663766160465117298644480069060698840890460631706013923919905820431298638091682006889532798781712081552373182985831147725222416458215883251730522043709902884714693914720022457139757249317064054550255647831504531690455344190001409121454613748863554971259634309910675189412795979953549149370964260944857195705082630112747893735781968775487956814555478262236638103454709517317132538949355765112924997142632030743442841878720435706225222864184140548878553350346856934044203677388344118660854551212649427016711368830787124523996488405755280322535091794257883552463909084478050938851289061723610781404135077182634857984523652129598182102781097061111926084874590313114477744190201202358029167301739932832397826515237660125554543372961630095183352674648602458185795368663155065353017915570593459360425045980290200525514978558948929038283853703544223428048472628036339271975387241467238775573618937964330882732059613463025031972703856080457851511641666162643152303031498991557422387848860948906494310476757389110772204940257477817038296663592135211592035645393300289447059809164036195128484528702191366958028229628654783357241121235620642170370451967178370622335818351143033606629392514567543661198975685507974121026233832096764459767391331365194314510155500393559702415637818718572759699707932672509591374531366552211937112186795645717642534754256490995859541552879865210874311573310500368731487065691275051394864754447247759845225274483970477101730358988211734869126277209253925061365806259213714446662778734502628703799268782444768457621830687493542813057826278634218020189844301265705384994792759683680263024666372059546532434285954730368882718465256082906799303958924051782459834606056873063786275050642399928054689069909576842064476343280065348098182835871480056828439069813258909618155532316795654385780097560622415773069777527062274775269083483101627743759780488380962444702615976688218595065808853498996581048137209382513344726522560928310282171032185211311026449986270983537350105658727051083166353935866142930973886677697843350704688572326025770993317408145497605279528765534437966747637998362857336956117109893620848039704942367526664695318147775447529585436428284778093197561940159517020279104839171882869860760774273891054800321646864120071371295702299701490393224639283501859064305954147087585310955575657610071920321395894580331339658783274035561532528638785097233836287485698249970577676436055954336667444405869191784001514037746913159541772954834536633647702476115172922242748250421839856158116339470644424453496639517192936991156184213045858139845140528502836844614138868674943351262896887387323827092727858101179452172394756722477398254609147846253198009916415445328869277315655052664183209693326506202440804401338301524923709328531078755975663716381064093072903117165036871131895082450347064378772423382905201348310658556095322283957264472098376148973598396837996836448878981101536295146132306406672888687489644391121686884472921741794224382179823320268702610051560355374460288519164236062519645818193526037608201346428331625593286992883940396259965432634159253443080613063408179496872329633862730206077798777401751953761499095423688137793142678081956455884008486461194562691698181485264115244084658157488283413885197061339720374381327779794746943452025210879622462150547818240365371115869710978595888616196881491593842679227873280332125684946598096638873796429998630017811252798834883402463731759478270513471817768363622917501314239925472332598556003645394182222262340791446479721759550913156603774516841542175590369679735419879701509594726991570302612029171704991160943354832796422254315463190671349853950382626915824074730304219228685513529222438812343377451469348916962166192716337936587803456472776725482764383516455813163880198555895161284777082327653132363835184698364105596444532748855527361183612426994684732196526617828830215055001967116056371728085873548699521987898941137059316233445892560493568576656960790528276270612216528962878674134108549605898105569152689738311253433359377369070927082921470724704834067851307419035014555491055537440936957306528564436806018299429948152917238458286947085198578852050522770003605875770451179993751916927128748423110700583534081936899865461582728639837235761608775083532079962307901394012808048312122384844118686461380711026186335607258439897111024715067875807841888645079185061149180615974831766680971508294463389415496629403278923124775838616814309101252962195155508420206010319745666096306439229659412355994507579225858321829447307491145586617205000969619380325700308032248075002728192465422913090345194523903652997790112486524508131754704019298978697148442941165538563517723959741019596879449680261869457431797484905325039630901403215636254427410350893008234663576159875197248277597901607256581076108384138636011900485289427040514681452149420113706917417574034779318557733331924665335145108079595526934133140312319343057588876349277509694184046209792667920419610389800021269404896140979193228905254655347340826837440825239946956337983894067061201437683782668027980212704948582773164028388478655819118043250794034463812757029114745963833459193509862314533999438677652496689658720491928013379584384683529681108904747334608457548679900893627519677541543942038403516046617701208351311397303975203412102335077181847018355002861949613105524984370601491108544119368675820722344371095639879871461614224017761941159421856076860789713534716457821023695155569725557765463450394170842910458919667327092567800996948160366996425895916929116036630502405313922224931721335426310831090615749748346080776482857648329357857272639662611623549044805844854028939480469404483575737013466757783093407567772742386533410002679399645820246500907253306050626649547596134811267398595070385189300674574780666553276073247476275791634625707820522035284706955590389153278641087324276465260736881063949281418678963832987567459554113602197545180506741492264915511991634668663285152425703900198475231988349660189955679784615874408169336781892820792892806323593948202214438990967748475326438141636711503278578601913507918735802154802326201485574714573895443695237932841553611031437275785713151017017604532947318231180913296234570789277033780173505270008925627108383088786620575488452373578567191356217938396386419701668095667394249613389246894729462764549189316114469597503876177693314517533322367740693137508737391380395156987607401120043959124025692766390119409096890855598418833831047965577859387129048690181854812954495249910395866516333542836775838455733908719524452862054013867640857934279356674718185441795001634224341314576874562594958895066388018200190342459727304673310348101396341504923352409315676068984689857464501696069626639365961258992867266428576557799909474992700931821645790459636479736779393172838162818988585561395801779508542791240485080349569809791143463972350355325107114563682932075525327628869589499302731102329030426651706444103709533708053752507452249300854970056101282168873692014327149791031547288687111814473379194949795809978715503678737384604196127708313193459569003049475631759235627920503716314064402410619810664710964751689792934314566334817463190662780987698501548420102463769520715486840339043151932089342509234122656306849311383326678576439320087055713429172974643881359952071645945991183437524786644747444983474665647326437199103261430243047343026717066108416502119685178366007809055757691091568907074146875890158380399306788507161574689007520540476263640263868855678595099561528056138506989784882396039041635816505453404062521143444440735436556594814110544416145065775441836245690199060176666603715438264262990075339035438498849833367805682679420074094973972415473692172759974167916240827504369917473662486569652715847422958662142421166945631759066591069698912575663333712922785351940913401708809842119521177738054203510626814717869511363971411039913704266951763440059876103923144358020950444053697139083030965730560297499221664520016990057713103620951231890984881338453681156786576969375111943998620145718155294025140962499985337327756726468507579411059329935575120916084055512927961061043639531828025440175697691024942860175775735952206378774624464570170059905459963099731233037294597841354499383347693500285642467651224161091161413637322475180966023776844109593859524762649126054965796029296798994345554244264911792742678245567648178538196230469446335370938029246835918381184461069790572804268137569684331237204781777589391484078851616570512633364137720668859232013548450050085097364342185996058094507817879647132590933016616931778672772146877021402949480924603165526089512651254854565165087571708141942658024966778438462271263896302035182406008560783081855068075288900321340775872410943363915866382913950785092258906939411062347781432708963346908636457454116047074485177080308794931448514277693456166129633697556163183167282631070735060470423676452414629410088748776530888621674118355395313315262344125723032510435398228004165655153570250486896869071781160050187176124040533062598639786399991948382775499325693752504299023807229858927580745830640861065525625365927232748817260932592216621966295575602439256437051868873222070704926803765503937461791408319659352697575998281033195305239573076261403780832781707360201523457577483803989354587456111738519404499696001691597365133381258567787398201199454193322063774297320704757527796052362005328799914823662758141876687011280480025648775551184564267948813941256787338206595244241142518612032506976549331790450549009270044390090208776247011542076830871031785146819104009370559997581624992492639337444608344556134635971731825862878303559107936751131681531942538236535680852441705182837326928509664665214159881046510103966518628199857913765761949709073202220107364066293030581940067647747526820553009846084016306123175741268756438048935414019825742786741408499562168811023074836368269051020580962577164926841060925446044745556039027255531148561284175952498292517998635291394433779634637560160726449763077148860386458921286621551007555824599878293238415600589526719763864192110958698780284429038967524245893330406721451101835472204725341087535501252672446307625617650830313940126952188533361886845571007928569954065782333370702529898789704587272321383236299516074402907586158802613723822635967365301349257286366009643664385964487702963564313384832096344163439160774743688511320846271036611515673526260343668809735295349344720931993480301076934504969083567727036401322574064920008137633293723165577430680259064558313367738511497387579363265288566191954331073558169504575840628678158074247724462783528286046665324423483115032279821096495301382720507429103917237131390480503619326133485988499763254195393731111495858471257328946531065658026508790303214870367914103396845711676204527475764028695090089837770301558184309991713409639168198963759438181080260144831827348511496107083716868663309379605623092894989094831217982919188246078218054204700274538499963088462544731455217437599665456814557914438811030373888607252637104423955316030103852566415459273279718792575803005897945673475483886875686825167700082579129321429376872180531825076466477983794191515500717845579477797408060667266396094249496047362812424323495379483252529799331832184112358776408186151214208585458453734757014729116724032954183989172447238582966558316875372349585380364935408114085728469596894748719123263305133431810256396685167485255701742636926487132353281215617686462160595277738724759200971157393528481820996745788389457911524064575181533361862190104674221578002077868557262883612816053541630520360134648992377801502892968027482644910326582412318156997268276856024556986138032639893643785344155281980353072952629125957758008470675613025329387497001062799721992299720832460653204463181981296578802041434608836494766814061520865392094942540044931773706891898298389474931364881632981885188862843958461549653687521430583942241609730205622996731300213220856777818694205835167525636602501201356930031145644123930204225833469103760351187980744201775372644211772741203709953300280834089338179620582327145603476694148874615119009357149971532503313372257993938198507717374864805595575613743690844742247001299621523703031846752590696944792889382636294193152330231683591334728834673551915641249441942275207681466763535256057095660631585461856175401557038326704208886361206465243401585810197769639736480145712872888571724955715819170362074100937915401046635296916397671104491126523965507703230399579662155205750992849556660051744931151060956266675700446977530116385998793504290450292627036690307806360152395426140229055581307815690009675763820674177847769022330754286558478737651314064941569173980345469960633147334489219810148735590891296149184427973746741513222762432443573758526411892910324857572329771326769809261026420381532184776457459099161359552320110073803989422260529962944332085996817089453297590806481969867715187186805075707504092775094447111030398945955757489194458151633278044870425071607601329503062511161451581149116064737823190719010002298374900033889187891972599393324666782110447300877221961875380509810978799494717314262837206484609528636191800862064184832218851553407351145787955047229405254960956529590977141553849297611733998235972325878324105443786285787664226498722187460235563003291259599267230254747122919799752426822679387249387771097084157250414147312181943720531108559373872449571622516942077563795435983166330611080915708010505033203398622956754651439503868994412354584183441264541417382466648651135821411133451473918901156022378842094485073603453963324935795359563971093344865122872742926264876288160795723628472021673608166823255597708683503823819764770620508764957835262003173546603404112440540407867320272858821823815110170444317742194955459724271985421279660428304197993692538441268473959908100120269665043072629927678515626381516180791249224830766517471464056824553005875496730642595795859383726388670936367456097909980206638634903466920751157247035510536852415536913766941970632826207839769483235295029330514578023498912464428949185236003972106142247192206669505318445720414741825132708854086457747936853502174616788117012421754898546637643622495997346143611971807637142938794717109975116440794316664018687660843704199631984959316714318636778476165167670109317874974674274980944406559823127506639911558571014761160905871103748436656437118097217113742693765081104142459186834223465619613228075731727323286615982617878387330715560324893962990634146137469700103213288575233193164306349121494291286916277808530836092890784158574291974722688990623243445504214774806603584968063731309040518207617476005021831161886138826242801853900558904656215577457120503922744556382452961149476544646090689714781677601708015213130026893249157552902488337190198828768248199904076853448236186542815536386569966819297380445096125593496304627259568881973375297866248390468802880899252768183298482056981112294765355715287567571036327848978857742885196733081253349458125289554203036884309733617742237869804230480785067844329309301496210063467484836706343226849758008510108797425093718960849703205416195232429257150402038664709312346827685012895749118387771760504792924867317198514096414399966169331620454941855338236559495289863105124472513580635989404407519035206028873214878438224259520854787247302437512707338790835549827404607366396971719888875971952904042306150824954435949145195874770373513520710479754204214710021903452623095099707896020052419592455886333694089353216106001323081598879049711932183095859080812082291216041462164596622636131151848656091871479842138617440408926837288310079849059162574664784714389450764037953598866715476287642796673137085667042893402791793002419964559312521049108768747220063819551355772522323176156507710684210787460416336218710083399411789046810653219857681390333668186213145725325792439084522785369829484985239000870799222407834404750769846928630120176131388357777012189573081233272295610397275121199763941934008195382970369231634104603368572051104059129343693373939105615874271659477693169386754587887236404826969997959818385589928935463053928076747508853175851990787924159026515950616558877804190791735973723839115122812725977711223544145965943690350479126089809837174474893743548267800837062225345712627677832017194145695916491577447844171677201373935533059138894995744014211647828440939041762252654541883934830852737855738837507107208348842089307228719735267181177563370098815501599449093077020772839639205816674458153857968103476619047036752581661464243948933620079170684366095070549076237681859788825254028220068653407894299196527222984630426769359483474410709030026890054643788645219637083167861874809470870498033683645502146177283242550480773063956464525117851446511672469401452601204736116722942355204915640556757781258419101884333520386358376910671867114147156288913769726007645768577324596143743030552605861103609432808650624706523585585423914265779204161086555710456198453122977782872507392036300485239019620784977492535864010292445480668117849533897169390434423031879664983241071110300079201276798971445476305035955669841828746516929215700860716757720795473664867798729270814516009658618690551451518017777185002481958322458791033456366542436797982608293419331191563350251413629363529675128317345270025689340308719732651562309418293717509596352636354468399118052543270480146465454603867290127893608001968724818765902339740514802312175108879071118445465901056992772368119208890013426690077357257063574895103478822181938847407160483308787350658187843172513298211227122051025707445647118920934762630849306603930285437555799607878254056799413285124158864051213080943986046104024518723562122652117690806732470804348882645477909867735671751554605310522402003608534551360930704858380992837699825439896893769062574793126730083453533950125122374030758638347600488745548289249168211359482218775678164065969507936963447384349608736778377490804975035873201063140501297764674214520169821731570030521736384084532250844117392604151424737071564753627655595538393936191650896181219169306113945770564066492480646477477304377612397094759299710827686020941610958890126411928772733945611265821141767281394542030106905763708774382688000568670995408390156724219124723712477647451333244417218139249926596922275351366953959855891176969608022136791398495994436048722715259402105206405198235733293554227765972766958024021767346530400367031922413110449150189818298429083645153129486885661742765265906720422536194785940208331461062012015001153359366702286092197781149236823778647506443513785835272415152274467601414813442964311994055172408028959124108954357746045846461777108535788908538967837940611830699663718298245525922651447158144637589728332213863444713892461222966261543516762862277760284031505209854637354820625860743552328288327243968821581178046672216154933864799694409438023292164894960795823511918656999743413589132020941456320688796595027508381453741559660254967640325655913107705391977819350148114718427101461525602349975039629453626703978870772061220852832668887324114144496780698346340789906699977581853561167943123342572239113474577123993089866207811845820090256930558332251126422665915967726667479324696514032132736644201177230195241791529228628138956405264086770399859554913727358577412943158564711851989331999680083703409804200466811883666339746387566307660751212209082034082920464688398649291779682744094412061744460097236797151559624793908165657281242420426163539042171579961969966583616877008192930410866386522490035915461705636058395649735196507776497688226286369215348413504792060440208039065138564044141062295370905367797900024316971416695687511409838342690577789604280687768218896615443126211370636068299031046627374512701984064824416465648668851143957437933430971903249894830241484050741452665949137886558535459784872829792567453156310038733248035523400388593279129718123453247391877019981012856351471836635609314701457848518312472119705838166964000183805935693866915709533697936614639414913159381526056308263508889568017215436912136085672029345570764757720295575499844678974244790719386758045069031853620182033182400622232320353330118214370392537055467547339493268325012129500824376821820232941326853047096946864961586354012392268339023757413251980241561232047986457356908311643772936165298610520112573632294773766999418394789064201800137296052587327452925619428611781707434977448347210016226442011247021087949072114584256017959515826171680716201717907944216113012884246399936651364533187361200915853735384739654529416015467404724082352761218432615956856751795134288595643760256493130346071439054309274288500543587508605888588566245170423958581373911756395429934650948338558293862140731552849843568448881153685076944252259606508276881965104682604255926148640221213081888765404064523043861160892116438321783952171041655025462305339317244259464622657144454386277226056721496266185663438740536224917971456001675540539488422987209691553339195949188644057460397555385313389908586466167144396469804991999490589671677434013277373949386328026722598749858978591836834617348274408758516239995475088715490040344519237754701246639128638237482089507079985564787567499915805477394543814875887992771413072074581909308859673649833702746117389469823316089271987910189604165370562908063198611908831172190308976350177203512070199448426757849913847040599629843304316533548386594525213925794563461738164974031093954872655990234392259101544537177063807676643614334992346981059871489341196948144015086578679409448346255885278839816749566044236831205152222684457674594495874335100571753830942198980478908986225673194737767435830906089759322234392466080053693883881595222822405649694375171184058708481408378547523215888524943122454626037837379307365998581551763900209506368558675229538245474521130417421297183279756743508214069558940886700009661078659053716188519204048311651340241467820435418333478642477394457944014025317845087509565200123883961272403892669768522000601081136018323760964918895332025962337209732343066750857681510704384014423894727938285984728371437140679346522740011820052190557579325627403240852437360019262149577255056321871089950448001298364617936302772737371723154788604486261489600892962521306227463859401528666867331146172472515175261911223594716655134464566730450108926316886002926840310878628775132958839273113168457594660838201170141951641172427706173267694775891939333941843273934651722684904699539241955413067926235804186009110142176573275607689978181568633037158243494493846939774385442025054640334480392894586767639191111624247885034240556841043903811265198333050269531264803798361944780920571010318776063431536749305766874382088784647467722135641571153429784476106651030779033905016405270656377529034382458425685709784483706543894351006493988416761533677985980944958273309685928357237725326556458371354939391199408172820442950712766232077017228846163912396136024537983759960440644654384985444588824574124444658480056617606576670104219553577365293894920487728602252613211088484030477939977934112603799502024236049725993297531245006491210261604638780848631806580428184298297048696560122350993729400115394676457300700184755329632565486339045996565015852398502306777879949233078332852522717255715121580607290403697845692962016702809491976053496768956521756979847046579269538186371285867869422844755034299441486094976784791710879440557819622698659203369197871551074536400754136403909827990954465716937271291656127803870420734859016812711012148404036204092874484707943403327827943259354542790264531542198031641512267823511637573913587527107354230227681910758198957827252306723094987816862401251705296972798331994029533644294704629810266555546864288536951120297607256943390282662689478785035610342586518248212312512784592924518828526784373419487511234931764779967306717708685131849829087994445835668368399856575421302052304920535335062032481821587906151946685286123723115082215575868844398376828130052681466217896572680946683245160320346122811679492326131014902494204365427852796777129830482814782737047151900444340930012910766032064562999676246086256784545177226519685758877062814442710889331049562257430522390072139785096717230237617377317129972521727989316869310195232611776749311486477151037330349896513084790483234729065494501707349250401216193245620011748410191122510074988853296514028836630241639874425025038795534367253737658777962846333095704959480265964098725843969795438085505621109223541582861466610342978971990506506332867558715095059289690769985884025487622319298856178534826463386710450193090973937494064858962098703941088808165087864933247629398769953446491650764491471537109828682342232439965915967243572716456209657671152435913671543098498586303719633711021224846555295094859932140675812145065375435637133910597531823667272442946502437199682396941623069654276897497471997037238552470368362832676091487773507997996795419553134244714299787570722817092268029048154105996561854263044187300581076877094858264036258042219171346765260454943437286874760075612733528168244208766732505859266668900303200780558794557458341158908167033528395423503855091923755475273589026204668188754455848344393340460139472671031532021185168121639502286286326452511886101121441312303382025157652787068943058982406762373406449857531714631332550639355128465018723271407708981423619647769107125540384297850797448647303415025605029032515539207930744343516514592053076367675614313165871578776617657984096616954070557236927731594116964533138691405918615323688717067104913553052273021012593664978118808408515877438869960219153455846310515961367820736618362177119787804866707185441879253742754869440266055028820049244790865958609045812535922226058768571857455589626995131220392954785412504440415989368010772282117620362571890911886597407646484787787783949973510026264743167893340019994275183656422623320886506177562912757862297227922462962531140404465749298945741898666579232032092853116380939737602862687515452220656941137181232562850390175757827988507881288570242963631186084147704049903252741701866660011849001873794747028390065635456973380465256416835852661076837700283278966759439507458909589398079359859851629923664929664049284022341803132495124811367693067248699798117235327865964440919674691665265326075842136602336198394678928163824807466642816616263225645260097553235980858202402370010336262021281950790975037298731339690236075351297913929452530991190818209372914860979273680711019847776130542365775000231121569566143738575319122345948104706051504112497830937416424648508205219288993659010957791025798530849675044210616252446781629773311694004282023984098589817450648914561803168674009419243472576886686409122180260433653494576919526165486431402686208049783774386884787125779014526924932798132740091701797616992039512765743652124105208634505422147503962887478405860611697802044735748812404736136776753118511387144464893528501609928308567425813564472226292780306073504190935040300908062495029874966675038482615487068025524243899568369805323659845990104927446087165399400220061809422439409136234820317194338910815315580221073191257553059327267516281717967850760885137502404276673925189339590272144178362830768943377293369480510943673844169915647880815743093832128238088019373777689574014390150933013766167964756718802126947195057796757345589528032808991164828074106494291231471593806635512864962614955027792290099200148335517701302275184990113109895867262815641473200797978967681590723591847883645376860357273425771303735352473905143233152565478913859841954288204463683195380741155120935225181320301586405005737580546440456426726172636229757873373791712264772903861350844538436171767432478049250087342528044280077276287010719223162533264071938258794182179495827643459278557129842182811756762431195624776133716393116756082584648250580027655853745842331461896115784674779334216497489762120498112847106614138948348756247470535410100970776057408986164634480517728403779854340971454269981856906081372334607841431990580468856531912967569930792903057689704341577660869946709777804427051438979207912453879170687397295254733796469695851910856068888546440585904054341645699992536833485908436845732764379034568692011104497022133768386656796352780770311340426298906589221620372797990991459616299079925576634428307976367385114245134185489698417834972613833953835850088328700253661253020239259360319200965254750541867841816910620335742836289635925385151775890623769948224850511734206754938441118300351874842544538912659976151689753254987855786249250463365974717269043979969160807481350239835915482591638422684632345858922771352620509687177778252842256928152688671812720122627498702221727165771037923434918461330104823200089786464829534088494885955360777462895271201318342869512198260852882120891869619838784396469617923251211822605595214327575844243623472290952479633644990676527118338902235918500587723542155504730491825899823534457227492283506153054666003243698418139992886702226961684947570415325184694120748234152010502933106918179481598320020773808732416261103787282703717100927701391549340073149595122849011137643726596154411232726110521368570688364320824022282944317034376096517997820762704691702928742519793238711577413188829121687282225821195994411347577497818499724416233270258068165357810980806396870955864035705976328147343269014411363538024783282714134765399571000227564577485718947634641630270187892031131712238238748395865281900151141542093267425623384811440122404288239201801162440388526239128816614799827746565696832108583076217857521445564710815524107643152861808866280612223636512461280140222855080560888452458623278792514025350305287531754945254014602357586620698741193190233615465446968312950068704891824460293857696748472034478296859267671725364691572095402096739334603802073078838430546340420607072287100038970213661792322588293015505520995810923734338243577114977039086453703074269622664678620382074798651508095933977910063223997218687927293523992102771879155227543819829944684159903891702673734812129229003441529403526067606629556871271865816332713890060047649093148653988539268441602818778319640071949829155334972662058322848529763647748863638588946368573824519046957927527655347954813382697643442177737376713239147487752111835140734676837883945425380272269850909454287391473988346946485253354196279775319421095907952871861654840843785497106596227907609551571108241083264973224642051830825992322781079736159510264778393613902288935712251811373617159233734225908001476354539619512159324613727585356798182260658537746117435012715923505834352299816686908537776965681513834911383414826723578779914073530120068918765090745544271863082421066896071508344131611726520267030592450221222419754610471865569393920559507905243290556323029230063839537350024886217032317846202507168584387427174272270637317651509001025918290421667589768933580178810889697738049252763746546555037815293246141968969769205934113548985636511889089391154133759781607161852641648450601426045033912105296442970034283135007931600473264224490919688866809464197975490827013609774715542161555260957708174399694942252925091941491204664333109133229522196937494880125161676463887856188334016554180615539125754620213751988800107293998012650979482672681075443942563314878384200009642010407261601516877244962361990054629898254326225862636375552640300064451393919974095532992343425190377410450443541265081966959673686526087999888187009297185975768374694980364342294962480380129115060173083576224260172427187496810016696806737899190371629911668223956744119653364136381680170581863290769166563291882092720912539216809263967021138670048276545262425396142412266213383442514906015987467088673689296430478223217661584755123502781880852631325571107194029636691290663189193974716469400838575964582719915927022422154181422108887089506629003310916692184873361733255604483394957374443699046871253993900381411261392844612048386921092053749035866772058231576451380567634414432981117018389477318042584775746619256372560170217421872779728448026410109646703820425743053143476804535548922545806742149065231851210404923798788082229487101743084138545794142159290259655595408579435718438286342633573113985888150288850024032069031941557843480857733726002895017177464469100054314782283881017899566211054397702835507593691294462241508449795958811575985820427077208036142228329537654339759488667641756035394485131091765597042880934501891654097880133471312071019425652510045995927195898952386984502287600684801663418076517911883275177472882652142634913739881154422386785764579735582796421719768560524888957684927427098652007186733923839239157374433812371522670084273442182568482043112746914392309254347187848812976650536695989516712773527142461595255863534215291788408817637584623628182894602041785637982777423468124302947029695156819760933160083839020400453495405361951256736275169747285951459226853861463238391200371407067365257575705173145193330557121041143456838276241259297213658742373033938651094423380801204612706281228851646572343053123097585394362365429924561168404505261204701328740630527070884265046091682290238071204457239306045352584604951626296938883474238608886433395390560011175029043804576196935105822370105890535631365320971226885860084568309352257147417671236636653988628652359488697288819151959398647929793631261540882285755888444637986037086917847849340717426578608818269224629648805704731478722765574539973720707760774694107670370155099013928538299271510403759149772342499171381167087627714249598948798393489268826099374130034861987083417011018716381538267875557109900266093601797164926639581031251231445063394161727117202181745497536298816753579587774142608658872887546828541968234693629081604136219943402461161427860255131661674081975287910709207231461283052623094004089106898175053145165537969209021050989098436407482674384691885180294054109077359043607595706530409229430539315321458435339196936723045500634040869146566338147559120409689251449036125313095269270115260059146693736445783896602057330121297950171624590448405641082852836624858017862633103182662686518526679511778853925330370371994076338024893090953948834476749237568197584572889131457284317281672299291489538644948831594600097824264618041040206556958554480939060595323213294623069676312665765212937404533864184686913437915751025425994990930462327719727746040266761448242812490061546098338488558268902120558951580503385735611307349612736331093530485772494706753165832179852039012613086862688095130119960952053689176507001561619166008301806223932362955590049557939295452700144136868256583315636967192330373860750504133171845670609924501029579564949109986912812465274118572290089281986266176341927398600248059195753498812137838782892132931015852485315668215681359196109678193088878920088386204424705835469081037592415507836985838020264010657319939703426185047423434249269173670266412233128763412675412144991625811597968059162169478328674332349020921649522586045860712427422358192919234545211137267208432564451874321570751438614406791031847762049179834554280808252015623489488739652773372755816077818929687823061978102656966524045859496059612633064578742601523398327057269017526492338448610692790189222234504941730497481255240593859857364462376996853159385712321273814603024469636370864092845190638381718484666085566881324761572594222244312691199051889526779599598200969518099769601908566329950535037214880476534544066036580201714321512048548148895542145381122619740736370629069118740998423444248379849877864201660398137411967706919126367824680195917885220103336628505800265082431468052257086954142065925167298406627735759455865351097120540073218562273107392164463962346301360471098011666187512349984453484460358514866864565680892860963786912472463804106719777942003146408004838575019930594006671959949231534727081773698205833189525048940741977898931220739688191739370283234057933361160151489913546837766453952563778392755423026377344010754029500827542854908103160957480681882050095307157039500891837918683008010615772437195726104286590012653612754699631778447151950770979879303351003959681932977931978404114026646564607825138984098664572206743784019412946427993344602755911793620215657874412286903482734325027856585160972537393986300543310880085128603280649415134316766235250951318472718367277841858246570946926454303586044342443916244596424782369424941123291351945359700435899858258186686456838949979894041023950139498472081371766868196607002768221543612780156831426436916868315193808653764444995783801028047659657934243588933911027948549432170322274540109021081785870396321358410889707339179176185035146189049995150391291853798838257149799393898672593668766812143439887204437345283519245182171828084667305883041221410813643782980156312643474455089133732102109353169780818616631288524864061655171436335716445431606808204043946485214765608508425382119956195464105581291388692361016128634432507362631777222893475341394351822795400541313130466537721535836710341309198901224661433542195308383838999215843777736994994849363036979997329572057023321642432375179457953073523790368393918055258704526345232980857188011357664675317264945458998922934097082478191280989956856579633280761465844420341765259394033481163058477288969279989003369558790220431279545394217778188132454016122307998441934304594134666710248397048122363203264403171779674333079405634904899412546254072060484107206537927434018736723839296539194824106804361246462445100950893761805196017215847826456774121341947865394925534046062629334911770553433058107951091072296466544679236534030556350713606201500380084530823909437563770713431397711200809563104988624853239574474673765389946622801430505106818775974297432601018976289548271499004539529205104099383167428986540340146457709078732055777914256413194805029580642647942647528122293009100851631954844484387498112848975613604551236888311306054805543177553596986618641067733321783446176398638871261306973408477584777205028799677746210001209906054795735146987610243627867800914723563948633958549974294424343018432617624466641045659781962366962977712990091756535125618452567869528087172545366554727618329725306742710439806321977115384817452907005899651640591451474219165692747373202800068027864153043777151188895645193623335054131848835201885270934534234424250375342502341379804386826088505856491180085351242586358544514693173632126641295489988947901643573237512824224034067410785229873995184759645071062882382950869531227554436313464929225671476098918997574030834257830134939780281217307129558183019792777385059754214708710440342703114618586250671524181580436369368802438647728284274312909057148738866314831868216990811020503408714432413876062439928432829272024002994011398044619372880434112916394522236855309614935849497956408398367568250691500205800691819754249340600591655619017035557754623043025342079550086114861628538281022208759766026027125059129399349471165401399155605065851360059067978683216958575566140120937814695919522280910042922481480937952677185691178971288519272145488327278138859042900685982686922366791366350787079023027252837501620416268703997292910639169505239394294316196342649606845041765741297200075167020659016256431019795837279320584976855891867122937159573742254348969723525660914387325468230242794287222284442212056649817516485620724969050642290150694756328134577859065900977880753271946554527212267491746832331675568814908829243172653033084268452904009324675420861422953122823237119185314171720952403546821790251327495952559619863156739076549830570185500494513011992782917696445966909030768232448360149324128181487979677890558993306836168823252594338302635871570045773265628186971461545108503740411262243973113671306690346374103619546017964803874911662176560888781726261220532662016773231815212019271033426827939681612150248924899986330294819907990085993816497557671381282803422232913651761396060882569170608662169922518486414072796691636038852702425110974397465076000009138025676860518862552857510751822071149064747324176977984561908592953912634844099859644906812850024400692032200353409045334419625335335722868069734186147907491208914421782106043539453021174114047210130412174574598255268273466049257672388547616505028366497790233968118685859753090470850459985379787590129615900650672627313569635455175430830363749446904678143494437917078358575138795486909344098503435983953258113905143138348268603493909994443617048773487087850396769551669451138231729334547963506211332107299590993635661406263428357617093550033676193560394924829197494915645155708276988416408386053490835951091020766599244868091608590862141720556964710435476406656253763171615477627405531459768926011840292712586867368029285171584055349777900656907286251721587318161797762858908790909136391794129635733886329846577435036589781850178527168103096491542719566065292164103167512772401911388302626698401555351623802765631221706180467292904379124847690390914104594822764326660001475850755127149959439502802211492375863504553210212778282278922775479068390747330851162388919014374822163927429196299696684379703889124743214397963795336239066097587561629207319462153866742440630673332154695115822240699227134941034061175093223673685645736608779689450057907476700612163575429003758191239434760192624075917458210073267911038325072934626822949428915445448366299063258643317568802778020686039305138387184921485943021507680560706932698125455962036073230326294370168673618814245535624192682416131244600726014174148309809559350608549897848635519668549083788490591716608107897225326574623685339622900148532760449838712721163751091000204971926523080925730790527721579678822831495659196372825285048024945124245455759240031853842067135747056217526855431174579120521441258258599468551971827673623535764457296231265841758279306909444949785213791193310043143041639764010067398403111379339419106715876738509271386539798883608812200088579482509587053783657331112541189387044317908640697317907530267464114146391733777395451408113643171044048483663619898254685383508786186411228665890900512736676065431171847134076612507575947993472901219643350137386877152063164597250069394269132627448751841407612976556278271915614177450922743811335278277714392527492460826363480225119757669441669249175659116520793945967814299242997966671793183451968637806916349238129499539732182929606420450155010969130185458085967274118744369848168388467009224390430122494019303360371374291005115970411000283284888147885817800950782889135294305794028945606021701278370505283568296931681722131814856779899139057106460031208042305160080128215981330551203462563155658113185696664485118632444936742064932195878910753340718056889028266323605893671070600419096322803485048573861753347640169223306771061108986620788256112897107631550677317263452978657774252855712059054754710917454688572993001329071120368481397401596955075211843740365946870593986700872948750536740666557476367123277311808090869133971211549632965648780338397807005649749710608789484095619287697134105857367511745675087775871966297704436373799760504566986165409460428473485756895753448088477118018806574573498411271104751908068248936313800132044098930539116753601833918104610015357993275153551090545023658401345839454670382563331624087119392788458007585995338399675734123261065185681891620699292173388028180725983341930101208624631046199046132914843151126371401847965173627236193924842256810349810671286063343905328851799789111405336162224027296900441779821950261318096895233707734551925733217590386582833153995265296156393201807439851475681723241325806363653804998367958423245161742205000726771243187084879227467224439568154443048046217871852871651073819510621338587381024500583975144027521421716214838851451081027236042647317838306909492720750204048745609875694901687978415005789845951670028445821579798753004668811138403365047997783384034316126925263986288199946128188729087318137661196224669659644228681162922727345067944989514965645020231477042681852520476401001484243723361340181926568387526065315352938802900093302802166136161832427069657972223975829426573672873821431752709814887770437662930259613582578755506082496361431641498297409669991668884569981263596781212211678850938170845357711499255848477702093268095413897782565083009883813227885721143032448376260551461133963650753366431540441103503506992579771606106188989519197354661996622519660811664456794243487492814853481940115685618360039694232650033584296726230742525344033642973790998288209565909714640253668764724823443939662673914244020877331064108094012061035294581472664356918112581872970325313360356049379727027535112525899888764767859110150362347075604432710954021786237009481573495365197313743677433935662955524181098940051585230722870042076534000040777071058791323651497680529612483808621872283035597171636810087355390319721235522461921350050745272481425116468593215050984823242329291014811896333751486310810812710939734662630811389807868531642167025876634220078994356865712348662744291019548886336513901283084484950399692926384613411011541110752915709126400557023938114034229611182223342627773186593113775233761834738760920155761257503610485776969807010726156468818453039889692890443154086556309656523443581618348174625409986274867480523091296189022234247223920021624593009368981674380959563212184732918871336952338070680988264360999120050260319541780985616235162768752344937469940789902445549689316703145005651855324990291101226290613500606453082836395107809176079908585309541660064992938147624520704985018224116152900401037079463124210126173801777215964565547503655178348255808181049402118435059988436999274181476434953498254555023313658533856511407765074159827504959876486535571813799434117551756771585701485528848770490608002727325953636152181511638415748359661438567650828327806961489306473537474153685246357233735789147005237993132861085996001939557280334314519538755968208932280194155876101126246712975400330628787524221377281827100261485462513414308436080924052264572782862073588440292297878895223421162599240044506594583565311660930665505797430040863246320804635074362841047651669935957570060558639152783977703673988120188987557343333915612865754155263686759406415242028708933910846600625165851717581466011968690751861428261287930101117882530387795877299543520590057160933302021976823068510773625847263886252776068118175309827105831260358635804594565530282397774044313522566695773639223162302265303241267911615400770765971809292104630099433544755400355783735063764188060529940801614060116421117358022621293412600737854504692382262042645899545903941056136948904414710061853275954183626750982417971412711089988815686111643644427186319918924651961840250308461189549028572583986684403122077050387008239223018363272742973271296278981438843294281700068468865459118715477616250115495870671381159737539503154178184998475845463414136378432333763949209325695472711355251682927072034198705345349329903898436640807618235402954465677681281685333375709403628912919887661792860923203059929346362134386718042070290544634349320544198406265213660967291891999817923629831193863621511862899623161455464083766761473589078318228476769108088459432753344213556496946029627710663958267976564344496517350581041591705315405307496604511761662833760286678316036384552611316270247804090531253494815812775857878241347484639666917252240441356697135251749202366059679134364312680845972292559746344148965038545910579747472591979086590715556334229885683784821976508105095491627549401156618376848412935008934269744582606514630754568652447013521453361472639283090717366794258881911500387238620311895176692166960600552390872187072507921758143892179208123418827269492053293787332591506691035761858427342807117592751604842763671550193151111928362171768241224582155571012872317829480810928750482409392890764846371773869940013302883312394672591384977960634301318571154100197658649461468645547703593195895632696595407849476814239880396111346181614748264378346870723919235785267256036205844517820312614115974167837421690084770041298205124881765490654367937463287182885201368207721949353555934484937132596405068136982977309699870596812278338823724186903320694728599265431991636137516292491431855734957573085914299612133678087525099899961289760429412586768570672878564080258081787035674471714102027446812764891894494175546807108144951365439707220225455166864474256611063629335487551460489067450052028548336362651680036060989371582983178276513179590908091068979381861312418465538617278089371839812409323572396590666576548047933096746589134418550548195349926299630280502052696823356179479429237318021682847822493978345572695360742324439926459681504072443986714476183219391721022030750198237457166648737740490863211438901519085812470800900337172862515828738874044136550853430130255681931960695729302464062106961345864919620920145326762336311607721998206095965998178976612213697071467501083857823303179638419263687352651807467971261145799561820392475598341441726188279770197279460185614434450633591362623934113178793944162595620707158922729065606206945054955894440918024714607802910286437547552151401137644785715372273506885993583332926974630406432294763447263244625764830109980887020197820123324588259366540303581657950841585876728044794826566665386532622605016945615248198232971955969982563056382876874106313023645675184135371575765302326141631024983345783147636762304959824017191663733887572866892975355719923473795761957436775834133698713824741656483002878975105919348939158685633412384915758236568469812834946485313512947498249858712930291225916534283487876394484739014700575029628541529799474179442410187710234642691634953786834676149899971712367447215260180187122971126772781977706658441908181659656339924090147851680515208367685671141324138788869279975082817327948999769405025225460118740800400404198200651900066788507412147607992506211916848256012360469231004008059680463108437796838042239520548869221598421494798930826664416143095248722248429100114667503051650623533685978112087525046913218455661829337526794186074502420014003867732370873150011080500554484273049664897134028875932427490782570913845274834974021648825587703438522598523939315758463956137207142565019213310154895048887815508666701504985628427398934923021745345377690510806082607986947097095869349140819378111400395187508844039748483492909557435855837328008724734562863730238817759401980732424428203058035993432604033431039375578012458816684531379383523219670739110307061231472825594615607012085894959863604923600488299680664291768758770786751043008414747824167279279250803241119907108627637054686833900713316349442649503347926072615152555927994033968432950007002268870933247817116026717831152349185306688470777708521857042327653148123119643932404556631982982779552103847698633872762113094445708614650064389836966917042430488317352345969311612855983303532567499201129215970696799853799328721906746567816346753407500137141287456800621506090166386362477921782728590316748853923317508895180712840656924835748790072508836004505899494119022416339625492774452234572378224981122156921183693343742361812578321950651522515081661161606693290109991123485681134773022547823701534812419039346534514033030993722811677237168257757537174989647798893906977912599851117795793890013811242182281428670229192833077341117625469321781498754590521928193896560772456712348452147881260133219829968227094713946738337476954565872058025985956207491085279186051527482319178577075965091207635525564100768270826245957999024338506944652796842858069079629146202449288458708619185431261963634163773854847651073152990024236073244338971652102676480543380460991398308218070247576932430249102396213981846915324091016364047558636174640552035063200329352639928253545635678349772092162967979261367265325576347297545054727747254532496923887368534199706033319413781329348841093748161955675721716880036117667287557155941240026104196742973577397599442242193797051993750356096336829762921113555445534240387145582832434347213746620061147247688732298607565513574146963144042719889237019438835114228228310602680111398164214811134915119584351296304985267059626462590789841934397310688611260061704776116610440045240127746811300112038799916524255487692922796144232845770939550922467245289858311792757737125042427675179463925875371793506564408723272323546485160868496396947789490301044657456326528587869981103644454424926974098859626188639245684114519411810206973927056875924296560338436083514136760593756529809476323477476981861138268682724994745109491681011725469377401495225967733372981135840708833375833500735607380533397277012253408955612018399903393279392169701462409274715669198043283428207651163964608509422194788139411524990734138472742716911501597527919083526195122479829542438520411123082131130995708689090205854903952074713077032345530494980278604409319359773938356769588711000749394429850910418405090617178674990384718841807280747106396565058394807895275066497120280146501169662955519597396055655039793312741279309444932655438629278270856192124294237847043277224350512460373792341620451983761477090932372541314971146920145569607442405816483205575535295322828121962392907502122870268490068525299931060177912553297874136454414981530395732105522515453305145414045499810298460083044171967626655013720009312345490833144760595240463693450024985804705444573207860866313385843948498540205508184789500523547041291615622942040759919709309366255094877334360590982145167341249831609652817583114922366190761833081233073948300254020822684895657296879672456234164990976707707763431879888575306419024331323621969124824830520103405855399999657941850851939221879942299539424607119728315953998180124036793548244801751962238160394281986893494496001832452481122534177542103820161225976085056878052740654413415382256284273556937567965656369765203850729206673015820245742854170378581129675825418227900762933337350768192294279388975672137215921263983516185368358993846677354583134675239048550210972098574170010626062114866682908325829274584086242071496552860524815879101236195295349389781245527300207641687532144935162149712512702893586843551271098985117493346262419165371018212459968113184306284998072555978371179755739960249136838213894905381511952920055275764482690009079706919290146191137553878205970786181302810255439673648748356127663043815449957788297917284862763925448006843105277022387491580929080569091427186334266762654988556243943934494482923793753252653085682032476154950315865820180376268293905686038396327332925211263865146519373765634256634690771749809555219071120371142870502697671106810485068625628782901652217147403481522602964649338910504568067558617668515302569270801874488751165373836689558056252682445288727589165370424345097283241955967764719533229671041735688404596014451333945628762740577298739105957129075936771535032088986300681984475147349679211863210197611386474450910915061683330055936445165486535677087001956189834436940885098491309568610539879595133535409317633208102535244760104294006847731408758965530656078240970480075525771489702834320678937792739089902786381587735252845276596319994596635000136098736383575990561302870433601783311281995811399536874890452344171099622648105166629892773473709604965900846206169864094025902708593331037198890188743505858870759835712802684777865054817448302356832819903720973490639999143365597451569029737068440734800590590208212150509676469143864068552134455808185001874750960935874934285193937495962368035460955400295061130990556141840342929985306523631838176974956647264385030787558395188572803465747630268157837373552827020331689950193925419958726765329100798679982717087910879209974734165646448358736647884520517070465801449807839760382055431072912780229587564763183089353918177406204083063086801009608821230606159825796796568956145390806225080540255416276976753965521105891148386436036568392854250049333214327033234985006533161583662820592392335567139427383700612602534710870514822174049287224457514685105163611541754152139922546099654002601852602725458298827113410482764719064112661493556326789065648294692078565986103075866403633154864591851632046285065188862376419390830205225386018404445912185913105312301780687843578043872197353369541265260615161231989588766382976988213090989124711855574743111067411936198233909135705136904152274441621385320031378720971056079832696683457361489194770515581659734137542912675483970637904580976741814369749483051830681176323742018133110423515601542808053075435570933709537711964104736246223869930053722410511366417531212746695722247337447930198057194767937552184067416776539680544878130756161791756520321409124952648953800664037350915610514793100121817842392666169876481450125195476341047636112839564228567638449694292232257188756548429671817311541442260325694190121319575515326345358190718373639201260246873843437626138877867518020644975213408083779990092694539821991927785616692205953289440905501768682220986114315441672861483337564378492812885575526475947275291622997882791334589422985127861937593948988391098718422002745506191906671231212034183294960859391932897319058792613624039153766243143172315152166466165098841553323407492298460272905229984739070832362953202740871442894223909353590926404087582537196391682510803179356500508776852223751534432860390173356454175252920192479794343741177126013018303470760484295085472230357868175356885249009521696393515619170462421919305100704043978327301688313203639187198951987699307611930210851205633513227693413915492343961820720529925084358747674571881701006953179590482826381022821716870715630163487738577345766883138830660823105762229107832579137922766967436408301414102493550346261796905611367929346255865215464988885599005396683094883959335667887862005751464942416892487895804579763907781909291786257821319777424423966311694447816212878235421787922916680504910447967847009126315323058121488506816600990954166667611385046438826712459275162705765117151033753874765851488242933934492605206999760318743461426972739585588941633531586743687389950444438016437284039045820237069431609613079974919044607823478839287587069943627274281450161536914252068573179276087598307415450848103695537558402638293372670095415924131102735735021249735808984588636741426995999219428385664904742343785769216639586271570335157667065848085366713363923533288528380313849870760667782804359848033534825768975516980547207593569060430097409530002994510270591135845375213653482721070988386669662426727905874465432837655332460610618037789158044436015676393711089824910656717596204444117332112781624647426839357109815316363909443775655524693677368850930685529410046838446541564577747380070263525615025447499653287532079361006273611042606185828408164014002514054748041506374236610095211143915045805866713466215718304060471659825870887602866553412471120483223528167494936401379003102190359406277196156324879781438249246470768859050267264017437692110419765025629897393490390339617316021708619485551653722856499883444753102756817665175222132009370925705570015063972133741293987235777286070155631975175677064732362065789294707816869387993309024482401147669764502014942098873703324167402541564624032141800958666031258694869146268491200946768811122409391225907712439055859764319702835628370503390747769810501687997747990641014689184314365369522800026242129954593033722896908263909580898522590652223442071105032934919436105033362651599793355484958601914998498485908456493986868742952797341092003557478492928205350667615662004026215124154825954061652463756094240969803199550837863136240738128391034868349147493621257401901693308140303907758732427881306495595947625643049601888838206067109649330139523723866846994829130099279589446115797947738516629551692688129461222052269399891748194556278304408561650040811937981009269942064047901225361833958209624297586223842765663233963452712443823272574964404296140754242147565330293173989487569169160925062561443118643624072955844997146664929866859143119186132357657190621357671875971949224575807777380975126738998167531700772240942468293026679001002087150149220027357356155034080001853492172929524076483547741539106292530156138872161537194529308507992414690913790309501028803480962156801434196912019481670511373285908602396616297727097850469339628057665607733193130665438315927684214320622986369098154529614763516664178607814367447825659220188389873248774674928976269044590184596059240012254785645158174583256025069263672587374702221014995825455032083046120892162946943579199555241104382105466282432380635306005522704658310002731653121835682565885664105132787556162507139502199342171785529189715987123026507610139029001953715402748181266161430801169236434752823964419844480544628289953042682659710869127840127358397456730548240688188239471429969425708206795709160211437834353647203807085153830206139652543065273114126373268501884188854277703178875931277510526755392056307535169253476400420623830436506830889242556221614930225851489282969235977813507841237375531719540359422227095309712414551932147706503226904100402720480741324641824762878075640180222194160337531504063788462886556402344139181730165963706682621570654288700034559127049460030469626030225350720098396835878278368469861322063857277744682776241322394684871162794928474479653485200876334369589384464776073676632854299380037264252733239816396380150058013260823705413690411683689418946801236064672156493839237900594780644524142670762672369798178982754286092352141010611472436784254995369560018534274846780022513187595446818918348048413323796577981148483999596151750924548179781113393676944813700496154400817714656708586350318621228985242886063116729637226625281160765791185254077925084471924555916960116966031989723922511253744356458497016643864338496348642677001739513660362669795812157427895654937492081798326105822035414768632283183596744608836158705992306699629435042150897414706405446416746778213478265122964652508908805969121524750824266904128654940408619188419473083808464966689676421504974062272189739697387376232900933786911651948234566355178178862779971707747838426139353215078958941553376279055189352721658842591631988875491925752926992188579587305745303789091127391572435619193350802718412242553831055753190799836500950074694670062155974660497160933895875134843053152233100296052093894482084804511182309178247896874423749189992210075911687592264073720054025820325199079144678502515159576238783514135895993153684744491907162388006966071347025891312992410510500956958447186097947347431683247298305673224501170833959133159489187694612994910450941191025984754091396798106495666039314568066299608625939029033421742604402223657374598411716443815109146116818232977885259240567109635144615155684077992319625307992514213791314762572662817574700292839779655856868657289987392754144293080657603489716424110884410105534732840224230424637554549240528863239867183546072612730474752910233271249639350697932571674921155036414793856381878758183545930413082885995410368844612267982920113315038795196004267069260113672379445728270375547773143783603373438552333665062367754710119301346466719482671319322189745364615112511927362187251201632873621513466765758876757676036190873349806359707609798503871192936375164942215342645879015759562043465257058005865477466276733135514845177686907877221083067731957813312721565223700298061790617910107079509486686719326442415986757452930334297507066728011715591927742646515456481168178822028994706897445590412535608297193104827498372011010236327837422603454400180524553857050582714952905274953002548280173996702662187367408864229375086683633235511694673378695714777491366519577251240154460513752575911860693419499733881582242994745457637103888215783058866951314357141679955876653002166259783454010370508706907923598204747823711402469054921677140267821712548469227896399949934154562156751154785600203492276807977822201596581504638169478306615807274144523821583486637250553468074666143822021349972848962321739955343701034449616172069567621644943686125209079927168950019461822820363114722340477598138548985933895271887759517724139001247453799615789722750679959083445308850515856194633509671735131690786368994931419588964866452559016508236046187131729108810885576268769460578271238837188343030094831777018078356316982954222089434544850296712757795663976772554186033163075916666994863082607478257760359366991207813799371390641603081833745742234526444642623965006546524381816974553982637814974780131605824293288721059226759306369148154427300928743980039779299388106830410507036350831046010239685534168261562265761787543810801766615471571458685438599291061933878982730290416329993114213195781014343278087842119463490396528632893272367542888019027719901880894876077291817686958068328572588561768706737838169677032783972380360498152070785332543844443586854799253905665476073895847729009527678313559803162838703690264046889761909219673208507427662687744992633642184625129598059742613972782713781899267301290765476983664643493444792593975190787887223436586023839471925467248850459010030633635152837043691572679716905716947423471706296816714683282076822410021749111667539085590891177034632621741796404411103108089802536429354823031647185270124449381976021309943093196620134883027272083782568553242754403173788371507129801886335300822130505193293720263477651893641755007770846749505439814686615358963164329322732909386511502463287797141509405171363357282707854753753136830443803808510385819810480304859877443566410312158158598665531813708788015531657321083188019078072854892096763414461144440288882754183852890557224206490748529567425188031738377851538749887685507588631882595244167441215814217516198262275222835581417657787550965739805141902862476244540008391795421095037109736548897678708016394875431087414014602682861969939937928986200276929658679708383439510774741840670459326924806228811763752405033541775611725952983260319543523469075794649319697724113597351607215566378191608091205032968508468215161449022331869920135255006844319710953940791218308620324392206468449786644831040265832452641747261524438128670860684161978821104240477741211669004598163781144392959016487713027745459221101711198927404506287940251844044141867493106853167913845729917627487502299356426943576110751119325039564173176956078917495593682804431246343283984196670675445753136220470234921620730680190090202695746761519298290085378740047493920695697214220620812471275389351495429632398859972567109421972283907422478021652707037771318385634909144434691099663861134154330708775304189437270134514925209942600109920047456559501433163197382393877269645150022495535345039357100766642360709363974811889462022235333585614914912320232974357822105285928664101878168182357984076792385017715323710280332801732210501794552319314090742214078252116895181320379018044269957910125789895373984772432285591319752969558476179038577008910143298936467240385679928521295834456845724478150793880934223089223878832262338200862937402087022321430088652059469790790244076346543324495437287927838887237104677931271476974618873425488787294939401799125580992327019001638801358530634264902787494741580312261366681722678727160850832578642359726882309111686809378653798789913114105248179826908858876869684746675683560066504518954645981473453725013428116577654530860886818553506902748227858276362079820493102175181467012336841872088766958508799071478044618197680563649856200857851881756751501445042976031398009675967902825618067000889750137868832387855332038694180082227614957989189015669162711716580810788720430146669530886914927950158378241105907410381873632989858230174560028463497053735704332611564042247165692920141520722331086325242743560397391352952736391797404144945024000301286411203116982417834572641896719158270096427060529567292524127852795965415966715160366040741866683490174578655018195972008088103100760784822770078393096699096891692250127515381773972871619952566484349779759535022250775694887584763447888925827206416386201473586178401978727338551425798045143281016131975826473022996347695757251114001599699795872026820962424068860225081769643141636676268843015449841894374999267300662376231104432529354020833922674967543434766870258030430293507010707287337888843241827344861953347938591948253272984392348667910624454162632446199927606457909075947412919087664644049061052152029659554341550958296018073433322058579630809569613117743938834333741943827511972344210670235966049155076064991822130892008117231475537679039927575116274289335355950974415494788519624756458294021231899578161295274083195672110100225012735166915442554485355017633680978282844793914260482393303085209874288950731094378417070791923137593561642312949299869451544672109454615522095674674267895558421633149143323593343644047016889097186548049127670535229682773124141231742295500598018386460894658479012925263199032986168020180713026640381071766677520675968000839702949916160329442401119714656470099451694272285291296626381659929659722235232402741039654380314157748754065955999294373097356218447749973893050246145002071840777608543880851897685545714948837042403730711458531739646590080623996600802211375612289284416654941964785505868570633079953934598144310528947809568238367746057355088233118082448023887520172614019136580053428043119719089340896203954554304121270056986863621835343362682227075929393316589311302812789030859562667188632854912230139416907380136596695149639506519082284526663688160018749713750787790686739764555316521288475733378338436224216088892674472943561118765176701515256288275888930126455889410522919151786120255175731754608961683394911376849891342059530062583176894496465216725842983865669262309586264597398851424891355250709325910011927739727444545370310341342405394984196180293704255249131883446841784571941549344964607641122787649541380827652807253906997168263927591203858413176890477343466325575140975224247063744862184339096584677809913557253067239970365098980010821197645108223748398965713277415965557602543554642036953537620270062668930391842456734356610030615736386836142774815136216244068499804090792536138235053592002255660610356484312192934043898741265777857737530642052250563344760662351819941082116438217166278392076009620318025428609518696668522878875267103183262564474731159090083803517925582369779895182952243347180331021591099050256129995910999383226998349797289661020731289904281635460875602898149109280928447598497788225297786167629614841863142505959317484942143792165963220960788806695404567772355181689301022816927985530265268441354925141772968296755941187100923873012538545572084581793447898159073923009123868877105678210270928263109273891003883595349703578994624660031393948647265257924731796345325094632903023663260054540235907578461100281423117305421124915287699365641335639885330744509870436576728775881502886100082463991785339249465515720926504635100177455533793973570236833272495619998582887894244756845470729864014685212504832116537917030107907401072448962733960544184912586022235184306645923076966668883897324942712439048895624828566208034838975597573245621541945149191710313918304615502384169032115177069501313590133561679391513153934813124884930308024788163697281874669482891521287116383510062808347429377681126482038603148375535726991167524671481658114867710483178576705051615242565499268752405676024009337775083685584271470141904533328593078089919579800365612343506325546720625325821114898703929869489196830494313866549344120179359388185589480939434799470891658339335329582971813220373750082201438231927199631807556117392179667239043073162126043782535958455513168156622833244856740375500175437938662805576099735212285255813050306864857280480025361707876315722326164947576070325722276657170573523821041843037781958265689735359380685976326199310102678044469748779925344761563591577271040706994094523192963303699133027481190683102395365364009841903213283611405011552889903396912475573643155043121248140425779535666893929635529594188891162010220473936785358420193653459304530736117215178859325836265294799458872645296956504212728674742121827365231771740880369908822924681122251748804441807079931842731743933855982995994260370801360181107844548197898681816874327039478939491343345354333555311916985249367178493409358328498748074454367461533202630144899260416056080476494628257839551833741336212782436957392723553530196415779285763854407737475448791649694400098109525309405807216492173504236586883009056660475023152538516575967300418018231429562402162025172169461738356244743921360904965755223528701404490205383272675902399658166622696531914688547040371722140285540194421378410542113378728268061266141525458101188005960412444870703797916297232203174598145031418250815378164455679673679113532993693186762974129620680655619803325075980612449406376287158197553995285750069955661691341555401302974738526184495052326538238771229924923881335864722949765338693364100797413361286872482205034292285360841602139756921727968180798361759729963320327973278621637154857730640046123476127950875457145508320181636259556821398646837984996384992300644373672470560592979142833880149550966338001608507126205725004620578403630370145749699538815465717795911857151305030580190919175069647552733219104747099495566619640601459868323810263251563994549829263213280105371602468842145177456994387763803826031252034011563287267750374428630824190634682370864859229164121171310734835355843295707932986751060591836788999913943326267679836151456311641271764009397277711689277449602644731398647079021061987878676535007732225417066208684337572257412708060724861840681921174350562428309724049822829321052929326781230139221225325505539251144183238417998432991218455487593159860175027947755344342060192944548133873544627520575038555524821645817189332750842094296607381423605615648485120166372114890945146716680930888681871593776724165097965837583513982389358112221239005108966254023283250069001803954092392170948514070801258707537067775394379883775893562965608567903743029698326610943774395832141455499416427864093110532746867261346860658293059060367003185263449623525619975787153141987320406738811291064958126477639763360275103031148532614045555059945846854147564716038682218732678422550604896405780209074262760952894146654415750370790062841102437154408037987477228216986258322549226585875063783092603976645684652688280164930993192509273466735148095778722797083917628490978763420028137386932410961533211782824537751085104287452868172475410593286283869387402834237931904204259856332864040409001048140824635165345442080249934041575741041112658861796863699019387011419136352382217686468812172590609289444567091714612113816705878861431606263782079106506743970312142913799040811576967466773776666329023340768890384279621140394935819728658726121480262956800709694133111066864849479419433430290502725551279206810234549675573789262660209927000369990582875874015632826608137074753816904938639331826559914185672527424166207075901776345727891430576990137748017565739869076245471712002508139360178833396246377595583146341278754486113149067380332363721684245071418824589675989697408466176841581683173178278739739221098791398664319969950767508032182891327569108474561900650115313067773292583561492614213237716376823209213930100246167943974637886295871452186538740418235585915510818199305843175842193006662124055012154341533572864078326927199553696873317213588496712220137853466794924678850050367220167562374611808778149416297223336512736537904054982557529813808450561765449599501047808722965558689860531840091855573154006012972102138479836810365710630850744377925709388765278763936240744864307572535539154635222205356468885366175980337714302800548446845147088946591505900766909568903731558199102647366221840688802004938308113775254002066434682979574377552142835705163051936890022839097495904078177630592581479107226704094321537747002028918396847028884811862977202397210898791463505782816505458161251945065931772359941392237688176052266864506545026418132060691379980131021841685934327149800208224880640628936362652728092116816148066085927776056739151123066295483186865642950832941964843546421962654584985092364590774489735099224871863176412643783733327890730113895213979300620080700353692335424914678380725662478309295803828999733921231485689003890301298584091395671418748942653356444710802683854998613323511216600144027474433318906189232986533890767459974296362695037980808426100549885338531574257211799481755967455906545074585249653468971151959224124847047308202898828591540790862579640739223575958236879523159940390814931933482886189286285806744760501450132755068099800761308011918772912410055913897024018776708326815757220794442400324231157469521306639871633854570016777768268531802186016563122205254307132022846907470501638094899314614309271982035665518557570018736796742993591617359370954375600384432177298161986344273200156027450018949384770385300481378817000375904787364114765031230289737997251745418644112126753613817346965475635620520487129222522369766046476404480872496266688197789110691667205864259923805598706022950800392234831866124425870910493602645348581351373136753204724085715832083998497833962962539850048779650138556467127928495139934347416775087497912935772450867347524267511223340913903567930804815118584064406882695472368474624834277885982453411464942259917762069959682114946025783374335486256390181417975695911967102504241469748007320986897966308389152816290970055822814884560093788316387284903935535327418619796798038457055261374875598986795410061703873284949601917993860343549588052834681703685762716901444372793856549897987253304270413210369155582560184946468373026854976395920216149987848938593551128234541898478848238422455018228070718242215393815365533029943954676100139018415776331539963768678468865230364163171908877856975655510339305654817249720409578431321826925139241877994600779897287005195188928115674049991138897562853720203332114481902284919925451206290787235821535907551359668676827352102988756964936641581031513568042657425371114170363524336126077954983168348621857807210105761290514451030704799655055448546340782749695617884343915987096587645939604208800757899298584369314239428320464820718829676211323679401107481337021956936774030274725362950224975205445500967124010035883251225690865041927599802586414330692517817354330393599650470443169388530684951180354302196526406800209307293640543087785031732780353806963266176657759011956110188622595644789700260469802434188046746307826416229320574544636492747815262419466293136196824808086712262887859306851945467963488650766705271238392979344844261764133669390777586026176917684697580918818773364599914619305261304586670865397921355170476626264979610333189494863292388933318518252473814836309498694777932178477651020017492303329709003516444804933839857839594189563422603795483037008907727073950189159282935754840810225563091230258618073722582587465246752392153607556009457332016904341474816324542722334755736564064890723114244607345778668196133193261043999932573233161186202368399713936670558205131404906884482497578606994450028291457099414380530208340411020959231719083622725382348215432529271607003247717298289498180085427216986621264931385706324317157787283403484816301593180629043258675649396572525410285527992803951374676288648217511042731736813295043925610511510523980501562984797619808287625439007749940077536601096891816497497696993640266059173945150637254854821110565118335561604258025619688349032163436148495241191373988791769496026262659477424769090246855145097037615526158559414760805051214388501112399139581007676552193708311779718482188425663601527121682612890991712772504896828706465233879618790186145644623548995428348898081124740483936169586292530989183662940686385740457633365829492568908176673662394037543888844703893798218612517044097687000760671291394441842905912255935043974791043395309993524929768285213397819259481279742576719426424789589156107026234582477061407956707656493862971199439264794599693718228974989644736538885657739453651843239613419356348024427924423505479299332313029174644268352068571951622136579629567271813862900575662536283560706270821953267516108684013470967238469700985230546913751110110253067851990554857399427949897644966924387790467106236929043906845436013289494630900585234259571520743214541107147036674268526490898353754861434784761085787577694107613964936848924420108710685282663757156054379032764509425777568289043587572872290798039061073880567932176913880144650989530090808228629902949580841953096938807252033125608954287573158150291154088506260747261553288316604686489544902709753506162930123816157508029136318170884390141426682462869159222152559118768206241955024255621051866292558336795997389398733721585128074626913035640312684283015559461976393119630042866790075634350855627390786904291489860008276578347117506851802209559951527622186149481192870503334445947703557317411377526214868642183955003533643533250692471795622619404469937991181341825000769113799845113776998388637928920509166130556151936982529753875832670638835647428315471195369957603930600223238661021204485105148589407183431729510786454308526543521395735416060746563797137239969499966204615225499027153779804330519194504919976552880629557089248198113906212886811995261127840486097479833744530743609462732202456948724611220261317887610483867427884554283379210592427683050277450858125241934639056538351489805664144648499972266963828363263202526200639560289616287284362170816614989022808631386570109844121600152218004171013081992134546075152450317862600611155699180762366077001301418534585994398151114789928746512450441946610394995417785452363641163545308532010489685292523036303414683515786650725236596667950296432625292510125336568073096052220496505834237248263407074727729212187751028541322940741519939027760840197253580809324157556342752244893729425335308832934541161359482734060881315067672945970413901158550798924615247976113546422269432658889653862471797874387877108909402745941900192148478049066617274161123938260111860546911178196616401065685227830112471207924248298698773233519715903334213434217391692458630504688552482168379379843597624087634110904519730475898402659587282746725626627555132425076564734757860631541786140231901174774301074337482402847737753140637829689691865652757955142997201528228205128385984531749908376524475565593841534184647234882176902003361410465017813644634825668042662194916147323634575709523748704205370526633990698346088191817780198547470335565959609893054301199235806314933786528622001379817644769422818883747115156239682713