5196639767877498931151292973265967179168914196618362263219217965357563174265118815855621672233898843773962834541721241696155253917484294235656513563179938811283284935222458964596358819144945445947221229473913784593375622484287251476252224419886229723122688151647776234753751695293467992946629729562111221434941718117544555876151373346217134944312955537451811761465813993915518722137634585875452212921142751681749821527256545587631836964582991465389265543653631582553225547335725853478836222926915437523634972722252255361924363612358223186322216386289939734578789113984391571581117257963324244499393634622936615566991477454522474113753824165742183435536594935936958674779563385548338994241935624162364932197518386449826938861634146741317741735365226821741951641551116371298826974591283166429925755223446195277761264897765296478553893973792477464243288591534258616418596594662324515776252753156752791299293519919416237111282629741156825841526556829676821969173723395127997826264792917222877972282844522164255522665534391258451492694282857435141358422642975215961434818527446538651711955446263632732882567614924532986995972327123284811278621174259221464164232355982151722742368437779254939572284982871542177496682172251886851891276871497532913993528524425754564422634195141448327594353449789365614411133457151555986882355678292766216213888945669959196383983141678213148657932124112942323594761928315551686164639136316491968357436592753292987122365511394719914579868684822366899495128491194569182243715878312743655671113444624398826765452564737862831879764622915915486649477171248799985254328398694177712866573543293355425997951772495656214353429214112152624271915289541348256813623355753178362941927784741656655653215254557637416151788923428527893137935773683123764148957969764221491983195242481177336796865574858152346152474289898742517489329518739446933682633571619311397971261953478516969788352538565162241939371485587891956782244147933633385662437762775664334378989568361564797165832835985857642761355844691232418269362948777627844857793965769863288425633581755615632961448945632973896421877946677322911315855214227418482741584575153751772355666954177993628517751124172973959214824629132371536461843248496279913739371892588241811516338332932199717727442886627853178642295813275267397196115158295783213943925771115249876915718275166833573913549174736994397462811837147123976637769211427285361185211868396843331482518574236925529283534755776749552139184141491164253853572199511197286718181715342714949246244166514172214616381136712118849312349728361261496611624698539218431962521451813136385692864272337524997917616437444386758772553489959668343486252144932243792444419865523489828555418158496268636584852831175629348124765554778231911764679564478317363479513648649827735325266679123582628712568179825752372238383336822871758336546521975976397842371668337334361133873345644747975443486129913188634359134649111241781397292739389797212916736724124444774963212564216739859861453598977634177215249884383876449626488913794419954773144463891365761677347684194689584183527311773819983688429585811945976823411943458631589633353962357316295187377221153926147816195242292231873932174135161924687649779466867884364261144582255224854252632416932967952462398126212615518683143129268851965542825516374827961353413929828787566474146979816283343541697764997934793767954154116935552941133312356352692285724624949581245512243745178179622541584177358815432146535541261495125677184123925766193969172472366984534255661122711591314697317989353262125874147143753991951868161671595873852516325628496241166638373444111676744533341785491947316365857127689995839346557885336561224194852186141951113232678967826948352498271785873354813336586231863893424821847624558321554646715438166874393264278834227138953672491836131178148978821361146916943392663617121488893727869536599443185917451995559716332242149719781152179163789187772795451728352885996447574628589591348529219441522614628364382584362867877971241324895672379316934961747439294498676813637654351232239426746373129189587678221558456659643649288874493826235967823436331251643952113724633734158744541685671865827181985693837939434321562299759311821738758499486545213369158729813351254398185946972223425757189183913932766493242372176466514882365567378653844923315672938532769478179471825987319366178786388585564431214953898869226327391946767323911787131331615818131313588994628516863222345864198726241855968651131654236978736425444436377366912356312637814949785158966252479614723629713489144284541797765731797562395737694994663211445545845221359235524224275942292722183928283867149169792482573893389313346744877435684824593455426213619213683526534899722657822877598679942884348384746993179563482228985575413316842257355593551725842914462641878744274411762933447762223695179774295858911691541918986134316685546443357493728222527853456892875239721264551415794136389623765153445136159152624767958158214391598212933422927236612917916588333658181774869618528458193735155918591575572477444315478944728318691416143548192574272694663698353917537626749263577721338522515775952452657142719555881781328528423134692464738356919412373765196772333783643764217222893177762345231427432499598782272353795699929869654181184535564944722761415836436154267975826421226117584821485339986815438962517766598987578214986225833187498862961228952275921557546943593456682361715297628192418892422887715341961431994216821896263172372467797615999753294892457216782217173457312277296149911486439461292627892696814145974338865137516444243136654141456436534712428629166873152412646821682522999489735879454622933242813883316458941327899657312349439295425343816711416776166541244319431417177344181231353126519684367659443193838131264998179169156479923537231443958621853732676212278872654938421979168156676225533334149578433991361898221286128963377821912169528612277799749747827473938552519829748232692145617464676882689941784546546253559169134823988346884911532145262465425183668725798498132919879867934262938335318241613572355324758638555575231976982581591114834928757253824835964273674148992968483176633355125898494424268292161952364855595483154359457948436514379813587283831747134531227186129186151541499122624645421597351761279516914335718342426539719224623381378373641918381342481733197367319191988813948367854759878843633852933669215124527667337373123343244289614589568916494361398463612847652228711138964434471663618582789395281844733418511765176751649912494391695526156911176182336547293192787491279534176267443422297411388198142611449995356734781546556329681422791252353653721642551939953345948767241163834355418189793331924952346434649271326171559785655925534387285476964917816717424663391828133489438198821192761676582353757849464441869526431893441656215645235781859758423638617225637326614651291661584263255536583268739483487889387294261348588128545962392523954429614633884889122431812615741386185351714182573786348761355483768275354133272381161529899287331382222231954632111195193237254692972987619229597849975617111252692379117598655115925696277593943222129774545662814978698414834152236678812171725566672719142587886877836863656489657814496229334341651211182425617796266285824685274915586633956865896279152428543693111547376723623456666441911881276223418974769544145623597165746827769327189549579411171687871461663632748212836683879464738676773945176895289149179658313893467241341397883112925372526915787939547621677428235477292432656935977596569112587745515578836729331162514958219434653128112465829154784731659296978372172585222848496575596879463252719578744554831468391541638751176518777347694164969797126556999169218495684543467724358847494645962175584126362148538915416645114211473652791654281757469621316174659412762269331619256232654772839721181879334438335912489897891659521319915717579723287793441395148554252484336796774985441897429575936717175425189698481119249896559365276523544886214768362817169653781121666683512123333656416117397638744987175335569992686332449981229552742311952486871315689545488943424112135236634414275641735382557985445724959349722588974629862151142319241849897368154682644971291148824659967266738853561754912182995688622283612794591662468647913454732973798372864327584913817512124873744863565528739285818922256581288946654982511184379967549625133275133758554295852161468678686124381717184112921311929466119547136666754381892995921929727294838876285825851713412755288956131642444253359313955723185877344353563218727513682763931358355471213714619146195982425345237535632223211585553699448448284388364711839993932623589157822912619519422418672437317638426432478423331169328987679193739596771314914544747883459237312394471525217133313513872363878822172283754869134121155949127878569477145463534759948926211679943556561145496826176126444266312682225987489682923232513345727526361157198495113711379626752833258249314965382892544644382781116582271841668382221369831573497498164128332452147668414923474879384298919758935964332826291886765266314568283312827612651813363752265817185327436369517111161629586171152619275628542455224323634764416827329485711976711615245159145866122925656656586324525847581379414457554545281597228275874355478225771669486583148974563238748215873496956912571223715191959775531865371636187742149982632263316916226449919468568956957748836457976264733849216378993352368735639672145863334871866227156134847478273792121638627115462171714736749624231148111772937377457259198429128281271545754839196359211363198755493999748177934871687822747995677281841815939485323528186854519181161778614126253822243442826872736313613285147749515281519419533111891992735459514227287728952841783317939176769143123298898945472364275193914426246241194919229331499953426766892417389258952316194696853466767954391895548391887788659332526897619819177642649747123279336545567585986342691615166814285417253791899285126235565767449258675415782919911738927546195998868826299482158331475585962332869838317991225817511991332795656654133533535216286891455565745834619746134373391367535464816539383111311993461525319464135731364417756173491528855268345655495449582435642254463551393243195383356127785349265495319474158719357598815456534151176654167722255321559368651834192476198829741129243391988974242697227121875173115237323932261599594923289737782265158712216757175698396748118869145793114425913995116524672774523465812394425643784323759785288327464122452547183424737977853868213319734575462666794474327287542675661233642415444513993329876688214311362581141337222869333419715144731196846735442995557996488762237411912259529347227656399483614284951133181328978897382183857143426729117396731872875721488365756912834762655426886128932443558878294628815271911378619343162418667174444582544465269641657913732865247899391952593374983159455895762735394926141115765612253434412432231262655476177885994478119314434811313413467413871188991433413232265926796597529488398126931523419481734425821537587437349561638497298594312965351481466897826374482714698431962898694221478846448463597518248583142713613527934646189122621354271762142498231228125634633153587444885745971797322728744392117389428141593535359137219923739729316517657797258195656524164733223763499971664389226598116627712453349128125518899973714275347511251426341788942495545314316933379651212862975194295372712548622847432329649417563672415127515373926442916786922725584279787655788162423221551275192577315819253848848972498335714214125332351397738885352274186233379935979135793814135411579423436928798869621996398712759948267791858813959691237384856548685267171464835652597712424321815639259834727382715144656516442635542286545384419198785745526254164772281445646131484788334151573628372187324783296117917148364268532864565121333959757922242954271595588318481263471713187881859316832548819639588498252226237743785916195568757775769771525953618517794662198133655115814912217727826143784893695878918526587429139694938349128444146891368674841957941815462914624821124288399371482231129196138382412413813593576518113399596814296111429879187323329351823275343884413879416653434695664382253332169286254455119493725936189568428443163275126735333185123837394672474876795915532399545185933479965455712247551941681181477566549174362682261179713925827957543246232711382319731642949526877447325146936596513696446995372893129559545586673814218257793382658252345144712783399838164822126732937495192553683254891915828145554669958413976331717888154281146168326832635861853329416575521473497935795993427353824718372442466568228231675627833577398527314345164746115946344368124353976128734345647453986414465178143787188632378737948989957995928338515171541189246981726439346319553246519138782969131464764312723614196221129832144132296324524351461385441834473285518427736887994594633143552963241261333489467948787157656574611757353453848357682822371993289316447131295844571892317724278989246612329166897682784659612492694423594817382536511447455955653455858527168356799616762244788914713445149354984211232646184844994218483952919566912884351534458662594537224496436577967318148452582427236825679532187689457766547357444445649326595947562623241296829783185176784699994821684515651458687165367124385685117933261116374387561313346647831112415719317176642943815678126973568534921454172642275925826819134688362513242813442316933815531118633598626184648534372963737995598481312366985918514684748136177757576362913368332834391172645655395262138727748415641291863228777612352414932612417147216192891311513251353351457848444721526423785965256275186168926279679749613183668842166173551315292912762469743544824599879464619137224256863641651558538818646625824689886329518292287615614136671498276241498684271314731996476132437516784269613466119386752643332818569529841545694842872526193443287465748641342556751932376996654625379772255771288933987729591239238533541887236935825927634425597663316236725144846484338196674586197115479328146795323245145314331359214455378828562312281868213242487146714122149637535224833478826118195915199576484165295776381451557135645865869915428223317535574491836176565286223675712816662972897423923283342612497327445793765482958396123925723476329941116246221722627876478124593796336126569776186113783822111129325695327896153715481828556181254713516183568853538875168678181181977341539888943843785616684761332121925375466415191844185165881175444193586519881792785534439239623383274615251136361835171265173246914373337227188929977755488637442335258294257746793128276947271281666452116968946426754442331323573212392841358815636746968393882217133323411345833877379999688194336822452838868748827185935651414837157727371362115149333434116522589193175974819216168647945171869645396847799491979984591513848635712747149654723343511619196975124531942714928931569415993529355119287817371552444955739165838189459339344918485944514586789263368221584318997133765534959989755677699994864253636397939514863816287257277765352258637764555662516345751896129315611241216523445519182519428287983119116996586335461342336714314517122967113839978577785224225132129499478499878523816147614968123749566343658938398239557852299869731179581442222555495561691444254198665718667555532486974996187499345538569744292131562789851765191595614669455193784589339218862412211938484612732351577393947626323313934785314841891351422546725544318586388741111838669621533932364164159813153992446482727152312347151292231945293834527661515593237367624996113313129995547498235166727547614739182252116499223177574921155336431221568267626147993269888875545669675952184286813583494782391145959191366888692512767188232365372843155447235777374893359456458162567382629476662755683136599795697193153286936845576499521451998811264626439495534697848965741437136732244843882983119246313731565252776111798413362485132399119439122671949323551858931479413428512174386963723317243536511153532325438749526193319434127133117312715182487387913821473583551192164131179825453757594963692486853965479641165419714356627661258679692371556791356241932338716572169291492742286943671486322788149974257851389225435376123313337984516156662823843219278768939421599975633691394842726532394755159166884498586145635518718561733422192187634316126687451969544312595657348488922955572974839616287175985632374487221749724867934629367292548178162132747211439695139757343169351178624613168774341247538283122586878663113737827151424722135429978685814788881849634517871213768694864267683437157465544942566632576679991885854448159481252211787661815314912616414468116331534613546979363269946224945453844268473677365738431354883688579791754555869278766752727699546481521977613687239951679915635187853237538645796781496129689936428242425713364173336165342751928586168719189825431472593435696455885691252332594632872884517593674873768632114714391921636552431438771334872768222883531679517211114212128516676118822915414556243519577996215322211762153222684633351173793488431421143436198561428814873846843114724792582661729485699226886276862191348914962668816882278325614586371958945372235512388995425175843532186483934391355245163337722241392149887441247637758774282963443143768428195227555713596321781295184181832721113434136671398851929136829166568584944286375624545732668751489517185896261579235313616551635829453883138469252296642919281946241862566323178951919247317367443622175485282766138134341249125576141793215943287485725549528461258715633791412723799944486269336327692283611941154322463137566971319593919491687294619152735549957488154399465843818975686326989661527935783561495924536233126322273296327295543789837138324469347293467136884593469444348332579572338841718895842926129399213486815571656939118368617611166236686535926949967455329796924499713316783834824329358629686199184113547359171286582632664424237323755441198537156516786166965493869928114743278419254469296278631314866691639971421411196956797679218312825563785991114742733937268281884156581664755296111935241135891429342436959576549539719258197538589578724128746854483538573961981328726883153457841172493169515729355251928234214353647626768753175935167972962877126437623321238811323945692744262334989429661275582742853255669926723587283562791367465864221113111796714521743953111236191466561725953177684691873383414725174942291686415931726574198453219935192988814253786316222163386145386822261978269461978932273812726924656111344398391421715274347585159337374813881412857399913976923294543634459741112533415153367779531128368545588512687367254259325495528322862618864461951144156459339425535473579823624468863473533916557149588215318353335378111781188131529665655366919229867982872452364983342327368621646642413256941148159313142628783553649836612445334188487671964383974965312811186586424875125913419432338434952842724757224387522164634162645927267384682972854186744581837958213155475769788235776333384454513625265144221338873125521743959324698379714227148255212251686843927937698274953266493886674391269283478128632465115723966385433346372612672452627289678493664184694819255837455235297244469464658127533241424439897411754679437622549664851585116376438314718128118256641852176587545334134135624651861126399995919369972586287377432558391663476185751423653946988939538234936459536696148373169136779939457687825185668386373713494784292651727324847245952193851354298822682698511853795717837675544233211482422161792624421125959212646663575951726344351794161366759396122733454822814875851848993248746374613811739794396586323329291216928195611624246331814582964474149128346751523615358344713474417686152888821812675745139426535953223648191274611587552741171347791131912382291538129164753721821652186435399827576923862466981332157648663257761497799947278245589724376873564164282469476429731528551415343669819425813977297452685746361162512636732695167587446855631638789931191715282226229814231868142121313626829257751512342949684369435746164351653862323941532581865568244451942778192194288632729888118732869568696468611169113656328517625881856728282537225574911266688598443423458847527449771199472897277212954148569474198591355315919676947595156382737459218511213733131756512531536268384138642338334129558337155144621743142193472231658947424127411826947217552357123112646222584672853578742582132359867228486559384744486196444835237584747175189947828298162458272473142799964131492333633525144671271326194778996781221657714517858371679561241753197265368846194554988357411983826385682643176526315484754194333119712349533457824935664892256165319997598944789367594946763142483414249435484974362519287578852657213529652449872152427155132566784424391172664126427469573354569469728886316943436325117858742143139195654592452141965831739915272413224285284582664134727858325493646312864424128763245756426364183659916782298118819418517363724591678712622581261579572434633876591632789789797836364568841625645551416155457634879363781521989938881276944229265952575538535155159271543947692497735625526123944952155176154777556156229257753391974244443637358865526485739653674856267344596813698134111827768535118254638273271694395497444648965871492796322829924212166895327639839828363841767229364636887554346193119349732434776328774916859426457921259836598378135596533483525532758169812921141111549615884914716594263493184983394444813878143191935723879448256215755214357881372434758956936657481459444628163164452694525784658652199957458296787175176564646334362919538871374853932454351135669639429315431956396843748158465364281628716919118731171954259919755363569357321327318567785548278874379813686431151417447264935785794352522841123131743685661415336262111195341275451152489836933214942742216931644697825195392386234891524672131713271329789469243937852922115866443331678349953363956958145654662673221865478317822538857325223425375478336665484336816373811154736786554339265776383914722334135832568355373649691133174592974241495151115192322545696829876219928243981711177979252814121237959674534172968271695194883785487335823137327522638233932995453166415188273311855323282858345933115534858276914449366433477126348697191699828426483548791915855855149975562987327662181813946893922322281471673633957685975771661329484693386481126747125861216715189291825899182525695116713274315429267744116678132637166789242425877454712484125351913456696754456117637816287834932142788594456219727575276628134426546111226149157393238254773142331942439411992142352142764997285941187853484691953789313399918187893869837185234492683784387128995576765759823152476642234653385791224169912176427997815996323999143836119764123762739213796113174834252514599472828238716291662493881278137533963353161152698776147281954338318412591344885651626423142513691448225382856926796595222539664119923742865421224918132744379882264927251145324124444232445763425646321943295393113517714234422718925643118746688918265698717181883311164673673665753724212368146936957964241747253594935786353285172142123312382734184976434198735315436841234746594768947487361263593597111367572714129395778442742156173366589544358837721473396176511435319164962578928356998761842757111137322618376382554893221884485516419353256299699479512759213255769494797955621481486551822979929629146219911444142385519739272467672773675325914496682524518889278214122376637276373977627413477218767326791242491748914754811275842766463167637782212837363553972221343816513979277199919982737517971318894679415913475312948719747239421565129531761759919798214893498511373855877535741812928928128916158351777193558589546591628897217914942818128271122815949145669339835536426134728775515462159352829929537594961134616278246429222829461379161364396893513117423283673571246699238723112535626278626833917837543312416192351539246512376868483711626453717649411468949413271583421656543448431994712556919585634486961744933982391964576646821161288513834415333367192919666581165446166647727538364537954118361314431733399914531932555266684143145545987531934265714145938354963651762596528135296718755611255456875677711543938968498334934628915148959357836148125331144351519472654388568684291471224587914394662622567414383118346241755991632853649342615344611122683341782745143521722796189336565531483371613164873855114513231674524553484629727243773441561454532526821175194958456511241361975282349117249138772614677856839425371848168595572129713487314366192263195335511516811792764975963954248588691625235124943127434977775424335461223386424719212622814529626551381681323332253773414337818293614324479862353581574137226456586336934472425471431967949691531539197387266747613991161526199149996629755317714585372322558353641394863337516241719766833493513576948924334654437373956523746584469858336585134138749149428449591452769131295124898933848286957355232875844375171288716367448213118274313116535278841351853164158982969152825128553648243164473988326717111716244118772925183211798256818963883612593639539946922433377839888815298119897248641649248919593975332729415496961312577816551491694349821424289217137792377913595837348227375653594147194114898287868175591329182849674861247959286868228131788432358458983931567454611349147631838278799647258772474646524323295468345392791412873747318628283661438324547936676155717974929646169172217156159477948289476115513435523987166217481411683181564734382284556939297213769877388336563559932445176233599488369155986627855554934942323433613347531484362485482954833911121735418269692213323279914656642196682397628335381764486697232862723917542624841261132639869721311145955579156636327377245664424816146527765648179199494434739782788842344263677598472299683588473481793736553186974159589194597488718892363212442266588734456948862935492785151255894919532746666796494275869154145386712638192713241353666454653984966337848191591822596737829527163476132541239273226841196274876763155876517616219556133874175289367441737125221491369516654943748621484287741385212347333963455216496157527547373495284945676234738639352782728168133384553298195374677128891521724165548936582741147418276555871836149524985499382318197332395326519425669893362164238469489482251175143972234475331531681269831296272539288385348363463936813492334571115466276417294497672354729927977677824271292212411496553354453972476454955553467166827155818234361295137622254222631969689291352212193431772845571242812487812886288445525825913455872689264641583958698237367539751281655897294969261362135321245621365723115882452362227455163745627972615667521596566819642817268653555175628756159515231423683272929522725873854819883194342484511997264476914698282387558974314761826759323973545323583582869635513846731223934614129272642538764323386971148394487246821719618291385436714691634611444735674316561589979953847885454271192747763492874689331953212747289135439813115241539514373348199881226552722641911611938123174121476589488841675293813824138437862769745719853172955732423815222178355393777991535855652473337756488689232253233265153687195345699994669729453669315455985332221227172156395812174425233548973953927983186772874311757926854952128225123922322431152635816819976771183871784361533237119298862924851968889922285378882521423662371111158672281666535299964775522481257512595538822313171495229288725549336265216325261428479641446151952492491483732976132624587315974111145869658179461225967325272893637131889782844236217671861743868921547938263955711784926213986681833588312523798876859143832266394116581594636177198938321261595491852442432181566628717372197711649472279399624247649886241433929419468621773874213433774237441364391848339712541116843794915264586723955566913979323372395274718634961249679897584139981477465171594233459339624383182523364999572329868379697594384122395326147142728785671592335389734373331222814325326435239429421116549986195746995476337783934787227261255958889997815998317169514742841815193185818261839969637864696253618318246988634684267773565795164159622398532551444147837359678627217722358495965319446455129754849972565156495621257737765755753492193824897311843337284154311343435295219349292351163442242753367582844839761156385343823331357176581674691636198644193675629397342546977322453735173911254973664724811664767668474757162977352318257726779787711549151716389473363983658422763311991319115262598842286715524329246211532945385125969622436279319377856515368437619177597859955583979765858553574824651126233597328692728275371639117788125166362438995278484168421823238224957179612433411945547198295919869838947797436462353334327718166951669146475916541653366526174914284864526396259559967796436865233831886215578384279129327941421338835937478793127496527981565767924234944414866643471668438485741771444321218758657697481811927313331916765521322426854782733138923985822297294453539575126314646334441691146642869976439813253897333842124773129315957293299675766389658232548118317498156932258658498683529675266943514547617333286112928198257368414972893592797877465121763911343115281273579111312867942889392811997626113533851686342521762961316953941264599189931257747265912914536291921536429637756866452843992123518411396833559792272297896674738343277187336689548477738126113731846413799184786964425353165152242979519279981948134254618448524193856571214259894786838697224489657173642146892158584826747559961481129492389625942648855384974987267568686874153499253685196831571686842731548917979532243933611598855354184941883956252415422375111231597745163241676631336585256168336111489698695176858427719746425297735751643392868597415183647979814331753936176992895951442919966299625318765816576243616595592427173374776862648396879552772425743627635521496572189225678411687613256291484935749962315547634761489596132876496267216634166339814173151357262241925493221223763119355997296695738266952262222689146784338928632294288889927213314661376169291749217859699482752675345993181395527243538791678267172684237823281453253413956167931251752989761718591371543228589774743521154464923516632495538863677151412226857969951682945296644929759759358871457881198671951342488841651419525453334761595399634595466619736388833373592255749422322229146853862343929377339636526544169977133462592487925473184142173851662366198553538394252121178632614498521144186674863795858231989537594127631312751463474781677248919188936628641981995129657339963521128766483783733958653516521769866495713391824411434594715535331489838411533994486247883119587681132915262898669669658531591643484727241538659651531519625995942339959329785364656568642368483148151126869948579627875288794474365511223181462849717143347133952752935868459242658763438598143824224792251861581586182984499393511618715896548581872327153424597351826283473259551563994155945653536559872227119113243623984531766138171591889282144817998276874246191983237774688982625357926869359887483572117947821754519156455175134875952614162322114393165818412566689794146925654218396774569581331799644744388876888671588897266259279733743371173622253872626275817236388233435632948127768959716233942544245611238164194199148642244329692147562871533895735567326132944269314182436254794754292431232216965366436663431312181447129863853468325945138244617213224299446583195332575156424499466427937466734854459581689833923395688482337516428719161716146992897426285838971923852763264195445729552695541931833628188846787961376716471237422235423751411545977414582471135498642393393638552227925349972141373157855157267918269243374263233388329316163141212529688192961638854923195897444192335945383978411914341123247121214584453837445754247677451234892982886969674261225462433649959695393512637816215866418171727542833773711977715123396187735794126124934438864935648967468524129244269491452565134354317783229842622496725245477381851277132224362957952197478296826925431572325127228957127116338378124444583413156876621728532157322951144713614538443159121963837312442161816142657731534432315736732524266849663625552155725662925342412272585132543443886578131962658241958315246292336979743945456287759876321379786552418859493252231245298678477697686352736584723522817868911644922589542582412144559848532222436846892858879185567183534358383461363387875815291481319522788711784965472134467127266639742473394565574189226435623293223764293915966618329897742988144686276169674749637635172173985939842353981917428159642672123438583513359574529878397658653412421689363469927847262663962553935662148125462849383582212364298741548816867155845481226185347832544286384698585587436327995535789336233844971633937116192312313318842723454988651962746774738611135813547893556594182797797565554636669134235318264678965721734347839818943319546797256484647471441479995215114633233792166282236337612351194951911511245143925328831594426644225916912785492496562396523213316639533669664671398614396239531871831613333143361712292463114414251291326372874226118417194568374892623732436268388318358673873756599775736641188822121889554466467259543433139456774394788467242386873769632676479782378137612791725984378181842854452234447114616336239216449914513177685119762613843625459471855919917722532255954173349829125357284295312279147827152378986357137192765175326335619156748524511296992532984859881798814392365283241548466524761298528337425796517254855792587172339741835215126918622363271875277528284979821516712437958788822196589538274913875341682934381744376968812645385465552825387436986945655125955912429119238536412445912986388637665179973369783195149999228235454562132244883473844541492193362554372444274112625397224981616227314335958629757896587232949582298875214943627685875274599815572657392113176899516148499936779673456498566626652955563112236285874656525482621579488394796711253273371238232844463562691266674916559627393736243394389749148448751784499565756363733125784334112682969287811932447258458832265319676798372967114121721895179234983793339226435333826914194673741991122214352592875173487628455917174124685827731776526525235311744123563968525752442714635956185945152691483121155276491249922528388663126216662239155989236652644415271246242121835154515451559455939645876688837874992746353668832598523631155146478613557547583951293982458985465765993114562975829442855893971518923924717892664191846963375689287747842724111882578518483366714774667621741233811849316537526111626351367564646493721793212381236238782746891735324475531949333263286927372394296226757851649448163586426331259588513854128868336128111859449348763241728127397696721537382438927377795195824771922458876634996765386961335876453643893367961218983641112277558974479586545694727679496143841658893483621875333964315813143963474223249181442853628811845796117186997423741161344935763354776938553163831625917695562678947116127647358888471975657354799764282437122655613771234214431961233741417542525474694183928612761379398764712677549743212916127355275765369413432178621891639485894376862543382267881951627665283574395934194516812953272484449589326288483147693327519144861194542449347973271354374172228523581981931185895597497145187838741193466133972283648439399735559785426883159841893929766732832691597744147743919147121313911191178164375742264595296621131677169869273973731995617441234956598522615782288451134551996364238426761821421657854659117765443448263685678259373248727313353885515346671488924719662652587189119714481842924747645179799368347457144148969583936134792259996182279565767566878311664452598387368319249256195593786696442964948175296859986639495463396999925891736196854955436461397698584931415124675252951212147188439571276525447429488575737582833535283823676445643762534214325541336725951524868751196614475647965651412511472654113911814461572711517243566814247491279224172811115985737186562221735446744129187767131696658596355339139214293559994586822916433878542415513758123824345912419342535614151647363615599555642584885876992841182953148572935685478644463481165961184741166664572374668729172986367587242658651149633611785191186485165216513729663374911647966642852797319731247764683955795228688811738643445468383369414992626726112154976914151572536962191611841599575643332377312861969465349486254287245323637876652997924595192352426133812174995343953281162718946238135934181857232443394541369442113787852313426136645361765931877345125981734681516959122611676712277286636212381859146694534853772889448937949165177358665247221561671395968694256629974199158716546797294522873911343789311512431837423774963347123695744339472371878611729387422154842618152169469966523595299281323436899735144971486793196423666494979418826161996366412481161616489516644594531669672239948471417634271791539353434243949887385156395251645414898475898142492745278936991315412986137481778196822714163937417499614445475428478456352934943533558783378773359126945942992156184795352121195276683129882837236245268262185937961245553245134571473933382269119522596399873154645624773759725542571686494793572544396414215621527747619978652449351649242764385194228938881462734891345193759857467439844971184336349426629127234515294418738151758431612289288225177241182981447162971394111115479533216949861453523474114297916653979397382247849675994634736431133427459278434466378431847926456771998634742163831983882276752519379187916746628784867651647164969169587875992142882519965462255252593615328782282954334534728591295344361223764487763661759422839641198823678247795442836461967419783886539987416564391127267932585568363926267445292321319623461495938279775637494374865372991172728334872359454479154345986494889379357572312142293965671157857593333283768568869265321758691581546454373255457269188366175716161345239898892142979526992919517528781658115524639933757296881316359767498516113189617373714792777279475251661645989798374287226428239887445719535745822611873415768995897181365293691348915266474141271415894342785489973296679539245172777422513411628854179453274659964557595294997966675791732417863751681526916766246868238888685172322831572118564756245993212132532617948612355158176448869767437252217566855343189746116429879761441646984721819381929332686745473921525138588685157379174892962353562312666234462197228258943249872623996583122276666289373112532994144892694162528415425189975892457757837776629196918687692525487745841916279342871445667925855256317415298241342975981593415428748635531433423999987563618614711612967633556458246429232713719998542482653651896553473397392981598554371686167331711464726371438355361668512729862212886222571427731219633487269125825927236247129953193232742817486956359528959141955692222429558769478732718334291913737144637449185716181492313253886944246821438181191643633541297512661238434163636331862968521436399387916319532469214657313923913774483717177877388242693344712611248571311971188529578192774344615565569833163663483598354382141569323236841953475477423246485821612454826697524881296517729699389393533928785182546265315334592526213993977722346872289564729672239498937985178464729719113575599524521221544621677419932952265288796699561984866113157166985715361561831551132152277647533272165883287911658136945244953237411515355785698321584223741772831428943394391621177226517282746456246834193482479451171427935521748693874315744469698455652113544291159634947829825443447533685133426869198288752738113346241253345794498683594168372428527482323464179821621356769651861738136817795518554175366825133684985857659935268776888552734225142212747377429172557268167218586627737634496934551911687281821994342133276995182394496289959343389291518456622498258582482347249967471836257143693444921664386335433594466394811168912214255549593226415992738639882916658393574445454889554569742762336773525791562918681632479712641436287415617262773129337281172779965335915961996778126846465436174828421421423766486997796172756247625746735831591794317688251283294951847812994264843267791448683116487453423946445278319657552697194195417583143898631422247846573192315832532814773115146334446771981658928362147717458867224812749352536518266731941121272646525871742682226641487272155877821294871522838985933749441681533494993227338158111116632873879796514749369528925413182652314544585134214478821884594147284866443441354564262265966812516313261634673894199564285314149372267929712714891298791955467743894694663379955319361893886615745418752289767676532685252133261331413492985178755945144457948366887835323824248342585365227342638332427891277512935952896347113425356452845253994461723547565627155639716777494145863719421494383922499221714546743177482476922931597441679128812342377948928421461693384441548121524737914736551186167862516316129224214425282424384919185199321342143167667684995414518812814882458152339825834721611945795732574368712652445634791154768327281356564575861617968125971324843584698843455599452789871642539414459848757882879661243859487125983676639767569954159321632418646393613366461195359922234395161385946335242331237137165848528152659561237628337786226624548966796119779511819513139153546263219483643291117788625916528595652881249425476775636229954428446848319962229697636755416534847292745438632377151557675776824739467125951864498898417475653864939359352255178599366914937236212998485758593618439486913617931258137512487196916637327519756464991611563675336135542463188955949824392612919244949482454816734373552864575295466985512996112262141464422117646259385847722589713559648929314781691491234255125352993368956344961394581719146495345653293221476684942946592755889783653874719261413351366542283634256746931841135218314158385399236339746375514777498553798474398329872595724766996544238842223417289945981648958453959618541418561557241877752114679822216234941948372772473184976747158497484269931748677714964526864546718817227879865483356281151798132183215745994742743145713162881987363589867135765461422382931632723429236235144344948246514318446381155859584547868881214351646945657673914947626243117864581919885121857669335195897225283628419996979265453725835476631293467315481214621262222521555497955945173232614999595126824441493295284246824723462696572195847614865417877194337146195511916369214168512517145858822492838888594521685749711272357986965919543734969932453594423562729835194383626941131558413871914929139162935588374748413191554374391496761746135573551839397238771133643488594117252357717326273911873844142152935484728939173171631642941779139977219128738628484349234274467779663951449633367153866745231682472427517552634219778132512632294449274781154473775775676135883335732411466837283535273568238334946534617863457927976997235435926113329434311393483399166432567237185211565224356935477785426938763984314491236454713982724151348845621114191648171629831733584487212895165552811861847115258348243977231467358319762451915254666431596373775273394157111852818297659489625781537747513156727538541421735265184578687323515295183933722425886792741132967271674295482732357835212941185822823631722968679363879631289175735512315673923315569379467737222119985221638544351314895894481437817762518528534221873887185344952458171633871377991834997767133553614247958122684153672924884116232518379769734279943855262799276613266398366521836244597916532121768646839677142164265393611935813429794289331537394962119767292117496194864261347135652376748151576711853876126647944661581273966158478977893323566885267252242613191654255455876453722999847976683421845274889581682149761922532572578522286134595518923145887916916772973342398215761569366669961685165194186562238171516333211888741121347128293385781971392113468682376117339934425286476967619489687324888378395933111381949796686624151953981283797361284584499676811955767397961279768745767167735866214159186638495843646162952117366314635881684238711984183572828327525368329522211632568196658529691359454162641868866775921251737614937655234188261723191465356973255923576282572146175417159811574315272423448537731954492395492245438294368366186752982839259143223228221917327472957369712432198871463623337849811694273726476361185511757212457945927741757242515833538248284281953611914958942219314866838443989579359773821354542118267263341882447367425544161751795899991754473698811434963111884996165432941377841841391649525911138756666897227155345796581244213757645517955165427416171483151615292282311777533544347565255238774196232857985467964823579315879233311466874569392855736951238621965183132983486922167889237423654125826551969123781547554274139669564728277663183935179991515342651968555891412528782756228379218312677465227629928244857526198282824667355263945787166477132355291634572241237456522315553623283467787381137954825534566812433347333748212121194351378444665965727822231441161913199764427482125399722889634626121148441175267978815161156182159924383265914675721486269724196217456722746634239496325317794972172617418692927593873352422723878117216882121292957316534657524457861489357491638957341344546958664744543378239742732285797532781467757431114977482994718566915344478419632689153741525883336799474711819551999443888598963364339861566416739551447836318572264729671846848831755172496323444736828731883254275619337176354326447171213674359885311953946265517694684542168652889661666312869341513426522275283978253811221373175423931882518414746692274635199118499274656772665283958415786334394582448728926651551526833964461431731361169325726843399876486781399799787269123422163218845633878612895697432683328336776539163981157674374183677745894749712285868916848878768763858339327526479714819724685769967474677511138792552719945575154162418657782694627273874899576856387873479636313696158448888733235896297762496542918657992575356131111378837313598322395548691132584571317415514785344267338182396312563369429811587868642895417697828819687634654666384495684231517955433752871547925642876254952997731619684955876334539516384121958478316879943456859637675396839186144245379347211213592511158486412198496821191851475568594751185171276554146577497986781895342787617326935471248252413141211839565833915473964386587918144325965529796861268714757695359192265836911162164614525813832746264364311713718145653344292187779951637479857927676918377686391142297749356593186599736469731481582796265433546915696326323265357454214568644624619866554182717983292117845761983534771132876661291367834236918275861263346234743729479792718523829333696526211159353988263248952721626973794484637926944133448325224461138133839597213481562277396718519879427119721156499813263234564422993748172927733369967455521423741549759298537356925119616146659263553915987361269626263237346511126732432831611511867297672161683123748119834315683778831962416673363638722273158469777798168263639496999777525142653571278757125355258253756229555225865153517754323815635242724967979511986868483927631583724285292724532451287616485636627425854148424874415411822136165151321887686983337725877261457143542647559164668297338593322927772745431964352594751811515388197351854469988164781953444527153935984426244989219299861497877545498413248126921353567853595329167951333367973883847885574262784725463582396852247643371914485236651255853558656725161524222612173664435388121854259728292669475534848247378767475636158974273597497372518771293396677459348344283132179823519556262563654858483162633456291663994717763139695867469719348265115926519318672282173891923873844753767644255136627252298543437711395793397762131595244934543496353354529839456758674931751551455569895311397819961164924996782342962155798342633719667952637769539736473214844762637946428178315835334684753539115762879542636955252564725824341185944618511224134536887274234116766421145524665573427915237582383135346465165673723136248549912248321959565648831565514185468652568954621533357417289432358422699458677376563521635268988424962674824467762887175817423221289681874789128938593866613931266624295726676177156546643124468437447497781862628649172186572736113121995521842672518215468447938761198137434783966571496224219311123945798555172392942251111443926127346546155643462829913114423746727147991191921216932222187161386876477198469876169329756879271314189788345598191314415348615243632143229744479819814739581546971113566255424186289182654521321579141732743265593836523321959815979542968552994312561721485829755764453919234318697235552535489916482122412969584429921414396264653659391347191137417873294444818667327822961481534921335254583424851566246142454581296322622956999122464212457597711829836367118893845619722131491331883385839232139814782115166128367495455146564765944519425442822737146281244139646851949625835445557467112535231364878616579253539614752919467931412853744821281453572665346377674327393928917138313338488915732924356938828466766411146767171561941517519691457547892373196529712329552817641253594437684215113485977817129998516391281411739471321489351611286645694356253946882415764899158438811165767668666827967725244652279934694761177211777868287216887725277478771861544314288997262829226952544254161151534986531681792919112651933791347612173698465942512281591533244435932391189466319856131339192155684829953499929181148835248778546252178375942912823978931529532329162332239355795639642981421361843156999541413338586281838455597879147634435164262936745748162683241931356187747564644323396242546767766169715131645434263313452245615333383568373383756911721952699538259692823314186459837252983294832776313935775842127221891841965943764282392497611254835725543727192657346221561418214413878232211143824526535894366161866858777615188316149661577875678465523759927155854617852626341249562962168614129429311221228455438629631226333593646149441763855352458371317438554495883213767733297627745632222412225756184992286445935846255733935739348323194575212961681288546283162794939229191991281997552331366263394181888833999512175215758624185367775753126979884657698563593839532599693222358616615671121213297982389143971567541359543284833119655463835223728934693172166189975848443877253721563819631229726486782283981979449562411748613155122594913766432782841275923969564458364152893165567741788742292212254814216186787114185978562163588762737734441134125414721881229124597231279337858639753118228561532663971165581981926141931793534866276699851623531847464934651478598913259778467694321412325559842243771898521734458637266242468137269272629418941539317536468192713999847389913589411399613454998718689696985368321993171715996872319612626297715922177886868777756268348528692594114174768198972789411696213577253943424799834811192941577466381749259939729559237921682977637674733572886264672118654994543432577288813878475646174168972391362313597612173965693352168869685993163589835884213185729136634652495734329896493928859754168889177357459832548289581614899361251744473387447832393847234128937296623271577899186222331591417351914518392529345795912528989518828588862578175717537368375695853855125468567978796191836229786236596493549525149616579164855441711242158842988418918154158764345413234159782236187629573285686439824481332722868851742685369356748467289327394379824754186747348285784185791553475953424741341155212754126428637423453724841595911743977737448539191571627621485551885518344176946565983144638961917259196292285622845642647758418467656957118913526571922831414516314355514226756865997332819653484183761214636625411911948592719929427121643318633276633832234446345219669215819778157149128186625438249991144753688782146273839231647651574861355643893946398994847659945128467643479869192679345544592297834672636517818169357268519452841461369288421913464241398135331263468891558196921737418895915217544819537614236332222819458996328854717538929646121522775491927716953328994673423782266694231619227796528834255973932623441231194299849862215655824771718157891584782341815616614332961459816956137123878325877846446757994917583476566557422316197262263943672163589644262973745315992525399639635196757733265244679718393947754282396522954233681597737472257789145859843268499299314751935515759947513341332123749169717843632429741894136551644476446911511151143296187972162943899518748873959156491765912947252268999288275623475821721513384928154341896237198123541173277324277673424779259863499713694579357675465912327764469259525134926738894175722638252999581663225917119926987771639149849784986753728422996489934751146235491559232562485487571591137668829639416318445612941818538491745667392574991452374657719521517128483215441548478231792453636976285553245217867184528877571461759275138269648952479991554565822891224565511264249995263342595698946933877165632226845531629814745554722668683482792483688299212369935271894676523427713968599835183571458237357658143369642366674929334311594358442358523542192665283317524995562566288262417833177975619866324228299681924138294926854218118331226273617817899654391422157542331518517955915427193391457723338538221513726137812147248717385366632311755118468873729978435118383597534442234944285914933293973314276382476822692239879148835515996996795455753692126664484131227574134854114421988561472471499541393863478738913643434793346283182957931573493663943521468128434464872771143113224614153326418577268945489444731893285578396845999852385828558722661754459172828882861277916973532168636458174361195891327166923232852688817545881912288254134753251461949174247873932279961747494227466859518552738236124147577841411596575172572477529955662826364426383575526197881458259644128747583881518327612767138721426591662441444525622486296158343353121721327465381994794563869712232983427373261882263133653187589369784341574322386669397896677153979772622232177113939992437759785972933445137713163524175641417937168217565657497633819212381695386434537638781653886371343654336142736643223853598241623367224843626911944187645649144924918413368839256516284179533345769156279881371685163632881919955239346213635564155964521237313682918871245945381966673284839316426245759585753656678562377416445523299361771993746139397546685222421873814487127252373852713441193964892461838344168485783452391744879156225977444548342624525684993949241621228729928574852335991624442951644591612441613287344343647325318982531953183351883986541597135632429266814293615418656469368112499412924648815648635413562533158733933352684334555693792311764536733535767376354291124183893431323884256479863251378616674316249971864512586128221876777266828721828791854992646539697537359494878519863535777679538783323957345334128424488434221966771216922583624235244992426376651246653121792182346192896813582723173271637423152532174334362529247911134435681121671838756227115299384139327119487338286658325122575321274524942278982377616989373693164536864976289922264361216565581655935333361399942676381594642294773115613732445439483259912687358369226351757538251752419417838297731316631147136233552662527381962384688688891566521722133266963716437661352545124818534391611496943563538821328798644917375219277692988459915316751316964214661133346674297456526629662111534622834457668255591412976459576265589952335249368234159979656125196551392897772488522299513288473148888193631578784181273734445319938311721213745464894163242545222344969633161689457867867596182377529341658412731818238483637133134122344473578288691618293873639318999499849161992811755355144845792881243834589685659388954919947843213611693499218925287188347885138197734173195362196812678278257427456934272431968527289857584963223764564844963114222391519231822315836351257689316444424117318333748356255644873719535647168124756267732156815536918712938948549751466275712559846669392114472175322247641516214316539966734369749798271834236941897299395199718817273369981439226693636939234158866478925798913268563145481686866342614131217173187331413714674682273719944163287872716547841197221973165228827543314526652999431389156541624548545561285819268525834723349736452329852955195912763768386231158451442462278588526484719981669459429421325667133113575758299541375382556879465644476572767839951723227312569654183529811476777997116682162442295646367212754945568543277363911681368211431285677748516193846182865228661833651553656839381485236929553722587742932574795192897938362728579179168739642334631654718699392843318852637814851838134429128419413796372689995311161611781777752651823982132673512575612744777657241982211782142252569967177431238413718326112254481718835746725515323339237325256546785225252979758462917976552322232572113741171446963275288367685877136975954222433173519442422841211547438221929439951139798213673145213496371174813235396394211912617422774987596534549385486242436695418893132288961839873318868573961598679923714134155135385827866797523584561437738312232759983234653784693678259286717212675321786987583392247337473565344383575434158545764682424414954165863111484862172255179792226372276869526672172131678679452262382495691115439163953771665385248371183198979511111242998143428347533538971828489172699412231149528749542352451468496942283421995942627687647413233484999972975541765334969824285971791376525859988373122824485612724216618231511457918749443249242311245585938898562748247774232748658772432394376292777393947929343491356424161431824329727386688441369527472426966779862395177956831724748778214862243141642443281684478835578848132438573486383769412334537568134158412964314748164189214731788766523161857463413474479325168295957815532527999322627568158564755736373531538583788746768632124481121288568692114938857617644577988389542122117112316459297377876255592215657576911525133686712421446174716517347113938811711763173852764117256886934479389627715887587752218767498246455282548291289466367775242711383513657514588646142227349247251639191478761697398786275795375719258281393136125544121522262287281826749143751181333266485689985815781828894231249731537372324812458396213617357161681455821714236535685649988844689534421877688284146476474114764742582337649338453325527942286374289188434769462661868737947448571142141488694955491532174588888262864855964431325822984177442736631534186843193137356389933958295245266213634421148734253138482298394751735734544315758971624451442784345857348767186422966934264631511685385722881756531685512864124676812683619216923295733477868272123811382798949589988822543924431581177851248948798491753664434833979618664269179855355438591484478677313494877553195147748449473732948633147757271221638319878734473549838763224393278114837653913192296625166729171873898566926317465351841343592487289146879162462194719181813648566696619152323757883735479833836353472553183234468338377334224227699363495152595256177272586118711211766612862353235767672625527711695775531641173443764824442993729271561952116338724318363812879584823442189564922963344135391675282146314278189212497897689132334331781342535422853171624256124425535758115279553596463568615935987237115118683442696136712325279861511316572555326835243899662249386291992554174946734626721685862812432823264966841576452629725376823161371849679513839344888232849967359563527838749581618551147355797387324498245251887322321923812786626561929781683742897469881653123252785784419518247783941613747124762127442238669321973549782421173978565733573338795532824397562227961438483144625279527996295114216338164784274993413373967496955177484223137658957693624624313661259913693662415247715599577967134848685268817848523317416385243448419819212269131239782913123195683294532297136374251746231456732936621335987554741175732479883562718451455769134819836957418479375345238722574634464823713429538118882545337679283463265114852941112335926951347512241317583549248116269238419716522637179297125572299743378922319573876564752349571975737693354873469718669475518427167377943788486713325424411116494796389941331863448731274833751732215623933724247715325471875738746617525717246733127125724466239898735551359546549816816967283613696688145232149327154882561649724334262165178355655746711699841855777112798792649152862167713319635774441277327578847492598483594583486442184744356452834458999348751923942989588184395647172649117693674127613584764913691441439556218758517232258173317898568482534272618916212954547923231217255249871427852948671565615137399371471769755162315266125116514541699139439891367738951796677772188333851557145997222412433186878894924589626823424964254482424845453223994547745413822332998393832237555427352541149587362668247966522347532741362239418189759214195132494891281667592845143242594424495958327577576221348317451148892962871384412775866222158357849299792187551773123833145182694839438433233521458523787435923557618863865136281792578325978376694176595765787344484753738484612118693577382656415856137958218533978484167575626883412538931357829889178792247826797937186145816326832687629888421693432648159441454131199728942442931233877676799924657425492988146753635641291393636721245818198856419641923361619923546399263795223231711462446947472741439643163622521355469624394143484978247436229492941862452316518329944827928448327977571693819611843532716236351845758462746431121162751321819416512495725258648619799927568224157922463649922847694565143245313879174416237571836125314186232699275432716424893619324383243737213486463179736635317912111322726291621615682486167724429732519275357226225544441873963311713248549936364695395512962466823912459945382877619926717773931587812364424134427958343363766575947494372186869882985488829832728121331961634737143771499222218616418723818561251889646833847546614786994691544657291492755667124652637986956431318615138393341363591721492796781281275873231631982719718424571921354173383752992398289731384313519847178851818489881295221352599275186279875164296346927889758326758143387255371918144342964226711574996276833964468636826379113599555653255257782457226656412714939461338986345451687829465519312557584954563964696617486498438978665458289889884935385884931351488442312751494264385225344587275657388192375431272412718366513129823225412859715546852415651612219338755372366127884192574982734281314311639535531896831827599614439426641393622558158916657231974849934165355598299325218221285281224183515862138481958598596887851839962839423891754925221726257351243929764754989534137221131742918196271117657656362413935466651926812197558422152849882917629396667438876543359375319453394573477114994868414885316276692151744932913479434467215843668218374156176711243551735747843442483959796337986127416179667363812112543789885147132241256569679873871346594284192154169942838941752198353811296451247398766464435376482389798879132265252688452225114191681212494353284525685479742254243171363991915583219584789535272231582382626613136175243969937175521396611899661258514262753922622557893123416693551554638245295444676377361441517129774259925219655158983649647316671836442231985899757566762672665127969845566451278478455194612368434577393966186972612553136376713576714444468715112435346572647534992853259896952213692422579836611179333513442849111138722228545149743263565235761114375597372127668816392117254393452926717359341161599151917318467919869383764241112168531533263288794627194312591369381716266325924753631211256847717343252769219716764557271499191374247544867727658625281342464565751599444735623545298431864667619192424919739346256424445129433783348965376849741789842845158563895966819112948576344558925142368211539516242514516929513131398617316794274455227635437658353435478282521332995881893813761245583465188471636337113582632157967431564974948772882678973699545164142376442363534966337656175644441726274295518294272241367462428744122253292429287363615219168429423921558121383135274288238826574726322344173935561472128733278453732149999877294684271889312774152388254998663544921533428159991364939757879524693657213953856913156246513964362521372511754373165269759542924448975449635486234632169275562316796116936856312864426484858852522115219677471171667331939793321792238359659793669353478847741292257417228227324274611291395991287145673469623448544663913534485793212342448833164185589642629548729166389923949879779732474814357429592164185736153335127496226176925959349721692434848959689589442836744183277477861382131252999861928447322896619721891576157152426137789644594186863183513616299335878325636741216179182625567232571391127575457538594514976728944593625734976757555669139884893868239172254366459593273399558375862777793523552992741542391577175317514152857753196317475774851111382753781152537427469664547957994821974378456971187782686124242517652324198718592971862178513526436599118831722916341146557793137816766894261119813772642375761266574197982286579257457724158964398535665272386357755353623868221715328199916611336884612857922825656192517244134679874672728666434764882945948776989651215798262164318872722611173984742216362447759847217836317918423215699884571827727832754995361844972334482622971117428752631118812241423257186577398476341928563212546157364148641867129633315619823713573327864186816955528563263439792647433619212252447554438636232284392274784983381626881497623412272463142566364294249115455318627335112419397773949843549713861786535728375361172574774754857574976336364693523153433622222217775629613267735446159399921784211692158915261642584652955452592196551836754146416143222724491369184293921162396117922837946459136651176824273265744453538825665716424187724475463551633459813237192646772461583326339587788536931968388766179465592913871551471326273713457774386262211156296229537223472943243352894311677946736578524713959971756567548633699244342543756657723625947225892425111692682622213395797635691531827114473283544863167145194196287148258516655181245462243234312849629713912892256365538288212578582795688297635583731251623739496123727179415114823376633124762387477689983444952724628447286812247136148933385362948497458636746163364167276272954466614177647911216181747292422319518819155527887835226364466322536272567346595358193381229659367796535511843413829267771369354594623481446441171553456814564198461296873788725868539535436325425756693872623632173663746914967911331511946732245142841629997691718796694853342961589122495557719531165619348143576342823354653362487419531584335754447598791385137554847666165377523533747859828525613336692657819517953594388846839883816992323233891341244745213346867449732933659274393456885262747458822937337523354362265176952181436547539138162363625118183182266351756412143673631837423654317591793221829191434325961711178472311973378842198811131234291374211171258817867259544766825414613471111244296445135244667868781581371754353224556987375775278671223846165572265319211799176114924814843497364315134137766489414168358392784617515477847134195196995247153717694196288221518544599344248648672963455544822247188618677744821762493725346262585529516558381299665613358382838219992482541241645793654216357941224537641154167964127259945976686364425147984839157117427139859527967144641882999894316184433464945473345233554432154665623214745433782968953649569261968361442874896167196212711862971534674657336494272359687633524676923754333473784657763772547261471195724229443121763265494293761664624945182572454335517711522273532358692262355849462167329152268985958517472769931527734511129698548479949439731985513992592799569319276211817558726875542722346475883448262287987354231895237922151743411282585367751561344828427823689561643214354956271591865614142575382129828234995733466855111634491443248914567346242137719187355383444457437945127912274155633234972582515881221516764965879463248583426283141759465453678953943275963376932735472956276523169557844223171296647183981473639441647255134423418696285672521376679348641257735737746728695954515417211465534353637626818471111863835712496234986938399384515379535554146191117121715316689658393112614449342526449252942395341431682589274354138199561693168264548193727291356925298886159692698961417714377716781465281164433889895523584248747913197352157237744971392818677118211666153879527987212612514777334549112734333152434438539721235179529117465248475495582644479521345842193458559525528246257412234514916684324862835191882985254124968363257458963138631647314242356759454217142252344953241357569143391419523166995847651124349929321291932459476347288836114886957945526933166429281661878853181924726156767144897727348612193927293166239613931399583834221583758558851962885571431993733615678825762422146229571359363689973165759325278599977267189414243131864716195841635192316544221273335697787635857192894926456196457427637615586539282585524732822736529367791873234515262729695891572129415622328386217631929382449867823982257418314538621818642326656326298276572715178787722262872819632951975141114876976329257762441631912397431743395831496534125571155478422293259438478619764115437122478571773299144117282852941462159662984944922935543215119135126852782783764463928169191844262912689693794311385771196836851637785231682422663187232651948215855577421851469642398538815461836532312336359866764711222646162119547851314415654641915467392343538675619955294328164598554475916393393126766429879937124448531177381192282194151215622188117239665288322437141859251155665632831517948618535182581358636273479475842699828248735464369172997139993114148785166679122412117831998735323538712473636855137656495931411316313266924467426377826743283579836194274369864811816199754695726355452613716343462819217774341478618289892882334627121712754343598471974326857542772767415161471428844557826213254862867815979811417977452718137966719899766152877445655556581261683361167817639458691952839892226717449314524382686267151934523624281129791792551244314853328487725846171374912115651112663729936819515827997316489484992573729336933153812694543363471945695769994538972652978594591859483621683357248611811898285244547151522956258917248335864995329776819154991154283713561118524623169422484196123633259931617152243955746578182514342965478439583781373541941189974228921697116689793569381237696637159782335177859496439948344151514343926141363513361898712113381729162714635233722866965724161462543575814634396953489265437564719979492476299278182411763982326553191493759693137563598773435423941675835182293524274571769338988452924223324293574532687475838712943419771734421732254521225369112166794322447193442146997493873865494367288184639941821421571995219333293423882731638169199845197119353554616994377566644954415548759464172966425544166976866452322975644775395669298655693215616837393197739935144332529491664754562925256493241477681263176522478497269774446696588577661289897944591451695417997132689427235137536154554935875932576215621474194996197964952815517362216843215211928398865464789935589654135647831739842292216641458979514897434432834188389894328965769669751799192156246152388992624984315218913986382493844539298977285114156196535527765884942317826452151442639792776816686165458672225427439372142915866231922684275169514297321658889816254169582859529994672682431516212829731661345412625133199592373969311921116847689662423968811478452337958956769746714473545395257943614246613179581522234562876129245795197864462317428622512977847226324958777214289174364295551324314847384264645886383883827666112374643442941291878816125115549723579115231693382466592966262964966842226914342514851384239216934115924599932553122228598879223823273578839216178646926427562641177669987512783249967146164689293892764422195727174665837563571244665642729428442743141976693441385269393233351179318127182375778889172112495291548567756413148429197293111953925289794189277717639813883544843939184994944333165179611165583154863266188265584541713256334447739224616893156362587877367369139176584884764562394491122568956662293361628283275682439833719422561576911284642735431474178886222522282811586798164438725414673975177661263231366456391941189745611866363195314845341456956541872123467651354762539233976821768649339147465954564421672844938135325494974694927469578343943256966832466271923754213372518654874451151364743139366413331476638693712647415383947335899477334864951424911664994134848697558269989934245179388449263371597166356136155788294726274349213747873266849888454671851662737963914474961257531387293636335587276376977722242314327152244543631466238733875536194218684212722537369355812284514789759226551291358854288447346298347369828668565591264364811436514723476781195437631371441753138595117527149244489247528244167759836454159489114781176545752976695398133419497133852897632647137891231392376495498785698855884641663838292479428782368578927557425869771439116226775271236712984534242635719583443397345618862756855167121945987634819651514685282852166846136547921248556157381381234225264991499544631166899472751553526598574761383249578557421431644343197974548536283318137969136452538285156975577317412891189183625185113642493267494453736692981518844468265334566898361954952228365314482115536371946514922915612445444291266432647984569334257581195989354946354238256414554612631311975971152131224864758822355665516395159957321591641259368532489755282442441117759842834868943879189145493928541442494972956844811597899641382937921251198816534711796411992811232219654244344816822133628216178744911923668542563612693275355289959212745879875423374425374894146754319172351932365192249382433687362855494177561915812323148475617679192658679882424961594261888888725351151235349711414785899521218388717968814521831937852913255118184911948785972995729224799472532935961633536939125133771573242817873629411487996462531262222942129396282793424415834888163551931748945817254449895391713624859271455494359116612455955973777413977188199794166142397316364152513733521587162373486571637758349497515842887145745882193812261511714433434353684233642499154139528735161971926198221647374965942118676521388631926715577337628199115259349596624631875375724545191573262927434281327578198877442225126711822927325778738113451417259221239975916367886811347915166657532371515566363925535192378517561445789931475328895771228496294599387891643459233819175699829714925525752662577214111598457541968798311156121977281386662821428713422692699664766591919116637964558792526978153432481712394241323837835144781533123527826948144842286193466481155266237243477426434968493797655429696252528991246766581259197627943499283379914847244882895773835531656538975545653697933318614396583569888477461718851448653875774876648673113848197761739479275464391231765536561919583572339216956627323336627383546351261159441214498286437892646982815377558868517256497548851529285436261424323156288914618669118545858322332642772351661324427882718445991514638751242911366979787943924735468225533953392295341777984886484427232798217986497556431314463342998965873228684746263511342885287481999999544558419223866786692262598361859921875799673899727193956332684953477961318187681224759259144646267276619472164688248676292734278512877541864134336424862197848336551965276171244716134584599275873433496472972248384734124781512865393824441761921991683134825129156523112947586175261688893926531576233398337397449421631537321846893199741415793125986317328493937974111239288399587442165589651231385463252547761731553111397396266972894718882991691527639195358262942822164456281989475253949232394395113553999942618916886412891768975275332757792448557889748753934857514134912517128361993643893471238127572312759758587678378735186929115993371336759829315991811816147274525835271344453521424648275752247532832962464741351129639252748888621837627134135699879915721497717721141459563426824966196877786956834223451328372516228461458279631397522636543732155143621459442918666261554673557345359712712457499254753719698777942243275131821866214282688362449567567814779744351452878117643613543923179786865698747288631129221527456341756444921125231236128844919436671714827931316182282462232379264298593772418783867421555993648744738953928916974193816422286967486885435984188666511181639978953919254235526493175374243243422579599377325153664889888142954616374425611542436773693526418268557244596713719256551441495743365931422396916989968923599585733493486227462866881997989765512186136995915729138632649674774987978831735929432663616926417987342325477858147751424268521473114961921867187631351254586736294963255743521541586187183232898611838478445216246552326197365984442336855423527694361729934514534912123136431219519363133393128927216136259728337765469138969477458323527639519147533348676337183455399295736486768351595134693529117714392965224549571927153622326673944516484421669972129397589681331855833147118718862525513153927987886663447619975614571257719344243689582695123626366244116179317945231262349514457856151916721772426855726362178232633556591796839926796639519217326484564349248456392155496614964423654246789737874443299696329583254332718761715966373674297562361853818482393159169595363998542694333532135228413364412252328821539298994986327838626453229416996278521688588592845713134638447217612893412453757894617131521265638298757396723271833319434423953912467545163721257997246982519264412727227188621922585817263481216131856766394694851321738744727164782513217741267749423188643364691213149712187498453737815981752348237954149276753115471529899898233986554364914617654455145594472715594736716961564726173671481437234225832815978315317964162267174293396648513866646663985553138642626332976348493637613941155387644584773651329837741223461815955978883866148551731341594655892921151326989989845733353775797332528253428529313257519423241548136545738818118868529174479895828246786462797844879879816259192614791626714119425956334818649461312971381999241499644275231881534548849485874387618835293514769738235219663213425844735833569942115916727783433549917733831747169183272441961924732322117682465715511858389928753315385351971513549563271347795518991227969791656823863739979765159314378449655418693693978187839925418585137321688836729193977865519515143559784448237868511639232286651814142884434612826526438213116926764222232214289531283441682377484359445525849581681679875139611437749217378673672351748283688225714839662984453537324185754994585913267451254597393915358747669368877712514462378134275313441436395537723984691256566456636737651485483731194254549399262237428667615955827391836151694276452116846279359786774585744388428434129789766215691965579189998685865617661492523234624345415573648634561147215829629277848516827395313511833959187328898898384593521531224934989686421711197571276824416629599636697887711616534967859356933669978735241817462521786987771881433193812668739125333389313626537341812138599939898875919744933769868546491489756794154167953321312287443376425676383744114547238197431714663812434126127729387316783717188962371485889484482893653433952921581632112783887762332514125594226771993118774887326582596344879368764871281629376318974481133742315126653815459137589112811434699738456746824353377134974847447955865351839335842859644633123143472756314899258678667437144155324671598328126462422739398721532621959114375113176847941216271121677412694148293315288751256847823281128423375597371358734267311564332674968237679877933654846779756844795353226478698399492791349752365755948315224233664148774385523452138962498193433781827626669947273683511237689475723725332198549852979748582991397435359721235332562415634528153337132152248813515418434146923443245148447649433174868168646743899763829214861126189878296327483565168298839869421619859329246717834637153254693783469574667339132362454849242822548352638239444954134887268595562876268717687135359281377835343923153494443644327661118256637473897398465436264161955445841221886992751588253332972685433275693753479346413553727937529481933985598782819789123334113265489517797764255225823392373243645898928383283167791747777557591864179757137143131956269142863224247684747789837452814628241451276446842582626427876792453726782251125743815685812932454173986245415949264326115582149593812231691155186577556663644151778384438662216239233568229198569685421958577294362153194259168381312228611895937713966544236299572663918896385542232458129748991332957298942442165583423787915185366971835557958981267474686864887268731871949729896352555568841425244653349936535891754321849813538922596963314515294589465242594685335669538265856933176167849747723978213372458791554238572588415879184776815278967763174459673851175312982621229282841955998796998915272453117366132978466321118567586811913379994177782225327829713534173635532994267619655624629832868621134582123911794163677274885977375716324496727872143142719974565299635461853342458154473734442416953692521688563411419345693452813757913726561435123316578635577574331566414794854855826765676494724635295533636363111999693538874156818447413715248776198175192295536976434627354253679149418586727246112279713467653866358425134686287429737981933513697612125291293547851293181872345633146416574972415938781684126611841519273762813447439697244251127176423484522226975921832984212563174792581814723291191396683954825135588117146632496578766718166358241549942836169713593833234138898549511138222667943626711873178431541158333932235547296769523788181457812765486478655431313721771213664799239915254312278873884644994579437716827579656149797578317743157317899111417272233286675697258732576719272415656839254765638165528384787124233799562547323512711411444171812256741432743318296195343174162872258113657299647768569435391978533425383367213319235221123927698155184247376654553467463531139151347738692285332694831195645483214274557883459821524523482734283694487874174492885859376372339727866244222445521966962669651551635883261562466123466775727316325797328246714353532538745233442219846756184795441151933919911327321739685663561937614791131653191894311814275662927627287654811272411558381912261294431757397382452573191594662213418254346612462872157678721365837131653478248453913437873778319848779245433636645525638783954562294341789179343157163761326511583511651926522152241886756298776963643447639875433139145922466697192191238666981263183259892812871399183912162758687989218848875443623992975499599672833655622897894632478244396721643765787761582897325223681824814779984451622451271441323427551131597778675256556382426564533915468234782327333489174667755415364755454833414312126728324237227424866949999581466534484484874627365262129328723685735453522762459477483561876812864382313735772329575244119794246345533816426959627688548969544735227884587485449451611826314317754342785377611653583558581568543268983827845241396735787446964468798194294588548127637148128866817758448125321666987158335863666832577279285768448244282495345639138849118448613564145567717619873839557246548893797876212371162326365841414779918865913151111752694636168167741599681735539251784382757146523728854648691139126441552761434968378513811229448254846271428961139882848418573183158859334418656258473761122687328427137934749936363173459623332562219819466187244139798783159421697676173419476731657716439519141968456688753356955191762415448316281848534822249434992961885564939274634462985492625424239128715392762232367865639211574786492379982243634853737491148995963685379288863582882911196523183715255822586413494977335637821489993899572213736584254831915781593154436115246467444629742335233212658324535258121736671795615485617689226728647522478895944396612882967757462239861896426139862711237171933912743173631486933953863953575844274245968119224666822644573449578932883617435682411497141398252826867241873447777447839126969748181633885796667928469293789727975552212475381311881684474134936774146212555697413774568519755549148277631225268892547635641472435485466826873261362745939841321616718414449326939143174725362949236632476166474198981286524961682185991731539772571172736328683448351881121193492363869487813985625477243194994138294633442533911336949255423227694968822648759536831567399829617687185577444668223641372524995212719584585942858232371387542593737754889257651622384821482678115128277396683413673684753132594297667618394689233236311559147249912352541243268442111264988963571831696345736555989381481869441468294595929782724166511694592253292441657434951342562674784246647194912916523833741139947776646531652995851258799556823136161442497923272779816652837849283334934538747468894529918718149657262781138636732822555661743154926439341758211477968688325118226981827614899547945185278364184328798761437122524198723386477993891447619158699174711424494213351315294876845172748131191121398683561349673828166974974899887721521133515489379417622915433453588392971353649317881515657168952367451943245878672612752156194772682244145998713835243166787268332984716134319153632852814636797825853844166363694695818375212135787341118614357212311812677273182828386946383123696265316129793126365973865945151646932259394151285581548192574978471283253934552756772617523222799437836446377443421447224868571343147325542524725811299376715543432949566885158319714659496332953557776588134423183373434624939741725343134942646433173313788932291119268981195253958657818265596248887324181836385519384417465681879742624623716875723727447558681387111627157811531446295839249397724223738592928258937382384949988855779821616459772239776624241346424123239955641982238363715973747188433314587826155887621925423167519684961333342624296766482652614213368514748511198192817813612797367414376881294434632389129328196173195378196827333545992797181739135767182882361146942648111397525832745966415452291388641115219452192441215116821144369954765844261322216795316546442231137468443252755726894748415465275212774987296924584844158354279933628483134594769791491343618945792243641121623814449853732316267379967715559169149298526543489517223177516184596918487741742385527713822521124462734369131254169527643196798837173328241133266166166134975293421361382714672159936981545119984759876654382431492723752975926728649294364586414526475354342292421686822628923542281725391867832342658285731323621144637633954163442286258119288753844186767554442555257117269651747754993675989459553851781129137498256876335976288255397593313414912192513372921924787413543446799651464112638471482213652218133915751752936767377482315225213354795749754221983433353554774652265261468799319244637413383152412311812566927434314191954844178865523965124189945894236269696424956488145758391193794576861837823773374528527186927651828195664437667378553228623528249142342836735515282443517474326671737826963294428711265961729239845287966935163365771486162838951498639713736832714138522916363721414824122194126974525118936574464336881973862914348523293846845834357117396537229728321488129424455236258342519926511235567611936763599432193469613497932863471124423169847556939569253754364225968815721435757786336313422955433211247326652771671734266751959714666785169423338437347939439279862799442877461178722487372784224481771918187713862995488589328865944377599626231583174571111987661291744471521179196454835561311323371439872695312126194311318918192513727587255359277728884357981168514113464225437532265489788412112554887177881745885762861578873923317978465376227667996153572279147735769693545767197141957648513484598352593592927191349311149154852689242343665614979783268196411542679162688232663819611219465422478174768454984332629215152336548845369683967547486872192375477658454112328925398531864865598229226853916451139522989536583497418227676586955928318916924391225967224193512649952798165571467435112738546511229778916382765754162729746884736363457548264984635787223491288318755385394951729953351954146596716587613154137526419654252967817244217511196353537454281219631686999552739223312362153267397973628625999363647498748125454391691357159173343673339444746572758567268858842384881159212816267471124449433232931982543942854626385137175264365885332157252765811159244689191711376572647128395829925218472199237712597958444225945538721776329349995431982332481514898276182576537724333884238962254173313529292169559632945647953889815786442961788223699363222783626311787538695975222738124144457253619461225977567533651962687262856656312668986115917591864352625229461968341485532174439581824551492836277649484474123324469537323745258748334779934131944627171822143352533362113912243689646461677736956578625969679159737948549556847654171216854287334897435985438519878833614843167166948661899319554317813477729146551562434273421733342114596673661641297355489132112942154896252676897112982861248737346291467119574543721789494853817999415438513674853288421195323358488837139764251913622572284263982741699945273625844825462339369795992479928684314853285576823563973659996473917353384513632238449842555263117652124335227825949137443666611649292364541791174573367276837713984668111328191378577399387233594947115716659575138464531798784829192913224124211513172173269233846526613178244824579257382921267438942512581251843333772495332414684641687988186674711536626834753961557745628412344992461676228984615613713424452692215535999158556184319196755533262241148382871846272953538513897514111281253414172647516538272351841179861163639113633626562565327724939479237928327921355871839439934964953553118673819482482123373625576627712414411957756963362897176787589819925712868137983241583719333419885427469226741273399515922683427537458778324711622227355837712912199162436989161143483516147316498523782653549955673334464761281935399693863925951697361657715534641253445173559573583985931727353118145271595655682717695748611429568877857161622386276275686356511241273166624737449925437827241871637953135187263312141781535343513173316136699182593748229737721339849994811929296944484732748292795732127324421421213476877173197735626669694421219928921378959879772919461256523478137961179541675971178469819669583754231598442414414386493823632949235913647784638744255212799123398489294285351195492511191639326192765377791374627993775963711176161859179568824326786393365828237679349529374982372691532767181619789461581979911622396331337556134981644934957842669698638311531671244794835165682291331146443854746872519299963654735972744278122162215435513833674919799819388215296922584293888169154869971785229753378744426759348184232175771572258743648284649568256911842228182681145682572385635836326529522245392113231452375515342933175452751454263132368522732962926963949276544292429772254416347941873487376769589982149254919518448366957144253454575385983253849882588622734864281559117865356719511443873416873251723283564918621432386684758427864226487152546556445582786844581429741379296713385431215357238856518157678319182715647437362682855226751314213581553951254773357168584875457747821421512237148843814941968818732591839212367371612139439158113299742418326361543885276321614829868782634799611526139856582132324371111428911623125146243365855251621224146927417475516239828814561954767441169191194651813277484651935276227398114413233495314864185188741238929163541966457746118175412362775798649695577665577495315861516917571327955154283175772675125433657324557921542218741411646994167454112458111667197554688793754476162374339585937284746813538937168966426871146568682158666298627225164737829657514861979776642297773747283243819138692721834599245796454434176789231857598212734424239584349429528982278156325216648553411628991424375946144169633992886785339165557173369427977795374666541194356348686273192215382111513469861573412256942278348462616322857259463222914148124531321934241598132376154149978322857181564361428219947168739272762299157137272338273132728612833253197157285272851935685926561328542352626743163524126915756746352812444821932437771474645671768841716348824223622771894851776868614446874442428834194628944945693185893429666562271936831743455247832819262484766267624813669471753121248486555867456366125516957237196946152791467851928264644689457834941757239118214793862131915415269939974796886768159756651354873688234119572312279621471255419145551513557671161714218392398276269561179412513992986562927941477465354234715688134654678136653861252531238721554515824817718857226492383733472981513767976718428273836322584195556734861527213983312662275633167314395931774551853298525761966915252764498526564831895996664973222478179651859645742893111819481878752484768367758963417727396211914137346495598121642812752976735627412938119733841855331125548399843157554919333879734515575485812279729695369556419484489499627778495132553967857597231576349423364755113176977135128944642977494518551769494354572555221118486715621449111179286426771269199173382817573259229856983258612633352825494817813724245692113897545172387314147621316635793914379139856838517521719753294787879134244414292994643374373778982753465622849681316333423425779344866522587831549824643721988811947743747481361218321673924516817156939955741158912738736546861229356134226489351438974272841688543579935244563814825339338225517115929728975665953261774974742867779645785916451566665691798559859341765397534363276632233377397657969739916165143527143465171523644748166366177661283772521414295671833115417892697196982879845596316545532184374662839178869711572449195741888292438897185693663694147283948746666645127445547582545451711498517355969691519363432193252143346646738342891181513342431713391892314673228422781623536338669269485897343594957729346113412256865148476978382925522536397779278586418348713689756157214147981357363712387993222565224936988739628613889711321848681427863162334278739956312353978545917941958574281217253228695564179565199369647215772421977317128338545366946632958124261622111188467957456466614326851986685398791742324572397751155516475138735673661683833466246445872417224376324263936393459416194197154198258842119158283355212111555691326143381428956125928597246111787328448499256658989478125181946885464587838694879265434611647172791451138844754365951275531724288365189397773554589674639589532763197797895467776878789422392639548579225959596674459558444694649447929139992637232556871474428263448357514983812213884631825982587382219786725168272455475876529895224163264816123935999173884862879731467727755132213371543541464724732345938349243468924831566419735497355323636176519571525882858834177681342121615786163743185172315911545238859731499699752235242243472375596578646974151922148338198721137988766937754318183829263128535944131127134376253746915862378792295548897261353686529531395111111791334567548534643919717254794591146344516912833472735368516287168156958993479412863318687539193845865347656246173417226622148873949967766141526395127556313147666628323574162297581949828128118448871519743198114561266495855297358895168575784288382314856439943812248153159165665836812594146229574123692786369562787964941553514925314628153932928412827123261932522531913744238553838425493337133398422232532196416737212186943945564388398255864662191232399321528428824982825341448913679117497759765577613532657255531728577744568213395964137377249421883813837938817299956472747815259392777316467577534342593454517843925649191885356912284472157495836581838132895686134439956257184891811649266418942852644988269424614426399265649652626693584736337834897252744346318445279732543821521165622626112959828159691455541621424432484112897766919165253881474134975916415921358928521396538311672465472347957498539283985572756756298681257792287642486569885921398619694781822362383215174968874128343784541653471512122288916932682813669124977613681649689929118785311423813741728822969124214756815757667798916526864114411512568615277831963732773882997678976844738372733135984752561475149244842693377943677429669631332549627655928927876177488578834868664187532541925347844753975453531434722762455761924295393932726554371237556754155667954718734161775397971125488276954648892117663161839652388836312257118621639322264283113765594372577531544122133363336355528491562328866429422657234124426914252863937554922216268161899893562142248157121895261551914446918413184931849837921722136161453824617624437751482193546961461557872145366298699769295958192561615432817743256162171913672773727538269119721429985531489368914597643847477329789599264413841521328389165229346833374441481694618948512951821418699337585312758759282743821185195274121666541573746934543186721937182451178713997881278254314952929365274334175788915653644371733754958935254874647473771431734345233997274447117129234369938915495124741969866183129246363686553973299819534665973412429453556519773851559261149972762514581811696429257351231934778327221659982136954483134782783358652977786748135814711573327432658289257282752584298488641379175948489849486247916472666677813236872651853353776494424467212338621637617742462684326456616949343634116454545647968732616192421437322124642245579555242462784196822111732793653581664343881157951232289282732716443465126665542916264967492194176775285772538533295456617122739445218156193879663342896946877436359217114653424658446381622151242652731263654324375712737431691573393625333364451987393689456459549651511624849572973484422912293178597743862771338693957839996522967357976442762784421231194885321247665978456191118537413827852734846531275737126716849836851519815225294942687345946566837185819573411399962412747699325886899613252948174638652243317527744351443179843115856152585961852184836977574872684922864593286322265731467313916638315763122252644463762389564875247459446592126966251523614165273536426422784844594936843319388665962661223811744812829865244853328732661998997364889822959227688566298734386313958712688241165463452395441655378569622183784251576285891162469856948656735791811724241814332696971732938671612236959845475314151978534221113328283124428211275221922518684989142945676188222794413786313424582691525441388429839622539819551586574845821267817225477391845886657752538682992818565242578988353733931749313327585583893449888892467321634621583685342992115444783291337688713552944346868522643938579441853639669395284347712843232964744192979662385129422368535299793391481675423318138559615624411188641458226142137237614435312323814264941723254354376782144355378591258343184429211586715341224223241212976939415577568138424797323867324657276522491958594663343144822846526834417362792234337756782391511493475598186999168616381696365354131299869669158773757765928529423245114831858955932163563363151127535415972436291249146585181634575395943348543349122295915849428773425735646331361561915143878127175921861757269593231881221633423465478217361296834778435631653344562449362827128619124655117741428474652473473958281549827817476774371761769277549486981168519391442927424394133523253251767255187821322269995821879167493539824538173877476952342373371818465139674813913659881252432498241192816738324338548245426575373111663695726481677422993748591639133184641417385544519139158117214993641232712512959894575316883488137441695265345665782913555597873341286431268629236449983283929551227167479844272846786513366498333762612715667948756461779179264268363328837741718346582781165846538741319613376823655225914287786846373237613695843436933332754662277842828773612144775576812279493743161917594217679342788245534491423945499359491265829124987145865651277413246319865299663545231855596824939495299447764349922415587349941275264111116637529984554452463476647848539728172519518431542697968125658358672385341412959542942258842862334613747343677811576311693919426139717745729323296159141211625296285799831161638122174521549741671915315379417581523451414269287828379637645619733326486215547536694424324515189356119887931233237697223313884758754371244494954751125732596883142419189692685717998991279187193446828919288514454346513262652794264212891412745334122312796138446543985111942464117639994163723614537548931762449939914591195519157885232875611134818873158588878955361277772824313623313162554525228818359753725939447343582259197674527936227464834968856121312578429928236231731813894152417877369965346582849626316283532283561914784244954482662463286817315432527456639438924223857684214489675943463489194324236841536851914838118223517177138799727373612685935976346182363891792482633519362493273327475698867476996399244179926546158871145397943823876399635914765166458354624919275849995888841912391899865547612189813713543684427573735115419744532227831512495944922266882712912968371687845392715179843217482357511231128648635888712813175492668956445778963422459549246713817978447957491442689331889356833436812347913511495149627942274191117898376893444882562724494464145966181889159745151475663864341876224348378553465117865746323878534186131123758349384615885611688964512354187726799855546891231771616449158942652174662618398426661186177315551339737757885592973325123187931936894925215782633477517485614744232386425286181618143646628424958881329735473577829534678278374439164543978318179167427774783414349126317717328677859289372269768125428252234517143129662784378622451889767226658645834768681954913582431549532367829644444867718419623466637315823224638369169312653836532837552697243768313599182834736859124562333728727941413625728554955192918272948435294954264225745141596469519799229475721695469226862772138161813627488214662488567465875923582711526885319583967269332976368993756599712595765938698435134544636972279938117777226417114345233557191873259835582113364796219413272883124399899775323917338831274285237666343255759475963515355989631875837493692569265361874442333613838666297543892452178484427946791743567969868559434759979628922852463393743129252647635748928174142973214423338573921597212979847243144286538616332571252198786129672683752837418529973819756519379895291539489173211356226658138637948213755631369762425894133391172635595685324175882357245993789615357411282491532439225757252659526923841823232878974729723522681872878419255978813636657798422893927597121452811162113964398363717196647444787445188918369469564715689356639592443881822769244382429268634323724348792993258422162314435679147918227513273236256437432483149586272341691695926888441231868542442513624392736612455148338475322374529791138647684464611466331626454253642614446535415642188824223197317742571584684187556138881179166513327268721354381367511261293511918358396234384772984534642342756673591851654861863422176691826175474153379412455621121161438462946194745851341894645145394637123832141549874799537721564721542316358885413969918915148381353557536245839764554171998727252876279182728621711754918181749347293971247191853344834766531636691813542228165699248236795456961566741698739516418669653152282216675229757275827436372349133521384537541834525947179592862795154591339487242294116286269717968761797746858853465613766355648364364522641535776695664445279668137236242359448178954779139967339373424147937546274436549464147856463317772736641329929818665828485631335457215664273571143753475573336331487356415245652527361114195743473273764221272919236743618415421437621584318711842564751921755957396825422676845421622645649944238948328442376962875628944144418385991815311482851232627872715121611331264623729591411977388787176637394143282513755211169212297981463457218176725892242356364327226423376263486687287518776148263349728183945821184427958572821717981427476424978721941337162455642689491258291274428816951562167697118726544346817426137554168199393147796439415329866426376721143774573281833111159639822119356861727923112633865734121712346282633736121314831354473594968914516519279823685769931297598749422464798757896135256251928944111391569415984393566954857443572638681299447394482534188524554283852343724975239131199575524754636261867796435589216234247886562875922531739321245568852635929919414744943822167542489716755581621997353533987855866469592479735621288638581189424858768962352278229998617261169353571627931319865888255426135974581532723993482765794269364759256731212219388946882243346434424164598263161311125972768576892923154227259419262171114341135398231854662153757546416555149889224638363574694393129127677767333875578152159328238633522446546292325263758423574973559658122828833475562975131642842985923587548266456272575316665568258534337362965257634523896695345289855361182662933915554433555594934261686843235868845318239885335753429511121736214515183211913435629192142595131399161736945421711484917833664692395892125923198168768556318377594753829344355591217999144485326918968727956883714477733437276343181235659325144191629236148891362287138462716563463343531752734373155816569379841329636338175398272246611658852623553741914176996619352176368491422253842619642677621753784821218629135681756517168969235222584587442991311992939337571517889635662116458652491967378665828429726391767182999466866222125258735682611419293414882274772741976892354296387828555251947636466459956457235116723884381184412993296165959955414498182197297383829758152796728281992336391414554935737879279842815775831174395319366427586467962654318448716733678753679134535712465863255932551447273589564379449379221325184464957492147228234748775814828647225194537634639892556465384445132742886838446261594693726245855667988225937186235965754482892478844961239512732352744298199446379144651858833942142236681232694952494162297419116577162695931378756341646694171768578616383692173724295927765494856687564948659528265159848534225631676152696596338132715442518565367689438947556819519699146723825915671132235334247456919554664115669685867868274815146465565992853772279333861866876558661465931921277651929832339596651537433514232682366927385498911233645237795811527634362131592212932246878753298799227424622121837263788562933449693246952243827814874791187924414144423494445993352346641331619843163999466283765485871734235549364817129569771759176557172732893415882498825928413247224187325454168523733645192847352342517789233128233668647458743371934549673254887864372562757666855824917694314377665939759819946756521967569188384643859677916388533299281179132234313253565681272134287259741156276338681656423152176295499122849525926417137266798349853728255511629323126881163383258536778545474787297511963996143694251962549483418436796188344368189318616217432969482291962941197965945536945424235542859537958377482596692517399388219658664671315943964582483826954111274633611714258422342893389183311614372588576337429798819486416767447315736158661469211562846552218961653813138451579826342845738111374391463581155499611573445737914723785928353322544466695247349186156715555939551384797824247666132842442256282225844629984879585271466113577938468715279393838852124141551561872572867717763528344843681349759499898693321341946244531445919662844677618991515127959679647286873134321828465463792931538318516164482542619598114429234212275425964581841717532721446151137682168898636541125831543399877315155732754539721417154834682261627282123237129445229617399115678199287924963765592151186428214834871159211795858427395358164547552823424513345264719662975164546425373776624533961783545667693669114435765412327419744459223148225177139381861122475976315156631394876613169139294276235339232724655759682224238623713352712882623153568622839462691989158971329786214844189344536986871573415664678356857197198632512827115264867383811755837789376684397682274548363958425531953531261226378198466693395422176444843484571791255764212452153599887513375133123587281186514818159712818563232944467883255938385257396548598556769786212644872779896287632834711477468323179694731499242746113972397929544612788397172891323327841488211972243579113529262342435624749369722713756114864425898332931979477657928796589647856197381722872669824624315913554945477815536682765965485723494781679485356642292615722282273257852235352147159314816964173316683563318714374255675676397196148542322151741322155135381811123194429797462314556664518693691648668897421295144712192913227857617949531861375321233218348635371296872997796687139363725732197176486425844823634381972244163229832823353637431956958497915124395586832753141713721326253525914623285484742688834688157357565865475167533542661338155641649484146187692327878225298572455838345678348454852127517874836187987865229668276881374638953113788353461411742752118838576539161187426919766364335749221175271846677744241644678196736485792386947299198229738451937878271241925782662262322333913744437152844258974647351313121916819666776575321814575618569129566555817223512984362933547667148955566358752592151586481682713938474814342183326419248744434785434771454327328154594775915885339466628933563726128475239263539886754438513972669574449559887452629475636534176964441185773812916835915475297141488113712985698934257459413147359218679656643672846994351766154112689438583952259154942131552728579786317934785564871377841429664258163529829931761162341532359449837151438682132736466471487832517795431537924531396347971341853556593775752735861434175849465939351767588953675293298821346568959196733333726133587121832364196982235185394683134191219758359844939624616816215124248543377958267428886194432757468238966513173569841851584684491156633264748712224824152981149794138218133541646346315689294855593832426558259536747456983869328562162581895386337979763351681933245618442316393899664121587455748114567295233647788275831168156482121719924219332384317451229747622187427475473596785756979769471173482463419172331234511359995317163445358483752562472439681261144197394917635384389517324965376942393219752161981457694635458757312132619947856325646115353763958518426268339313218639363372535268367942223515923375798967496211991518862547126973482824235838198399796697729114727237298233362975779911257859255353753387195854394461312576311437985994272529822281282389387827292547837311385567438496719265912992526572951194342591596791548351397463424418546134893339814872529328652327287226682612238711441519896864379233731196997414921312823783681297372987681324754789922616512171228919662553744822391583329638668741814115714659664656146567424833599517759152856236451232473797895836474415853429385829396556821589677836383964538525868233846385329742372548211464719191412745454961153453569967282759992515267673618931717772468315258599363714866362577495157817174255647273264113187787475157552781256512246719611319767922816733189441739891837877833691243972689391196955724883177777427475322515219251384552785979725572936755442925475982544933766811657579863719413963966634448286378132865877175513434489413876578675669213116676658131247249899353122532566674556944416824474545114736597353181641615566415856763489311928145483729989834784654955149265841735369918864557764524974939558349922974721324985827457185971114817484219576252286546249297485296141566187158695195241115312197219585638355428877195683168118682261136752624691837989851376452944287891492727868515911489723696739611628999437846218197897593229696545288279611113627895845522321655737638653541757244693148439569746292118227265354764958751593716393526919623658362755622149641971233267381553923826363179751581889423862456178666999783922315916273665426563187784941843113898561536919668846199454228471516312635535152653114381968534156261742829165237196249162473252757562265388528797293551678982216992252324839557239775157251784684448677854925682671319355622871394398424225585531432952923741629518417197914852361917531539775577133342887684159112975464141424128187286344824358399645314231774657682613294622635849464437186436864643899681137592233128317351734941362429161714379511211223291881246991831268194193524646915367634532197993695845448776624451512329538372633615434271216891641577968392912579785828217174347853224148354244194234659196882951517161559575236386651311549968292894676796362771227684781565299693812594557693526897965535478931462384567484365563679317557381931868629762384911629777214947155772593523117767193781352396573156955219786417983153252428859419599453616833817682244858962395176519571598644227945226241757763781121594313496192323929382846114871647421447543363863627561879476366498126737422684589554829852289576124417682124233715121814474562917924649979276411593621425212712566338778515243347261735221914882339918481585199984157212598828162937375353927973491579181822219322579312456498674479569831312228725498533413266268351511725241961118337876997623134161878722316857822364242151734916337661365293123199383342755115277788571843615227859554143266747833498686157298633582848234842257945423227683358955152755974781837846769913414273522767382685846114571183527248933317745918194947248946647334139317415592143722374336486131335446617786289268672767736957656373175785381581442635182141495643712793798813824343235184343344999842342777479927131824499668938312779162117435741751986193455831241576251317311137154446272321451787833474652891284122215576312939572938355626365569952557441921816917614233497531749845518521693922541224718391752258735721612551398758648514963441674968918515332254362693781678687371618881249539566211843268988587196792322557323179193818915775635156924549148346235223792245742837633214398432527951227887616484894925172341716749361544826693675523179513637884374314765148347876125527172662498283313187525846122913991374222173243827812149411726516242122954347181313376929878279132874299464675992229416731168184318746332113918348663933218468594497932222332622221911184112912172844455319884467384841647799946225224646386958894622219614471667624279179489353573227121275313184696984699817292934273174851421654677437193225417648665844673535136869249114169687416168644475726121934298957592244541199177646187841696726351226848791154356894483141916922685513848517111525127781111978213741622598529719836748226926881447971999768651522811837628593294868391996531358535989723772898581745547741831165718621167595166651249955622198358967122976972461483717867243548168131513915742447553473351471821237994847454757151947559353664581626385582363258414885297956671278978884132152973772429856555482718872129573391761356193421716133753641317191656868691416957712931326457825423268613574682649642412366691688411548817273184342821362429392885281675326767274833693749467657936587162644896575641512424512933482934663292229841561132779929616275463465834832598442556484287775484665165125254695466141664826265429373975197895546166949933129957953476363495355241588815575387481245533318191538695325949476581927179662926746363981661964266429217451455427829165454558142135261537784574524322693626365316271473439645929795961697256682327889421247921266133281426916376386645264897166685449813169693625784182788161624962553216129569544293646818561528963636867366528397651321849461693581534362938452628267988461456643425131483234368159831316143367236251474344257695723263846115443512518153129293665812882552362899561163236212577335873669188449987819837931327963685489794545116329445552867331726232856521953144285688121312729849613247477825943531331179735124226531535543267858154272341389847145366328457871616525819687775557213569688486865762863179599591352566192648375357456523467594548326865823965551448822441342559212256676819141944319148888921319246157744341123343517936673461288211587111966996244384461816198374117275721398557358349639216771551176488931323249421718933191391173547454613512537649852336256387423543862121282991575559572326893757365555861646695362935934847419524326422538982637912432726615641744492161345542878533327788625733514243773817497969571383215355345466649166644656824921332111721434715527745158684633341136144795294298955354841554929773454356443867418384235469289383774158974912925984841248254796182375613934481799996553131811311688395516112524542353914147742189263192357572578672425462183135256814531926537445821946493455261455837324476789498384693529299448762395467298361124774575386584369618248318136818519371261953177228622646985936681155338889133328556473932145999689892181484522638541584365894523666931865748758229774474614719861248546319254357656317572121994742927248299124224618111436838119466584842268881129828797538233143277636956611776528738976496521922915513446171331639691762462612565356114225422413817351759927133896581127236877343655386251255844774656154344353536322619442479545574221694269636288892315277279846542641899325474353274962644268261456335798839381717217427845444579331357424475928912191226555232274467786949594147417244543781185432451863594118325356417378741758357126714819766229111751113439872773527229459331575798982743281258352534597832582325846565715537353124984745451292887115312918329293981696856866311514321731119315334719961655751461795616859328971872212881643381855335596992724629634923758711936311583418449653545873411812156319166653393238349552662881469441798646571487157937881183193484762867899515351576363149733427698141644347242177987583968412654274255814551298127172573449215394997932648746357158876168423361732597129348588221521145446771327419167199742782251767533489639513714463776525113462846684941199822173811528995672716161574311713486392955586175595283341329429687156225415517789478261791761358557375854439734189651333496877272579489782965315231292778226827793531855597659485417797275244678891215891421458793182781398699255481653137214553381212896392483637333898414554911865241371655734674377674123771719373197931835568942492667932252525686129341958495258193787995592416526725356318865149322318822525895176339215319944875191179787988635114344158691147195184474479633418628127843181721418323517259433848841763328371679269521176493668947132768917333617985215837925394981297687346913191456918131371853747835523156841163139678512658827792845176964327865722859248262561717577265746645331192224867833417688289412465177674821538584644421925365161893966534832248275479392538764328637216931643693747275814974197212194168656925917161993784113521559497945599692264266531498185281311775716884255188212657439576611458571445661161576814528184668855939627414133652849939335379361221211648466914637232768533431621764135531432126512179899669283192536994535755286311239847178133532381365996732212843673224434736793884637549592423894316534183251951462162326957152352635912395115317129564622728457299611662614234595537838559593329544137748418532616195197341939314612823925874621493549349524392988431928561555142357171117674386462319741875537914283195857649887795346527847259344878325778865268742161387132366893491774382224994324625294341148355695696138652244181573162236954283685442385913848892786635133553558414215742173583946915725866811236968832926771567819731829242281936413869727212819971586939855145252621473575699216245492393227514575944149948824697465922966118187388126575151384236466845117287275532722939218359966756679116795689948161189812227799822394682936867217788681248573271892264639686459821452576342835498776678195667123551443933421233596175162441135753931268178597815326617629351583511337987597995495762522323251863214147788432213927624478961637197199777545893562847688211426238594346497528277295219478541333411724499833514827497378157616255672617918994791552515675516496174548414842172665332852377417723884148734427541712513717523435224478432332165495326551932436498539542535221572927294953236354744249585891513116837737283235357137139261196646751133154652666653913231393639132978172539972229652588281226471887858113545627688841665531122258659635219631597792697689368766847123512975387938578356497321319784382654257132383349779635362258286986211771449163777238442716796267926491898375523588264827263293344618299482248512891971933231892237461911196155558717968724738436524496575514184913394889727257831563623922115494578265213842531954664128491616183847514239584636568548134714243223768118485945154764883724933399166365785686723454548533148433839483132789242251184817522259587651399593787656971446134813952621699329724342472194166322756666532638411235339298548468949371925951469493354181892798885753952445325565841754531852127628518847149644396794265823297255471619597959746891552694766916365439441184311439253544319136263224248284422328267114994531516453615282677626387185916516126134325397744178987552244456311497543198421541814371438797799137856139388256631428636616847572538512155993826813732322341163455122579962659761253692296113229777531452449658838521977992486415381316217636611333651769518573428186773825819636722717939584573491817857627838178856459767889642995189444754943347324333972649942919256858372732395868252379563453351171988169697483421899118886387132692553655438299895964725114687182212794562486691547375995371363275189985741234756839135671424199956595956674857799192489852269725183295448737817295341243127231721416463346284577784135199618977972951129955492129856231219126995724139328766622364788852745435645474331113968998761312146642764285414337296559755687219165924414259331422597926164563286251898615474241888433879697324312415623181714559189255656838233614228638562147234721257596346288795825963632294683652521346734845379427645244511583121177625111195689633629553659239244746191223214694124951777759169555479573438632521194763279281623392872913446379212256131247639982427522163727784294454117879589348731325516369999745885277881389167634682893682316866431254946438672731812532337513933841318263682677684722653968268129471697979392498291514765451317987476332684118497373558783268525869991349699244419424693923338413198938715964551317968378153385216331632164641158687744385959847325391121577514342785341995317886668394541825871191726331191694299511432152218924592446624985539364541355499566785235531891983275331842511332526247149756976183934684977653539678438445847484564231758341385384845334914115774968781883498733433727643267488931993943295858512645337153284391829957356264124257929137973962661145755738525187363329227414637213246275856666198998783112696654571879473933661257574177247143336421313732486333924441128916935451128352234561214677493534129474385569771867739519714489238561219647377988915898764754173941914826153733318551135584119623484121766996915193211187328142441212469787875232189721896323575249324551936444566754985724629439682883278228923776364973998155947333779681383364814272275558396814986158551356435837425333568452526891927174235287259946855447635839638238676237991475217592162219543267452525611189635425321344891476518793895244259237675973535673561347595536281153712985515925937883978539851574449135459137547153955271179392985488957743374489372718512848337821285711276476442132337324982129643233455727585611685657751527765436759855286767673167629216164653253648177221511697547512578577531679936764849648611491263974721232595184683762493877688933732685762322722155867112264237619625296486559252676716974595154277172553316514293693342914477323136685766958358941687549423662689544127166838967719843548192917377275671297753251914624279161535453796418943387646937665258231666462626537717841236163262658735731497159276962575488442172245133622548125383913691214798739395375679798212678213211691445588765324681941765972279495752439833336971873934745724849185314116324514573512214812338237944384383957799322791493187159382874247116325798962828412491218685155976231314481461182513454245377756853145124155225212217643361192872946466529864253355448432395712739945234563792121122152258167347215652198347935268511865753537589765565548381761671595326435249132776718637925291185259553697636518181454345128281128856383226136653559178178766891144189914527331442519226759197439253158992594425778345659572863567927639882229191313354868678323166216994567548593772945777856696648577331111425691365829417734873633297315521511176147351737679491139477773334936741266289863281352445667192973575313825496596233544844972433115833719836381134777928652628889264814457661442665165371174121792555765232159251717659775129936871469738448963483538738262931859426578744891572825649318516934821866659458494468624269746161958876991543529811994984791364945721667362276828211942268193779451346843216627834844588895462768612861582398691544962247255135979235613526126974741528693456695566452926355414751286566541412199484526412936334374975783942658516853731651964169557616661218464424326196529381417928234469566956196675243169757234164245359152211431123595282998824927543492138243526872851639412253958218531611815627617569964716442566439224931629377972657596751724637759985782222493626135243683156132542481721516587211324355317697524679288924522922663449653554551346939358293869395328496492923952641829115856447811736953459281931121253618813421868783521161328332113516559711864963513531541319935867564382397698526525237871383751983759687497844725524761516344963224989154383431836355568814511784495927395231596853166813554481711895331613469762413446493114448586856288283954115683956839619555793527533881828234149325551147854331177759339825898947954146164397333664455616352511496135952865414812815623867449845296645154419637726666116628953388414569734765193493247777443491975653544628623279797972439553285374585711424935676947453321877171118928633152135987272991432364723357259825155129561167176785692894755594914981362362767253356211177876425221592831932464841376227192545269423292973863713167545742126521848438618637121384889355775849155633846264613756716214385123835783132636481263726539382368587215662926381121993643376226539115575742144926111755536949655787657953667831625456668866445666952347947796377819454122497186552788737448473239282257131592334284523491669277913651174828164894123183835353711516832386157186223773728328138116472412913288454381726212684436219277281416199642542575389993318243847329892745196559591441854197336425446338564922492931965172679332814415262899479435597257152926898323472979467941745183567239592423921376161875913465623821535343381514857517766417761533915776282647122597269744781764898379776233548949692672768474992639712728853964738572278577369137588897866626942663811972488112931816135196979561437716388143431214485229418348813842653474432386355428766225621482645259122395357783479259246949914358134114999473886352359725384811734585263862682868549367119198599884475235364546534242527567288237125127833576182275278698165866462375332862685983691774285314278121894677553981615111281613455137874335231271137478684419185737355919323829388462489294218428553843334682445834611234368162855447678833223658967239585569935213621364113335361643678546142835713918999294955388179719215841295851412745486671441145914356898522138111318765844367783633349292436727445261158635628416836749114689764465946254666549141511746776828347338665133988925565578991627637467257899588564195513996529437674443943623559392888526812912971937551211811827374298996423231933115931764133321449898184176471463832188424625383924668256139671314934291376918949218675252259791622674426897373483278374966259582734738271744614659857878589751994568613297483573796413422361451982121451475179967245114258872297653262437226297227446535728163111825465955589843929977345736456696992842395729441882214954512511693466258282178235252374411789559562452452191315773382717422392596396654794863361263188252951226575715477932889653458185254191234538211481828557812871319644365721342327561466827313231183817933651527754597973688358164567552881855436166151392322712657996882665172341588524174879955922976331151361977258123238255737158985314172552326716484168189775986275698262326463325832948715661942167819746256364881733393341128697385135647664518516442432867111456975928298637322627791344528156224772685334215424565792258841676474226511161293318359269361481654776993863343991917177173224511471284249973884692998339134741712154923214427352143699772463762276524612636644756931449246454261634175924216615567651745686726429411314896238424476242169526738219766152251842358854299881479893181965619776489382541922395424783596161218264296255638228911314278897685925767181431531487825476931177216717467434395777288164741632921122943933437596112916343772452785397256779247749881666131738717622946647959232899385514145335128384449672486443523722638229558542225974647743342165285279752772295234618539283198219886564312222236848834279586835126259629727386264713977825778774461942743272449641562294369465465955933937422344512429971926539221661146687399114311845197112362271924842293366136117573728368274553464592858117164263276615678144211225229413552634548552719998592278762728252267971917933146295997179566488694683698224263459959123119284283251955193332134254672124711289855473497182649466752566279925849398859199464746158672992299662937762559496143445161813288171356771534149794581288681427528925293138242255247588559461492351925549657115285443999712242434825143672658127648845327244198662946371833575964864962455214221111371744592823818778348222181168327731223537515292357933352794967281829577265496623982681345421642453217237416356168975611989182415371385581658117377547383359942219834176688279546491442311174212633341226815937253914617375758642423951152928563917222946369184921461969723687973135547648536898375523838425212862889533298863843497317256392294741898592766385829189481683218342271522422559947726575714628361251429872464673725277278178591646992936413248868392824187225393964131637792257361549891211369575484518894869782471511585338622473572442435885341622897656295557369345112571117169987531432292148266519755183415888262512712373266253518652468465463743611371153273536141127414574223459295446266463673374327322366617865715592555721871464339919336868872677828187479645814473262724375111373358697986732514875222544282118416531168958861677828713631393157557737196513257187153279216863269394571535692332328115265919167568772392826554171619518862161335118288571163524633156219238849956664473271163618683213214249582951127258119669252852918783222981969481331194799849941422787273178745527971551164195531838212266875667546621841348799298272624587183518555832335196911482652769772924895921191895312965896135951493666554241924434655953888686362932415262329249615947846239691234924368826724936862326696239932395832492471563521884854847389653687674154761995289651431619578362419294492285261891315741236471598598415186859914323131314481142233445628496813224667939433443889555948378841922729623617172588478178263288262332863917592733914894591668555974239987124614622479764986732837423194635951639783331497839235356971567433554594161321223636848497279195976815862256229153574121446427895959492464592972592298335239922216315461944365913526113554112811349538543622268824129627843267859347921239448144433232327533889963435873441534828823369631418349138632971958997537622962553522597436299771762927237867466422249263653932131458622329781572254128268168844873551792358153835982215822441314247675141894675896857741577195741123334125239119849418564387771887132139426562284415175345664464764976195846329389238577443922677535896221141911627554672142988241367368328733298291855776778287457641288595633896881569291429556351936969896853812842124138782852848857497457334928571543493494521356654459461247456629381833634177389698773247249495113289366691453711919368666541186142346661929563872312192725719157938249782133953543758371616178877412925744631186428951167929577512698661333197177425477598332536858693246277699652434691531352344864736334974783613856346749783566829978386278811354618887339147377194444677442895833675251448463335232638195686675718626228597988551331244448421929971264325793939535845473941789451829286969913473726856656761774563599968953516731262734137648177462528118221191629739117239447385446982326229586658272577116644533954371725878783114637549844931224188542653846631876993222312697447179332212284138338848149962115355413734481255611319616522317565254224312742427377656492638361712831435238789738596326186341536767758716133712714938599214336482586159481716918516493166244911771287577512734987226271561391471462759394221946452249384515419262586856121133482422236795222751222997347592231382871161923116146414583142271831944186991115424948677498568489142959179132528439681716573773394388849579372543291371962841271826936266841461474199365537255832689922922875122791754432959671926119287734162458594289969814447727642785575395791515292619175392234213694248346399356393232159889423419528698551759894344978436464654394656283949999543739354478431979943491446242636729132499766468327844311814359439727356454383916328831879898315988714218742115358264989934938192883869789744416924437913359137799459286765696211927613583126373593771552885384419862351672277827276636138731553729158236538289972936322168779149746596723256759956571532286674481533759395962348958243156322399814447847995318361453484544631225846329454871828313153269995297293962168825424398813978895515387255367316424127137918516522793489659375347719787334497464665657953139432415799919691111873456461234368374782532233253871424533346623262597271937924369125267591462726193221894627675735829544416878222669242145953359886284634377288196588229355923511917576591939343545341343955532163245483993849654913154495974486634526961678556878715513755873489824925847915654379591528566727315424573365243448615964433541824988128281482972235329316542822413993289769221768167562514432113424916981574435147421362539167825711629587891267998382127785951413119967718151559115238271215836837415594544526511111623746987545284153579184934292783697494954662848854627273225548859969678684948119113236836826312745775915278524327325529753792359226845953587799774611376131366128237311561176595379513683556347523887269822397411699832462431681715548686174314669295813189827267134726577213652552251175819393127946718942437465363668517612561872733227661831163881577453422391278214821597922954565897492325124454786565218399255888923697416363397953477362284338442535639794824727392341647855651668824789561855384124134547553611458586376562316573263592436677581951119971889144827653959917498257843751421326775355177531966555828912636144312352936442295875734981929472633626363962973979257986638678485299289675481395421678291186611159515339287618866949597573738256526524978422338363222121817317238212231267583431833879981547697139415977424381481285565547557437789927411179363629624631587355797458978818313445523832955676759768279663942171856731748879884323663128947564281333836745357818964565469318634436641245978557266376542659566812646231164131798689933223539982396494394224572831263722239586797396152856445319429954829475612319533814599178721296824883629856321585216895516946478495646783383679253713722851315522392323933285671884233792489155918253595577383989242512657497124242484168257723193883826838264678593136629238579127288655628693241414377879262632428198137613265879278115167938816761359166684724543741474492115141229913939735289648111837638188535513591465111181866972712768517329213744949213993293512539344512495584616524347752313777661729496527866255175588868535513492514117849557655545964886447827491348713573822374822445875721559759852989868948345823437724226992665715443217115735886725845434417967278353775821868818786257914997811191717687419673347438567393319218791221996937293187134591732911163915732146586169821136248493183346469249832525295356996173263693832171986352489942443737972381351169411429978884575658973589318492465413551259284358957622458444611114441978375171156268334191863975439944815448525725929196143419285339325953235361199345966247381242365136296922724857373478691622791848813922342644728622445971932172225753423355812578742978169165716239591832372532276135184398281253349392815739769247261661847196423727341145563686883841869521527763127916542176421954251347517192113379921435717653328983655265942163873515644274675254956946437471515195523913366729252763588939114568322716171635636795189618181847316747112329398311434674679285537162344782111515156221372972357815687242376952137193978459975126972139155788867664232474387482244586551774214844115527512458557811346545816623128683756271968666351366995647868489239332182177393266427997369979912185143397388483852897637922345193869254787192695146845949559178464777265293639796183497746673927425616477326831752114171588412645124691558439369611821347786518866711544246478649726451923138751697388697524589718968282728259521594461286634171339212513759485292497631658455975525313979357513149188365556392153375518326571477225847788328499827669645322912258512829467895528437314974427734684735915653214778922227482434419369258153817879177811385886129334878183977943523591872665475383622628512815116342724352719418451232557844961748412681761111621933778713192134964581146139277413995282635775595823149449687649421166844222659171937472277268692392921572758657144147229462332515966984339462533954915365977561586518146934458388661591731737586299376156984136464482681712239315699178573344345172417928959984161497519591629183745484115578434722724481676122119343199638349736367137694834965755325942313577527564161154254737239864644412258851884285199655426434188879923722811757418813628358824689157566334829119646223758169941268461782735467578662464225273395796468381571557548662162363435389965829257149179191648196945135999372568658445491688782381917419391984474628387474486416582758213138916295247738522344681577733812232123131313589281189394649237149557456982155871926244696839754326982775359551961184422977682835686521171151616349349148798814151196766795928842196322947291531115385572549231694971734129692945967411264225545255668339624441972638827275599742721453697117551991335181234461286445198849196759358368393325362326827468483298898944736462314111624672353767642167445348234427885771635122469493812442786145938941841523585934354661642645591666226195766585721164533655868385737869932948645561879825818285371579271287487163584953635559129182614755324939423297711291285662886549779333161613471285258458755144646237789897613776795915456614826767232791719377113446525573474686615216596348148275584144765296215283493581471582197356985163891456145371353433797257414937443426895795423882695424796259754939182621852733723917431915113788895818292767859118848551693595537628426121589474258691388457424968545714549747874693762491732693212635535375724415586456713425869977351277961436718839652153991398438294335228769413294844157995379963489194492457187165569376894765117484262895576576846379585793928168674168162885577191124713118263313657116368277464194182498267196522876323141479245962882961958861651835993823414921612116451953144817836562996434812642168527444339176643764171485213329616281882514642477238613287193344776443193132415835562182346926142211636849452328692238967431326462418259292866296185141345266891976882194236632265972823131925652211711365798465157543828927285284781199159519835292231881543923687563855241293352887619891121515513764821671558225142143551878494819567372734787543538912272451795255288957279522629363932134738256524463935118621779516326855733568471913244819835323624786929917597369397742778145738863366134614325237199886858438388195217399267794777957286136824837792582558272839659851688736356287768449275521643721449323211196558162895495698393789845344821897521395846324632591865799639384416717619795246458687422895472293691667425237928914562377144131148943826949395626482192967784225951162256928648522126592257778497155317364342352829514182871711789461266996661426777797432351934774797125314622683572461318333243394135355932612981167166795833132157363175486435785272179332116432775771483717769195978321341513996774934874296285917466491175137497541785353869661225112399934222175911791365184816985632277848622598166269474891194944865462469475648111877317277167698139541774161376554475275199773794111881163326841544148976419167427395318938223782612144212158873597111749521854321268439219911374139394367639299377836456736258381459637235346836512597622275264856534466297898115229126574657127888631945699577243443792212262337123222361536248515237349249787577456457691552712813166699459611821151723339158952838761434837357589331369799769796267262573269199881444935743498122555687847214616136353155936987982248523418481983173379656651432363431489134249139446733521589751671935776969145462711129239563457334222662161337538873417934466236776531731473572356549147574633484856624414628676573823326762213619147625622294933123148236124523586929413966786363794562352939244482715878958456211742341676983686166111917294834348618633395913637471752898449719994772552173957878534839799798738618462429597472144588774321138756539276475612957497964818135511684773962422147214683653235456534524132497369721495136271469538575822522821913826172743471747783458598577544619471221254458973799219365182582166133332547553671417614437545842532211262558895955359558215797166193514825564533998946549651685248462992945776614351977292653613764826494438335194778827681246577959191614798522388914726694647667878884651346964352924546717716297284836154149768817545277323163618896311631373666372341737219836876627223783115228717751858479734642419889917338377952626538627399281589864164335737831996356293337926858511272443164651592362415818588977119332331431446664868324936893926155719464758444729262333993651954669331374784123531874334128716321982494171184113981592832727461711763332465269278464949259879749619744798448451517526456825165696484459574727273241284873899958456397139131927387881312616384464433442818325298965776235393625453767124449256347199385355743982769192687638652776181451249551356312397452117949181236564922814747843241891295863669711841679452571882632141276189773539287152942827759219814763149491833341632948238961681155647161525715633817527935339814344186538262477121322932862111329167467347673223463489998294429765383863575282449614123981385597839118138236354569957652996257129277252656792138776627266995568478284272173882131699514745619939948843883911591225625613639673222482661449666194128266576346575767915411484636747867185256848676438816677449417217776682528841962786334888566983865972743895691389912989431946541777679199189876572655762653194599425914271129434426933972139854537967434358257446415177662521492447696126871124491562361717157376179729533163744422482166793638542896194871914274674231483799166681855816238443679865767242667233112174522698838646954613847349991445281331273437726817341783989181133638748336823117113977432194798144132179637455621321671831367189132195265379729326213881418248879357745978487854955245574299133762324386262894679215795511466532154543793392691914227613775587341347832585435482441518785131529938331372946417488591533114416499365633551634457534222571356988599542154628764953284646384297216271841371247382163219363241353363194996353166731618986986637512822858776396683359923345194144897545954736183379125122811545574893326436987872756974283526769954497732449877621844266976227528859721423346878765732629982617533236352118233185158297152323574962742356928973626429698937119685661931477748914625636432286233618422731293277531327585545253122969453551559233355661514133412892648216411136561756648697596411456154119893557799684223767176124581436889795379711319799197745863119232455284223615623366983522586891255866843345878383444935737531413213871458993124581675189625297341525245589664378776265255298967551616777711428653193648965654258512113528852157445668436977819873479692412948121572715629558239718344892431414716427329959921661792716747397552148928676616121412556959393267183594386728925117495918854434287952776641527226149399521955129521234462196187968527323272418327958516422617669216686512975553465372176741224992512528957633357451113452215168228276951458598124146491433244323377968334131226379246465876125842873223369947274854389854118291863681576588196127181271423782575118511242944119148958831582322534811323631452634816745146174645311397938555373721162344934582116681953156432652264228469715812663359537453163593581237861345299985513348992333194214843218191527327886572844269775272812365151815952485591852848669963513497441296365447296419634487128884817358992831743434683151737473514428135781764773711588388547493436455265929833546599212766673741452824443197669417611899652351612436732451715483352613537179868482158475864978424128149433321791798291619259144924374316439783934165399996639968623212843282246717369275417897127693844537246156253834152629312664995853933983629751113853244448323274853742412643641341758825134183521983433136587763588676483124419899122829582715987136692556859597286843766885895286713159118286615126562541669175685139632414614878549456323176821172458764131418396268531244776519722761143769436541152923725838886987785536161179415878146225768873157292615812266925811582341736877382481527365665146924246868715641291939149511539523657226333497556293583795189216421191996266355112321171823634686576258126985415983787183485865952749237869527361569292514863397248878418951614733447886694323851693368646211142187764917954227843253914155582421846421974193819885222539466385335518144988586995584328641483248393828549181516279951185351329456814435952499533126753689433989527551495629867638537712452724442969328261494537452425146878458116657675244813558226737392251539922596722734736258816952212933229196138848323814262774231369334163236994314886979293696158126375931741977196524197885954828557891137495646416199592695714226861384397987815311488926167937292949485863217764236569421535624546931856541196832343555279499622726568996161237772437683324843927241654774535156156831838122154751446697679719851251362627977754534349294775736978425221864128527981523411852955246584324381791373488182228597977351346165834167251164951211745735513597175993354273313382231137823518763449558182292961748322664561721521254291618192283686443973164972642212916353633261238914381253431128663916616982575557713243522392733354971344614478221222594737276351236339899354542875742822846745954794992572438682185985241252476846269888735296214932158787381895527921374765759721321576537414796977563149366674684236439694282357655526335535195355728334528156927351744159277727259646153343318397993511362157691288528618867181597683325165834173645385632252435867193842727617823238126848844838666776337991262241323568993258295799157936721498881217923282287773662249831971143429275518922544281141774113821316214357928138548755586616642362522295443931181431426713562793597139426726562321364587896535551197878869451133193594616761426438894743124455528785116557871767869892461542795599993832285915124431544344771878333887223193737728631246291214735976197452221726856913512163155773252793265277432787649362195927389812994689689237846917369485996875312727411469165955416244147269345318322349271554994591777877466763574197448547795923627262599659294824749494571981557361486728974857812179728997382344593882917282956546711776861393224888187762791552732896953121988544482921535218478439376432683546519535413244154373189629222296381996365443966647121437149122472981815529759233279389662289496548111328318842426565486397342512128162143352227861971214436218416113625827986597959559275318764234892794435363376789717357769692624729958231843497735799822734633169549132142632145365333883291311617753118513828458567814946363799493278753227439981362919544818628924596862739528992631951373579341788143311572461221415178462351189672549814332773677552662242788729764441193352837118657234731729192363996486518515932347474437398766492133494146332496283248216481988132161493627126124787169693917593921993888274657256194135264256879359113644682532277432362795131431256824195991455692738299345473833428239423846156241834637599429616676823418553357122115636253896613252789721576429812532314855889563812952268529798331333318455552232973767234569137998542977562374186515136912267882378246375388978285746114422233775443492461361277444823428125449347334529161875735448333359113392425367796128863115182499716456985882814183997553763274679253187721819361534123289366874119594325674574296326413294488442239811977252917998767172648746812392325952715271995673425627923964552842661758537577839291531435213576553568232221328241974733564548571794257312266337751691813376924796141311293952664444185488411281359432622122818233697249313927737258126756731619271584563251119931249623969649921154289348355416334554911955314745437349599645917823544846929963884296594275913636276759553593724263374144731781575378864917711395916977637225559917824461871442959271498369549392227347816172198283394534327222476939325481124839134173981642586621239347275243536686241253443279321887591343185451775191939152258197226346562426615645955918814878487321275728256185857688293872312335241218592263444689843471125712191743781896231196843473239241872573812126243656418375213229662658968781733574243638136599596816283628373726871519545116336659233748417592172399957828776358155515911933786314715113112983828914286218132268578736676162513284523299243874215571679348729284152463273295663346626714174376621514375144118418444287147196618152677674928154656728511215442788833695288112946744449571247523469726691548717177349154147525687247676247932132848118144549957718332129985768682717353173158866799459223651323424319811966416464264819494674216436243314549193299126116431853578757995378319384333623195663429681918343767814719266538976439458987781866367627799272939975396674975745579681944682855141919553982612981411247434362641812815772928463613978677126911844215819172419379688496389929686371861236735557639261797497536513768759454675371837855366332952476119463582398418147186672117978423679683736879559821465146965275489132246139872477944288363192414261164383711685335983843842346746652927138739581684922983264345686842198159137286113166812989747511765275398653418335146451711998522369583721998213154411737932398496486678515746263916395691399287286127537877532414645422345498848563988814284925581839828763258614574798697625391999568211423892881665261267942823329271817568157539319761626971134318296284452714265937111868243742616751177141925496876546892236392642752687436541336452419393777347555136126739292819362125397193177964347384268986368633135267823272698873415821413877142437428881922784454176165758269554626532369871634732415983454161179665767496689339645423834928865964594963419828597384784644563335245494384331766184934655287239959763394261838999349745414689122612746778447799833759629966318826967251731534775914641625824577127836915221554954654791155751999229366795611419973941712592557729645882237641933153167739171878322586429377431635122225854883379415652627469471961175449747976162416316777794311439893196697535623325478577649391618139492279337844993298449133634726181452366532286516112134938575896429539362192919122398276565719711868365425115715514944496276762583548562796593676125266616934147672644735721142794595246255328739592543789153282138562226236882471752441114769993535984225836546112253124382436156695754589124728387417793631178494311185173481322772219375841713656215494731884894563971324591824618651272692863435543558422193169341179519334416429813124483444864951692966837347573329831825733121119454237744723664538163374924182815167537328327853358144186881659555528162953377331681754248473581778388296892377461373995451236875256657387695467139232565827415392128317434912219968858767479114196462414557111396364713765595277681139386398433481852972415618996932697697331717661862531959182591697312887513988847991618824688891986221149656694541829275314462778177542974989495765344377971426259197164259992274515551396728465586175936475613716768525844298161457623217574934829228258379139954589831381271494548662963158332119219324715926243469232119768128573563838184263581211269677848516988439618294657831615173185996144833334798342215126341232889911281849325111856995991163258481655992171364929259158321555597622581123955751225393735426117714184516482169983185493263369269992765813237793848758691677936892522669182917844361971734391278449862318652789674114594434527949731338797741242474338317212751529928497293261773299139386981827823647963849479132623749634383942999123322318349457662718788619297485491719219217999164833679134736532457139828314724372195648346772355747656116573617816454611346218898147978562153223173659199176196117618329348972217546132276246322897886144311852164596389337295143663862598242155741566279398632422371545787557944748854314343129682892297695247733232857771491293682528225935156892874175395681471424514538999745359821927425344416296877797261134652913658634737658219887978542784517456718452635977322642439327399383429613179665313949426172339346246411525669889514148557273567477785523636527551497452889645717553853289732129282364617912135339236768852894578663242447156468598874114491339152921569199384845154911734551539579588724962325246527569411348915611643783653471219561156434625741559869573397722252972815999191897618912733953756981161171576846236278289257895159283196358835676554232735346677486317918794893929533635788131959194981667915849422645835737265841949243388541499687846378364132346282962315489814571414913729435956581544197683261847684979435941112771614194179819464143668364854936276416112963711988658653426119144129728897628184252383918593141822451218644326181583911959535764422369621632679258994185839766456284361353629724112951976129362312349358171282951546413417174838923519868463837593754692543786267434272539176237777758874349135587422821179418443445213231216817257634269838951141882696563347744533483749127728184769937211474465757162456932645118474422997923363847365712252993864317956417346171151184788345943363626166327445563228448869668759988894286322811614171629576924912627293469243944825772442631554725546594385368888134628321215833327563338226633831895241879132292154627875312432873613376316126512373963821657174445192934695672435473475446751363979326756532637551218153991659265448674491244375543934372777187467343273289271442822614895447513938574331379842643171352382227791432142597952891541342635281423688998118247748831857297873744728332933961942863421616633525345853622245694788392766512977682673338172483171785649797673627812971588561683531133716819613683677493352963365142545459467958298159942644752382669222471198258356534525917216855877893321486817251524216287882363578737174556975667856677824134345753738131117488156886275554758848726535343945875252534255168595613913979827845732359968365964635368619811734361672149579798251678976622554344724112332815673676234953952357323481486584658457717656817329115764255688383451521867442669323146212265524932179556557332973987612188159723456254168294632113649644296664359264481266882652649279472612273293268323817915678892875113391598833711754194781657453415848852352937427924753997789246762336613657774499741984233636783353511765738643933692652761989934733842126934959472586351372796731848359212394334887822138818748327376733959372232278556719497589352944146835353168572586437957713394131761754242416968282426558614396187116372812433382874429342818566955849186784985199916128152912263313612526135451212936647434515295235473496618848278683179711284635986492523574529885827814719725634882715331988128684272763794238972622542494526176836763395328895632969633198229199569264341212146964381415471746232228965381955588452563913141246431424245854692817613984694219443711228651225951165917417352327463912173732449969487234864292889668753327115161884843427331735217381919398362185297721722315772598589477626483591687129747377168642696926295396598631824272612875947479991627696163579935224613319375534732784477159535121141297739598536428792929515284327946327531523893886869452686739342556618345547963144885485356663728567114161271858894927625511221752643451362143411165693486913227352721673192434876374417736313552214554732829241981133784131651218764739333777616152728817821291924777955599266959129454328382431431419478255265448378578328344438983536714431843859517833346932154561124794273711454195536653599547896255143727521878577134144437993421437945757354176444658644333372799268177472994563986197428165856445294398461736411273526945572234481945368277444762122872455987452562549449812615947732825362374644227692426846573816339469565941879172544953531117189997654883744798233326126827458972512521457267351447691469258855688915672359113746849594142913849679339537953533116236984379818185891238866161259169743532164671769897754449197243146662744151948273771824315345997562514489992565388212773395258937568921286188972944317262326575694375388828655154347585611679524123342622581286946896736189144928878991173179736296644119285565461792239422677959147866216433394123667593252524436976568677932552118339124817815415915348797322126524232789431293775638411186274212295777254859669175442256894392739439465761941587433327915158621317796299258284681645743284426511346135828532619486664394929952963687389328238875254536812477844838544514484327518195583928448175472865711334765841865183922995867439985728584926551525853987941935324688637932797939414263134178778651763125182892259595597189324924526848936222352275258381569339919297793418876411911779923963111841791521343425129285115572663981667822311545251241621878573216139268319979967714452456224868672767746686234486876297872455574338571711624697537545846472448149182241496758586655136951673756842195773641472342269431393333625275736754155864253516997614748484477795454848767175121418398986884718347778549742944955211753951463354729974181167115495987271698727419857493221415187879627588199616492372765149342154193733666987446671481914721143679936256544873534197784551426736593149163321753843212938726644637121719133154552188635337229288951961478444284656862615934393886668553745283655695541442584434148266796777161634315833479362867351941436194372768116411898677153863532992348242533554791156732521573627327733841425898823225428399466144145957782455664174258325553793354776296941538765215529625652368846224596581145614262183374273263187316356615321921834715264694323316918748448699677275242544853286683568912978459719911916227672932986965627513333622984568257739638243336576348933662164893634521224298147342461122237537693722639558564563513389269865365877869717392659624366211618621693286547659839763537485596891538918644314418161784134918849424315711276886955778741722325179187578493324848287643182664375158625528163839118386143161974412323111728646783932732642667227315869612721423517712286713224337435873552842347162661656157515444719553787293358617588755999433684668924757629636854543619549671265322329366962845885652299279683745822972195465239943773714928462581856941522721624192752142369638991348926198372117188225938637583478899164281512231148299597737397492663146552234128137572251173199769383852617295736476667622148848164489129942933628959991216852252123265992826567965317431392386856178477188996297268337652133884792732957971568116328132149277634536667618889437871323648491514932453761693512119487911671469416962666238443515323282173938485958123562867321387169721749251341545498266812754594768757595158153294461816581416718465863629751926616216581138882213955389528656134676896254611364343316974547451351692368117478274582293992883753811713464576813937221828965384426436292846148335377547787921581635523874861589843552545197818561926235683693231741356785311927929245535825397341279579432149696539673642445285176782571252245134939236761284593919293785139732622855132184433439611378383575453266674516396392667425233782976481199474242876929891829945717372998266112874793824817678287753981688358971759213751975439931527879119482567139755276523742254544362742321958282239552653674883498329682182616624165994257632127243996669912747551453253538881736368923372735657813827547217391711922762576739387897735229498638131127163215937892614823239716612411813323258623293581785696936446425177641471293891377864549837195149937189745851942554811575633284373293833963723799782418557886758837915251223993444937793218398864313874322129269622117462379665284932726476324341224561145193265653437938265141771892278165329481434412175614566244683732354319817348618472343982353983995685282755988248585239396931672853356137475128582413194569651579712893722673444276222224878467375951522513999844645246254236352326878533468332574484763632562241495582861741941853772844148216653326125654269275568135555444389598964419332878363535314415128343534343764721665632143518299471529789248219762949335287155739777854651487874324185712538523482125273777131398339866982629669833618495861272576534771884374433456469756981852164542112665526815225112417354321886974741229668924577692733949135167296848451551651944693813871638158486692514756831721896596963734538882733148325579897593726983178221745813198151712569493257417142382727812815313861967662187222144789719114147962662782946415554214539673542878635978632487634732652392836967254232771531985178976386815395265434551595354449466939663496531745445533561539474632268619549154987969949668692453336374421437666788132944792883896491227394121141487965576439625587114755671851638521793169171481995297431556571885474733979494311177283234656353731516742839213299228419846257336757362896544254986276572491997124147989567471947545315329248623355262993412995996345224925952985194918461628518775656372384815991239499753859729129724194631318261637892122895668477868284766173915423718811622495765447612322394767897635161537117645667823575572291315314588154377574998524387124487648426887648142191454442769223613445325553237455735355949319133171373558974399758366244434489763192823125255255271984972521532656352277518819249347747111385174157931256849971161992352945664554578832433744917526927222187671637142449929427819899432595539111347361574197797932411372448298669454338152567455414154113542446328988262562652323569138161195917871787417246145141122485338989325272395278751842122599399483812484421269654384859994451243186715861422719252722163264759578591277994852191763254858167448521429771726428117322762846174228697957229626727933748598283356846327267283556996959351241535137478157315429935729732932729543656697892658749515128351268635942153695652489651836993673537786671149359392155689868333933441629428498913161942272465334829123397513498771595112543239863654194129186373272432242459996253211651948144147168582621749465495259446525454934668388778623817741351529194156616191593328921859562718817293921551474488657943324125612238856761415846355485979512355888276171917846756432756152253521892819162985212516467871935721323594985442726466938548167473737391437615225219992311418142468816935558244713987971335921217871221137111348145874429665954447383192921689584379282612738661882623645372181557877354459326893543824964197713669295711895354151148448161128416182397169368483275435877432222342916335162268685535146919121796728293146822518193885616586497133425444337122363518818396374371167235374441771445865926473337932395634183524824518627355923467196199362241942946432193195614381975875117473984848454795918727224383924312616622357771348731441637482285168124565228978261531241977685592272924993894396577627517983522823722686966423541395627563839824827469187996962714327692136338993674769641524156763247226553399854696824432814179732845926514647353562141137211778991142242527671686761666888119921619266845418557114339277742728812774781236738959465172891178977299674943411519329265546856275512621913746161711319675168832684897783784853896426133649187733479453243645178692189834181943339145673524625265612133394638132828381751396855566959284719236974144979244135332579248275111819595597661235766946155374973717677175426433927682365412956862797479146414648855234631972972179373783345968446658465729238521936852769684131791747385881397499673911162566249712572469467894213928816628869362761418184143867924472923634655847586259256515574753618682861131887499127631416661481858616128347161132355496777275789337222652248583683931359367711266234437471613736294318424438499781483116212759985579971395469974719727378237441645252399726975141426158321113641246354744682922841268759275694996571349483451418415147454326584578328724231664551161548195944458636334321599424646235588263171661244123747329984634421859731823687483945457628673373675469167953875269819913391881418147152491154134949365416271527585523954444341473857699423128711376336312113947268768767154579162645145465651173769789577298596817638676548424451126575928642655164254641557357125598851847856244279985943622567115373469584614498553432684657456384211761827572794792963529774737298794478333854681768151642616319673132984962636941994264613224364336994362717546999555334552141815334388372511811648421985973786783222795411228213453528166864544794114455663337133353289115663156817447246133528286381797928575489266736463651667412284191667246581327299131445157616633924624677572331632933415542831411686393426345663337473543956735873131126367679731315528815174485944671843918784559712627247892452416421286781481477773415692597925135524271681215664423976656773755773197241679149773126715613528598334572755988134861274181221111976961592679359329697173741374415752832235435397478723275738752487126389388881886935798453699672666641359337384789774146567529961482669868922827775779621432384562251987325521136515173582698665432888264953499711179482291893276141677798546939462138244788644186684843679594713618758666926732486622721265137277676451911173354447574938272965297334228933135824367924432556567497586197754884312675488478495711773687269189669349745734678779795462234445635932591489454828739888121252991564451866354611439123425753919545155589531583939577317254625439492518438952566443528717137566233528434728895247951222641815428229962175941328213789859651736845634177157678284223254838315258271972615136521345839195289977353162718897421311551294421175671598993758919228851825153745896999781737835618519225483848372433572432159715125343319967684423414134665932799545652371666326194736318753397674512653634685831626959811223339153174871991361741211626814244214214695313882552832171851465931988835248923978255185877221387814696116784398996824478337846142657382695762922468392941921566192628238531637644319833692454259563957817675345133743119433759384754552622382669657861317156521781712897119874116946867497229879725286629779435687937874899352157671414689951348386714218127861725665327488134152834393285292182258147425928784118456335395273386274413686643985252737522727477394958764692228182727723391676933853783191429472832836422365589855194222252532181561556266313672355167934679914114935278431336574993451392252259121611538632617935697986548127964398335275995932116672993424897769117215715155412159822746221271453892292885148818551171348478841482584521547222542323549254723923356342536548611576368189715342259451719214633431959855295659562341863657634996964612933378882112352851189183963828575143666143459657535991421226934811995932794573586529952572662919293228494953697583145961875768797331162581834142869972474629474132545749122986211794289672913237816685299353198488625884162529965975563126436661152192766882162278416333341343616369454749476476888415943148756765136115238514626685999156582793222439877797127515282344737382564432847444844936257283312231615643338419676387538754988718452596612995892149987545284574127652272229215536483655724687253326587362851173437322981452123837357214965949777841312313592485126423831526438151477512891637935978252872896515788254595328812656985912366695214345823854898382121991853318781132719536129688786476949432532699546225359845264972711522555519469247757818436133627983162886531492534837317914499711696616537128161131373541474362556935226377697425944411334132172166191431548558825938586918373398223194817614463617977615382325769655767766324293385515383165385155368267143229191256934331177272253174727445348364471268628294829519353932937623136172681116942329156853163132375651798939539635388525227219369978445331765159596749173495787232473159616341521133319912121173538325632269745372428332382588457535847964766341435579848939815286962539666469495942268665781262937433892499634356928138952334777187761614495955882791345151919765142742748684441378331931433921523262397791957376435724478526543716218838926213724545968351416492776339114653826863237478697771157473663279378522696951955164118556446957734668514118157424575914456374649193139458323527532517679515396632417863647278661614973153962392232551549175617218749423827399453128797275941164219349113853514391826138478552343179872714236887474882851637233768912846213927837441348165188228555794491264866745274176459864983464643833132435133869328651895154176251526241269478843799148426667145622388192153568938153238335342391273351114914371669711131846135836213836842732825948881135275831151226745566229957729166732297171662486562227319735964544756141448898889594288776224922181432945664156644838623973257345764265888192767633624719196634949952485861116937753738148272441173162775329611772588957632788672467313314558874529682373381326874739837468917342386683523486483297727316324631441633715519959469889861121361342232834173587556983139328416954188647268746435472121171283165189356155624982532529443287333661363936974827647919651913173543226718855431173573743417385972679993383182124968194977878275797514231381812213549411298297936185271231529474337164386259719673282157424524721433696228856361176479515425859583345792974722258861611649563175646352469726766617155343992859384165745939742796655829197642648657518474719119344893176423129364151443282395183584344524386998735618637575222614166615124814398164288471158336777641932273542734551397918874418392149931358346496843724531837593753981632423722814495242619269686786778966897814475687118225356495723152431277688981679246413327728653229167339427115211364444333768649632712273383617252684199757584724184244186674729651841158494471153185993552478536436562723712885826435923926726363453653621719832271382825182752333486591165521598916213868825124968368137321634919973634792345673988751162288948718671531371238231888332418597227545234667192444386297635518411442877238283495551916556338876915281533832575292213357224641226233741474253747919532166163161224947721812363191133833512744927228474993537134551352215942223534416453561244962753337564437551472996223627314831527142428488821335583175491427788623561393925137776477966973786373176424368256886414794967619196793572176666352463775213715719551519986194138651655694984734964276155462734651851957921689141956564349275522329984675392774925171425928371655269573162858125663823725328511854286234755187628259543691437696244465373899934375359994227673536168495248341745219634151112398941447494582477797328832934793494265524619697354778758269757574213746817643232575585417666374481258567291539793654412766829489198673166662931729769176773339527442125479443244482311621469353957521655617685517195962244266231413722443393113787915324386111743427484685952743712683912664466421147547541235547118514218381792168691393838491759629421389784371872842585414913185421876422752753625753159946946821634342759277468139239726534337162367985434113641838715663177823997696129636243926716784764864112997836423676344326545956254193251326683321922739226283374536873759347671385535593377227693358626344312129761213994344271728979972546341541694286867486751365214579495393552182562663283895513281395375242816543965789673852623633592125888351533962537518777583541183148975534457588493335237379215379298366866297265964112882258473498112755684732254153296625212261375962294361623742942658448185951882588842249293586725659372145552831652645523633367998824142887283737196917623463382462697467199145154628889247752631211352731512333458543377949356699681958916744395299253643625811371164946163378639886971582625186698484237257584164155334485163986616299699882866876598276932828291923776859792819156346865988863111237917952676231816138411188139798517584736283321932976545789225639942597616192675782784285931475138452727134392812246832181735926297286981327134656143479322942748344636676295736839821335866766165193441634342363221699359861881323371967762252517514893625249516564681589824168919311137867546567832891325986283191266656294737324399417227649468447914452843654536583125789996252238474115385283441846191722722826935648215218491461579813144163225777156719156441842621731153777919736456133747673352421821151586592237394585226863628977514955613351762361677158449293542839848415561349717634121956556236363278254569649382845488711564615218914134543475877312253289742273618215154839335318239266552963791685123645249932223281233279249541955771565185345441835722881698967436989782118186534241758676518124652819492219928799583396927938392372146612863394924483681347831293773253853921813372226932319886883573319369648271217637392545491866756613198236324936519381967845668851321115543194574632518812951347395895566299127219441539684619319245155246579888643333386578782964215639399486532116393364717686312667721434935758861668169833534639331124576177282129549785377457244585959517735186521522672434311437539724448193324484835628932848271854875265758231577725545243214536191367464494118517586668142527491183592168122427745556331816931752926854135352152349859135613419785763792851297995288611781495495392815768543446773395444975335112594194959423411169138991394852485524536425621492588457233686145166133212162683829165929318332727361352531936814567989514693381981589233954626268217195348386986842183252333978518917891762733713429223832462383244594849629516748351338644762186839478335452524966344128196585994991687262599341458116655247147734235844499819624812684736813122522886735938378162235667514297464449663152912153529872654493978575366693274125963181344668546229794687133648558169536919343441132666719613434252697638632966168472498396749246489999816791367814487754758381217732466815879644891316943248363931144359196474999562721633618684623914132498428962461287483652452625941471583585663479413127178179452374582786273945452375827888398369929337587245618186344168319464956867132828275323491917694647334163968718245625591121575323766562453343256756834154584555422289178347274259682918116135468979417971233946213768179557363583319825338865344995346522486551219559579769359654751281423752583654452856228692613259765439838111762128318746781892576832638651135957824854313521815986551941124932434594839386444328754256546521971983786332874119269753312341937528657934117491213713523332235718587599589984215631195864169672448146198395728824382748121366565316164712916531753664419995835434916955383624855525584627374481484823622482498848974312535647653436611163128165739312779984825934426621621499896355851635452111479461792972383487454415265956454633461459634224739479647348665254937147917851391583528557328324765874324821648725249176173179583641879746761656477951989656428419356727778712335946974173646899241913657561234327357666576868781614619317283737794496585788739747865471474581578634796734898872591593819239136857441446496466459454593129923191818131276614775943364736927525825221972456367849112314112977212171619455243129247322331714431414896973637458569761682334835274285114892418665834256436281592162459565645468184787596969126415137152497132773318481363472123828626924511182274824927593519821347371953732915549997785612764189566777495398763593253388414511387856919419471889547281974682362356417359955242981923329141866467787222291122391114268587497293274579963265916193143861515145615122491512592249123487185581465445812796565121853328321438935116675784144939634261711987656462895951728591777892883364181552921438326429713691571984991336711621545133967221943568286412987134474343398266783268736265423941383556141992529578192184433984654687537864632267417375148328954975211354343879757342935262963296375447513147318198769433148648237877175883835148769874235467612867641667572287494349733224544289131559488645133987394843597991392522865695159786961648754924489531162824158612662721134215752112328351167651183193857975888736577722824176332577567852824363618887882123588893339664224912787321285576495331484634779597714685921339975433726625264542123681972854617892146631349877369727833856239243671755745193472852298923172425116683542351945687487228846822588881142728229521418588457919422839576378655479811758571941123431244281379982149414793934441313193822593434255182623119133171825463528632584226198144139366162968575448473386988591528632835835631126148265578827882121844672458422144161656751141311862483461344928292741528638252178968943737187423354855697839415275376511985428665685356637379341468592722331659587176211254543826852134913421839439242958287767398879645565836274328783492364741657617248919776645752313967781653412891171294516965148147273753473329214915379512523943355824296624133269665322236322256171261223562642638519231878843642175965753849887127672943324228462489472142228955791733763727543899684221259946625893476875146821562994984775815838459459755978398823486398443174821628759941888766823837577744185649468769594795895946648419895562756168465466573115384536648699121159981693178491429581585818961488527291776577489326546615464375834327369742641723581829122618943428644493859278738922472162711126339176853167736733428474767976853393917699567416734966943511426285533895612613183849674394562553434927698296562529732517384461769794325428756581152794557272111583833484137774898162816917231529157369795431693179522456399444262358971416532161894695951111246183339212856523355692316371635528525953119211374736163987849164744173623142554124148114138618653186345428761817249693826133219783453421845368993679547125918654356684356845561143449545872378913376463634276562724328396292386424522994483637297859445926984153735165876151613472853121648455553155947258222687632447397389584943237484244285714681776397336249292192965187971999933825978912991443921191677935188157612354577597811487177896823484161991712161946358157797316233762115965466564787616792227719661844157169131764861983813171843193758729948916442785354916554122485743288919357519598966663378416144953962569425659438666734393911654386672258188759329274394344228389992483332458137531515134318533491748815761872485946558151156947272239472229933696532232828721821477444126977178228935349572655198458922596464914424494626817455492195335858549925945336529577439313136818579476119912655528168722471991975313796869169482936373979621128874429797394316398949569554641944392716229167891574112427163517988229332561416488785672285428236618857618674657817669842652541243172979144348537423483722286978153171142452871294323651247964361331688158947161529545512115274521896812867635199564171821367855684422855237136874898711533622527919683581329383819839261738841922649742263634612737617271811933112766569773291897814681123733793297538379976578921329799276956134177482983761812983644527253128842942434216785151933541485926135479784727357669966323662664214173524534321669892966434251277522575321875287765451638693973254619257684318973117926162781476382356565429917298685592651229347228757242481346395468653618659675216175114819458619546464617221397789119426327642282776368418241476522924142722871288395319638622966523883112258245633886872146525431185213993642534199848686216655192117263621553786229112217276544698361653138591871245533514151174588347242717932286871773176555193627888323842371568384416656498483594287652485246492457118916664368771381522413643131514928713292991931792347347224436642811578842972193118286227154565981417211126169215631584556731437333563179746942784888652224655588897694595633486234491316911277957562296248397496514476792794283977237946499548945318854196212747598676891467428657527862232669328331778835834119845329985937782796518114882196495949163491911752954737327172213193393169172981727297737898752465486222672541143471455637122842113514586567484513342974255421563612811878543429486289124381474632232414291794991221776916259384844211556276483758138641175516188396763825794527778279711968131337362456512522655933518531665495725921394315255927685191719688636948963543716783463568473366896858423146628872969717227352147991941636286757157734552819648199686571339373287312166417876437545957778361992818176641372613559596414222819132955257147636966933979191728343417697716129915815323993643622477986317624351752547163193492897274622998983156677725645326388627215627698324911319121218232311732623988459289171252828639773635256448569743975918879821943277884647261854246871249934453812833432987819881286382134851218164715595979766834822616813432779554154181573923375867199112743475223618335118922957465413335456394423217436857929579886574197883346946426393331725655914288958598343867278515737532941353868149932959378895725289287231298169468843328876433162372332124315184859767131965239936974417419654548749141365265795396631352895247612145881223268745418258784389225629115632527265971626291132242837159424366472426712917117767176327984392218158161248427558264936376622796683192167463676456583184736139949513194597624982895325687124626963462519899332439142267857674221155969926544569431489258747156381319236473757728773571698291257337958734985917432322862393315653114118227978279524155555327979257815543124379759843135543461762374328373938262143752979739777328275847163355666443798191892667454951155679955225385126333253922724321882431124333357934318325986652166799528181182593469645595136141628758813334283572541313162493223966231671951586948346493386755226714581917339362365741795458514813883496597792571421152389942251654634691215328618849396843746899599447636538913644952122713282549261916529953861354327299168935376166473874327394425324559612371629793184666226886918522829756713534856855253664574528561128384995791361846394938222114399724365296749135112334753613382569569962148572277337599947197485674445362696718969478414388759967588142954324474216845229348917631483863777414765185367684354965155751348839597261843675391362729118243481461949716148715846546896269253373293855281167294483812297392323161867969451553195518481552292389118442333818838712141725314729927282124563894921225961566862627512716182341173719958343227778642163181315979827369394787679939927249191319167976944931526612676331179224969112813244769745867457742314395515112573968849713915191116924774326576265372878341943285311519931137612165569655215311415824823514318883671157662332887166811469864414981492179215215591394449137916812259674775427332733116412481333341783967592311129683795937227598392261232358539849421316345918498845899224115681148566844379634795862992986347658246991748841936453887262543412235231235723437527181476735846931383931272631915911486223838561558912625572117871717415961456745553324819532332762288679371577334283718589158697338165526387913832557315356664657255351476531986284241496229721518484251631212458384472234882443948618951776314364667271219611186718453153732567211599382919654538977299213289257974534279256952888864574717832996657749833744629799873851733546857371755869231711926434241526425126969242371566336651553377537133168153268197376557211563938949414463938285639125692438394361782875875397692529722386543259799272322639523954329118918134993896498196395667348867436331144941814976452972648231491459441562395796154572476576639594358984211745779317217712479815823524475753225633814996798442417112174243215198664462142965257673575652454296822874984329623783132163937241393439546926932913152425749379479758611346282115414994588415623792846627366129456347995652877484488452221482558893132244668368749512233166914243416151342681388423323513858842273339517676441715773596518183332353441447971199878378246261319754998915114763631334689141118476444913648925347935311162669636214196544363726165358338265682112736693464968176876286285784133541455341833934862884957483486362319368776821159295555161122339557159481249984151351885834784681155196592511215197941828198324921448842671163185961192595758495152599778329449181429513255573963159388856314218449245499616554851242248499141537417286641357984863415849146881293249635186465413779449698113839454553763215521473948218443481111875967936973817881767417575375636688249868759883273231222739429646233773239539839975331336852947471531871479833172752879222333823635162197434948221854295636358232666661811342717148197355541764533178598441912222863148569671124635219854274557672832465565915729284393291215493213146982361792396716422592322736757166719478456259662218566639339314359171717945299984396198495431677169121442837546496844127372219859592531537113977885211764933821235336387616376576736581822126486686128927246487977117845874718114273514349445118335985232719984422231424993467933186285544952971789626146414686924186524414412125822335621867994456411486634661983994284232226256858322887246194567154998923226746548547113142181174498331479384923277449182979782192185634248824788524581744933546488973575481214662466544293492362615871478912513315467741825828728244919968119496639874736114533842314166943143538535958867218265426744789215612439654467123175221469472785846742456831421739434755262266792141697873519732855761197369756332343343352281888273719763843596728225685442722223867839534413258427771913562812388917119585931719144626445189174746197357523238285166694693152869824718721533665115919493447293245824529787524482661159246223864478417331645442141342593768737283637123725953216157349378794627334132719328399639191441527347327173997562666536434157417289441216567239793679729356248353582448874324826224883472167238293151597119778734825854674273259563198619798141472118185661248275249556547184445677773712863521199797784948438392193835663533538753871917511951524839442497273269459513657782375523656826892813114697894467854182313946544392642799365277589752144657611814737252364697423339964539627366434825293886735658484459944135221699958971155742399559972312853657928411254115467338111143796217319391857148137677322424595795753273475272931623966836967639628211681413647292597712448682363249992166337142793718288984917553912381773794618215826292671644129921144529892224939499648994719211614295797347493842336545831799994372618161143177333214414558848134775543613567474183274921835493249911197617532562399445168161895689257455453144958554518222239868539651798262941437314938257614358452726748675343655741617365432162593216263333444894368193256157712112355231361125886273972155641427248369222384576146641433394855742836432444472147658133359963515576544318835668343647736324369851855383566336175192954242466971692385657572437828255113782725747623138456826688159145624314388726333147223171835935824744476146958261934571857825913845269759186828728642282881387485565335647358133875129593452977781739849547426551296649428218189343235297314586227262328642371791143743154264631144354165672524931781781453726689469587321158525345495322427775113857783929682472579922422946975457282291788125797383427549342542237788512417645525734724152822479186387332223517356253115259571589176467645819625828288563135961943944931913425792443755151884692697359744897896754521673246162983812641145659325463537367821469833569171623392971385113874346654411221881472683955785227984932333428436367637954468548136182737634762934432477143484243812419871526264547639372633497949655243844196863816878743613295351544242933361898972159564338466511824891282138926921662519466435912963788559991174727824268612938475717966436372424547134735633131299859447759877781372239238744932525454482876348486327225943921182198596914533282876549685528964221783613579192866174938938559538725411986571122527433445428672216393556116932868419628983153773259715685186919881227971871197985727725996554494625658841985115431728279528174487137986287558797489541983299298119425781947356192731561115668175619573449144392441382121419691984772419728855914414412235541677375268653235675617885949194115973392798279795268396348721737292758923639418816298539232187722711973354126571386656423163556289919185488123357669643319285938421342141114284938497116434747819641685674555396943163767454663249935416264381335246288134183811683845814129337335946982462478579628938814936546334241299349678329492333267896282277293731213777131294627279192751722895998881468216642317892813671487968463682689183554249652433672744896895425396828552163524213847165259345699424199848938976886853653126213412945473757994164923563652276142511733663313921965547513538762658422573724177191655833891462413336287523565249444396314192174351431178654544917612181452441651354486726619647712992478446866257227254132574811995871571342819153654134131127878516581876958523258869651611834322722246695213368648546125917937313869344169681839464393544555175156913727678427615743198345955525162739394613912565129319263439369649128484372116152566316873816113111166128583649756888163185325248575211794255251771946934943899488377255592476583828794656382177314692125926493469481888193194767999442297286533728717644728566593462268451576651147352629273941921821875434641349119397495212187179857351675446144392842423449357181167193136497347412968775162337697944515438235612119565835779113784467762335894363538112418777653597245919579442589154255466211934152398572566397552571983198744697437983574988822679154141312246145461455611139686443573286827724921838921248831864754819665125165649597992992949436421247354251431453254989858295827388116183413723394763336376288939488578437791565925659534124579638432929261128313756278937378347636543763868327957927299376481288954984178291432295268355346662415321671353232622727248281892811424261531522734437217974219335893154382335417564591177327699818949841959176271429551434549948342781932343183816521443763116813978315912288617734528454445928327945483981122367651895575389782963662753366328632566622693115155434968299216257238492941221239545455148173886376486339351418438776396812273613288881786356622916532314434954386995555743819741614551433749977725665945222197513629232851243612321526347146614239296931666781491498186851858767738468182169424694717797571491813112228112818273951632923826212458378833425762824215431912136235496237877165387865842313811231712347345193987934696316634632654595433611353999917882972164628917635246842467485294391517914988561477295948875785173325988731318184879632137993982295336224986142435122488286643563837933983497136438186956782392259456949753913374839668178425897389634936859785449683114571274612345648457587577931135916332446842973235466749923492278244613615782245645342133918625165783935437566595418463753949793228279628841511913494636219534932692566447248434277268719636644444564297244468942534696447298421329934485911375665636637138794678929698378372787521948427825516554226518394146225251671447962782626316184211266118642834118593869382852784821287247363794199827614123583728491244967666586598621461447979481795982468297645697665622348381471135663761258968539415877726315338977121882845123792872183198711513944724166577783536747877215954279541489156572982733519428417662451391514364792438453536115514898226725384843185198597263665736179146778485982335326539187486854614353544714556251613627761743956591149498958947449667768765839519142867791112215649394315257719227127224633246988748997885986512264242484963498497226214693523732935697489629451965863376565962254339837257469627364618468345785423148988777562325416915522413358946366443877252517891943113674341148936766281913955438186323878348624685151891272587947863947812394464578591381416513716449234227269646892454488881147453121343861787558175533761957686631951392148547453577136591738652494527372971421147434625754459232159122591392938577298722242412779689941453383771435392352422277197463625942352435432243837135785484118914314624781457819636162995723272347216672171714215714398467946314317158347612127293985852338292557891237643849429656277834265745965265342617166272274676227769932479731419762549857593121665759399954347293342821337587297354626161232921514263722148374446432916431212992616584745314554621327775362927749435944868421531515475974363833152514198359515163456742625336359354621945684765185711916399174161686231863424795713276995476578223672824141456148677682549775319127334959296445895795745623656842959716815161487342733212568426912159478634116533814588561873537884376447424385473572962773176236566474238329575381551969755884663742428545523773234758338592528939476228211956487966553894577114584273521228985593334561734478978553774155599298216378199721432744279378666128345153152516669293116289749389322721197224892385544991575512923292251469376114483917841243321471235741816983449138993575935288515313412587295833871175885344788172553489833396643379981694623186896779988817798695315324278666615769481431521117385152119333548541778951887172186161356722593467577881842672742347767535259767565643917252362253387793976897667292341496186172572166719184255333515869636936431416455519856153322274345443664615183242996826554715328216711262428491937358371364471689625781548485327199415994981934612933982426582223436674765971161926372643237692567322475415697417354857263813974613885123559186714371915162625748873974842515846612276393999562811545114542595419241598741973727288638943321847182192798756577615368711557366214234674187327315351191526266625341444942635973814121662269513374236251456984159814352252914876936797263696953226353481874254626956828584998584457241258466873995961553444539521686514557893197298342398169438483384171352768291584426842566491422595269794352696739586596687173163138212746751717796676658847272633589853722432851247123896441457951169926391748354759676622427797457529435184321534153864262227483456576771611879292659162174521495346311197936625656933245517588454571381322286511334134681446681455221298352591448527591259792999811238223818912843465149831392129635672727624679575965647947476423891711371867821845684393828499998939644377311381635129975186295339158144157478751243771135588125179926798526434364331919299441951927619763744329677637993547652373411591268223765589754129812334172352551835129818775783811698242498792363649274162452842735529315155623887666481474598327692438879749782639524376247463833832896231281686727695335794448246853141176485453163741458113841191661121846237324676111898286299668644951395133556621698572314846478198196919522811674414136956837273997425322354173299256857542975466146715675668374616426463564327731536375969482696746528514682911376346362498828795322152324362966527997692967612434913589785778122769319297115128326156257679578744925149712434925155326793324421152197492414732962563243552955952514482952714436313113266399546324283189698267438532735468833775243926957944552918553684721799172462121552356651169678152564214646291778426772667617445351557648342216258693516196575834159272399994771857263799329341438543957912249171641979959152868888748773864943262517371986364542436254461495673574689632111834378343765315542676132288748319562248212322481136967696335344129325966772934981676672397265984369496621714493759775486787139941785933593773519552326782697334134372449712213559593956655782629444699838517127652181462256296817727763453263731544211368445951952212457148386112942731339856244312212541464362818614127848635622222942839661167267561999933142283369145122722258467775225213421822115181241432365568221149972475389772758942154531614368954512251865233551127377131995119356745321165897353534479357126229381653388532964393829532157239639531541117517885732635944781398725423653754938248431314112865559146322194693442221625676232827656269336623646963273623846621747277271313614121276215464631659253799697299485325516398477717999998889964117943425677857449662928132643667158534918275178368914298178448142529385735151322883645375412797761319574649868749354177163129414641558318671483453865838231873384278421555976873479776636233624823818635493315727691981391231128819552343245533269788549992225457873319914551817179878876564336793632541679546869113222229417838735934916644927766346764657366792183771499686494131639561361183157942272826349879648695465931298172634796538727732438449383553625191783942699746566849577388941262922788945638298318596216622781218671183697734723912229684934934196661245851936447539838647119432276991883646324278762112523317157496454117222141725821811215326294356492584175196672743835621887757177829246331691463212858141285565874384518617366434888413923864698877257748688865625266853641572341184776367939394581319662533517969654458229472931538742596455763484462382576184479841774974227334166629738188687767553181424945979817356664153683984819612695941233338175347235696374768934583282583967385147651784477566551914824456136715935322395613446839391347792795183467515363194531354777723269592685129834888796456777174381939544791959539392561324231725764341891616886491591523529813943936455584572915289352928731713331183617354731753956551419532646827411276156348148314221521671261384432498289536738971311891489122586846678473876588829282938742716712794617733633476459336933247347488717537637898717351439537242579531477464136428458237782866128521371279549315788681598631714852855453791323192374447895171454433666593658317355367293934474645116988457151166882868229937855546634615326741933542371282229647942172315884154251876366959873592314856536982529133118664395679762275742871338567291497475373418427376391113971288725315491772395124996469631754232751593758948464296376666388546425871498926566718442376372651177423336193353327421671396135654532444228333615319177634513761391329167477637451311517222722851113159738176127598313738729391723554131562496846159678459882246133139546721834785821819696774656261276962223924115745217414869475488367228994888588232647481266994927239568883632153772765537451771838876277885949163689959524388288861324739593693898296853365328536396557443948158219663335559938952955163519981554422982626863984571924882575359385785968715949111182482227988966373465583855773471177696929359431654997383186435487945994933157436333516916179367147728444772118377781563455451236783288991779872175883194821248993454621112599572816954485966588347561653747369535735315881663715294417223429535169367114347868128386697371595445459243268162233388561629596944253298842516232495465764192123533352835942625787138114975481741591127829542462363614748626536266949946531375938468555492123784833886559649651197699427714794857341944584882973627136991125631621915235132973568346345441511517971543214681349553651831153928665527784346116673511668353117628645438636446679343628968969216436739267344272416993521146122496622954832572762936461992678132137274538581388485733984641157954979779844636114653555983543254516467774414123578129397752883199882428112822256274135226313826581937961275222467425822414387361325824236224542241214571634981755485159199452172251946316147722151722535587139412453237596393145543128354249347442392439526222364736275357877511311384217913398164723149176859727123975469453528655393623647635187317344427489526491962537474758823191433541448666929933515732481461797785154387313336621187731196553733644259245566964527396516158117561485552479832931635694836958498363883245152745635626592281952965256594646871211974167897714442924836998287925891434676513115942791135464266632838741365582243791768291849231455751551586759248839453942214919647855912169243221667929674457412986312827341234273298799331274117623769223663691335429458891661748556976435482691684615794572471867657331761199454464437598969879218289834712559516523211231847943658991891827397854536638586784548433716123617893917961515742673371867121275813614253219136729692466522192646722278121211447158572398498897415837151452552859723783682888735561916238859173674314281424753344214518466298577642714776196684699951841743875518559975735371369891469283145231254722232143271851551753128161521713633258539874852929843121316373355329392577611566536275117899949158483318768942266254225871247454838766313215247824962317873217169678955454394771338837772599858194148379117584751159261151129527988225635547598115961874153555778932798134422121725167238288573433633131387145247871467394971823497697749572515554342987962593754517829342412915826354159589332663255564231474941142237865545827731767452913662386383659476419159675616113887214548912492457221697869162591914743747355931642179223182425246745291795327287383215453961224587346656114362946436253293754368527713854724576341585976648296717551112196443622792874821556448515932242915875349297441331944921164213177296326644732423628659642254639577223163834292271471665296159892577122397312773953427841462645712128317343372825986592279415131133932513335426385537454481967516375553799832751843344179873295632397362119161173493572214451117187129338371151883483151159572476668761331564678767525969789268749542911834947962263911282214647452743133673449986596251716153214835493575411688913533918848429451186872411224785964529453717423413564779396541281589514725517445664511422164972829815121198815211722969631761412147186176771311623788466675863667581717383364738437647752853512179973719961116325712838499183435572478292963442661989547819674171244799917318412754439332242675948884496262663433876867117799592564471859422766573696221766933126335713793879566129938642615934819197156389327851492684724142543155635138935724654619219482253922322239867157249384498895621126144783739252961691851445779629253548515761881511585441483213197526574297626439566244622358623386693994311777841721937161633851687311264434456667993548414936811625924315764118324544747613345965221635548258965851328831952551514296873927715127983743331858519937346311483184217887264751262537182276218997544679465857634194593416467179638188483282439451545469335758521437381658934498511258614643718564582491769866968759286488767772374226872852382587945342778545318488183714665594973728713284935538566184887242146235435452821358432222311483616294318683221884472322819375535974391635511731476791167714322186535372846362219846165485371317583528318764134951547535359995854419224567594553351151563345636537651191654154979233663376328455588291616972449591843896193483172329991525941514631391221862348753954519144471373635126634778645744313842322317173155228556635122827353291137948731732521344444426766656853381371783611767216365753389128585628127991859244966448293868382289724711385136954674476354397241897545925371411711855142752617572582
1571156461959787486897751346485828777668859163319237426356221461276378384446897362176626475158964512964383622955212457789499734154912494344873343773755224315523973749339165722185248792279889454694141578161562721311169878165146374458729264362713632769812525779711937344765628782848195393425554138979674276229515513538994423828811299848443722555328335316232532921258481153311641826392234293497779444649643142214172916968416353228168578672591974291428397678619524179383644314273338241915682492989339854111264728822812937265863479118783611262264491692978287312994157575648876142149134437636855649569989833345298171826553546817718212123634182811937539422947313446333583526816312799719868332751435628819341487515588232824382925174166275771463639787476561967746275544641935214829929689847332432735218237514869384269769589731512355375342881714975712719417549235369756821526273255836224826734283356961248641711896935991372417568555137577822119423431347747677853712285152485658922232621242359677449786394588793126739331483322352982354422464549984325934969123416832427836333753829835635123443927676131625569345159927543718226212687895389496737626393372672922147497949232533162269684135267848352747771637314912319191967893129571696763651211468257442456355763244538679518168889141617872213879148377697351996963956455224273282881428753514433332283933228184446456873356525985755359653975148174732346332361723355878552183234684149485254536831394875197282539537917534923263554897954599477773291467935624391447725616217984217412276879745449349262816958959359965151994664241667533973453219353231184489684156216443826672765974645271528148741529822796354462618275339244639446968316312974824293984697521543466757157385363142161816719384549738344456396944553112686828625454164973929453134351927571779249636469897994251923262663369219711274563915465561641626974264379656686852193851747877177376377856211926443861543328835527499442396362129695887427561668486242664113175147723799553837194656929538725969471655116132917659197736651925939812683526843654265878388923812414644548867246286712972286551736228151778837694826264868542873181398441185468346719836426741732966533912694166141197368931457567347559464631242486666434357425283189462611486546833262275984347816212852378452471963414465611213215581115459557729379491436563897351672112537814183855159284583151515228849961947529136414442548331666311311429169423215491717915523846924346757314949858146887434574759486911321345945667936343241692385484833541556222689218759231368853356335714131188544655322722123461786544379639347686765666734134892437618557762111469751138624143557538213989249765437798238395539112678621538694432228234616718341735997459371284895869334835752595991428553444348382469396428398634761516523261479774821919223461933947744418819825682674182194885636487837236464383393656429627133943588835811141879447819289954435183828436993621344823191236333811642242913251228736219341687656121548175364867396381544564716386754428249949561358923771443131998637445463182862762731571518532279761997111145439216762483627158546844613785316672312125159983925355675612568736352534596378379179437823675958322621621864259127742434126651144322432232424233163321918425518787969922121653157733181441493473913428679474882126324951326162418435421627845422976711677797225845457599374554616761955137513622589645382976772981265855923514784753373694818675781736386519293418853763815347443437362826313415827943595593464417221636784827288748788149224266727552758924936752361621545271929133537221714334937573362697737621181388131482514898121247283956175948124364466481113755945445152873778343892661219582319112995625597387873934964322232653428287626694915422252153341249642383432469587475593691814145869751478578141523331633694514896278177216251541864424396681115613137266338945132316915624377147286355545133611934549122594826924951922193197384499975335116383788378662644695312381746167656471535212821698664146812367268292115267469422294226457484876338442155731693945636828216395329135917985773471569833393152716641853843418912932255147127119517165558687858332244372774467723779232628381266857616868838452185213177235169984113628639784161813716246777875592167576362453279124242194321454289756286745936856498391197344191295177859691265597671131255783816857929888144861638695596199284194813825135297142536655458335966181814686122958614992618757294161381472325766716486824835911311687255947444386562363953649164635798147536187412389889752913622351474366121861261377941179129823557542946525193124188358487889353639732799584537964389964141979173399175914498158996538417144154965293245612168953482958844869639353448973137961561664181981171193281989345164121615356662454352771799226399822145824498255771634231719413686576578564972126436387116659675573844271316671946298315764555814114975595118658775279155975658976541242424958282191552238882147253246489655138981999114167165329139681792219534447836793383493717127729239183141826442411295383376283962929649755335797499579344971122131117782179318676573583515849695634768522937855512986745638728873815162526967456767987334268888236412466926649719551673582783581676985984629551785927243566393819372275515252534541286588411966741797564525268672186479137279511661796288446785837627243622195744462451594192219868839627371833446244354335652727227147556776242716461141381192585294563882125859417252154654615415851739186539149186422453552742273353119848838277666133652676545378918312465284631765889118232531835883668125374464224995381784717794893423211118566581952172967983821123689937726314477295191871955723418837223911639161632835452224213811765828921122294748492143121413177223958532215375344197491242767194879265555246523361568492246598557368865551354664457333235258311725416623343186492886735615374383321119414512763373216146122561732399316498381123754926487922581748256927147162436225519324222453669124118228439859841478865399579795724671949427427594662355732657937854323666196665949774238465312414224127573928394734656985486132286577888237873244327742746557865341448458463395858728357458325965883412723451844449621678924588697272785851449262938324164486561362691343177983321493418673897632324374761926351344281956745131294613214749773753692991194826526646233687684154939419122472583415256353427348266835234228242771992896347229494456894274931625451422566122899317893615521279436257228834359159394931334468594282361422777412633131255985243385624699999772171219231764276879541474118218265511562176141727348637335821928121392618148327475889783262477481669541331565215424169368258723739483869125867191512249831864813125335929874876624975244181713263992973525727475564781589633915117523118451452473827493422339429898795365686667521234243711467568633266717365527252255946456763913319551971353215481375134427354531216816747637778597655523247468132727116272328448661454195138214898134662978123732526341194167315666331479128244921694552674424812922943117571394117931176938141839687146299872271469664256413569757561516949914152126346374746159254562688259527426368359857263211273348985617236651583489686955412837114461255375615357927618623357163142786485211111123977364966659155441194522924127874182965254755752392234552815322812568881529978294699921375995877311935542874418746228248151974355652765169354942689265439233221875448484357796588138869578868234883425749246451395717164643398221888983777211755592733489858638636339454836353981933568442133968778726244344252743572348457137148231972565967114856423126689315932639932285714148586137128433797954694416971452479686954745172727465639255952759648234915385762883642576295858174945221155684655611487344133168746818542241243214573497357986674918167756915699882697681287324266529526893762118382292652521726728651182918128646249655577112641996348992742236122682556114126792242168412642971469995666813115653584332413974232243936721643114744461565352764953117924653789145747842643337917868967647146175413727728887565718227178631663265136716578156769211598381238127896692551772457352262552515236624997666675171542399633174649126921293619342765342888578667642642562369868164911311713585285882582391717772618422478629121545195612238678799844189895966496779422394544856468149124533636133544687761922657727116615561737484521432253411477363829197594883867356683627584114337183446683543356681443381989116954271453624791246922356559467571434683549261445598592426283484995556652882585123356658334211523129651712457274359364568395287444529645521759353841162798585297591661952281636971433287525487271256866359794439356671323844612626613237763983469337499278382118957635635688699966778669473789129494614386341134246335319914492987383461396195889582231833533952948986581412456262711876248838145345799684757959393592916658363551126369767174949813288777486355627819841947951633346983685376451497511412388377297922418455723276742797213282847692623759493193741176626635795375195624458677751643351563196541824242743485491157296663233112986125527361396219875275114912468478127945166815345451197537246479817612357211461368713741523264296888974852354312864179574747624877316179342258248949391686195343772477654853475479751658526376616877869459814177323956549244421235142377527664412515657343383671328577249883984935964946777853284348563772763823286391911433761219495746196253718757625798845886785253276186635362918965766811417584176797151434259676745541113128534527793841544596636871815725311143398668834491359657412156682741239441634834432361894281996472278419759824543393232361382874499393987356666866969446428663312391369931996317459567971672335653883329274674185575972928252522712618346656811677441434627521412212983294324168343782261551957363358376863741449149256926337532343373963738514852957911611362384349343639358456159663169368395798367517554869579988862783194255942562696326845559724797416773524557778141811454243779461297291965737921534594838986573339148979893425564443358228214465114789998188255988258759133563528813448249983316122183741761875524861723771381751473956574187712594718367162386189222933282528553399655728789341838745124471625495833813529239213473469989121333751439453423317497661622616481175433996142163857664438423281135833244527464266777561349236838641279563972988511163838865311533595115429541522493181789458718725415178121148639153225586768672622636364482994515722446652663493583198843615198586594341273944115655298612633832848533964331674124231459338329949624175187986973322114356814416972122431413482745744423667517993814593532517342555959876415582216891217932467931591452774215661568752165275152662672644127759781797129811367527769493778333446284435341544967167991623275722146841133214611863576996896591944225435331896388823397211119154967517341239248865853761723114161565562582381594528867299892546152256495395215248452878522554314538425837821998145313829478396557227768121346222734275311745832341141427996744764411857372569586736756844712191555581478281951474848518918458336313172947425284192838396597295141727935324646695984246542334756993164696873623529541412525271745429471223359373763738573234134336618477476581165532525255973131923292713676368642976344531522376312287166537518269291165729286139395398691625188835247517413314752382676352888331319943263729253116599926157515516257512386754986395894411167459734258757752221154995156852676289568191214551988489522462613242662677297515343728421788225188125675116332471987892116921638559258849979689495569566611844681455558653595166661455887626664111833528689618556772488763623425328986573314338216746323951722973585563719514769199862823359813138731183812815991587747443385369823153528679193353757796452237355523958473692193153773374234487334143133232167823778194728237191119463262994922716144239677521332979761421711625953277138251391391494736561689596163153973479336483431344113356887361266285779426337228226847325524759469186135924466916882258916659423999596113259333319147851637866989154974592511616242333458864193735587849911664719487358252693749511877365764836969712353827172375952795243319273456338595395266161215727115488747259951174179767575536396995855425765112132581392713569541141837268935164362822371293471599831726228149595859817564895116598434222998471551637682467114457765416699149768139633217427784972532412414362563169929966291442742961686865429731698713736523858263576574745256242685581436613319853995715912835571949947613917992322441344472298943831797997648942722138829296819659827883146843435176569727825367522382592144978227253321966279371526212733246593442346987984161397642932861317237148779489791555293596672981297735764566172863699331264861517578842424257437644461996772539886931961314762269872695359114715231619789897563721713113264254617599897977193281327469656924855335723665373923349464195183322553324384713393184474166284893275732851932895792116755768477327311983365397115525755961922934532484947546286713889981182375629548543323352111214234892455299195963826567987927326778799972197846575987738316185876519867895919619236965386666336969929617381949429327363286748573197356381635168757799555174973867366123774241926456122268949114341386423784353253967484164831227676681744483194637749998889211467183556389785654664372432316544159689839871496152762191626697987237146993787111776244915681767296975468437132635363336645878672841844224188415867292459827796593966179748996842512593692774786332219249829469397832187842838289649986355956388891466679252656891321765285145645749124376654374469433323447614297999363975646326125437919796831255492111957443163742733131651466864369183739775995989449272516439414792133116174591778176911791992185758953839278747176422771636676986882912832246221384687874652411637371538141943378882233831254573946754554796247135326485193624126843559312624117263197446156499267743517697175352228956792577956453456133936155665896332241994565656235324229134716533149326611657119636854234462435144971682363942221916225629932445144583671136511288459543712887664853755887495333465417256972165342392458444949675136698518141846263284238287168937382283583188181641281419232373181958186755524299873648371926429922245112547653315772121928837336438685595975136698914298212921214624286254793113147693223973823269979761314962879821133532311537557315156146951746373442895494222118789541233396963434863582717615494162256998113292942131717229858537748913552846454647971127411354522152461211547862265742127452129956271817526618799444941425851268978585854154554875955383327275695646162552975248183836275964522781361757569919213446885554978352491482493487216425376677259341579414365172585262151467941155366428364157822338699174513642552195533285827969557641854794482572723794654423725186782794474819258515226944571521942577263362184957168296636277522115919595439112239531654852591913495825334298726538497526815474448642167779848521615333192686626372445497653758449772575164872454177251725713816422134397173794318638967486955628148398387724946247315633738665338759769638399784736639585982246995571557937498586566731523647589633632929143726769147121159957831676452277835336917379181426297593182144675237158526874732743231579449933111343655785488826649916396943853225727218174111584166861338824357391864372243115311291599832226113817772344626558233489239923486631595569759128341963645793348133186153924263332236754382165127484171177275834178629887932116547995735591387382763418742883414389617741428956468488316813564314444147236863788725816823683539174721565526811238132361877252719861671175135495599183227147445219677668999341158725763548578113489785991358114127336585285152381325526261148281678497414811155443485598522364495772199935653375774414816328154521562899932817913682873573818986892886222536538618312519739112384943161556284392284441192388147374133224835969844552996842822824533939352846525428758579987258552668117473391449258936193823511226486691164377338543914552164324212734262414942488116612553918466919613112524439863887998366557555194692623468562267266397516818965924894141871182537585649499171719519658758931284988811525958954424942539272675571441723252465116261499971786468344796648467692454983889236954331793787544252738391799515518193137522176291593533954365367142725812919194853432873626138661187571198796671147743286374662128652452744582349141258373283469161329711963299315726974461517586566577932815428296323828533919172999935655928378781351624657555648462845477778955195234324387633215417258699351722425764626162145876319166262117524291734484486932461918924731367273531961893219752522333471184744188918623916525669114781455546715967448123667232867953478258954231251744413223935998673589146522457221637931852348928122665424414827583794712547188919534237777773614231415387219494371298659265893524969365745626876259414218244326182228147188225952974235617646729443553223711149973658726323688946554417543551666523272252871823511164534549818144458721528627316916672575835936394673713235229671298366152843469979415773274162624369416632745944513599327133152419737634195397635471659346771321468211113697959155177466264158798543815697127558264326646652371174871773521143283929411625551281861364447984211832279452636462572449415471854383543717131528155577636675345524729663446733229646884548674217843737358111421663437967431723984187713415254184499163381247182514588676946972329779978497195946236317214943297842559224912954281461128231196886987413214617658569477128673114872295999962736618564295628688782612633759439381122812939354911262496851499524954452427764358433611231514482528996555544665233433376739213571883655353133484161565733546917632728563559711894214379556669172167478828239137111666349626517712565659585746928246488151431652285748142692114258982217512462327584273244294788116273276493426478435795495122998378631748471468772526666314662557561278844738673989679378699592255987396846324442219713393154491621511561522211871856526376236531569468416462461691916745576523433181681885451245656666737482284287113749715766226443726615568299477679671192727123716764733453545512533218345688684772997537413798454937353118813712621474938754713827641299958129211693892992922936257571148593549542354714375686871535438636673533442531415549948189656395779728529993176598461416218427478377581543836835986256971474623757683742241953535254795288793175687547365826642951644969574621256451562811141923272422295786153282186552524746319116797942257973443957985579612933134284184547543544932911913127961954526738796622278654195973521473515814883391199384751257224713537683589355589452238526483332788114977831382371628493482821781399472732876511337995491628532953828188379482973442733133698367329926717115435845933568653143277166119455855681797374948614344136326335732266647137494112533283233945649712812386967623951989448752445734851955626769593986721569338634922415543644124348919848132791916936187831496622541529433281347679592494214326898397774145615934638733577441261431154392748399198629612345571953652225192357345974847877252774872891462241654455848928773792492234696591836586299341561311374144193816673114331378487912932665965327729297261229914546282873266737294393393935611724515264596759563394646938416619913694662678347535384711175465331917585212272321231458322531517684142552838619157198675685345533925686852369572442561114449419269599439939477963615624412144594765284578748276238558257941724218468969173819481817124785219797446355972547568618829422771714718142974551344393737123243962116874279381824125982131442699539581912763242675668423629159866275948422546925263995983576871542677941472217651795434722144346761773227815313552766739883151343398284128159135367518649656574763416715856749734622832593634293185353447759797662265431534545242293989568266613498899153299937194139182338671277954227559535823697248372987831342469136514373535681458891169544953364191548848659313365875495521722978134839166116437733175851551942853536311411225217434278611538459861622677118373211726788356163786242686446111557813386878161267797161584397416578984412153384891716267572949747198795755456133139322421318641641882635415673844366555762181338196394232336838235891938543974961991313354234115756693937561944485253876796316615111727613731395545284188123734346681284466814334893536233458536751814418512233516626936957179156825968718846333569585999197714738249382478412933165763496496156679562851337375443849124577158678756145279319995156797898612519433211632597317754781219284566661457834954232636887731822585571298557482365228255558634411426361724485715219722134276458242773984759998362826145389394831428919991799673832477296593929494757216531954914823165344172957283853265312729663775673593259535262671413679211439261153212735733458996266568357794162292417642699531833266972542537523772161752392816756824627992646642342661567128444498858281464145362312545117259149611722411359781778797724467823831917426711886226512237262267585212261881111435691889893731963598963639654296938171889769213876889783733874421635331229199123144645616966218129582439781955831774677266235544437427377793663213788821485671871584624532768568356119688182222653121764948366217887231627628733843617434812632686438675685911757453214662159812675738671199949793138798682689516754592721679652392355181432289632783331831347683275113485824382437398948253425381331718959542676835759491291448716388959144922181751842645334823795149115592263228373465367266723642837542919212589435595934387537394984223375799844939333637838348636928975974682821183939355482223287587965529956483747757654672812193653462542114159831285985416248494783673966612727318331763514896464626318632256672849335791414969482396919929614652782164932427794222476356394111726147617936865397532163313168855867524529975644137351939176893528932665513657121191926764176348519728784689333585411632211212119713974842428997448715811831336948579262465222636553724992252239129987234559991453622677482889217435688128512824113495849679726994249743439155634745933984233796728549371176898447618269628524632979969485557573451223289778335658314772181825823557345952728714845141888117463346774661671344483714936142946225212459538443139662822874312414243984284969613872654974279297555912458758133468679718655716586358653149232722847152774152965361423111466256841262671748617955557381545573342166469921492126843517768125846819392595838772735885567575387222278549114298816125973311892456868124132645329152541621694939357522624521711546591988344658329592465179236493581757148375215166514731191279523442987726678433781549173497663791833126764155726676457344232614375636825976978741246138212791488972193493356627629699412829833213559327157538426792279931866163634478194944364251911397646991188733522927718484351721565989271183283679233614884523257877996149844677325111474697294853421478428525867846171632133755656523421544968264132639889917614791727539751695695497846776497613983691975111256719569129861213731173728395324446151167426133413915211422952173392318175122382171673824654685664961557728635539176237551765174822386582372846821359447557154966844169218179961181261644922627865418398282256424851431411942655832311143395485515397251332996115774846826445877792537961956799858277432211438555587474477251758421892417399893347234533962115363986794623218861149611751759249367923676273192452246465728522163995143222217449132757813367946336917143784115871854234615177727939138968283275838723442654721211693775181159913149325454679225877514482151857877644833382454857625269893892989638443436214956325661245652416231123486856447868271258287385869571135455875615836793674538714554519275587689241713815673759264564575643726327888182219431994815369429943145911185486342572568886284971958747889515298484866183213311373486476718377823849978194966114615784319492952951944234488488613765769622215958978559362451471661197884965836846722555413517964379648211973444729523728278231947495845416263375583232285389694885963491633443199587492312837231957336518116947939648917698923257732944164264422141252892259731824181291351532973192955121896321824871679417332636755697144264842239342524431571235758458952357965928979972168995513765937379183332492579923312334565229748343778174751956781733648768131219913853151595159491362326859544153572959686516183135252426992187162516216379287238977532123542643388813368834922485988944317183239276296821968113484477796464588315236377346639967257561718178933395344316164657149679764842278445389986357717122352666528551423761776235815726752276471415117729118234311415734445111659434416652874722835649293214386631564326534937964812783861966973675323112128348798613429246158395193955894975684362489967918525244397964366311751553528426639868782318641465829728444259188976746244956393695565132896653954332334615652366582382265672347715791559719543279288425293292324453123797624881722263118676879994576817244572295624239518957574549941444461862946219313342894616636538227634483219751384639341472381218248159373762833725453876112354717218664175291626725494835567711625754446475282947288718393895858926786469137467333422326127586198668269928514166293372449149185419218519351358739471673334427129592722536469328189481327913388919452363855766395419773552455496713185295316948158188995341881348623843865136113124239998326696882188915659194813383979731464137458257536614592561155832124426744754125648249918136864392749164554898785292587256629985482217126681812115315759991652738921557694646448588741549116577273312443123281525381198785546628268851449535682929986831378336979832788547167916325275482584165979218297271153137741324946772294514556552152443371744551965971611725688169163297821821881778568954147528113251927274384271164912815534757454619128622496169683524219543974131277149853552274417337257212845235778317592359656192769116828629598548328315179134558865645681477913192846993851372541533399937842639713423866186514621125383358877249382286319785813147559772774365357451166546384622643837522257815297318314892934731359277844235616777692869597311337671336554176473561624125524416392276692447717952229634169926469718444651396287414877622397355114255355692365111713922358434174773265249985912836227182623862953257157789467184698829991595741315751894113827181637299567947429314323889361392719153258128473521264971562678649415818557182933322832863963998739314341484118987118321454994245658494895188544215175236826719161525291851795152171712153621135818361815266542214691942286714492672181141564795615693993655163918416361452632592651181381867381148638131697823235943132899216253122911782315661255677516536221317789761659512199564461465681336359178858188191235672894939425874259917173181649669982427681372923769545859649691298335495943291688523138188664229843196285913484192277286378357929583743916575654711264946837411762571752744211989854585348742285232426772433945412955393576837884652591214975874616422323869916371183146975119335159626681773221237213768739226969529239317623315534772648445168743365239195177423453576477167835818424323881291511385681321279839293334192575731151534437773159642659411129855574157325583952243299862368657225723598745675491156132697195882622132696532168878254933769496839197938698546332865887448426128716237438517748585437256522248928319847488537494559421186313723352761587335866432265463457632349127844849893538179196531951164116155141162229256832944443543471943856436851153362236778189716866165931293494739823824837328549457248794391539157418766522352658692747435237659386867333134651427738684252147338292914929954545493131925147126325961649117252795543981224176155768955256894995178214973419131532124423271398578314866592141184319426866789271515913812971422995666244513457235286411196244357183431152985753562267997266958166299183275235369869524379868915853469154132475328267841154549675241223486563353743615469518832451417626447819332314355837361652529212196769552485751284336624618822321379699354274435526832254538892225228467242783648757323651758837994635784947234865834123494816814927377816638933599632119895135325571665524889713695195523626323548771147486767215149368651432468474756433947652289388134526632165282715518273514268161661879338957721444613985874172722853344721648293195777179541138251432845798318938229155727114512234455266854368357821267288158736969266252939848169727384363536345371834477938592449518847617565239214861326485193899755478486354763774863526723173512164946419969488148246753723329411948283627937242985881259492211225438933288125627229714539795778144249222856659614943864214337638422265499786396816127362773742153818715527642966559776667296871984463223518115849985888155471717551918152911684896681667898186555873648627337329342817336178294912724474315491948139511344434861862588959344341263754543587763212793566454264623394958933656689833288466165266279387171635355883836593264721211354229165947465828135345351185368684617385244495968393757264264115533121224398638876819464377771381931211727139776943629527561399745219212776438132776582276228943859754695162175947466363879192827417696139685662153634547676446527661476674164781436966838951616336815657258264969657515495649444922726564844354289193612899923718746212217534181932387775876639192642128124691978579589575615738228973686873415796241193266692985568663743433256142499258285537649498239162381644849636148382838751987734129163619588352663731581291275276867644133543195949555548574888388735153239981826219989781495296862562929898792348299712728631286632133424274464732862398266741515662972217851184263591813531355265726497813494848671582119851855656361865115141541498886556945564963494341442846432846656683651115698452655396637569527267688613569272451768993526762913828786962872429548937542971813922616494431429664436197238831989434614599715857695986743726726241291377928774269817625195476581114397479128132425363567641998923134563867589527184322715477157374153136719357129199523565495493963726725678999184966993747164142526418847738854533349992456153236482296574861578594492616474583136812197528167513945486647138477962352614672739199366475353915694938927144986643191599787763424715221698289331296855478198915857891311834523695468484458218739748927595968173848216369542635742999799327983737143543394284924985382364863565935974835465551648123561123137653458252565677441134326213114862298695935913354281341633438515954291224448167765789559366632924612316251857764387818287322322165723121863954741872632999688874211411823486968944266931426547715287891412168691171595391311451433391214426569132665214939945562621237828395318981582955428788229764883813442194827772376432341256584956811924555486292381316255151874796933381491827271228587723731496476352534644219469427287586615185183234367747369318378769955943342949398681783481625812441386958471218156251423631595214882797241283778946637263725534695171627239868447726379338663619777934686683836638841292362378755439175442697224831141788243473683427229587224992694361328728658639832441442693926424541897484587831913842577185787527382113535953738382629843357793723884552811288336536587289947173237431264425651954326495377593943331433835326682198865129169691518875155491491923575542419121394621747393253226715727238693315251721731464473973997553321925132458373549865358451692482174557885862161134529671426561282627237772839152682771275227352627225256872176528631352675999838755656922742589138549649655134246113975176114776194349513441454796886565427432113948173549258174243628843332969453929163936269823626347594396385679176624332252948538524444629943449544562969797527631972992295298381387355243522178824213948243112146847487259935737513573268169287224482692792645347925322264938675561856944931915471919737175366671252329316316277826176259546191832527158146227769743147461216649228344267437774984135412852885969682935394931691756314735228489298812427571371127568633814315185273327459696343653443138149711132347611549528974423539372475565856217714667847354914821753332975784891625149255571456111585997851956259358412556239233392322118985749359827881132179433333876589665759373686732438373194228942638997416555272123625162834383362381538577192198367318392255439124733358243196836736988852851258746627478493286961617435713871718668354347638184267136497929991823557997139892191463295783115778112115397512276625563679449261654194119752885277611316255342185659697446265268361287387119192884746712638179354668928159214182625765575398829712195562538284831723641657375713613954791612723492724814628151376636846349652543743554336336232129928495457997671442877616282378128188868196294117735662385894784384241413182793734376683625677399527721819348256141842491747986485118465164834428939867738154427146771566977652728237134322542534522941447313396255623763598468127321458481618412332511557652479672227399336536372993467888495899433319676214926326619149452677567253645686232122328141238424564697536152376522462426536219151119335675619591336144984329353658543468442247179137143473458953574446176176548923286716683687177912248425838723937383445163636397295836791166315562167521893315154366734384559591239713482619441414256719942659145764287268891254125937312533198657636729268432835485922623441153566741523633538157677596452558286312614694497561594966594158821941993871661726329416983848984835734434533685855745821423791311143469676346223422924886299991926451395581171276796529597923753639262526134311879132931517847998619511991116141842595823188934411151131115891674373713165981913695943397457886431763823453862267173585618787292116852978546577814839362251455263194958156734789684856727912514326532382574995649565351994531914372514559798644441577737889665528125871944363164625236156135822144382142532336689542122174928812114211999947228296426964414947784664957769464793479374961312673144483921581763377177475335699357624173698496448964251233853878889357394854653142413274942465537521661327634225616552714542571253435124334419443152548979555129522371824832894179572927262817357277888283593473191392889513824596922684182137279423968294665412291458846833562417965713773724663166232599222875695583814524563837358999438711213454998921633968468475648841115375327672389713557152768736159993247455731973733152111492723164933231578249739841784364218797719518161888968855383369625787816446361572942163436825372461132977945591555984365122218141826979846626386989413764977417399633565269234459521529944766192879951284325764957584469189569196545158114353548594995868632336875724749145218922893123122613748653167122465625915317275844511656426917755271465555846359611791181327836112584158193796298247515423788974254924292153538459772762754283871688687143198766856421835236843922661432133256417854824253353654322319994421234614443631372169166254529971426228326728433756316431663532652116292667735413434383163811776765329639134462181922525586291716177939174831748652715674519173413256649319965759592247197652267693784745998652399541479527347749374264474294821871637847614599865613537962673521294259297719643427886779892421929237687592781687725443128725182836217467544571429248234775831917232186783531953183592911649237645372442975837973185172588219179996945418672556182675956851834626157179534254493822431121242957417583246573931184651425813298631431541528738553631292171997211798765977587789646549427168637956227564721843118518198124538614355683419942471153159441612826133149763834336219992921169666452347693941877377397644626665114547261326219827454574712491399369713252693735313624259457335643918246858517797688471174236644711449719254146994951362765162325581942274144445112844894257556963293462376595491846691858554145152455424497321728719632199233862769156459162114159219666291178279848614634815552582855816531634323447972699369439563751939861955356618344839469339338221211389339619326612125417425227752586363858744931894466615989868975996646865719415176796163133768411724456275673522553247637324144139427828977163379579975496256729858386698742742892182293881863267738615656495854973929723515618314941114547964615653753164342623143227233978236934825986687741635298824735597655152288723358852894362869638943364445114573713638989496876138251293638222695534125222574687542655269622542813534979676111627318441617487836861367536782233514882218137172491461884948219664185457585885485513385273535187272679591374116197964185492855869346268137149172567798791773765242876262159269481894159872751215677918459253522273131851824627698194252812123122682229422426428925582945751562656534588233171958255627424212688771334791183936641914448617595435119352688663352432891722171933921916652917844987186613656882731628492212411327935595698477941217184223162464533128194535874271423768116938377288757868352795853823656356499234471729377181738252792279863878415151146423714244111421835781572248444725179497364964484136847339714334675712881626175511389289823151637788937851578597814769412587935657623617478739823665734226392938724496121512291853181737264794334727742628129333359741821516331661156241845237124254663169952172297475972874473168169897541379242381222797942119919376115768633448176286119221953346169664538476167931573654446135556141645793382576654638236172564122549386682794262591738643753251181684812428523142445765897281518545856426924394294957444996834696852983675899837824428692153493495835942673275122318327249455185263192823855944696831857953156825643293532785663154362539686384397221785219293431654186128656944799261119262754117271135767215563252976353766883711495195487458367876112115781323156833564138785548828927892192279998247194213427275518196111464599439617681362252137647112442671679387119281617545357455859767599369956545824898585213481558689476361195347665618926915665991393559643836889855856112748851154568499919138845314168128158146465884574414537356231257513319759229153348314956269347948526211717694611436568945247927278247338951652346468642112757712249752121598393581899365556173137512298833477132939639524111413132573645498539826619622246695413339477385931632318255642949769726194141857949542263877421294145339248229492947473723495389544128765746383223746196655849513349887483786981292761892595111319652611155487972926859559661954776172878115792121969663494198798427218738624832375268321248955695195423313525131656874891668217832162772473471871941435826572746833652224421927136485844139518941778219121993411617375572361517592973576794938662177894224718525134419732966168829475153894942119628119665699666965781297555916472475526375588311218272697958313153565574694837581559375563658255438184177636431137692516851678851329642188925237213654312561495283536611594319161891644177445595944596125183587694299618424142359716388466784372996314686635426661233568981588193753276499188222639145884352357754898358328475915227154721123336557112576245489641311172623751715276121683361244158139297493512929236179582528379859737815861739735587254731711162312443724177742477673129722579161527854654992412135921565618352686153971246164472348436819725381938631338731414191566946651793313716412535911351113776865215788146281835835386628584299138453658682494473294943919826929161311492992551348159171121657366332835475234195842934673861936751456662262515897136337323348395443933116812617879678851678158534332393422646831263395442295392381754581193222739552729562785363529571943478328321724713436162247634559486563921186831575442343233677716569959956173365882736891516697493684181498117885546173632981316571698439371935277667628646557631214813335897949545389711992773455966836346221628566587662493836375184335621555669275953938579866819238428982778178699163467472283337853815676949414654723583513124196424134356922176664637362923861944759244452652996259565617528579624496216521941314152949929453325298389244387213373211926281543468519439585668212268595886775234429716386427748895529656677691321792433921723824266674481659476457642426285515526818281133961689529624574326982491525876719975729856543236428453697251886778284469724221588533454653982656367744437595637564412639338671813132817111737516353621595186697359237454577927852915542581364796962564456299995251891813554356829464233623756132227288411756541815336734194658256417254551815532777445263221846494731538753351621127998816442655135191495313635253528664942323651674999819465993158548421314391261382412585943867943594448739494978664448747687943165265814881213637798549798528277929828362357821357374752455884692393668343331685324824687161815828236133354328225227931967757457229247432462245712468585164288965879917542441784866235189534234323591489866419172221639242993178539896597299599755492655534813134899446734339545628126625787177359257819447361917787781769922739967966222971956146913546721444287975399373512189959337515721759157573128298143981695199396983263915133166814583499134213933771682672878964896352294556653257114771796293584157167168274782345883248735683729892745545313292145155628753712189823372783235948829227751436467114886591857957894525259978386514861988699898773247138697325496121759257411313914722877939855331283675236255481425758563555936465886924672145741198517415364934667638127843413327898212629659324955791814712553332691282289331188484882665725236199393964814138829395159753767336735922228714886452335583743921286147478847616119267516619521235427264347384315868334986436169683842484772519287826627715193619677724914955437627742123776147122369631531456319418645559456468478624339645938236266929741225562683295636565462271486523148151776842114569275296427367347419249195743569334532751574717179993357985731512386216488889237917673181555759849791462835582145871982635212143976318554273122745735979348122384961536358649687878212585162265282332138186829872193733871714152348735417514231257698272824315655353796221423297637128488763851967439489882889741529745122194327175884273682131414381497336488611939962737171555848652635772856157492344659553419838249327672796633691123439316949154293496675314888981169667672358961277558828637513329896813837465444751172593649484558358888564312212998183118193162516984789433299565451447735866179851138851313616361546619122436288466485371428513657382263499151119155524414679351266971152282233235979375323776492114128874227863373374487274836656726868631779882523358636428221853395873925281312145265721734622513844316192523617857411988398265426566752693269287211672993645854692896665736317354337294813681226775531618859175595241852869214328622945886539181239858172332965517834244891373459367349921348611864315399835712779711969767268684126168733276259361964578935633134416629312522434261883475653698334159941756948231898475619265227511522137237317667625398547617128198943637233181254583415361644271423581976333317459264214642625431859696798466527938277667872399167687252958962311372425446135832422618579427355467939538258578389851271551685125847233865467439157613652462796648862297631643866349477439183484576835223755857964122317648959593456777829822217734621455998615923483544354772322287786329941525516523766641526513554668948395335572745273761525259431343618737345191454676467419261616525227662225516931375561569321984919714856313621427296721296528458773574219137169782272881927993732633941252348448195385517372688458661397862581137476943591598219758534276462689915183314669143237362112739992142462469151254765496564564382324432641547825251547115172883949328644195783339352719861763768997844929951469263456594962464311453114441223452994663552721513777171384977856497332828765995515536361123169144155355248478841695782313624464154187122919668444673324621154415489287945732364745423281864384789366355525479366156286324184918828669643171218196876461154581855571652447779173424625315897293934151679449252365778654793415816731223917797824511738948178566189953633895529755736268369295497757389165793266771274139442761115525862912294746652719717625647378924937893491571777148585832355892657739651444115267966475143644964381293338419117195964984214797399927562884681645432329573449413442868491823479582414478751279396786967954669215181214953375165567648398216943762266225246751392557132112239435514128162773133328534232915237319575816242343455421984445968383363286414224124415229598644894894256811127394822883347734825648297742234572354597377473267932668182916368318352379894818998748557829119757176498278598653972786426732176163681311262795546162114272872982198583939514317129538414158381935358836784585638448173668758421612797189643224379321345424532411652222365594411658482563414613397111715145289247965695188369426394738195238336884436185352878614236942435573663241959168842591846339411697377842684461458276677817951265294255874924455181111134931438722954544491434529765566134785615473839713117964223643797379355147689862521222734736623781139919217596142556271919433154157936239454894541515575564391134188347738871537838875513173656363748824295114562248573338363256179717599238674594479436426818119481663461522476344748937647495984734563373778265927175345962312685148449698344955591662681143264178847593135354276459657935236959143689625278418133842262886311523389685127383599557339546866722669811243836832384213282328829182159218787615741769623167586453541411697817639226396589812398438555889365854115231985324611219662481114173334626514861485993389437296671123478481569271962358529614969164119379777394249295121916984129446678279541119225664553155442465213336511687571888836829542378426234142792131211179763419864276448577954756478738123871899956942485582489347153319695791695617342348129488664785422972416536128568863418392817433267893928571818954276562179344831265151291198343339381544214644373414228342219743158747944712755988375278176452793425676878118479692225683147846121193448325588529116491395124196865812465455776473167152874647948517166356895985249425258717532197396749417639986538295751254349464237531426886179696546747274885967689384631536674956248524119876756481553418531968441214444391779289151131329861418946449535595832477985359425898739145431114678245596116725742964498989344885497322242228249971253461386433973818623316876491798421561878318455224327799147379141864944237251235469374656158779222751428418634642951928582848379378195437621465561655473512745258675784431921197575226848729984181645118134264468883284324287236517169951988635977812852658235218147586771291556432994941636883819432852137518991626717822446594227546489989181428148774798226118748513247275533916992167164571823891125933187161715493898745211823339212892232953542545382331416381993318845387954176657357113154291211525332782597767152651526921711521245451715931698191652453799318191238883742637316893622249473589733581582285411821425325217719132297433781145113919163395436632742539211284363464199373934277813129821125539846826696136912415949956947927237267798112436843121284436679734527281959619585849466235199818786476439361474248818613264789357748258491233738227823326933386387338172845733277819235838584995166676929511887193855232548469446785571813985417429137193464377582495562716424183221568934261927463426844823623583336318313927526611921777814417796838245317481423111755833974219818937291169325967854252613179263169919388752493693622561524829993512425422155264382914733297887388213533964634547938695538218259782848473711147921683621911623353151574365667112237663311152947893514345434536637154219319924491987439475253255857415167257623187967287285571644823776914318273293889844678594864793963828713433154456298582323684929944294295829422146438377654781418811694971558128613639393951289175467499818765427796473353222368523326378519738618727627351738984161519927323615189681122159816878217753896747151859518655357837256988961298641793316714272919223276461393253844228542929368388191231613365924167677647815314335212562991523273947222847279398988541647747269515742885372871188667963718734144993358463556591382463217185323334254411337522964314298563293861673258322294468594152594589348665419338345341466447626292113518341279498274567477425731112959365825885321431254636279691822324626923354272625724773821687564537477234161569365251593633879491131595837643629751622754252427426589383217317541694114496238998329455322698613854282832379366296953468144559573839621575193225795844117588936947947837722968178439572484426422559768816949538128181142865769859827188214224827443244713532892961459115259367157153157525739277583144799614795825292864859417779954853927222872396521168428434965728554865481953227475141561363813362135156597385354664694591884722512297115481682379995321459488348996551557771475635669648841652347966534114528153462322463626687932522954228319115823314235578762222124973438877268836224175314645224913188584484655634587158311488847157218451628364668151365187832842655826126649679353328537772553248836386836642545665971253795828814632426225116839293532229262339634941414219862716327338993276412945297566188891573478318325735449422619139138949872463633114115424482692396973837479117742676419629358294658835134484417472563725555442291534168196679518759863292563358656688691493538226531252415284235588149524153653233512356456242446172831947756922111658233113239721115499267119365343623655512826919445994418646216152558769458692374625398867968249653113411865118771251783312324327919194979764376448238681744731962284143237439382915524231328149499714653977339535237158615566142434611184442472158238719728959221942738895586718491853688226748774644193249573946879334887994272793391945238222263459834461645384787617446945977272681881468428813584683264624577395622146732755798521627325449843737579889167451672481674257577517926911775928317921587947594458111259571845957974588357281713937465565554961799422324551162786652514543892982331997666359449344243155366847148652119683656352512376986743645923786787139487422922317494232391374897321183288656665827844232576981469364293646357497399621592916385931273742124764817787856967589416428759828554323212634513235717213458755863895163663942764859661415883328638921312225718171973431316842612353149272674374969429922534217472992276545197456992992983234323944483674435373517521485842523636754649723413521918824754114514815925838746825196967492499283947783143857725826917276432917822114768718647564265991741584463511745972433227829817711451598183567761352776754569431221319727382562292298228443131656515559267565215897536282118834767153995568234189399542816728259686662511821222256667968482384673847569589255471149429524315542277221491188812595541212552242637426923667697989196869369392733869765473583365465978414983868699832128747497558899221574357764657545241629616382211527217994112215587243151435146443116681368182414228962219871483698546392446998689424462241976321429776965819332697133713656282862259299373627786955567488733386499859551971122761957644789297361687523486121199431524728452297753129193394891457589129691513981232243367377857523122121669326235195581129343833375176335993733498455116512571734839928543435956718236217514145732514735767522182638336943235682475311839322623453192695192264364637158998731798458739348651747928896424531988354361117189729789756896315476556329574841985142829164143311541667799559513417585484847131361149281845398469612125231355872544971694824317813883821623329137732997853916341721328116874913218475328678593175136711725955397812233266935528628473255913246413979855233162152524166929339288339786392287722387135764646629979433937752299159331145295523291935942429423213838575714224181936663615923448474924268112146136834321836156959627318129159765515297978764781735746946711542359582915713421298872328774136731844878792112664232164193473233728347336554815628873526463176987321575837192236277264275319771337867378295782719644395122917662124264868676228981993212483475299869596718935338913359242853644915947547965731312783625324369443711444345911594111473642599331182871811875768382339712776197641727228541295746682516912387944192166369468761911449734563492966183135794987233573622687713919579532816912643845226484736535125346395735658554472111738454289431588465878388621311626424222593462541225844423594327931912134148552887646923417291969934192425471171689745334915936256393815157851553422486187313686442573192973189141623959554762463326836314179818525537272522485593834488294514166657337884294962682646456112239145363354151123194292456514426935838434193148856443334166457761895578653851216231681272544273881229222474444182342863743154714945128557137461793246531242925129431572996194261369383349163314431227343577844381835623949214858167616647934982864716952741165712424139498676179852144636912839182526259444179979887914471881917748228784784671162391474396737551117213315677149941285347876733335835975937958726193479135573694972639686299695425545442681974658291712317957842859724744711351484529995229944892915357832682865493576777798311127516225616396753392917833379976127493381737434773884166116637292726458433232239543215284279421161524732663749846681136733388896519994968721633926347324664218941574321739841354848533524282587412568351193948415833441116272667151459551743428576323726262394739174232914516194491747415346415291276839818456683963131398465541716285733734243974221738853384643811532981316234333118831347823396559823871887524135275871372292397151114948523719162198424115865394319521748488964844723842414577811769589221762825485486323988946195563368917635338336975618721142695797435485566382911625333279217233379422411951782222278599869545485263726219422394962265852126522686553777771326795169165111351574882885148131732692944834863651184479794856372461484113918884361637267417626514645865298926367368281722412798465853228773355387956791979249876444182242241519969516395121782544897461471619561121136978213178616974319556461711988685656561711911285512643387235851218652642836584937574425314225483234385698394943887293459945141712267643374875938325131813593218449184426899773468549138431134281986552992663847284635961647615724913758154335249671556898339849826179487786252192292374516362821813845289587948468135988386811171252254488739151313761533612115885175672232935911149465897674434386543481143712948162135133264179128857726425861855868786719364786676111669292383398371754835288142219994631888884736144192494899362843685586739418441723325541781875982812726187142795388762995539444713218128423223816397322533162735215979722546245291272467632961481596936534763237498179137254432892617415797237182692266231595883322259446364828442731341688511145195432453846341551795751149396452238556155462995448337448138688213419296313968416648768288331545126136899516191382522959126349412391115833149746367371312235514219732145242436168578827323522384339377449487396367444231433333296191552524439418536174228925193642727272857829345253225447569117983779255461187848452413668636513233581433452467745342429262753738864174162993221877472832149355474458132261951327342688993382218468453368684317528384548615766829189441776827178718191493685561473952321961913511791746189621656369349445347169234872988757191341576755217961164194691353195866363132827115142781365157896812386939861881548427113222732753669731875552856267116832794225148259982292538431757121493745693867483523165854127949646372737963445318271214663433621192372688856355249728346172642854184465548194614658822917138195383827835763824725892131425247389597727879878418548778183678961235449818618299419629292787652242593727626183574487841259935127957683177917951132121943138269987855289281669846265211995618161435713917266557452563271229774233855597378987279947353114774524927428213731353775999113333263193361944355746317219479541885117915919193922482478723154816971666894121683538533211854131819684427577696261336831188348474325851876446839866351686548139677457533985486442868675961942398647681849243851274578434244128948951686223424849891669227169963137794945217914158796214724552472644338426595214867479288112877139467566364434156746138117117766863853474851569441167652215147481615197167617959797147422454334357483335494975165566832126892767169749397137673124556646797897939716571499749498411727677236376159871458824718594136644758487557513532362479922858437771648282118832717222917953535217312223395629431378938118134367241653879632127229921187699153511649768145977754971934454625722123623481338367979872457115323172881293683941967655679467849226631692663461472776423841738161654332861462194429983985521226452224949625923176369171234778685322455542572135555489246737579326758638428424915473541735675725945394716771478818286228715635941382493682517667876128314531159898577815893581253189426373513156193319797478889585893154116962142522552456781293197552254865224839436665577722579372426862797544384736744755331722117817818623125457343673166936435225195491121822126432447138257298223937161238217475532881351673497326794314141137233864161558192533364374186211576191588611973543868422913718471311131798156514929315871764743771665756771121783126526829844615216817527453192224138849352693326126799713116787416751936465567275263185835549346872372649847165235323933347614691441183943424437545626988126462653954357149811382774177553977431322381481974628346593114836182734837163134313661641523886597133479216658756267631296426139428841817487695845516548682318383946684622817283911572517554121771738574123486142227492494629213875228916672429129633157954741717227566413937966351387374912599332973115776512365694448319378763617353274165516448898125148699622139199656614362261174918672278224283316955929438364255743615522631188781812732631674979629759815497373111952321213218444688282726758153479673277963665298994622627141717698151131269161884454947373512141781181215814124664187957221975916877291317926761194865254273794824947677571521515139463519476734425187938611552923659535227632675491222745885231879623332842889644473741332951611773263461843844925337853137678152161131371427322639935275314947853157436477542496849619178449799892379733391229148254866699746132648453526483854873146553873941842118916186389591664723575776333787321294434322612843639353691729611287961362262348734924847584628441862485819938854962962334859516314231392211318456442155572495526873124984536711568513595748211281168845282736927513557125151278738433995537594485743144127745977424174574246419235526574124198363747995169261159921676459261617846837995941465662761244347824154173857352688636713314616693346342413363511218285746668715796642368282444193923956983493453771195122429527987461484466937679864447797897111835632461361391625519732949492316789167356688159862991663868567349136499184278646551567722916173449426633295672164539486425836549423263835271849125236614667252861164427686196491911882942526157349133914751613853137633384717994973879521186872861595238858662858953264424594319181392612758597641826513968386283314395533589552517615984421931174812473112544142833379158545925389684729235819971813887263426537234621773747235185333279515775171473291533849221522232448331123952293111878932141562212777232556215292375417485481359237527729214279457353986637478617161115465579643438929793577314119774494849858896867645719114257743754464537196221748638154422239843213877532882772775145351117821472532778695915531234423829458692424182261551278227761759989118135512258281221822421232584618268656297344968928513893691568463316652186641591777295743592215412775232619224661619878865413968874228162239396221636424965539324657436388569281856492429676136477438882171122613191488685129895413259183181295993321217518542453557149199171426322541828267547331875864388566329622286283928378193934696671548699474812215232382999595893578521474591328798691379916172898864277729582983318853433174639854316351859837583295931537112678113195899738535995654312495129965316646682937725155864956427179974461124523624447219756232431268187211334727664389254285759738493153223829839513419134954242839747769133568616936167636155958228236577287794515198668281282418316477696199319641542217691779981537435416642785845437666581246222236912788191332793828526419567569138419583142292878669564132746196516721519836862122313521113213883951838529952159122211631163365768542559745821129467966255524584717154461669925618596876428231682581728837192294342948294311115725712168939892114844652461293278113869536842127799259595327115471574395288512356161225714427863249155428371655767835752366781493315241914125416157752332996872745593367886526334496396451872857196956126784339778887614762573452528792766163122393927974311436849384574744286675794332477361188113552585914545614437556781542656363672779775235791373495511866486774354482412561886737821535142967614893289698391178392997138647269172157797598571441146182981336331712196474218165991849298546856342217662646839558483811981194867544645348433955778176898169678991384753229511162847795686875635651716592879163773614315264643772247321621281843244689191462268422755529512782998591644315279284188883632795186159261939325122579568287968957123516364123822926219761716492939554788314122756726498732221491651969577543523973569397545957274225592865252361819831946561695434923571937554643883311136312141862911873621562563467347991631648127298432356847234368239229588328475351835483211635662311767579333634813688453143765591748761932752444153917477653111298247332646761831284139964715817353227438791556876961487837875531338839264511175421938253771149667518719833887482733515212861635367763526559924333495435291452326238371515322445185873459848426344314896191798368733212398427725592238837385644979674789188532258636152524255728896262638954459986532545681846223963843122544384153114738426551152939773213715342277812824685748518495961956481345132811776953323261257571586776656466837669427172753911647252121892844673618811911425864972144811583111618392421761631675338462734345574912453121126762171966482319441583725829155947627197162285693614428853467163592473313892343672765479758814627877614626673147699173317872382955294113443687963489113459561771678562564872854833161521599178196649853985812312143317529983654433128474681648723214684563433663478341326711137321711716481649781567957821765223681551684616669654449359694137397259227747784558365918398882424265733824436592622392534676774563768149224232496521653238133199676844457235174821224514934455844731893898729987916721913542215833996746833995595196637275467514463261828133279646823194625464119521869245217176592457654896631772286344825877251531611111749514517189965942491856832929377442766176884582659139224732982141256497946221658546653211712382383299527986546147383253216663867273245379224956312561774985588848485859137644139349528756115129212614523293859462342482542317468949756375726863117625181258243812453632681419826723328613617239177399652939998523149966621275285126115764433933519161234124366618689541171137964247671662138111431837599433363527991119254768488135517171143369259831828487476916384777155563417346495473363728672599388689143758571117492487794217157896917648327683616892314546481923975631812551936178755122657437614536441539416665556488971989577588766744865286995738669452874331247537337373295294549156758449795953184836575719711855823798923863165575889447564988482135363545581572326517934322594975313147918772476424377781528688756517119435744592382894166488964596119413828681563786687661854515765881794857631483785271963458265647983468398537174258678372952538593421934274773414656485453439411169638566861386296337112163213288993963396683684195236381776186362178423344414138895138246241318296253127142319184734167665185722756686817117847626386762785529795174597133193686156535297277154978483511331351994368649133438523531451293377486919859442289935851442191758594429858287343415224752551449433653489863465942529314454549191942439189763216124933167587613159233926833588886361495518166589548742786612369179619649922967429949512163292978962854463251347845642758218736972671685142588241866696985153387917567712623672684649268412331445637229554483466793712425922471811418742516658119694927698362674261994653429392245421614149744375125311431284311425319978583492212148126696623242243899922433487818317647917735726321513156162728347352125795963973371422534812847576273317734855482835444751961917582543714918896617248263673131686265324129452421548835651249922845399379673511887637824486329322628191195953935922256169862338938268186438821875249639462789127866178718612132984231874999374362852655323917153876413174715227834116965735752778426647327743877463989248317226235816667411845257192425192956817774472932917267575874383146115469886123323598293937953273664333922238811112593228815117637272774576972243926425623774711687743652243669146814225617282192162554246253923547295179882691591282483327549227251252386529776857295345893446744648631994323146796145336567824932713418993324635762978117347664735245583236383195294339543524943512331769523528633968575143144689538219584634793374111958758589993663826573931244382894674984497823115937831472267151278549616764626719843823295271413459922639484514451331678833444594461637354128781236728799243742584761846894116446983432266936483892452992441319554739996127629518964949831758125432196143717532641144156223643979575125832352317229497714528396985158336317778549265996278422729726456379923565169732617675963281251788144619133253212249911424332985191122559432265647168459594561142862226233681498289557465721913736364546344784137448943115215469151329273319914232394211219685593511226577834867199917223446775632153313665514158453462652289132275982167158881931452514543393449226817179261969536245815617135792894181676853889658838925517639536323273644266987655535796783654263441424289954875115481445268127559899627848253977332281515141443476834879886782799745964538399718932735644181749185682283441186338598534567246327125694114839396671271432954117521765267814161723911886244498371486617822162896617285437496581442685362365545546593718145858274922163297212978959327236831487164165921292729575465356522715517775477115356254583411695545296317422295379158431272712312233382397189565252942185478527123277257343591826883691939366281815798388971952343744635122361585971946954986111793479342945746373715417175222892793528311481681661321594144415855526543273553231747356217334127332791467515915969473538424667657394117368262945267896144734725178388379588823374412172989832523951473423329427122183749397296262744637531688849731571161271761495769145668137425133153334757276698563932219917348113815818211627172662366983893794273963883148815366224875597836848791737466196235638952817379281125432217838437528657521646697185149231272613182838592923649639186382494559284941819373733751649928522112911427121669728871425767589692849673317291126679913258273665467328863145334779713628298643184187963287212928353948777982789141352231365873657417452772752222622882892376445264712827881194971656321726142965963956998645243517971831448746985619674291297625391521143572296368845757687189512933884235249931287469343578379714375412322956872659987414111353129133773843198972196782329177685118224188441193935612233765256183114872115282393431933875342291224451199535154879462581781386882443913257116166828196644151137618784588673883287283357645933567897931742699253358174346713163791597561214968617527223272252449713344387381976898829889578526497773494775132971965349546491839974133442213156931335833292421512646728424138696846128912821641323487855347796579664163473378664678542162367487692688513515469797832332463493274819462582737334534847851847781152322756311124213548923951361232925781143523921222762194365218591311211625799469999424495949654342153799779278139541367322666159122381146641584251945757183863443627732328856392815635351153516134649857761736796757316381887566783144445512861123418411425742726563212158377954238633183847118797193796268688252692465999382332757522641145433211413915264339723864778418853611419589529144163814152178151373337792644376117482935119338332412747932842318721345274169144178341889615221443426647356814224438869284544361617417185344256852347561515189981874549312865787375418565772535226235836547174736137953268728717239318186255582915375336955833535948862856552223228788297434695621757851837475839264344871646283536869323728272953823997936664625627341866352642915462746653482412539838256755733379999624529618237791717782612721112956857244176983149114913765245512173855159256489416839232663264219788543512222334726646356482591125761221539891277469394254278736213485748138656713368733526748351711889191899587233546233434981958348432849529739849142685182336115642381646848249623596712366813684999641927119963879644371925272697324535258631997246834676123158718764816316634917135196511265357123822712627924124289961926411717644325246342591448691163991891689552244473646933639888741151416917379341172881192258757479378242859624146129231176959212537844545729386987914572784176661351749752557954559724653216324133466199177152674673552276591741786259552923425243984254332878922636291583311636473899387541517811742933512534495577714616151393534567576299941219619766866898899984837131574173676115659986198341395421114514182794664931198314136411878554233129681777442639189961526244863292612384664316179152258258241457478122685476526187476692565168683731982877783184316435359172276522324296113561138726832774925484449498396243194444518589186367251959954816536555728655764241546348945858929515874394162816917629692791168264591967328677732946254153321371865474595831188436819353783112652723934868469963374572491283244423179421683428263131942975273224852196374942111225456542419183891711415143111947748345635773456576554211827563293166849557357484792192631133837273554412562773855191577254594142476615354976541126799662967384195417479172893635119837851371736564115521253571564759734797872622667827663418816222441124851424743455196577549367397471963334795321412374243547252391427583465637741556952293499834922765177926636658862235619987183883143745929282271928299945794685421953814233743296148132199866727678458738176213845887818587312692285315879398823571852351185686534662673665577554137578865787677457312919349338963287772832478854883622632341786891989794495188149421553699265686437882664282678746596464811399877271623779347454747117588725534958235514311497437982253921361433735378313593914196732829876922553266447968439996745591311171516131338311934119741675217922539159994237442125234298339618529697381237245858867647522696152994371524143764162912277717937292371582183199397795288412354452573877689383299217328329415394988461254817355357328185574358924124585834176117879289953777936555728838975296858483942487433318229784268395298582248441531119865926188659686275865459571422136693542254726659431928743558972772158934391839341742649537719412977948444482335336393439134962966196418911943138591537284853752847216885268465493144843474445618321428216767829267949675645314245647438839259249422246742691244296134348479315599281819372476163416146378578278984967828681618369792191963532784715947532959152477219274362742721442792282387762732425562989349659638262531446946257562582649328174892727338328288363948215142145721467855431597794528876249118516216385147567843955449794289149341287422747288661143993559669781579866887192855238477836191674578372658714863812864992263211141382726149938391346491732525315767892197223891248464983842948216118579326765118695912398627317222932762952614289322684464553112869173823931158492825685468197178693748929686129322362343327272824711492579375638334134625949267216115726235495888719157793821138175886432131773566691136428493586579362615532538465627249719995739822223211692556716688826567354347516581143136277258391243647849842758266435954351961922332351953617931725652878413652487491316135286635249673532723366568846811791578414123421379463155895894179623962563496179597179644149567852223781458314399489188346162427392463583693581131732224212548735185133153598947663159959789827361113516158378273531534239783248774161645458246882356482825481565384714393637271561915983398428274928442412525581877219968135494425154314252352188819878239693522428942293345268394788512193279492271592355689284111925638352541481632818926154631433722511349132321191634228759422976398785831497977912134132473652157342445872891481679335484689318745716712787572752964963696767274615341824748826682646621626934423918854991333118742223734565832192849121645669432542634278458125845916677885243114528393223128966275718614832214638837767946257939178428954528158935655224714599935514985148619657848171496848316735232994482695826749927436128848726139366385621743351158915314159433413333934988533889983624848177895529116654629999252635184565978399745991651827138546321197632693762857925753114257438711928426539962434866187914262137474544826266712436524122292919955841515953124661614541239188819512751338876561932882259268316774279428812295156875427967821339923467367628497879839852249849265924299366481445526415853983232467999183627467639264818867833718713174999779336744769952949943256713793852616722122852346986421932719828524153779649379394323441619455549529722574375313245691163556135726374829781599699382277527425772834989586971343572677172867815359665177828134377999481436913588529962613454355241576294463245253466646742146173965652717918548261849383934844249532974542192377243481175765863891482331189766923338746255299378487243837318645862584868981239758361923986616319321628747243579821858661732595439325379511911849571446915371821597611976861817559863561619315381742561333387875631115379948938992351153863723589567615243896656437462791186936432748878424234977567581974687257911841156471342513863663197555417759428769331592357378972135934668822552462865486214236776512231342442538279253192374443971886165152858534792339923339393315217283954884395667327673939222935661449594223733117618159915947889239987532671641961836957644241243815216328422563386468394397824576737142249561952643644673514352392558338711531521936962685257193986986821852397491463222226518318929417995357916391775932458551594643744953238892516668892889748627758162135796533697562984393935485927362542741814534311359133768974213164843949828782829915817216179113234876169827415623257256252149141648934725618521718498388433157232599786613889154364416436328415668456812314711176892942818721632243181699363396198623663116214116835988677487146754849976445163245945812534251977479367332387777238154542223211799986632745315252743178912818227139643975999863679936834632968748378898255585138561646683417239888766257965275467811152648195583166132268429395662862967158335144336823522271438855498446455854645281665183941334629111987321538385449251448783382386674245555552451535454477453167232676577348782639427871597915345824423861687999564427884552312977814487171493878636875733918517447421896485894697998416513767584563621394491838257199184684644753227521187616581627839954637354582651711895844528166755525581528897167629516629854995285885768873517652523919436669184112551878844397678971861229921793931378712513243844991433456232365473211252642523665531669611244352158336486249915244788426923726864354467625553773763315244386357272331382346982898128323685893385244584522959636347655485867135382414493836836924172416977531474251196184667373514589946262447677529476452899784952649149974817883158365826981916264817852474436575243938719536511563448476557532468217678999945315538611241194157527259396179266383911631361416526675788439689662936992992593435668321161368746912332753945426522452162523488485245981688392132136854521128466925921511687994455391352999675619941992295381335243666551888364446832547336988179343477313866723116956691668597216219531686977836837433498251235255711616975798741341922581284487328761371513968222768637813179474289725145398242263593574526199517683322594548146129344414637578639516598629914233551518398766496315384173897361449346149341462567233713289125817983697429562837698469466921796298872196483582212936139824531373942587911846371741923971211913272567277473621471726688381351585517337465745465683171737443785939422974585625717331925892122161554221571798379375916197472282699287527981269495725839615646497292525542832714317538862853856787556827257569528142759769284843967889317148914171366614713472259979738833191119571223779199764481321922348685327424553992231929898241367995846188758558814441429956172121962976916656453889777186568421138973164523439814945722572263535452888363374663742286423867662731619183147844411371297578672495884555593461222753238443648322231161532818954151141473392722325113627828333267549163111547327618949884816866613622253929221951156995552277647782253459936822696985269949567545651855157745288997455927195945331297416117143825231994856428261712733191657482657487225449134432215245149333199338238194769272938923781412895345719114224463172797551195935944842862681638561874699318348938614613281395433674357412212381467861765611522765328997878347841134212828749354828986411226898147564511212733123254552215881644525692354658495241191346427485598633492976814777864322979923568438324658931944493482283765257789219825134953392399371942175262138571763311553855792796381541459346951728816529148724482633643789729452379447231874352296413783341774933182332644796445736382569828541611273258128711484989167478418161861899161424376747554691498555226668453971637221384496595115813724322188923497757679511726531565324942225835273151168551281829951768883494357157613262686966828988893442613871788994648533127653297948755375113186785428432243134834159149275942733157789535976299578662512233857832333881717635532993418567741776866986944412168343893838578958466269813463856618443593485548312142314442288553316112614497352453222733554572186754969446431132465793892688114234376662481855129387532151874212444138127329178622722525791146952197298812316345275248173447928556925451844524552925592225998543561522178359654428328572954827547127767534377591365977585423211987289745827613764574879538429497657516961985915244145163722639727779728716157685551673232235875229133793687977419428369649286778148846834731389626117756327573539127712683427716265673681123397627481531498843254878324493647556259887575595192286346723958816624629549282986283665764233793996855942257751836162468423384421132354633836832311932684317655729748771352422222572159653932261399498273944349139579978159189587822997879489424479717322223316765631448365449193426352766184312525412965416399856528151641759812187231113519236192337323597674655251718578372357532757364163757868776982446939642775528789464461526632167382158399595115857628849689695946688185588237616997314786591445779867344729834179766281916729162152195591461993324269814327922215141936463149714746116498897359821316145677139292792488183156337417789724474532623992311688966186465954169249616232719316716813884137529459313851771971795277799822777556871546292555257324793859758177339589173413932587181237151611453982187511963649972772629321596199542682551414711438944956567446768851959246399532367554615933456272245513555458482358724527177788221474214566913431347924596661922434636461857835638755514255818218344988335253419734466272427841289279417887673919191598952892334295424542843445953415166762829441697326416719194249298775573656155656625633989151965411574769714935446817891779829927818219889136962491838551668611531816324773899723585117426892217794562168826483722516138842138734652748468536881843249179346465437486857113761316579686665743818295215569352639991852561663212212164844576583651482366652519991195696178115634542471197437791765956366778272334258771134474591433278284546967492947395265864461927198369217178416262186916866721642378666445735553446199537155216247295255196383958533856257383866243938353478161946575624733178956666554566823646168578118467587775352385623741767151759272312786137627555798212464798972667633229762471545853997845222495811934519481672491752311438539633353424848773295167752416523191939167754981731182684353982513931174219584514221826961299937219139262221114519689655697541236552941724424249672721528875934917949615832237379826694856748215641959571611751319758564517483825589292735871182674525655932152329427716873589142674558797155927954778356741962769248824311766329781478246712314199431353972985346644981858818233486935367779999753553245243278997696641699257824232657676311335726751216153297442883352136127116515794348445612332693537382642361435116979581331457942411715278545651213491624775639455553512489364767483453429656539641333227292328211752723822557719286197449911687245273855226181312129597517428375156444771365332446939294427853852719127348828114779219532237782678219867878897516178332991754953221251658628968139354289941665311464311992616991199794687766262794782843597792318451372898128616465723643424439112247313133365333532998488678272264156166577726251371796644717936474438151147853138748664931257898431276737266186236647231616245672187387911322562399123881975423726864595917791192638599421162547797227896333557637186647421392996122992374262426831161851937966796569242335145554626461434554235394877353627997425159893472475484282433435669793278247416578177124139711437174427897761729634846593182878983269248936743414913192991586714786868117547747793398557939957432536829792743229419428268724429831975564238311213351367143533712517723425118325525834469796754498573639114287588623948722173989436343783326813699992537127329647559454286318429385967185664536878113991718759727181124244948488963592665929356798364338592466578851348187453382498895554351428446292127363561919244378272339151123112428433133998111945592622438297619331123236511323583541956479458946218241748859587195546499156415527581471161387884988621657151485129354529169395691718824434456549726414761653552681321874187268841762391311481349819685714323561748544755933966656217519221775414281435193281862419964763674212773135694322244753863522255536183477355565863713224252564625513849213121469688333494886835564433355582295568645987886291391431359818644347678437282862322822897767671933164212427125197542831664111869968488314483591574797727112125863821279928323662234825651936139316727318712624132158891536966186314548382176143369184241958743562328754898774141496654436254797639115298243941389217579821758425218853391474374877982822219433557681643211351952876772477925937627854827125148826223526431283196627977793655249844271918186534363594148625617933672627497159849342559882532921774561172387463297444622439399638324796974441972172256685829811221488521822579798651373293121327897924328594386948257569934671721298985132762818919544537978341115911432127427666568925528432183935162992638575241487814939565518917146686378355425658915434518865931143787141151113664694941278697874531926293971645449661146983427772712626514175222241179695741376385356573346546253386951216186368875661517823422913141351363729177748461348823195372173253152791514985222436157557384775564113316499625889925655152414846145127925216377729179345611338385775473142282843487487331271493199454884313849439889962518299217436894746397866669465445191255352119246983172337245846223139492587873912855325596425357794435431491232668924513459188888752959348985833443436682365318158248913876128482276718431454223462725554162426979194226248433543643442225712223812113449399129265131116753281564744281238681137395137959473728641981188228822925181252852977186611231186357961664612443383617789763745874123563892611945414793819754129394698568199995417931221854944546153416714283882362125185454978558644514448341419966885562538871186689116642515654145414316317668936681547719726948744892493342883873423442795454481362298882647523262128269642379713838589146381845827493217321177441594428332714772724212882616554778784435116452879731687799782434637923279156581554662233931323419956581739497882452191824724198993114936832223214729723976144248982865258776383972153196811881982168922863481141955168251683741459919992885671936492663671213578272335947283812815239532445574748338884335778264549978289651256815867569324715927374842425168281834211886765123265266629445732479262393923841532274693861612896162294681899773295816859129552423864192435169629717537821386726277225787128222659444561592117235671577295731881323739179276318236641895167454376624146672344363329669177572369486988158136754527443799832129825477843226277696186888894819647613951323192826312975578278853773532558346866528729894514833172123819777425631739913959464287452285534214462817835864232132911471452324376862272875579773813273474567193952373864929366448262948529367766761857616363979486597161239216713531357188716845559674287818411191417251293471169246945223585226212744522389731456491187496241929344727553961533221121834196279791946944222292726953319996111748335314775122934114843189411513396222598628445384349962419182964631442761194589263931437799757752199893593643273988182757449383936631163636166789461416596581499165186255113698712132768968343137421772235558141438589234156511783255121628331353765224872925373121289374463281925128573312253758945154524414782923383522197811522484828732953867615214951689338472638628134231541543682571777436229244769164313928912146282845947811237376379439147782721248797277643773632938963695229647151737615657884858537961156871146939976914181571585883898368444399158133795928897394263452466256217953887124151192275597745585664134694176593834784764653731426968521314243331664212229586646572216979281519416252255694781521279254444429751457313842329391112698152527779711515922258753538352154766345427642396453971819899664594673149366517339748822593936262495539593591645971686322851866913157194898862239334528621353153763138955111853364422669297442668546143932134444637546571539432936528894433573585514994717298743311223682782714918157522157779453225688274571127774556159111438812493183696274458227149463658511634743554165736569358864132622942432238616929116294572515818332635452766338847144298326769937151134223783459234691777249685947338875449429999123529757964134696733937999175711743484752562366791381325559163643471168619163573368256673276114729666278786412899647495412277192981933643855345674184284581776857555523299384532656282276823573322318389156635473565172888215247556154559685557784757862544886644568289141635352287125588934697889231149189987171711156923251264663282619629824939248551628181936625916869217363338481119394334361355414928795873679524161437541156241915953679913181925659835275334892889893834228442471716864599621333135693475377444285433849426854157957385665553795992223884598833641963865558661539975386312796874162977352661831688465287668591323966585414972383279982276917391396789532647866749198548773511452692447715853686129177685624949752213633141249971154764923934212623182146731963866273265873264477238889923439551338832616436451849552374791516395836687794738424532263414914954912776216648378715559821243455551841497479992247685199622755615515479287749149797591494746749125748471517522822179486493519665482332893548783394482447755573263163271861574513519949571339942967864657875286915669658862534753624461962414884139162624192626557986111391213647299892857242775348593292174697433474978654993137277479511474765126944995635364238452389755331431895494245871777123941867498492713547462148962794385612532922642278486227835779527291864274473927623491413638748812218231798819961217694476496721348156113495734937812285639595115252333752658671343146721924322391394985365638789712536683449173411361898472778454849957726233643212218156561958244545687711252117713724819355419563739231655515382132943831161278822534938511962416539672748755747877691685279399814525433527377653795931987785638225697614873283511278946311268896669715436681142495768763129928888555336491377974731676633794554661666474735393451893111412751639415475819996333557337594283334718869713319499218965612644953987926936489596491751289116128697745419763543185443578965172295792471792925522555745242291128867746813367343686688467617277758971218732933433631933283265913197898779613762959941289114656577688549521117147141717334173843558751442711925591773725481181788721888822877622431257471578777755746225221265125699254695653163311662867165757367158449621479271821555724627249124654424928287179929153698379742429636538614454978733374546527385929195488224717312551521816352733452927626643361657172287378836318366928577351336668644112747976284442566211751749847287778952994412715817354731342975221817329165384559785417331967744212874436866624952288926159365672639311153156133811964812258127733243382154813163485745193653329827984815847362971352568216514259475657742557514592176764179982145196784123289877162353843829969693566475275779117393537442413663938172433677575519314744688587977181484388418734225481724267741658471288163428295659812943871535786186643211531168644863745989871758641968814822221571478358847488848918672878671865882238235334358271657175167415415256693159231221425789735253579488422397618654414885464624435966916922914935797478921444616632123123332932137911517583513563817951512816595559458672666813218164391959441693615213817931945927981477913855619659215775186263652992247671172832551269376493443249813342449874738189145965733744724557162261261853683137387158653742533928244352697682326563611547334776412169396524331938268337437515143831713233671254237185758746153751293344969522164251887843627945475339934152568729793234373593456916872122137512894782454676584562112428995141445754248893623311162383362556418369618191727475195929727921467442484981586321279591635561297287782574452653169644429925142741641455145264148771649422712285296231783174391988664472371294268328631824925854664792487114225993739522662481417742518278523997771271644193741295878661674388833417788673744664413569136825755367695938246771953975258964869728973485191321355556966884589542363818469468495214226386162598977247477182834241272431444113861621127577129213154661284911848162271637524589998419151881361459617149582657571541499397298992326635765215773416475226139492417315511932951671636879871941337835896452528988593593799696289626214431636537333227631533649289146991116171714129183593821882747935177139933522149479166243291595319749235963992452954945987712652143781955817122536467826596443325814481118414446592342293162835918196936472677514784999978796419286244127178232697351227437134653574565937351697262718878649536536168718844761313967685521471772591289552847182164491663148634732421395476229735167381992248478987528884873375665175229271581828456834599645761846644392535964829761131913772567689416948713149245445553764991576936741333856494478115526227119855244471349513313371676484875843662361727345373336127816741949558848951199598781884557918459691975153628924412676321317182446334912372882927924663639465789222564517242159357146443366225353859987337713356382581526159544436849658921492627634364372225418158517713136682435885819173272318725334347564384387695373422759279214349865511426991816127154287772472416738463278177272321883446494948718315576874643462832216593166162616282767362253769923279428345864862197529156482622954545595342132314684318785717351152431622638758867192373579375795924293664318233397146711766562791358492126673919855514421159123994763714846361958313317314839514332586132336123733472533324921284263627996446518325134962986894432462144532185981541638271823288533659811387482799168799522172423149623812959987167639912325498672332815174113256175731979485481644878126117248358528339911372196131191479951821165274611969477366431676317459764584212299894653563643756251746579691671617944331198912481663856133674939622678155495174168396678936798796731376413994285732414426724447945216181533934753787123771652162577446841517174422919698734394649814237324685456152619497522425753612329142864497668332547997664142499921269645888734746373558484628472375325761125865596737242765512628434448455355512143229838867925185557531641914183994434416434819959129255453244819359383161394837255835136178333319939742286496961983982325518343691819586533519595341523617777227877116193385844616421385564216816536364391386942224852675274867324588671592738591132831296674724699761116456624375493454851751694244136262218391577741923679776887385665254739479467966778767763275674325853573135388195499512464766449432148168469355186316331171881735514575496253237251727211633573247572859235993755281983586531167942263682528595221694693175232129682753975524998161433635788989567997244179844227742246628793335242911856515743329417526722115866486973157246726944785591711971243825395922393459455338174594247168446141262911721583754342139374184172424827585261697631277421132732663442728593486338718648575931269295712769542378313629642369279542487798318452948516452739127686115124699768128752525841638787541211176951652246112416257413284191215392668849439975912915658819719291985225763833999459881665618713583753482947457756523218822135716419111747148429862778892512951566115263748211294927247934715332121763854987226599634634474338196597698739583384326472121244672623425552273895633414384196618337366632167749311619967632769982121445736482261511869349646362445199652223734854536677834876173658294339343294271574823918976629451572991532781831998553576332763756133794731131363733238168866233428431121294649987893474215272948951131639653163579493876999733111149147679933431778824498955667945493512573913935729156174719331551455374269225265358687637623927238772259141627243765942118814542339411224765652538392497549951352757438991959958336378951352742442667369197512155342554329741264114167682137475672421324861986417525715451461999562348884569731559333197985733872676267198538599745787995922439343358492791948176866743354412841384898921445392124181155262859846223181143876283415134317262778225344382712543311231976294965789629114138731829431468258657222852741415619693411184662961926756546395642194511439423489341294352698729652478621919937391367768771344485539948357551146182211743871385158947891822739511716277328264669425135419796937834339525914154849989531345449898584594922336946588335332473177964466113639827441825842699964274978557618335162315887595298428478788899497189868656383282152425486524354129166275591513576754363275681524155732615976212854358377185878419252317627246472755284752452495915957675557986739116815719148817871246115229153324982385661813539127648223525448822534821426828217756181229642126734721879446485428835871431234258349597962131767629973735324273372286496231177451123624988468812291237797119419557434217148353258722613759168631889911718799319354489743734715926623119149244581616957335533562137682823278415217972987455454934792715369493999197324539682639845334882941493543885267112442353362176126588819463654859325198945724173635671934854265389531852449192745784811317723215353184122124445169782483983788672173356644821267963479691967179776661843127792896413958499189955647173596171623918211221329677578916912447114319934721972319568128269812385716627489682629846521951145322153348723878388369889252374415264899674481544853142275386221462764544368627115598345965174392252132775617276931496395898228723937848144673768929538935836942497517347818192518528127616945516271936495249196281177316434971231558941631115261834964687632351639747248119962261338236597941743396228472531386947431519861226193444856315526457335421915142744571212329235536855171898577882673776287856565251166539617924565218962489556481712498132157975594439591196339643674255356822655495558415541819123452573284254759637348364528645426755531682819412913886674918351776859735533564361587724718723261665723265915576816521132582713461276926552837558633982569329153492424798855871375182196324345894583166571926324716873117175137781615388469727179344615715614919391762382735127313224535853373694661176644152631185548553246827682357262793893762619168222394358279428549117167138958158353987638924683881838685131351524542532984266236869422744381654332128335576247819137945255541782544295243749634485313336138653928431826796683187487257425671297789884326694387122363491415874111117273883815598268493924555839883962843789425723639479625295816987695248494624999175464525218478414888793945219543538266341786185745821293813978622986817842385642172734218683487842922618196483643453465593193992167875772523517658885672857827842747464737344935758145461185928492839782123133534145271946287678384694939328139355966813829676365464673292283749589126761152276444145418132567936163916777326426356177561386914621419685571458953823867657261674521769945756966493462164351423679647768763579745871329965331582331417178381293695853654256486265357777315375183841258333531818888412491179161292785285148952126984214334519349236977931927473112399318525237988718314945695946626565639236378734741111498142897219281727338536537629784991285651383329732418153793635459884256672891478713149492612111182818114825228746474461848983413978632657325363629217545955585867871791411827125746584739453229863631924959858258979598989577498177859947172373972847911285232815763114238579364177625426641214548292989362365544111614275166551767815441675216227429339366257947629412347686957948286217435447365723555776872967731963238279231495932712777367716126225334465411266446156568121135454433518366945179238445511298153871761772966768235635248287325681937811671167235182524667655856252912146866435546526393631798378893164595189112266586995483867723295121517891497613782348887134571926192999632384592634859742773128327986599734882512479813318387636488415148697522132788265486236718827199715237518315273927658977459886618431473959712999582839767631789947873226927894166637186292242435727944641685224849162154814694245627924194532125931811763646832587575821754569918238286337835912541279137748642628162157155275138467623146413224984733743793172693957626187329325377285363822342216816261756451385943653667814626424157152957451858471449547452854674341138381471414843333427229716931614324928341418372422194695141682434452445433817914139813688457747129348223524394242964365677612813148175557678777437878572891468976542974483364282469519435356511322217785532883521827919768992766827218172134151697141976989461151215787396157563185759587881242661714719324666616771818485551536171177711232454516324764414566854734236695268885339675825888532296929231569361434894636111249211547824696539666557887914523245666613521474176812726886535558671375353485241886444227434129944736979986395396137153275855123751462669364125635132119939362155887852153968962711473525531586332879824634299367241462747415131857748958714721597174935158593595455158668236347377175454755565218749668169456872218972226695365526324982247955469394814882573525861313961712786911215414951254531777241397533353431251476134229792382885393256129892676665773823445131484154473171232141517838115445661742533731579957921812414388278544622654674471391972731915352162966496251976123253247481874688136432226428753418481166356731262898123993954561969891586167194693695231455555381974447328969349754438113812178168385495935173252133686521224516363377789546813253723275426395426681756864582619622443748333515451277841158323371346719695131318858639884854498791134167623289519174892511711779432524499566838454582651385679642536658522255992816994275531418249554885973329355882256845672851343347674146175363481963561586771199139293958794471193121564456762132438836654949643865999256922134716524414747279783273937668651887926413245242322134953793814525187477423343832226518783556999478583942369582812155469872795229553975141693376191762485962612967112364462998821241339895836532723837244972295481539925359356484882715338185928524679273692861297165264585257247172771799479115524863137313929446482227885831144764653654795759275789748771284842947233453172789347265477877538164112492134749611214269297751697155297792317442183618681268532948978935434448255252122572821353622644692617939145467997612986923832477567767894372536328645418743815911877679814311173641242242198499724636834895387791137813925187939733517443452545373598857849419344226471183843484778874443917477577484465769269651349647965461543189985357395838552464211281527257792954694867434425388617449636794145794243153633971484929254723382513323361788183992578582388226898988697731312184223212115632228762516268949128196448821968879289571125693747848878921996575784953591596337451993643926467421717434928223528394352964131928981568242563699216417121568159453459668281456267573758624836913819181762852757221366779565211491798122785574382344845633442721441949539342667933581457935168159281313859941182227647111897544213468911977782116361276943832497521352692385339499358156299649314877931444694293591379738543494213933729232368163179922841943963269159948139864931525934255142216554985985281711867763371393784533559382815898125351693693627262655414781726699572343357348591447514295568838316655515863313944242949614216137626114432645913275726623316714116531245179749161425969395374122216442628268334935884714118194159971426426934728949671364946711511896422772661569811724329281664197814337188216856973882521214649433258446968222369857425425622243817353397961787863441657456768637951939499431524739742119883871299744212548368338765185459648141375632146995379583823193112252797489322863351271467684718652773835635513393978896186732875627732962412696782256886897833328695917615573338699293772187253835556485741537211724194247292287477592249373673223519397152652786257473535858231268478729617239739128937811764526153175181656125148939725211187332538555872581413581548125657833573742281353192137897617464299811116284419829331978188962577729713678295992897984238419375256331675694431281136758473833699346345581941754867142232176187484244934673467116339942354418773715481343996688355764455379464134544156815538944292323395513899266126439352893695514938151327684597799685426773257464352278547448617269531785363629758666614143179818153754549764885526154954954531261494426276621434525938488933753447842176181694143835165322888755332941461636815463225181162654696165424255415266999498249999354529455781183677416145721334626125341697799691924763667731478914936674279771592595146364655275856334529817957126236514422772958313251427146948853767382543498859537123113429881244595746731349421876363326779341219184181826853815152622595132274612578258644375694297815964591575815124776437778893245359359754257113862275167735143869261335429725495424658678558323975283115496366587215852342757564973332269243715598436587874435667578351354783583695494135839688895399222223542541112432454492839389386969648652518229792534147891124957579113691882642351741272876254846578894498641145185139296314928931536227111762213188473653292212789282715811795952736141334869745492613881444377381833473122198372224481691732764714151966897158811733826892445635517199159624781115791959211392339926165399213325812516456941158589941696619659559192339464651589119384479797699569862443385637149963722687115327118735333194326377118794274713853386364653467811832714274372521212418443111142556971431849655215462349243623196155355142186714816112292724491957362658261672162369153592459236693273972524239273385345212667388131368184885792136544637621857154114218198755329321537326626318572864964577986361869645397346779326266922826127281118154514817153278294956931541132884715687976393653387334754125593849357631936676665824651285222579891179921779659183815515881571219126725171327776957986789582844539865771254718422518357792321877643472267426688477532821718168315186745897965319263796492934919933845522727884179365423855257757624469746319372836417393936549517575621364345461963854637557153629518366319915433824511345451936349362191942963344278687328533814976815283681711986335796242216776938671637631781344959633159941183183589838994118535253924736885455863546148383791924681577156345387888759835798737953283938475648274337694754494731463712159165433256682863693635483991327332149997454773352319215698876922747438133256268481439122171624136447156647833752838441154392861272173113714366634153737669897234463334546396536756759548331874166877281718962566527276928498594726968995742232245187313431826281476413298266529458212634971923264543993442863511133762321455491714943398381662811132363233132365485547287536434748757543984439279148935553328247292214241299765857714384754412255254647647279419535941151926439278794639431951847433993536344564374998694713332413261623538437395138183384196656571718531735779943219362127566896674289132247225119477425842889895816321244955467716245915369847395464371268295524635727125547243268327722118942884385478481251499514417748953952118316432373329966261917517969844492188365819462735144687195999691513665495428555158683612965476833688393348869933438243734869711234791795814942177558869734243454695788394463441367476474946538789855442518144237254868764312529128781911768542433718241586676614789942985746887419777459996629864432147213227874492229234214416435942853313845576224163771239118183368948143571219895181643387376957814538897968751824375866292945256191929912434226926255165321297689313362129713385546696877447317582392698698395972216851658338623985573478773144548221776659799756676858676832347626881892251971468995658342574346976819372741866283181477771248812534223672416328841212998351249714623322912735314632124292459911122119488819764742469536821113512231246385398283861671581971994615151212398522195895974545363871533475781264159513584957447868575363982752332396145954529972535364513426725394276122162851494783378682236332826272412181465229279945313232665162261895559328232132121163542492288627697934344244462969492151228887466923277758663769559551114148191176198616322154528381375692777758541711624772768653165758114596953986622495571644859712227548284693329294384128911854443312155356699396952575267848355845786785464472958795564272673164375559528469758464959556524746612321976925199171578988955454128384149153495588397586116582346946115813174347256476759896677783359256435528173677551869687591841497379688824193484753775311791176694154515317616923678193556463417151565956263381167753995143351324932331374386499266533223368654267711378111735451259921671617224886524176517769989631759554841683627622258832417229779334629497932674353398356395221646169229376791169588425473211656784948478625831977468988246666526515975639782248717848123594824275878565929893318839783318573627224226933445528852848851235171733456737381164439437932436515844815169859788792572932452646997183954248535493913258152421313228726815794116519135183128524925113196175179636554155836179211661281674694729367763995116391913184775788413714459397775863811815975257924661273188255845432893134843478752873861727819653724144145761932994725713835296811259967469396833287419348439579127523626432941272928134789712599123915315276273552766362461411982286976198483855634311177138124274123326943226128546633143271421679951421118215346612397754561733631193932987287635976664132336238725788817457494593553385141469529351423961352641114194524492443877147444197215575959118435274455127622198272212757231425351291748559541695793698712958437882381819152329795284751114719356852595654926767418552822868559689488536367241662137921984569328687621187669342262451964659215887842725631523136622429278987219145962844462354715228746694634169118238639893697935295553316946634691862343879673582187544842878889892168583794821451114919682723348782759537383662322842129569814951183481223668217272312678345369673863991259843124933698823975848928886983442985132251621784778381145571256549596644973283545162442794563761339732715943618117663255748613878148599192786243286551275727828396423497869734482491914473671859779597884363333686338812384425394231127881588458268764837433272594113124593153689674884715874337266651147626787937636821437482524524359321555938487146967472644229415284594583249981131479882954283878139642381717268458371242285161526796749857997233241718341924549544513761116348198971448839367147834489425565138111411228852232423863789135862161949377824915323248488268279839394648318191831743339154857757778363362733218914179537594668942289321485184713111615286266164714741619911587397414963284361324776623625765547127614847784251863484127358747397244218987321293831114629542321464595352761248528515493494961363365195617343113259352338135353654551133746198319928496224518978347783693428113966862352433621614454841563231734451466118419668258984614321444697713538964755878524162619818172551718473292936164779882719173999169222293745355314366361876688752849646641289669752983969829946691465774174839847349186797479559946765131757891869529613829455513912787323331386219828677957832713598232157631513331135885256219998497567372156736262878976716417333896876159913543181955958244543716159271932451613268317584237494629139297694656534735665324412468538585361132976166751262253748944779891277815765526644452923522497244324234299958347163149184983287664671581285273285972476739629423949522137345154954721129326714954123975742349249773539871246566293272594428771718616195835637563671175672647874397453725413647529768916873215134251197131327195969829971114381393258994987125539295387126222428721547488643115125349344271615899367419474447424175125479656457754218848911598745482667911361652266196272876175938354248437754244895423211349657366799245738394679926659119322895158348247591462816668175583431736112682644546546557772584282461157327525883722913423432275922836789844417495943621558318371328928165283285757322853377388837188486255528566179252579381224414354589295326651211312629512924869523561294715432488173118135867426628592484727142733666464164333531311747151535442256391488436737443148458672398599187554982677148914222311568427541727736716728652136121487111167631349615998757487428991417865414541412741172746311623365673234265265682168273827769729889794648789373324813815324594743135217434945729939214614285892186724461585949821996475724113116992957523636532977719715773756676827928696139732753382738924298433613124859671985284167422539188711919777652182234141711653547647612485842139946278719129947222373224855483223715887519737399681628272469537789743661225618261136214224112126578431982817644498451991956855523313969692843499633949688862934333889968631162998496758314721856966352613135516419539717344181223629353777111295459615418662153559772895849842787598937871674566795685255489571392776636532272147299132213469485933691448861268178561123832748535936566933156917427775957579575331841894843938681763286238925127467845112692237129184553748338763875693853954596789414641951465465174714645636633757461917935569227437674641279578236616355314486228288119219561299559479854631615521355135143971634147385457114949542165941133119154183425564114288651467453955252469856922437474674377973528619466643473621863519498561942376697719967579789624865523799139989949772636185381374151328576162223547514799784589694679349962122525176615184184556919891372512582587426295358241841543571356333326816362831263523352728253375827585414992728915483653651136985638161664632377612133138126149428844334571142737323489219319132392692398995964386322268742231146511983432873248114392271741596537992492246423454335781182841137472492498119896329344729467261163682656431189883743464481183557449878871767373199552191649425145148916641424163988126377423741312989143411175425849143244841152413626779269735346111556461586783434324531135283653373576881337885931185562421756153339422172528871341865518136892115667187585163483663215933789578613863157817914279199583375761423215414263946525727699473461212269341313446883864769328447673428389272218478648558518936726717443191199325117897422652818794145434132143628212119245538984327422434775652473191196145534547597255281964898478919293281484219237618856533263175259977181479224298762881511657432371915224639394484856932851189566379965163834374293822185772415116389683238655417171449842115725621888129924737273656746711473618758743435498121441127469454537736866153347674949636215222361271545469278381778777296728336122276872942691816359332381794291242352535117255394588613154591263152127678465165958599113934566462363918155746534257544599975969558274194376721325175481377394329379561759758736426556155937477962433765548112266239349419299576516363899439953432829541599276966472325989175256224561354793153267785714197144585682843173939538811937159625871431263528396621963713843644173813361779543851716535247398861511151293398123385164213532813218447321162371536525482113914954988838937114645667116436481152829887661589961842485774779679443412414538769421297874992769133166969198355516192356442252115441635233338413565653918942321352678778899434474613389178534355343941221229673671461249612723946279834861638729522556113988143395637791735434763664992159238441586584599586785633958791624177394323471527548561324114563913789345696114761863495789931412363297597465547614793392855296511478492768391517787621211841951866849641146499294674362869768418568535251355728748496773655521286763199373726674159839531364885363131291841711336193862419158844679489873653746374928313622424673853214737476656656752214447249495735647895473717462583632897333655514121988419141172914891315616296364648267847344152736732564833122264319186548612667534266781364358849957954642921852545258395399699257647998196211299623437189614253136611326346887598358398256653699455931494745572211369957134491645638884659962839888558714949356566818369322135841141477674751946476746272439681917135254199528925574115257143539678336782643142968945769895985678278468375894959447251729786688317191395617593897742796827466823871335738945624155539149927193586435685884638192657279453246328986957895471366831851739351779971212976975294139822612184112299481538725983375374296617588215884737211155337475687975672621312897824536441731791764173652569787772691294193187415989534865424833961435215331418767973634645772535896755311793971923955199269636874398417493594661342731257625225148474134278742628893684521242631235461811292922784673752474972887293357249262356459119441137642628937772294242628133341844345616641492183591811935368461985484647786961266717423749425429359517465537134359712481379495742226534344316485691282997872381946533612452171783644988588255664526379873214697799953698449528465254762483162477115923756166258472378896638231162494224859838323886543228188363414239496725516511918688347688733596575628191634712343923112293951374661193745515929563654866852744281516451432448768199333485628668296536952328873611614589532279584678182779943581545344147847842265766832483846964573879217438511634981335611382582739262795224795169124925426448869155993439275311364119874653922622461828616716256923211123448531438652549818968855944969583761866144656772114837772699679695467133427837724195977542615761455273849651112496197447258326639626986883995744987368828252365323812736722173692273373337252223988418632543585722621814171526916651421126476465168858874956948147496624937119219585144823519784938443822347441295474338879216379156695146843428659656142289351791278368323219369376623371395729933844569612816765592916297234468546658267264277939294656314691891833937186378135493624951541125997593877131354128271299771489679886324593527729775154745753485117225952633174183174495546433171222378929527395642181539837895899567294556311213855175186573547771669834545471935357662182149186431717452788922854348244586811894241998976446575775911215311643156723528846759719393635758543351327789354463182783653445251123323866871386454476364894882177713946122333636377842573814546869823647293189444654725245675914917354477366927856636922147992622613227542747822898871898263593568831142661618844191163553851166714652333443684184644755454582771588242754436713776437572946216632785819658569132431479654649222251134845192198193253529729185219428383499534791378176668588326749423672621634228278438277635261456323253819654883196187539558145299961446689223587267465762948495681968429235723383853543774368729128992436631147285413562319484836611197585286176319421378315992116216311463559774972918989198753266259888729888749422479121617146119793923493113162953928119332198833492118241714967239472334199249534623361381419323796896373554179587156923417537519284315261226527375341379891199971289161339488275455536147195419629156395243943684341189565767795766128669591633681362644972219759643292759968432233779315593617212511766378266215541979354275489351872828937351714514514136967196572734199649188173542116792431284196334471568753451166184839215266843241537289586635189228189619241182515549641772784621571999221114957488481364523681822755847928317724819124748919184714876729531524478664629663253798216797794212847947113356934976587556444177557194635651679715365826215638525588624267966316644158729348994124429375111135237376755553221989796742282128464315844465495724794649696138288592337572679963817211428221547492993743332961156621681773577184146144217816877994988936417584685845556623624495883214117128574659635583134212456951713763868797979737513583463194614138293696941758288562751871459175319268631117228656862127139774285567561815216239885671148254329454938285879489936917966321133413534525366371971253321864582922351877375775137118264378964327919782819653266571756117334136633119133894243693216763738413725883443812532738778179946897917666981155351744257675688764543145265635143827177759593935767842345558653776737385332641897391627293527933233191498799431415566641128532512651793149843166455798269949372139875625344724328135213583253234362958354358681377144684679821796765718527911479436353975699145233168942459551231965167697651211228193984548441736514166375244622368687815299523761371114217521753559653316155176581644583539752337246774857145412235852949232992272312411732226475743313677299211651291624922435765835526981646128115155135558673748227942827962886448533399469255984255197675636731477468377684489366345843856778159861329475627292273835994393911851652579576713817548247914791241779576232527762924714316211464715334124245473219763485969624924137372337421859371999269664762771344897814716839369194853534719525832225254717619891994626589228164214244486495196787157683183129964961583551219195641275433265769118868495174663598766519828588486196934861289522791286225143199747321565413884692784733414393487152674952484936195552652128948644448635747266392423829997222658178326293865279928419543138153261276685248421615646522543918136834631547244847791122183622615926862943294647137894122596846851414341139194777891735732819279354469533464919273447983112778781122563477361495848393593844164581899763811751795822345817722557457975273289353819246854585113756539756293699216343555952875223616397146513164427514128549533786777476877629114252277126683821562822695511651214338124278555627436712712681125711778275153474475241296795957356375449165426496254818614457974299871171843239457696728446235245843174971935816833295399137945918751347138848426885368745197538214491916134375685354498642211848944549159962131424265124839854129213946731381486326713428959242734651633887734173963487265232489453749417352271922949778393427343278239296487916695295836981247618369651341359824998176791355164727554123783359686958471635166828288523942551948748737998193138265246674931913751849743152598511873664643151571848193323626769924137986118766944842443973462724272524197264759816482338114745367569323556837329421286268636375942259476569691999648131156217579392849667537518644813159248797421934876411497394465523798813625468681944693116253613843314139149311429891928318691832884519481554576579671428667314795425335749484176172111697625237284695897249224598812183146944958582977668752852393249362163159581868145552323323815631362981782279449576182281951345955985682724999988237459773751615827271843489228742193535945433541659672756549478698418996979828316543389249975172567698385186887961591164425511316342565139826161131323224321169862666489779336726663491121179456266121686183511192968141362274822558647852735352978182146116266467843881487945683346138696993582816125348748267568654179428413823588286344379527884135815339688356151481194442915158697136935241646577917849239114452413546115652146399276732121833991216412664472438547953629817812933737214173778542221236219752538411273198873496473962113599975413434188316484921925121719545321642585721429399667791339713117275779974839151697444697579328889419624561416881151476454276148727218569517312956544329461512116196183138116662665269944959617992992242678595979222417916348668379571657117888832447951572838637492788763248741424624431185142733321844291282486541284419839734213448447317745255941767488777714658964687514984572471319399622776556873217759253735297466435356625693617515887174438327584868667232191135934614141313153749251863961754362614956334728415492627126735625795384224575138238816526365293484262385282978362434224152373425825278793182313661751847324247718249142352699596874414813535912784725137533418192116184714237613353122913479157159589233688425694522433836317628296123112913732646438961888486834329357327131797544517194571542735237773669837514174352615495311485164189185822339795134742548843351349686285675169627151878448314715364264352254678821227745148528398114948125435293136458693163258254366155634684521684294543821152429532871668591126843448164854972151552397368344632175843567222836957214992323187491383125291223775339763355382191776452764137432433579422263179359723119581611146339493214574747393683349913534768242758371591993833724975637743281844898215634384497984741358517322237927729331334314534847556844211236489352936261857874268718242717162188493524183157339548214652624565792423813146957188575166728994147236381313132254825814275472995537263361417215465783841714364198984291427471895852744341146414436521594358543581142225428533848165443426166142397429112474336995427982745986681327915931595756933191339846127274215129143211313611849611117432177234318559969215932394592593369848295299248191873179225444744658837828884634799426639346156444262124534436622794443586239643631553714169946989156548196319881745513412245993456194243215483138392853414635567652176975479879241529444721286133342783948152413826926282951918666995941821395717587562621864783634973677941747223757621872323374749118854881721693221572482813829152156994116269365627276174543631318514939192962169792398817798661144635433233783832544167729271182689927177128893395583833135893273848379844655992219177627218141872716834271516764174312721842129885278115225791811223181921877726195152665875552333762161239414718956796746391699472598741193494474268953727419949754737979155733571667146416271861266976691566467299913598213553846229853476736521867912962671616596247894627634583195155975465651417877953616656533613798763732821293451677634533117471824135128237547123397842391488878178322516542264891359729526357587718247557877286383225231957388214854729917651223483965658443255616397666242671289539187821146822176472848241348153886381562348523488261718743814651962612182161526432676312353156522522253348422517493113418678577223536246225692974813485532489117118297574869349336353685471926494142612338142151971287915318333875729675641916667498591917613827177714317474296597459168425325748329734174517653167591292959962287466165142896594738872238522472191746841858142597684261945361336923518813779891858424361661298278491583838798942616277189848557547839377153567137621242575378346385797576121515362745614412569889914973372234667522319184668414395355339729868999636731422223924889412731841276598467438911311296722272565282137789276183615194579396366437765184342353952517641274569696975691765284879893644513837271914692125528897225773523453573579515352292695542157324922284668438412257473945966437676493624429252419542591524575286987978363211142488921385783559684531582169987182991684396121739986633421282141222491413196222252687253212993681917888534212895348933265573683518444666837294668697889887279552358822348227244452423494978986336334196619136529252572642974128771113551157715575425141252257281699442666548172797584512186313681691624841644165195218612475328359912616835489324227229457133536623481195235437553161921266741218388839171151947685995197454674695171148841681545473652733739861323916514238711765169184377935325349951233611214669119579426763416168385564757773645953128947324846637465987351274247211826669131211142855762887171799817688884459947569813971942235256551815591542411532999662945434947566858152341992786556196637558337916593929871356224324237839232452443727285535317757273481128548613577349518695939382994732843326583545259138319632386284619966927484999114885586494275964232128588192815925741771417763157177322376267756373938623129264125425693778665753691111977335654199199279349662876471575817464853245667767916546321211917438878419924899439394268311884774966124419417254289271926585969289817448132285577396417721712967563823644353817989468482692427537495236361556323535618325498377753183134262954924348453995496221642875847124187878664637193421189966834833777827531417847618513195723785836591376922166882966523585751445942358433622878469148416275969917677934449187568656198787239768965855991917847126648199735332464735311438764536634779683753776225112895613287314864824168356842653381911965496414459943752457451517225211142271231667948639336334952373113246741759699777896317594152536149117551173419834263333835226536287195331198748817181789634786324137384238585638623354476768842675423663487277446137668972991913933424219642215533886172252715136964634319874446779556531831485456613172474361626818748296549976758227451838862385167643494846465423659864977172899448273319622534399574263115215261555126889521512597777268471718783143127315891561347635177451772824453573198933651346422398766692365322721957215541137223471311585597736994884439436732217394488378659242713933448843457245532715752871284128537979279855251952385481411256191166195385181787615971749666722749656156726256294858424422593824811448667727532399337975116957927572121579123155444189712843223519134112841984328172155926525915416537523798999183332914822783514344211256886948729922528591355397366143382254286418578629896948889399912242569167867225711188674658849531499732245763133674244227347528946639539298243588848245138684995515645156826366896893551894132919761659378424957325939728146656598688754225812765482625465686483653946774579428685524166551324956748346716711873134197914242119383929282851611626172346951993825465883653531227813219843396754886267577578746631189695497413852837453433443449652686339673163294668692695179646158585574168176627768289359148178359333686114396122295991537946841394997445197123785655145412793417713364299263642414755347331226293649979253174133699124349913339261635966564294487346758181566778477127634131587485575582946311231911514842868115851965632622214776265534596445467215423146242113964893137216216753232371912594132329962313627827131733261565157943149388158293723723328963127161585978562825713564544563271767223856877688312539431614112695822383667372193881984375958317524883214437564386296958513144393456679341239939569146486222554433269253353787154723541819982774775556754357364119472523516514932629171951488121113233236389156418943337675856849794923242814342427639532531324668967231522435895396916544182964499188248851381533525221155497165986219666384821413483289674335562729124992191379344474745391741775324985488539942454697934525323321613819326693932432574669191936953724164438513858515236674869688237433681569939221147362696883531313986287543794474166367429533681156832547527482274773879387895863279662493635275541262631414217162954588257834412132116532627277342627488189471346568291214189215663125565696779412958129547982469692998731952379713115117597958232558544215789892939262759999571353974371577388486976274835611752938219897641541453669471715119266355295752215631265515231199276379818381811131423452394472913251381714782937172665192918259591639271219356594781185527627878429434144151515796971214171897771747943249294597623312276447521312977753415733821781426983653271553758182373671768684363817243331122436293393168149799584121368927942614173767665878972424618555831237743849336516216255435125746766151178961661236859637432844332617494687789397918521619694379467379179271115286633255399111287835963359597641122113689426219511853444975448368648544845645866555795351931783766651732293777266121334427253949629811299384557595946155892324842855247581749155634645775149819579451871638516673357216392175948377966978968425962666943395797139957247759682469984771883533549676529823129199671783928617786499549266581753567971582662299391296515614684566469776123556817252771698974338592994834284439735159178556948349332966982988838251385779234187911519427225148327553283883578171877222751373185362354161319613857389522485914224719775589837567895141349491271514443874856533483445181457197573753566855532853581225915214762956714679186733571462828799433912142866556116599853284939932231127895958628415255657253132319341867259987171141713551544373562141721748332796317855873965656769888757714428644442919963182452264348241357717993482326459231954379737754114414627972918352847575134364133564857981865858988116495716715151413392813624256758197968344862724455197171495899321536556811923861212536521366546926881242727581185716721548445622651715732563483512194786681236799784228563137985187122439692875355613811422769264781674264433928219914116232772853319267826594289299579231222943579791469576292282367718262291311226694445738268625562923357253649682991192153841334247534257391934933481614211268897117344649425692256751913517266765469557392339271618213555112628658668692926641869635974557942342129371679737976932991418761834647851563853287756838216493984223727696784169693349219933831551587977952132251277923731171411716848619794737591191279428521461984566234898196895783239175932456775913737495434215933425577623118562177472653621895117654385753455749984122989535528459147927434242961151329968983375763381981519164685854744982574233626795928346358728287864731569243912442285929324873933168426332825952269631363297212626418819748822431521156331519453166671387433752644118645586129677654389526655431259221756865166153312558851747866887528631122877542244578443929233462577413951551249483833981196627871168395877459112789192443827721936533616644366792248364735536336948784716923512923557415334532459788589155176996829164114567396567953757836551512345431751568746586321818414341344381357676436884855623696245194848228178113483491719136444484184587189792896864578583516799127899467429497613849953583254345188655392162955721466987784146693147896918617147568645698321999516328228311342347559857269151413671211894782728957625646135123956246424548731791318824516298654385967542575685371528476158542642519715986943183388195913343358596578565612374715635837928473317825752731662469972131856199225415133794941558884316158363951273393211725382244818462673342324237429441281282236498256186825351574987566399131491387631371582583785813961985881747363458242499714273539388447354491942724882861424843322732716727583222927937556411637872739589516987934455567384226151419549485826387911465975652888462944312183413976325986454123435327124181946596825228956471331145797733376632269454951672256336126339316192413558959367319245331174519887253361842718821445589128827971984731692389831572391321231921384931715668395261253153117723321258649267452966457421757362266811249198315593537875622136581121827176944694438923716215354116192211442489892175455874523449229537571466236293445467195577534627511273511177317222922358195497522184392251234639221865239643434937253266327717263794324948672879336671215957467252114626375445898615993323946211263554948937952961418294294335837226949426148292731144646539481618211966321198594733356444411676282797736131143194583465575318872619677249593371711874784144728613711222467921914711776529251729218696683132423731175871522946397824192726672336117356576632281762734462214959148197329676563914869284319459669556563834911447233876253254283375579944332635517799681491515559621521485328425175423251429313451112568494133232523824672786599679364952121697919557142841944632263939687494762431513119762621898516731773396653615749112313468718264799224159438353174155886885695159458985385763372798146341693236245827575882288371969955823911955835355411193575942528718887197592538596854482357825641429367211214943444691875494286165328394674741637291496452625244218364819355988611661124145487426565372142872388564372784453563825676974344546647484584446839457712854344215576778641886471166543336666578495394217248754684242121461169335924152733526846432785991158369383392517811557281639792233546376145213437911952622384331513952138895314172771916275384141434975224553512579315515335333487666452215577227141318551839863888785584559336814356342625969736836121593762773751455326787893484756132637123631324514276151311511423426411726935553438389515331745127888835112835266773233685647578472828743134127523126114193427912451212441831371177235624244953725221731485249628268647977217153784834981251691448752931295346563255979955288564287222881849738361493484237365724126461998868993979853474213942147684158862759485598791233465926121914663144885454619651394289674361878576153781414759144554841461377593439846641112453751173393117972167873638443923857121657222432915535374536352793699991993384783515696526457624398454567794635734997655115927343282187237539759731468346386145172262482971815117574326648758448625638432478861335797938815199321438526399431786832924459895472725598847188689458495363571479264199597424133653516299214785544659158499133915652732263648626427521519945216492468472955983989959958896111244782942579662419247118887541996215568142137647737942544169522542431516521388172122671923162392216417853842327815764255356562241857443738261989633143562948356141679358279893214318931263619425363735557367177551495552367724429578169862611584652716679282857716535854663567877192865186871539287166433529872221717227291251954814999144968578738766792832782948663765545317241476258436366579546259536614361185518559255494174469442195518376336385794313357272194968922846486652272852961954579422358892646851454116436621525944856324718224198526493895719641254856825922798599218665967757251745146538676168359293426367969121582822824724163612251164183257653161268125543155263477285764518421172487599789732164948916623519217948822266462185459254353857484138737454278772629159599638827588294812654331522961218955285786445174252843791316262914746333592449633945397214162447534422345126694339431797329579588228833629284844816711955485122417965246277256843742912163182493553277233684769625219698435216393428692491694498692142159597425554126347964157828595543361364576296692519691995993721293955534297329931378453966312745415372957456685414533182824766755233152176844441583343995375231857658734898633336496971822841215624681993961442846544211542132164526126543592987946198458856476388896861882369819821797946277125427344449961382232566924141365868123415372963318726625343992824548828133632138862462659566247689287371819282552754765627482546434512334833387516927757475551282626916343744182512914351717154787559666973925528581116612291679924313547853395563733425932937917614242953842477433683369145417539393824399911231331555163324568596219933594444721831379132623135122464745682984461884984683938698865158494216563271619528952535636732744275375334412736549282853469272198148919258834227195978125671318861147864514146538257766392544575277416867892661934416716135597361661646636361136122755833217322739747184962612172631547114417829827265517377324738781261887991713977433968773722127848482537381692351326452927959583573128782478214782226112236527824873917924595733798556748362638757524151364341217415744331947289453144444641659154659616271386982746467177247871575447237823687996929575999625428613489485759389727767496921667875547287198863725926122454255319644527782869783232195649271714475251322949774496215526531293828959363911265827315531413851766131828939997783664211113579435232587217634188114596344137577251133123689714217726319247525641792643489194865915661863249579194387216772296389612262291283921168973192447151852315176926194956422938949454175575425242333917252422581954954711223114453466761949198318391746494197126912721637572624245738988672466579244136316229832248762257971349323594522424897447692463356719591778136631148264639124222381914842662319623734438532314253162715462732313442261477414756587637475522385173141544989377619373867359547357733599633355786844218693643265116331551895169968997462166718187531791277346523988943889619338725725476895119293147425834129665943138524135569355159761677426555118462424568764145945287921954691377135341433578129219316971611679882112672565714675899612262197833498426767632641924271257553561928266945539943684918894182493176667374756823993432517214623917424234657892699282812883481618431876219564464282281337311998593698761671523853217128131454161162793589923766166542412732292572684869854482675893926565318281261928317648662884126145168366989378528538463589412729355231531458968917416549216344714526228929411663813516733266415241754432697727467821792956574184623736645235324111193928466144994551614395882442585352995843747964827939323775226895842794321968331699158466564334416718274241813792996841141574123324217616732161643795873967944632284681419841285375756976438469483881176455343887487182786758539894227578148885757178975735293589212165396661772313986621269584147152231418654652351342937799641296795489195598451478633422398181615848341945175255469163715452524679591858854347377556375984663189471985294172438326325761519152111712343759157122232843826611544131228333472328467135563187298658364222438149584378367176166436129443158921542148581434419532865776443816354748919115979516342475472134435663312319952325322653891467785157916529785317382492171419858938159228961128474417721315574994894155616747413654435734877938664386847174865769183747822658322114296839451273465539864824367441512148213435422657559159996526628583669274374563652666686515192115433342725242832423161867514133912769825578352167256838145878993168845563697342854159633313844213152219157217681468191191472156749315496264472687389986582443355823699241823994237271574192187649717479546717368764641596867434836915614942995448589451623192129698621482866897845338989135275676342931734472761263229372313732911351529794439855414361571476691173231557543341374256591236237472898196243691332585529734412656258614117892599646741637295378752423756214965916128751862264347681287324861251652262287367779798263862121783865815421749842745448435381978672353985974455595572923663542535347157162916113257187166917484615516963785515187398772421831238436623964492291927698255629318167493694328622548262327977868687767557895862297929595445214873629531845895922265648532934125914247474586434712672673372729485468853254113365232732588315437797445599386511211258215967217418775142174852791568954176212385116883833296343825111579166734682331474564215133448121452669213511952917423282764212942416323151329253433429935392442339268868799894954247321124797431618979319578281585594399735714916289544167565545137367884612423899873624227168813242322231465181194872119887632762529723944638787519757867235954964232622813222834912858798781422261943464647735425117621383885391446746481622315631132621411481264194738497215326972984342294143271558383332437534949248893393691231646536425796146357656475779229994171599287973446186664412569465417244988527343716763961666574556329317115891727127241122528798812154797261744466165975227268925583131641582288185569269568382757536725878568683459312185362774197353534646596321378815135632831579941896135259393977924247814531146516172544654871556492637343794214581341287332919326537813214319615723684616289412947423323328581487665434187216165642981994964844215428245445366231442437277879525923412725542588455723868639449744687534533619432625162457121355584929221857656886833873934938692925754689198495141691323521339275444229829858594759445418327837378312398114521557657634931957149543845732922215418293858259453992811412872529481953854187244818631319779282273429148225131811182157732314368266289671389724679839149852931618999176485776589454153767933418929886243819188572163938762776939259691827235695516478324296871311284619673336486468729516446479316785794243958434262837421964738974867489826662781827755968352385278359112552231767165791673167965684441427954952966323526642921467614882128265375885447458625581388827669917328399965849175452365212343516758538714413133426128387968145352386522882317117865832163511817115579755969547517135189927127377824831361998723884368888647257973734733545522911655223358992159296668436296482947733488678278351856692957329119867599668296384317532636632541579625337986143244885148185427458398448757825122168434898445951956776512142788324479139673272999796864252655126544289339838841814997185572957894373564732374488383363775596133231452399835785437593676788469856231536416536767212471919759128474123592283196417965483517332925854511494144575782797987154136418498958439452638736393312477974317516411365773974554468422519358379122299371579443489441285167222943874362958914747297354114983941596494214952348222287242854874167535995215319862135211829685758934897768381454733119289599119458412786341746972132748331528625118319541886789391512785514918286564758686568191186488581194391826475139552723945413597588911215182446358521138299766265979499397489246793145986243385931468312458737551974631938342782637698492147658878776242543717758433759159156143715482531181552894779914786824999135421594122294329571696925976965844241462541499957328566673253811712564874484157444262511294544956344297756765764572955584171155119623262665793145692182861749242252479749459343847274849685521222942556516739175177631984183776719144547939611385879623614423767183562278358546118831228872274538726814884566181553987742679888515523962347269566138267445121263565266983365434673144251897238972997961328748831981533173925951121678195112847423127473557479126311113351347593919824358236628364646195723113311822335963617219217276851393355879634151668797287767114836249217261385171323955783898588499258843691887514683269381528648916353231533612226241232755317463317477934447471866183713989613196297773992416832114215946899133198518213478121436589951218241354673162328815637529257881616957869219944134761115223115755873818653461495339717227466941228524981694429661233264581251988522174293522567546629616579762521291141368313622526711713159466736847349833871335829453612353121731895842438164258659631716631139664615342171319178388213265357782481741715321135788891251639385296753465262455426687531536774537492155339972263927964116493371241213474871591594119531491955944657461399284527878798385244488235667315311957323989961696625228467958399375239122943173861673695344879156582761377229738844268344174867553314873689697764657467526933351526646848511329744998985984237423649363956953981162469162327853399616783271579671247744768419181174495822671159119796426874473815569414943221124454159324753454476147567717965961679559591461799682162447798586211293921633312456524445568711173753297657455449197434293521332442493249178151621914679999677176231312242151356412215131448922296817378739267165748198183577649546553825342942929368659313763964374848547819713246597475328511832245786598516782242261575565783658759882874421141447517778311373271539523246875894694316681954679761819935546996357647925475415787661549426648547851442224519137133142242268845574423396225262216957531772796996164997412592772261296841145813834974571935969331159392721581364675656489885732874176559458459145869412126559111454913226775227478265362134221639582592476152752464646244249727356728718525277739399732986683282833423644826965128376458157258832483927825855729911664435611664989128711536464637153959389948164494753243148656211568657691138239511284691678178869267851971894988515147648746432744741332469961414936784462249413655473441546652618469851174736728149313383133888124333461533367914133617617794571421721543523633594466279141299684342822368122616914526227165529771932442986222687316735731873579387483766721817371785813833835729794755564796649116152986137983333428563437738165171879789323923826119217373222574223185248849621691641385341197561872451957285459285495722365326881764357619197631435611534511735433674133779478399388413174671516814792137577173128168232918272828593866492372851725311387498657582575758598944585847157923437826429699271362154351424315778121368172225373886911372583157325742953134645858551284651374862454496336133448478243783636191784162931385299684421341854374934521967827761425819647385299449731593691682424546862165895814478762627758962366561156741848914129983269188415323161658679315871218889877455722424872462747893927549846477639564776299544813251347522139318513912738121131461148969246259789838338423624552197532318147492361285432228222892266888615164326394223266269255831731473823381152114736337345458576232963243749813134529587636141511124115628853917254839993668767235784736137756959377745548112352538449261535251377837355333189179546378877844735389277381582227615213124439738627483293588475363462336633445299239971416631197863993419478793492114729612182716361559555321454537915773371369187136166516393595934686833112332884768882363734148823173845687787843225954584637829947163877477263911427492942543626149639933753331272541161521733938643493528676843464275299532568431972866311417513122662362918414546941692175147747426467775351253252352537926866668217346422994319343471664273533465481763999291331233317351453285774245941842813231562171638188571923532192177513126928372786423836545158355714439764728312879931349357526327821856924319189842385613148115595161835999631481121747934782245266921182159835427145119548825298981265544286486438379841521476946273224587597955292142328347949618698532242124733891289713688268751316632374457813838436272351867111525164314955441121941618361139847953634654132843142735974422744396335313895862543323666227146995373946787489595437923632584687579768357155352869814593456899561483988432163323643496961192686155422371563316121133957343116727626913536915111255519813215313968349626265959873258554786925166618994517742194444536353595812545418414184941371798792652349594385633275685728975763665232645441347168754774929557822323357615836438524469126597249994497722884953253375753543449816633734286626271471646571545126977144479889229121392317194791261783336474213911378612554722636359267364882329763541872472393549792874159716451723451768716558279454177291588844132367198221883481289595872269241397177995872883344752465452725898778221259929756787666256358921275593235639476468584681134576559126515655848538851723223219333219524725882574449156684727144571848317991941293583216324211514954712528285987532961154814597357419498793994718783881396443733241686155911198373588919839513355894547983829687782439455121261283144464417647289484438575246452479487665535469418137969194997323542277667977554184435478997329687151654759546725648156273121927465316282619446271231342734822786785549719274942627624537281563184213672637438157554424352633359346513752183685437273534246213699545988321733494693245779198434322225227139373222473111381723525415947889495379451366468762648789148869929116525246689138126331452437888491765285968159995987273745653452835435151196812294792132927393688994219163981638445996134139655529234245525196564674737734865581617172149279394523953147214822937421945672255215726354277832735887246323996668158639388723129213481953398499713157652729318949738291499259225932718136674452772537189734135557587873349941853344822145923288293352164826762494213922936657349426422774612137255337631481548461267328245457752511288363914528386266336426394576512431812321562495737939353345759945317369527155197236684465689111136739474765954554236115731866575478377624261967519131443967373431263357126619562418263878364766425917773455954524387491543349162557845664439396345421132499994694181681636681492287676451358433384647889293475851277652621238921155322251814376997741975679465718966727442292751885586136598293499346426957136878879162134447357693371754518824442721272652757569224133997182549414565113741484265215967683146373959739641731864639458615159346318526261787187783971941973879947824915769314787774387582121347714772936231979841868382718473262635682422215199275859669652224396956831342451791587475632413113239174971964521531352492626843866852772725534136238589779913332816412147514328796371677672646247633616927179955866293343147417244734796153184721519368991295878586858858449621474877647788613861211517222638431118843566489548197161618169447814794361159251638495384342622925296617177922892864815415535634586345349221742582196444456948553826514234764214184574125366919389496994314837751246599595453243859663728225268382371856194877738213674919172431894361668534772241511549336868343316252714291283252376412895877913968784897155544534923196118142378513762128214342428145121281944633915123356279471782422439599772435893683535775284373676637372359361733674315492514418323571225146117291165713227643723454456737153746857324128443843249495575775265493357161325723239682628423214664229129782149984814154292783884656443612692816331931356888589735246533641124155822985385134441896143315431881588652429871757952292827733224763971296661926994228112287836472351953973598961319396531365457647455792146224914961333879183169129871328837748731833968839676169333561672832136472156196242359526698168996488818723969799448517711411611845559263917943681194229238277119729969414162553919111181828145569559343489146855869437634174968784453845978633961445786534512466657982462867293923893238873343743841756642353772323879496551128562226863156387344668762497782564529799964937468618592784634572247513271292147734933275878241254833611356181497136643659685273352485568194911332998673248881618772245278615653325654489465877255614834425349934418584188932341115686628641174332462866523711538684143849415646145722915744783682448878789328549442818115991274989433687841147141155998617244131929586184192437254981333914241683652381139919793188578394413322353982491646881745673752295959751176367722636241649177976797876289915795837943417182873497959724935532212222662989211798885546716558445965333689383144533697228559681892333947913129414161984336685842811579642865265878132985958614937215124655243189146437469138494838596613551615452284744471361124198423796227329348431513827585735381274638225755218933763762748387624344773992684957652694463324425831462453773292159555613696144796659277454119626823189173747767195818236881613163894233557194161984446762761649673344733247473958441719153213724419423625747994297481383284898122348388558865498453548184219951169346368326318371852456865942288356216157186271796593354228595861625588321429599334566392395388261186817739812846637546984378632631288787632556234295846152993566537457358763613774752469926698782639318429395379881944115724231431493419197312741733215925491973862757422871148344983443332217249496332314144671441621154441632769316484149711412794312148134751544276796999312583451599162343685488993229556277967543299553877392652898622745817783937358214736785739852575672131593481639862227696642868336187329424382139575612211815977653543974717911757145617644788627456619562891987479123115814122141573863846695854241854935766229211365771382162628451459474149584283152441758121817241484188248168314696141734152651212265828431347645385494722668534116654117918715366319829976512234377652619722354325641284219131716724493335121583678547968184837853183312211732713176174684384946484274124929867526813428744997176721428417484789387828536896335598543751458196847441797175735239289221417383647514314675519232421364956424598891553253735894326278138223662563967657393712577695232239668153261729279225651146636335778895913727257488971513299731385231819324955889681876684427341285696149979593171166789564419727753716315274846254524274824228344921952997315187379335145435968953859493641611768752119922188378761216495331283732561436854471833156134339335895882646149114211398499745346416155231727122755615158541526562393245292788482947831417947334354788122857343161636988814798182446242364418761199156335838552939623921891396247857152532859616358138871927555341974131553951794121254259672872511771479328139251551974455881946531259519383158973173348953144877238196571848358615627682932683495789867399211466124762927294574863742116764283666367396392717241626632353393635996481562229358495284527516374545183492318133497665561357476683948415373815823341878297616234846846655954699863242639455111767125556964831914793262152367457545618231842422587434612138826512819433456124483462821169976523548176583154436569261816879527752254349911472632342414545924644456414163754332599495454377227383694229236862615842144334195141576125328829683334712642987634525883822631368399827968463374165983111394269948665518249272996175845887134881326419941972235994652176179437537157863927446335722887391778436878334851522936954437273132491836124865215397624342936328519752446662221151717423533316773472751792666717591343135347222134526368742259753575111128663244172557786258389542395411843843769621568769134262348562249414277256958235719157162697538922275511952511588129792561889754515492434634269311486692812257556956575222913392226358938222793645865689718249277938249116323996974313376448337521924284763918354439915551478387539879437268412929694452712277522464117367844923126485641424156563121326184219211696827287295941745833528671823674396142112593785415669172944721261716161532513455877722592268892154724611422913773726169837196223911993415633483764721368576346216733272386597438163521121562199489687839452184839244641587226518753575172723862395513418674332873438213958626293939893682794979733353817389894684352265514114521913545814715435647699192426782411889638825312687296463623574262115728895853553942857364794163528288787811448922844984124513225547457147934697292975449259676124355792182293364179273155958153671337167864574473214762525669517726287679555536693368249115643735729465678684173376461681152323235868542913455138962661843699997529467517139679439225274129238527992327311918444531441325585596832623895371544816251271953834591989481468612978892957154436151219337434549916543346598471559551353514685618298481719468288538324138741157915293514696656872644639151548697951127429889944642395573611395574964163424182266535459884385436412265665791163244743148449955493393241343949586348275268963151848688948263164399873345367962156854793867644998439975782181884368887566146731426361122654526538317996927726458925286387621193573419221791163317941923782749746352693286914324429912934451138477568175748633527251525237458421261911473253648995271324239185362597894859645212581343929621493333994442621266783526163785826241964387464272319271854635268267768262536961244995864494861634768348757489693643122485842784647337821957915458571347116243214913797872217684449263286271418423841742193128433352955386732728632328343469896178137264568748729584521682971257942862722116867875618135352756116263416459547431456863942714593498734546353932174489735695412131416336783422831814529996699471368111795448961553359976611836799651452875453966612434772317653465394275722153249782314323589928223322939313223782341495584935733544438345865711665462393171582361227664777725782389598913926117694324684723295871529339837978541331661914213487132681677394687241297531454113477936278252877415867652826439796379673114891355588583653464833741998692324534736119621454459423952434355681596832146349144227942227997577849623792479249135597797583544643996179842264754722331434749577498115225115437342669559239273716284691717879619159858312818972552299334341882588262591552271715889698837386976176895423168736924351517414511582114336533957364514671217962731965361415841576193981825914523949531245116555187816342985289134967712824844278796236381271912851491688351612333113233715652797889198371171645289463614392643717149226925412337658194129648684253134131445289773714815957496747347676675593544136431468136323595917193934128655498234227891961265817194559497521343399612392166394513356691229764318855179159338514175545883195377376146792251387584415561538339617736436166668436393518225882752742824495217681193521226352179116639999565622897182113481975379641587469769592634567237771725333437414539832357771959658248161198126193816311724711987229318358236536565838179886353955225514136485347939878375879188949315272742835452335633758799816421941258623611229247127781453627217436978291775967181911374923464535522482923628145219446367751495918567441318317835684753352732762531111478437148264433469317882866132816145186444714515981213114171991132615786577526971424797684716632731691788517733339154722678169516479445893449329323939341637983263436355422971854229225278479576683162262927824339283113493492357779338754544514174294346684786572945788624714545862827754126163453931423113143638853511715297233578225183962264738995288262558593559254286551213324142557546812875979322467975259472144443576914348175949943162247941351459279195631547168915982888146149723148612548521324256522915174117316981839372488479182483473782266714975281576182683991137474916734697312434513634573331161339371374389937784628142623895613296724642574169652854696426441911215552161217315485372528175943983259494284744262533392515638355261718775213964936889249756375379769912447621555351149417861852497265527437649454238335772261566856926648981183469481294429282113582191231111315155257741461222447679997957189877521478447654325548665152878723816159673449945581288645343779818894872781586239741121364856934643429225658235635381197451236359343979264374286659489111918844473913637661451115969174142628147575915263122943561728253739159417563944489567124762964848675666723637665186612592341827763129628113963528834272447486597567712894939489558839735393521557586493661392334319425342587898517313971173199341238864158993371376623481196642581335913222397536544188486357399541697179579927152114298919131345231515194751887877991387696655242548996243596778869716913961215688928479269145948155316969353383723227463574834224374343863696728534533224193876751748247145998833922314986551723634121886178662666935931223347845999349855127785555537643186662231697411975255783892651882683832557214776567393567583474773926968966843236141158811216971438433467433532325481329179281726579811923797439923951992279967753955631674267652562112936552493956746958812297965522562499626246252391916841983514255954986952911583533833732935831569564411638786982175556992754646613633751216858526256783277142657652924985513487456435353312281391955283799898433418538912177799815315787228497679535179967993299687522693848139542582928541991386374366587479357922877535472181473378778789821642784686496261833185776577758359349183964641655975845745352361472561238767576464691412868381625945397853315687964933348285479583252547147259324671624455611844397493396856831662768481966272792529986888555124815942416838463118281321216913389769648263793684396196311641446692124591367487926357837247679149659164457927634357365413779195118754496548627549414839217657843533341818746228535528225247152934218629756556766519464663231178472247795845218972637494922572293975566557672891672235651467938845788534133321997866328138864469544822466931136484173777966274453165491254517177547189661165875447638796266167827424867258862811474615159329935387466585361662323474844549642411494683318581732318133247859381955283385339749336523377166993226835316892983711157497255955689973829693131442245338248859279665281667315459863226361117471495576996968632865175574741775989775447976518177841899545175783258415741163758649261515636982286952836862538842589759552647753673956887114785619627832694816339171844488589923982139935247844939233785322172368518448119339369156336774254729167183372668332692582995131188576156922458635244653862779327135465952365428985257514736289658388111933875141423397635275314913897921665782226828779643946296141237152935668944831689452235834934942861266575182246421163937595881326628324373447283726971381315773774154689476443523557755592658851862336227312359572989993388546573811297318225189555745656495298567446296391317191649226915494143363573148156693291145632626142251566565481126269369572384541564412891686714413814566492778966424975362194755892647521125245273536879372565645493775893286248552573697514314875342416211595126273363799718535978749483516219489111996543881486639646578885412469599688241217212152145756393143955878675744465847922573625829456625583333428247626768359231261328353381178339555479368659646293953765984368125523914328464719851355697858927593711193126318195278217153368271759514741246448274427465135853119236982282725291532664729193295584152984836242967728367979527997781764197749144657313738349229317892981855323992548487391753535383447896118525539472171462725742633498234444243641621123433415948712633925547334562619782839423823284691936833712714322769659913153472632211142378428979846396916997469136922846254313794199431845379287323524716666641494137941667429888769821378924813344126873181637252748675563235355521946126759983654727218867846985883169561522214197589268462353726869355258945543776289642147336291137695911313461935829137841157352683948859276279756169441683636124378971271432421567672329635753437632972899221521853444777361317328723133623968689261458887216232955996947947215578713912133852447359184754636978739713865148171142757526746973831318813158976573565259729173669897438717158816257142275537145214588225375885311882693631821631298288149165653681857295528837886293868169421926133946771867393124434385648538999669147463985955136799448562596925451642947964596494621842744646737443139164328577783995212484512172134376176163965727464426293475622148646245345391629551856373993471351611858222549579436977112382921178497827667527644656465668587326629372479931893914715286675162765388946179262173313143415317323579344399579358732158682256715486255884133396318115694897682518551824229593327238938615914687676593736139246753123452271332563118341978298581682995342749232535498479423138744766455495778275764154767971665338998147568913632662898787959491183142725593869832972512763845271633643163593289931865468522526712385628682812323492985438782479249337176485641585971542183883724665275736414289576539183626315634915926415816994858616121989764285144956588619844293995998869841665895568669324776212917848161374552614597727859973631472363588531885557193339785676239113622914373529127272363331563847818642189429513588281131817132398266819552924441785634346431925998145951153787592386762764452695172637383811486946244234534666338113134269771631313519417891696525979335747468635954864275652363388235311869434284462473251657275511992588515933111151389622516114454838583292959343943641513756226469524933584129265942935125356462621619753657485297555627724854223484823443993341273916961876959682254265683184533826126474542922442235826978528915213518233219619682517132827611791835774174533746563392912876453492175278282258663778531973147486135479768188947267152623775229393649898563167945355611315478282578522784728342976612151697445546842771931983728252452839324646472565113491454182416226274315534691574591443266788656582211898763255631496934192385363628753979218791214168652973461898711375263987786996769779844198373459157384349821741512243641669951646369231159469356693568527986666261125239622756492132941479173752848199952822653792198772353677121452544199795754991561743617812454773245697147552939221593777925641786415148551473853815566386425299648519418818656128277637569348363471287891766775431578654175435634126633225251412889218686573114269976594656979938435955555913453777281478325195533285352383128339159622762816932184116986321826791456248514183878896143281714325868496613967984122921767399246493428232544795836342353961927932932116684968735542249994592281545516826729511423192313954691198417995849354276746897344665237839353441633857536725151977737673328874668891344298483232648981349416171485286897654452837319728269936842898273446788534745131362282686671366194949468383332853934625517365992812413552381214651363751472212521649758468797412936365321112772143363457295949281914414158514757149967967329226965316812379854374472745516478825861861427623491249337888115184843199345877722822424895934699246281658776511493193534643228473299642671675266778913884132236714112718764628383363112259478443473116522941178949359932672595859112572254345191117896289234383582817784966155587552364635222636514616748786694916893865623127743384838999425623195914133745845493427883381432529198927743882865482786673372835724364161713929865241929584115185944516644866583777416213827242828438693619865397335312291992521782895755621821176664754737752994368726538927199298224575219817595965726547341344642348731673782284235939645442459391527652429936972182557659453552553548417172687622338819347134383184247619166316619485341228585638833863554315549687544135244356336821263696725417281478746496897865912698321486574353614371395959655866222242143351448639372491785276655552242456547972648726836626924591899463926734141277686233771648433422459673195976966162744375337633267838243417567154128925148846515725432118861413741267847628172973173324917223581247493876934398291561882175614114583524736424528212493239632796716662569851178939953895193998291719848742254765538133466263927233774343236587838545883468717325855813246319412136426172251824456129265636576726771468949943277947728718286251685171245932367657225667511363126612399678753794836326387283946882392966751883939885722745562338461878111632926871184657629617576884891666761523415332643933473537486144449639783944388845484693177468596872161164144841169758475877995252643816136661491216235863938227552171645358339612363879432633293116145369515187841273497613141832819817598184524362656298192739262485652263758561544282721538928896972526493588163858445184788413947617331639716437436739119841818182723479954795582385777862825597347686783931123266215491957872695538145815992821721816371147798474554286164312646991378625662528454445513245925377112731592564447768363293649658996549598318142115392598369347818541533837268944171271167222688481893248135968267987296369574593419333139493446944312235489251111857273415997877944235813371229248914264573621162582814332454275721626983443659782757466335531527495651893668143684336541819867974428875893139164381722586319916632655126391845122555148659468388857156721176382252252989254425447373798224662144627893982865645472289247831595424881183159653644822561762891642425965117463622567274174372847239297882221463359953444264734695572432657489224129974564445985961111437159769391575727682166255382739283176137231163444231126685578394659252762349833469853189331539217484924595292834332244294518438859987117679885433873454893162185817892477973218851889797134886294514697134549187615169159674963839637124262153698214296573272285443926387918969471842813591635821371987628877869573319197373738161797533232855749718747589313769522944591558454959218234511586497212921196319761426331561391152674256178781584186184947247463227738368641916433452175582763539322222193685434933786752945393385462186876516423766517212659695547269933975961486195433241337657853558821517281687131416838744917747433996156421686841685988715716687953577879545522425784773795715126733511516749271628799419932229822939986761139465951863163361552128336811599157832445133413397498668243633121545978192161678293163415159592919718511636372124339453947398557266923714988334529659378835735468681746169346242871354565119555255947297893444863253482774251513342573689142514877815738751924696693929724512354733125537134654543584974349514722876284513649539536942817168245335812584662523715474542399465499836473221553951277692559157893627739661141923185141877854251762172225273816337495211576121992645463624124389739872844723172643446767763542861596239118912575839864679423223696629889254536319685326651319315184857222242313316157466342881587467497661446441277247863569543927828955823132525821135495827894567622687873912446155583824948247191922544838677882798936296212119459348889597751612324916738363942691159513551516636163354672261621645338124425334638974772514197326766886681664535863884184711315735455297552562619345493448981777958314939142925234544783559339119263295842687666888428542177314325511242655714786517644898611361822957491328183811721537514797459168796454872834953563876667127363164927324751643652395724885389265454437273238345325851852264618695573284961921291445385775158319834431932675777826575873653434355766413663246573161426947436413576419641652426181833616357568914138192769868336526391146239477952514144368689529523186625137818934694728387679426659629677231546799382477856317363355462488996493414659198241234766242358988979862998164763835562819692681249818192961886131291515492994466537562643179544699758895644584385556965193953961929636136471139573121858351476159494631473983671238413414993294642539978391226113115827777753443213115958574584412722111616338739382353827119591543889196618637435858213487782314476539321539894242714163312299538572517316517348693121511726832159759666517472161457853382318233778257296186121284529715776616747794561627414316832564742464338137499287211388241291991694915336448314676227111771235245235938963372658236812294623884271769216657357846128242714639414965499562785728138678993137521511217399575334458726457151547168657651292993561855366213271279942354144848552379151913846189111971679134244224336393132249752234399154556613223822326395753835166342112777911317273372882381515513892721229147336391627833717683115178983368368459944552159376621376289255519991188273855436456871815444297271817169484832998468291468493854438461858465671167181888563721545798613124514469798429649225113169794499938563115824793355674926252448637388253671752635128791934923789437412261125242991997819161341426917847443719914968987523327259279244821766611993393394594134287398722115634486124438752564643818184629562941845522832488114453245372763261591829115475672922594114936241731365825667825693949578655991112536384275795268966662271284198346421627257993525949379666971345345494647492972199161896794396664663181596242789958139651991479155613413859921766267324685922358841918294837736371961761727263254173293835575994539217946249394144567543364786586353315813849872595199315684282556659369684861233751258951774442263552572526254318985444457723835247431569664591146331313285462542112392955853566865654382942239499395641223454972329553775556773131255658559616222817327777212512141875973349493799877225954596454631674794341243891344586848424986347383365719271124166313486593756923283344583955926419113268967983851848279372278463329344398167621451834493165578579891963492557495163662524614476219172991744949834497866687477939445914273592132728193164677698594222317481131597573988889999678353883227296865983152455748633566734187649417819422189811847237451315535196234697689259784652288336631425818294485514699695764768138979636182255816666493488957218111817143736496237937476121157824945797519675493328923642952473527323391371929571484351969597812344789535562343626214474861855573151464424141994838456443682878953365545793729389946914395788147426522645115734393166714572846356573282668821613277891237599916483748359458228523733959446747338436724437573129529181353484776637246328353722123114727813586392153479886732817912821215644296764243547541957276196854162286267996799246924411765721168518372616133965522424955714483837443558546187655591898827521231219221248523589735633188276722338621799735113412264773392851755993672185614422426656874271988218426533248762818118222113993199298334914362142345877436436587316917334265261396636495586283813318989356397541293617919419882117745231279933719547933185782931739784272297219253562143196747649421642622151535298145792686432132268798439753931951357252946876657354312697235291284593323223982129127539965173415734344324216859385215847427587334563678941629585412773294981246923754331333965355941178769812151896413918726144586911137742197215958726556173322263621341549474623522261348749328224941668475784268423799759443571655955151918217133421411718517852935276184481285549282764526553848742622331685723768664841248813237352775135528127541462475698842556152196631325199841738631245638925295238324859854571469744344525663339929158627984811118521858355654996339269176323756374444579139234744941129543819943675652434747658423424154275257378286926731721811111653386561461577578963354195667982259981454376771211345678845891425784791896297233568184823695561823467818715875615384362156174281595669222354327793836715183448968495759582849187334445346617953615384224174437226432965466333412372293668126117855431146436625216914462748294724976134876296942182758766817469413285418382876329672875597831613172335416531233435521928312842368434715154297155739854284229658619481585872229864269667762661949762843468546754778815813759387529727612573381758959939537177516799444376624876483967669931633169981664895459551815368422718275635357494118722283372636757995813466769871287751676481913831775517477258213545818153443634678117771331811689592687626296591633899225195165491386763498457834314696471851717681786118141987593853681922358867597393671434177578474579457737481824129849452633767628325389653274927536944641139778321335721642379534458692988615329861199982847258423628859848299115249924713313493289973312483581963913574372966284826461891636669291141297461834331757892141789216955571669279485115348965748499988137483561443833191353645953511476946319819382676465133328742527433584752337975695732866795789146767426984464436851553188635754267125943643954676476738662286754241919315516879755531776799698623122889819253235729699174571868892367286231881517225922315159113668212239683671641664412245591556199584992792379423167991711247743671582183518844119228556173232551221421356315219931923366575431532424437395719436862291758253896489718435462218565635286547225272434625655658523577141659666228592227976734995894719229116462468318994373629978833935423973439818977338221753416856273988243713975626829788285258377183199675999277869167117462852463255659164235385851321151245125852589696899768156372483131626263922413365312159225446642385246625315472153649386368271229627787224811876723335626349561941574313219946571624857641842364788365672761188512239552843388866273693169775281568834141184191144762974172878332581247939417482378447221286132653941277577425236116112645134547441289887173197556433844399631418599552569535523739479361391498815528163635539248999218851328634753617223775692414445672493553852287118158673937364457591768866383191653366816324244243228328458467639484866656614611236372241872894143255142312978859981338354995851586324447476492167767825149482591443592216466474691684327612863381641481288552118422477763999135782122581839178333379672523129635567985536948163489954197963893489329246692115291613888383349657921747371255445143765277615458839893439187165243252113439124537616272362556836731288621798158825622117217839541997549636563761496681915359532629658118593369249318137651538677183114613896234863287795284424137639533938624535345741827699965355465896614714152763955776614417613628565123719967976533978552449679998583139489659552514353591451762442285616418972491199291279868349178619774989552872565725319215553463528726512997199352534451849881243714249694197786578516117499331393973375884573371756391793634596422251244618295321463918883873138464244746296953112618369384632496792271256641912275573246979636411714843235371296121551319293365684893621241784323298347641287678773691481987519276658326992858776822167533432881727497462997211346864638442847499155873529662312571922624849745879726711628159351746526588483741619164828192976629933958952246661114362871138397722837447951145487496466165827545425939736213215241274487432715643491632773517251615611351133782672954866581178362897921884633969317213352247391673487511251729273669165449958696436685619913517664235764888251182535325814532442564314816595868836555478361515648815589534471466823413532635476482221644945797215711297297626367961658444729254921783784533853889249689553632348597774642587895614797541785825768129535425656845492934493729176629486955381614199791955441471311665519178846181533411371835217433182945292773452494951181563536584115558245984235137542832922368519238117756546158564428932986649895297398742687133633243713956752188428336426559496969954636913937954569553684148737359267572365393127632829778745324943865993799628264545275595856193984444318588321996164562931759931887517543169933886649359734796957861447436356337331629448479651769469415221632443645834658471456394251738751414368535865329191842213236366418922652221112886827262284421551185731585635467972668458245898262811218156554787267936731175785871415453662434242776244835349215412159653264372429195515389211215148229796233546347271446272493275433871738235113973645489388449388855194639734643145164472184415789586531829645771519183811751197588378813644527561358355629266297279698343217513711598744326853466571946812771684824927895765827849953941469357784496924345492236934411661491812531751226461174352837461118788357334529635598398952425175529674223963524761325149719429469527136976748128914325266412765693533296311955615113896231334754248739111393757597185975578614511384767358351473819758827582817125544385283482154182157922597448122161971533447956421242383292681512497911681733231543439116243877942821386359225375592314442653298918113876766656172177956674871355377788845235369494258228868316115973852316266984832172821714132177334833427585812442181391193136311177933637524324875616754826233916985791743777231726544469314715231263143171359831184157646431586554115942177163811598479192267544523587424625575472963446777348165385366133115893618765411416225683665141937132682436558473718714485997852239618157226228864828542282831424457852311931222327726157588654478823155883352777822279974739293525181222714921341568332415542629626853929443264353695624311538737645294717141827561994918284322182247235236483589613151415499431935967827355623996352773214557611156998824655151442992235944947656466921326333785575191855564119555489641424478621468632466755142564727651682276917363954415117276192755737194434811719575928254556235482472453197834434619149532228197349866683416376714321477524963675869924455332575336873311162447519134271774682482931838684368224419151615558231884426719527549368832628576454454172216423342479859641385741849738121567515673374861568866615899189996697766212763379414372179458438951635785322753871422559154165448566798334163836825832549242371473314155833711522487797528425153324274565436235334636563295124687768242526188845857282683452638721624666278291174766725944911319777742948933233936867541138217987473733972376542836113142469633649452487135272494599193563539657979391515896544468742211552217896455895716949377639264819243999652334342145739563517385691417123394167946123374733859341291153474631281359642584552929593681936276861773665156461389359149452294754495364851486951318537132991262438426694174283994344675273331518831967543755131645367626833756665255192951954258829221929174265876749718726243827126742815987451362644199144622954231362337334612471872313964648372815673627382383272428435339332675158384455421147848525196516969319439576857443647673727638862555414185255462282948912824619577289627783292891312376283572839792774752522298666651522732452234155318358658758866771563146426994339125337434562557317144177433886526662593751574679115698314239265998243717791695452181932786141614691715251674366334783741437635219586625783142859644247938829177558116592813448365912546128738114522431443212449145251152544744212487742815692917888656367171348478296655348449315385677197816219327143176861419177515541748782327629849514427967362551471498525558761578262157983152453829663379989318462631966568276996285325381353455532965356612383285424413352443631298732218845861232564519667717942217412845487142875121725381684295495821926611329151443277566198448232523669181699826494175143535452631763122265381288575537919237161922559635152437878473637734561335236947459582756151423661274672193613977496761614571779951511373928295775573911778431511988962618591739334619821557355338439541138323195433389836122176364233488869845559156664631623197693838265626365256667824728498677867741647766543662613735515648725515433539362121631748392122634333473225433669984237932752711693559465311776121784685752112859263518834852336442131559227591713355539871651533927619533127934262192589251569754312345672873526421492964842132637131819324435461869283272298424483812414495981916467436693549698284584675187594758515781797877246368455662831837496475236343783395418713487514168911428138717483168674351323712399314281999298513763571999471626253382212828859447841126518329481885538336391754712388896788699725356179213974647684732342777747757831338886688727298212146824288381421161718293782973712596198367692515351887993279132941487823515914458178951278669349876477686513224459998323547363677636531631994911964556312413293199496276213798163329966541711159137615188331766354741425889323366713769997991694196917556568552482675152527642872262744134418378555423169659854764268835852494574775136877745228326759855224382623446291965238361182115235871257687625525554455969382127946969445955389898729255331139167795358754987276722261197657526214675877623823431349164425636533811199912739678981377794587526561574675766636196194958283637194917761117697332629958538182268729763421654967926499716638493874173511331399376255869394551199293774335359978733212195331642783474257384526953241279981622745379436273747243397866289349828736876419971351366678914493135235725298939215887644226546965642687653874284895245771522532969765626923266148545941666257915346945738465832674362817241183628959852273852286733242917786282479431999165819574714278453617445217349736128841729113115644622722951244522222888913126721381739985641784998712617156578438233279179529457397861935963316817693174855995373338197712989149373937266734738399394924736841541173569174747658982591774358114812664355342294855558694855944684669167124641111644854265328347153331931983142652515484578581531634886496195675512541644632759933139863128876471798321184621764453467429315836296265646852485427125144438164219699612982328213427752854985366852128256648244156527413143433798332174885267432769312317238828776652332226529364299499785735199579272364288949927377411845788251478446785596527918144231665753792283966912981933543586449994151486339258148131231683495995793292918847481528166928364287119439245361883373546449247987137729744116959754135988126179846929362133995411247956996685326569545754995152551861484365862664486668534243261489696297434912114613385734143236748986832418935677295414691115386878385537668694652536729529278729863448266895497488325254148495444845391262671345876749952182734727881373161926663966251932284424822336861758551354812352121652478463133366117279894317221396785149477188933737163581851144841397543952143176665629646786423444874354188392144559482279127593833239297567418971164786826828885465624588574646219631627161334623693639856575748766687235593231935426728218766233452632739918489978235777325415229441883524911489489359748663611252813361616779534864159533696566898394766196263919459526642228567152652311156583319311233613342787924646124433328659689513578151967286445363881449273446647731525211862224715671487367513325739531651541812234212675399719764724143393959614644629154933324782877437974392547524343148419216448886889918964911196581462999313575299221146628617232275473775736267688774165897967192789358845948365195239441735814974434334351376369665573866597385335351346636491641885287143915423697891497651694344268564973481447555255319245115677319233442559246895513152442976288431975985487857516391112425197758662733523615464752475165658562161365332877345438362757434925682588925161326413715957776558866653242226657934147858584115482244189374894726366742595446251515167396365239137231173275519631466141513779243294289913358294973131553173797522441793199682678495679176383636591265835143359455775731873333413881329986216621112666762754294791759124647429891865871987196745711665888166578695997757365919428876686518461413279544244695779222378571562749529671141536211274659547961312963927615562967242451141564167718747879424433134229853349581724342579743343312655279491515814179168336817411839436156438412816133258481481226775317435972119732123698173296285339624253551614532324293675463629212356221719186866964427898851362846847325554288378282376183342147597384334115552183995717174877512131143894225221463465837713648289264522265847137639744644382365323578764528972917964872289623172492239746823213898611276623642427226467624138942665729625891834685512713679366197494734514672117437612439538899327178628565624427664973641389159744294248463587244851617399231318224323296817777886972259151619716576393146174921711634876375369133121637176984282632234967823894146267579864382249849338284239292966254243681717124135599826543764534875261626141552192666382916857323123795162367567282881336634666945344388184282544756238289467254853478185771197275192193243261152559843712995452617373723553137633792473163515713159985222255666392343368585423256771456245217599625398583173824316936969545787122289331161861823735964842811722826472347153292168591263884624218792747184631979175931295213945919597268973446556285643773627319412762564622296789324168998325378871213166586255818919726975889469936849311696999189754227376582945423491528136233914221358143411938352322715921794218964898754716822886378879817592176972261284174216922422321179238858517211661679782776324741539841682252243942565841215346513786727943738123959825274551457751763663848218194427178868715126711926658373726213225799311789619488255484241137645571149783221268764366679149276329929378695322143882466128544975563327171466898483754521687721922561713953185934444831577555573243949166273779354473122512956462424718498224569723229727726731462323811977756681255787491841962439849877496122421644694433391232749245381168285343817446296868611615397961512335263525593224775894436983255291673521896123223458117438997765389334393265274281556695313428923343728972599532411444573581333944496325469942988711128952686283994233811368219459434412524451831563511241219149399855314116493326489663245464288545612249432951854618126558141425362426364581554883311513728274351431978873412144867923512211715466162863123187699985942553692484578996711767983926274363445893647535616197615913837941957614189532975927459815496891653614991619927278272548937566836676554884239948455751159184478112891359724937644374141143952914612924275292274873641675969473926233274737272851341563372292958329478235543432889496937812783145992163132661759826737826525763111124113261478244199749196399753625248816433476173465126931272996383835358887595939313336992472562994586455844962652414752423634263436178777313695571381548821267695867383285246125571157782119267228955712315337358176389147552871264415113728459182314151644716229853323713117645535265291328136245619487949351225364513891415174188994193564916892767478338272915431131494756222344327321696733139657676291813525183962468232234221511921836782438228961325452743733165449113252884997641524381354246353841475623878457153765486992631386215827835775215212297584529378197233984732492224166792149432152112947897172398651313469381685383693296399234481627649753971564651282653712839659819311365978934496614949861327868645771345151747285159325891458154592715253119938471272227845196587455419873417258168245215653637961135745233126941178415949424462269446122227659542639345889468815166789463315957993666648274762259516977287528422382189122351216722157791558428189448678317165242134153131539184293144651196229553553444467223539733546346851186713821564728334929797562479691185179217927528822482383689752666849126484525116421231786532176925514187367911712848656213791549316994742467238672292141621887975566874665276612768636954622146611691185147639236358762278968875642844773583558363283719598111821925956489295228329888974228936951732778973536954377874765494663538334585679154489313373243819522246663661142498923435526779699819413216718794733351976166417946595812756792115436241415789116264917811412363363293234414364867673562877342482737334256328132371748741129731116273693433412844119962144597436966329316388939218169652861388711854555632633247836274237612432431598318285569721214869962282583246492144235364587638522792768217259634927617352273838389546775982746799738581195825492745372817148823268324233323334724977516799337528643715123411168244983233949935321845811573321174231156999865359261842547293181463221187471666692625294196985828247222624819662713833519822464573571775322334974746922286941945568347157564277987472691721795352648162591963922471495493455887198914337632459614468628866182783746958353136963634649398962457163253778118389577269949843446628261473649715336533263337275256237115614488118956538444257649991393439341848272548636524149183852288485671482796267181416181326861575466955544379123529378934211772113317252527949513477114735685532642726729377594537839957651152614471636837675516182343559798455863712383937413118574964687836518794934189444975721447286718823672549235243126346766656483457855251649117869814977469481754342345516142994787577891481642554638589636782554255742684644272386891734967571344588276576429253318893439822175521956674451887576182825449494339624165153664471857796434441699846275555514811771421597392697539253247259732576174717746433639363249481771722154856827135474299246176116554791253532272224639266623587153992288669118186164835156414939115862213767946458535157237911356516967373548846625139467886393442786195277867766874348771872897116251277811326121163361131981622136374616797415794657417623888217251396525552932214377287134225186813743627549845916917283953925314317575338961514536855961549555482826884693189112721357128343367687119659857637769639722935584235138131156581233216694938127229297143693868715886689519531125242546296267589154871954665192942121663925859169317368615668525325571222924456193151617333771426718778341812893614235729392614113278729846287959917247739153495677995727529155442189681475871772952638623367179951983854524727828866683763224923575962211762311326481762449758319497246253718846682441366612197962852768422595595114182482213229189734897231577865373733775564714495411923531414134776353138331756288269554478243951151564658524223861364225499358451682631942811188119282773542851818134681934939179451227269363358949764523385314143834144731818997243584385175926988254612236526713467391553462618654627823699294626723654646949499827435752493442877853221583192326423191324391184312562148622244682114352773421971146226362356656288692874587663957757632452468386762943613772244466732578352787474826999583672176135686645434539852326345797473728424231742389149769819671814727396756293525765141481343837156164668887433376923573113865548967515461233582431158921694962511297496636265618748877886634549721395116542273189194748151392468123332225815574921864769268627221321221478792241478651338722644872667742657991596387646375918949345938688965598979716232879113748422445629131288941686716231556578156984973781114328868112463552376348516952153117719919578435535775268831493227442513374562546641445568148393384198311814895594585986446992365329199528312355183148827119156315464891887485484862693494593362563886342283785846128554161453892428116675916788721223924857615615866422644292817971597279661486289261769614566539399669591227464837552938121963356746465341712912551962177975125764186534313178456938245415787995277177829141791817898813712184537198474347365276923885162284942748285355877671331457251431122139143699551852744911737788931664941327233348828896967392685441984175387739352823297324416468468616477817824254693868211311223871275848937237835463754815158872546224156868693316528778112773678513339957374912512749757285273332917465681149722844113157175627553165514462167433515394198246336977391495334333584981257435359841492129614156316332548675537927167327943335343512615325941547989369447493933521574677773329375842493614495513114952927822176666589579213172929617313967179441689555177219826583655512235479361316343614129437189147353479378315355397195577262172347675579979686286289113149643363169341473557628512944769794337565741634288999174822574639338659754736286324984238576584693793199349524968537662465185929854158943544727835865696992284387998453241222762397532389691363725731343453747391272397442668815853961755131445153674388717231117823754544335429778624563667823528312774218868492987992466677972363122312347758857883588395854749536815735229814466385651431411831269834988812576623981251793127918355142245692452571357589165361357116661373594656417858565158444441386319282912912473485525154233191111543111244741115643341217918566731575395683239587957384369118465232356918288193373158829781986523921357663338277286227567338358314376193562244554527384273976534933576682689111454366856668294932118563149785369313579319953418518972878763151985998975361878162821672593187422363721352981971444553552936938352482178275643632199595453492967582313574633169356231384926971832113158191899628634273531611826629672815335924764548864291566114339382191433143965978739522212525289722729247743738742117738426258977418374931754222228182311493413891576635327648125936339577134384913891252845871855293932889451362353439677651679165389754284723115345295515541922874665636192499583479216162459678668749114674235471282556116391662122363138552744456262278944793754658615693712354333245868921195965592663836225456553825631444284842176713111116944624754776574811182596334772765877774465175188147299463511785525979568357115121879844978187839266268855762214157231599293566674621348475877576391915865359464698529577533762137682792976584345496154792496657429841937666891448418383261252414959618835869651358163328649332843868662324462716422229585667185132519371395384325762372335348224823161155127756135694264968549144123673758721387421838186531351699825555427989712872287419174247518763319631631574744795961562486548583189474753855396963658788682555238843552233959584383752582645386515772154482295417484542334831273311873719635194697953371254199153866813126487738826784518279481477927937691158896133869769454215358269984663941456434567773887925452621397726198427179195243782658535889567191199224482472612594677311394511757349358794941758225259431673382177839522292291133148326786494228112326487142972923415755123215869947138996721345885914264675428252934955391935234422621458683635487591392949959752452628666717954663475396254222831342225291756742295712317327741734751227285935359125541276148342992661335447751483187643212586548994679568761168758254137648913824967726792294863133454599588556532718391533418236618853713964951614724939144465971386124937644937929753421945175353369162259231211332142761656848571812451823166874225885964621254157221923742142636882571534935773257319323713473287392487387143815581543218385752358378175726196299652399164265659293457661132318175364929715137322574816428596386361131354396278247585536548452515271576549655516241151744546166187179658398261121642525625224333184577918435966485294438118164284659435849231144627443224778361838437228371126666858448131379836732522781486625736948254677584645498235358181999849339282162494715513291582729284717436683562765781565756239383613147172936251623137291593556419292784193492743395185527388781844481374277112177398734176626523178144536559297256665788469353378668933614682979543749979128441377461344419621568158267881276925555544199894687294121735723176953175676152897421535192245586253312762131148461419699376941833535222973734772778436522657693819971153513754992753471626322577947518861794348787245333748151948113495338496881886117552161456847353821239145444554779592332256328141547733259691124644212554513345166336455265482666279715717397382112869847542381344653541416653591473786522887592578143394932749276529889378847136718934321728115918288121188929593335914318115725137115914431216673663543843562777962683678831421459874814624665674811929272249913197291269397317513331313743165461349936179365216131478817579919441691297435353637612235463374531892314683237248875579823371886434812325867372572146441844622345161453814583835227551979514935496969522663133546963192922394724514266172472763773774953312462185719262292246316986124744865422222776596352881365527553343115432634756979924376849315566393978147973229378412451492237249279799662714949122781534162812543228993432726236721258747275193448394111697646675833643758341644266237927493626377964161714395337471513228254734463323917384994232278788132335654128149224838786373118634812528179474349812125349144144692476236952465936764874218822589225272912674842736285818283499142334983745317834155154426593465274793117619746987783831226318719583476713395563316772443496463141971455948527596326656134432448625883654251392792928639821559827484477138414844833644554457194411887563824385528289621519342741521189974468222557412414713423539728965333918965345911829228419568593974499514962367279342165381317845329961334262851531212471223499236951215943421658112352279912663254826787611965555146849538512685877871361883532127484236236113626781427158318394829745332459828986324325844793814818611678713742799918169419618227296817518411664656773984933167888994814639851313672365335478551272521191836832545356576823689158358192277745911225181462244164817332989149956111981188615941116124845454733825443941272716681593711175332542268489855492653731933514316154433335834719683518585145171171985731678911329713111425558132176539571872375238863723611526992863669943552998613455216681229332796374862864358366668959853373395353213152472139388264299911389318779699197462588571397482647977928983356355641129243549196515878483118656918262428625992954844731391563577683916494145756465131838561533956252733995454818711894289132241263967162427994533323872941312121963636832421822825788185733443128515524434162759152959242973911962329787284567574619258589175459194872779485389238694334326119855423338193727571334387686697895974448838862169283853338571728746596242293762271612962667751921814724984966819446712948159262471451125265783384485683347975683459573169769173177541956395115488132133953771672221623542121193688263861143154233759543772977916951483493122671369597371158614396911667896517974598653357798181942474722522854839487967856687638316677785499994597932752337246771742267787432177459649864123425126136377748753997875326636591553134932742174696118689474316541133725935625576356497131589395918736432233812315556969752467273234649411261798241359882763697232167982917925185515555295719853322159115391557388881843445182375112414828554771411338282362524722655155345392616216672942981145698485754237244915657469731798251193263246226668359593611419671154159495828262964496832575741477599568831125836769865296476154595787466213478444158137467354129114547254496444774571488899541361576424515111463294636696138412734297718778352677994855425718777395586713137983581573323528117848964273491269623314388157935892756333861778388876312368869956332855441497851356564242532775443118791791694619968576832638655786643951774251443265665623113991746814932513671723316258751114251831967747553361885491421384865116716327538256752231229315491575362136561258358547258997942117687776343159329618456371958719414192615442853763828354898395344252618137449239446651951941549932841711511291657559724653668469682689592261177712975374477284218899949277556727976233869143886276358759647935145461832373141795664283826348569123472964941911375688993174455763556246413796994554348744659422961366292633565242314537719211916771928643986881863897919374979347353392522596118621514958685234166767375235358544611648442114452243244718761871185978144193282294986554821794534392861167323224291768926995242339677926491181169915779615229331663973429237671293544812248315193877542655552283245724181634657111491468372488436791825881932142318198661462568414413554799465361313298295294614539921844178367149565258416727847475182353447885274215756123346627926691188491421564187735733762131927332953775932567723518512333187962729361524398465439517422532557843721223582122995922653791118362541419516577191414357346548499176745699576218167767413239175156636199639779658725996143812352536136638171373657895952436331177663159161757122551477287813693353692237618644693242586692369196352441664621974472593674257653884533216912933797737127891873596343515232322494754889572662611124381918924773543383491758265477298787685656471265477726363636662771131522177572324441243447892963784122952762336128114496769278288273267677329922165363541532175179293788792485919142222519277488572265572933571733165111862767125721473736419379752744251361611347444264486641616561843543582955755693857641887272232215354244861937455373242746417463322575134789789635694324522844319248976942846926759581486188836233433691522469442961435118221335199847423934843514189222679159958692716327639131554577627995694139389245228547359626981128335396311361382785179279893513132148879137147312813559191228699421811773949359235917581633428515513992253224726598343717534332177175652641766668199712416173218491324858174641588278744844844428664965186269713199152353443332746243844426458822532639171141215
6777785239737285428959943329751886956737874359928599789666539326523932568612916177922357148491753455748245456496933798486645987161497698689539857346924153137716268775562513786681696512323834899642362798644586516814535591649334525934971499781699951583935213831459613588529489487131563386361274858542796498654566331646548978694962572195751857499631381854783444692723394156326259549539978778362131756671795894996812737495763899815799415546174965666718662112363266662847969862518164195394528724816245382644999791544164283637897832721132844458696617988168127147573837688533278713631251684599179883968383467968235786393454924361331786236498916987779712968574917482369542191686875175358296336992371243982615329613196618364218953945891412522771371423841888899588126285292141595117856664348525698264244993747215579546531744629387552743895784697667289283761727827994915538935769849498658332411545119117991443911199455911788754779848867318988935375967893667354785772468875881776829169996944377899327768576433316381984963159857744131815825168732841851176327545169717643798767571456371273874164983123395257392237627631467341113217659213513671649895924547922244612662272688525323982436494795618516777354821397893861278453485292722483625553498349755974469248392778954434183581524237758311541374491826477716511474189913385728279773784432816199659597822264743496652257339666564968598311817263296774769936123741771439238248963721556977213884377997538489269652893528838733177133656548412844673686686337719851639978322186296951167857982189173647199572311513187837982874429974683559459193697524479883474938474615148994494532558298575974673649571594182911677972694544356782161149332592516272559898311977297544119198313148893827572472599793395971863548623476641113622862499847656143118282318987246991731619665139485338269968529834168863511625489655469383134464594888396123885875595319586589674259118265395959731331671364182551683335743515283789374253813524285297599748674595475228271463546587999289756546487951128764391968191495526272221953999882431883723246616788284518836383979878467697928522185273793751634126793211435974785496154665313977728461311991994493649988578548233144726875692581639311518779565872528937971728368432686632524125917636741416896864145544785478179198315391193465382957786928625815126576516695859681564616137218939432632165993868327458791753411121366121812815469179714534387157829735733686178191745614311199188796567433383813963868393242798171897185851187744316955238966923152754418497399465583172893592679971655261758271613958835689636856729358619958252278458833432645149519394572372898524316917739866737877156382865243525153312666158671197947829471478549951143289416325995673723414842983159864527913416376423911817421283853413992427387841943253138383793975582586662243235182362897765713597295556752989836522687983342599882379134356886128276299281958291879555962219339265192798545713553734731976363495968947551132984848851837873676874123115669918591359976992456689421119476279411866166952685358466739212467969532227689725671256618331672433161965832641524297869834984195945133662355941587658445559773587945919868713791896923264628819999196413143989351221994446653315274598368334356696165388243727716485924292225336666357626545845611442745698723187638777937118575857114374841253493313599773328942787584434449522612669592395829635518479655263889617271748817589629471617814158732861896693677387855838799959615671592694559495179761713323653883319468449144814826318389742329842984118134728516179526691266258823128931345553725869852495328522885483465757283819888829928465559982863623279384328899363559523877233346611539626577852842287383612371512117669214642481579881156484376486929116569331794957769151477956627472455993231462675445178367153836451825982655327325258789565416432842181948739872273584154593199419323271589535375652661511498654884597411637282292851971885832615931417471435758482455426354338266987931283583661593486985758793564887678973726831176859268923715923619564197951623998775746179878732113776967519216789471993185172934658215375337615798739623914337592971432247177284968747155155623417591578971663195929362922877755666978545811769764641756671199348881826888283292938523738749535813348586199197291255683347179677526953256942614197264164374638959372472812243712239382449519515856133445684513467513352543777691135878292271686489928955417617521488772318193189738174955177527139828678425348915189227185994938724424388481156173511544988891358786818792499228283723353717934863232691912778563748912988191378598814273587359368662852369889564167962396469934994117988742678478231245537444252881665726993938422745922776417284918419958416856927775345772377731828949288988142494356149277421825776383693165381134898976178895553149385543288535462143227398797195779322724932599175327847552747718814728459474914887359518469139568365867737996585275865476763242111931856239836421726834823817182833399691382929533655332884788388397443424654455728211513996979846238189983878163449963499671235853837198819242145961969265164588496841638371766525848212991567578761879975993494737698746619565934972792692262218725292348472458314413143785477391972813313332745931612925878224829353739288544875326861599199629878635962783925492887365545592818327258669788184122919938655913196692198264673362849157137156214953985738759482969139869416562429397979613622478471117929636962498773679985722447248651171845682255542626653618637565546983476265171594848642339471789872437424393199451343458921536273678824629181223885413835368287877217832212796251295472979441121346658217589435846567389784891574378756134847112391491797376745237991316927438872119541758299528714784482927595684916286942612887767781999819414943639699228678864349715983678351149857771621512255658365768142615736279731367354349585495928776499264369475545958449288261526491925749627825468348555288887145234612298737495927179597769951894951188625572813641562144958249248422598711491979829745735174597226712297425756273846484829827324711185631318496757195817416266187154799579823794783222933414394699334317556474527658489691692546513898761361421788729832439661689389385956896869536239846695359914156952982772323298541731167778239687878339254431936893839754432694958251382754285945916218926147717291757673983137663899117613591883799283148739963591814113376929538499799321971777151436478554949652471746592686533418274589648118772839348172774931694977732895514435828964116652972849346955275722318842737776287738838881749843928921348184132479791585964678982571764647915735719785997412846457467391334179378216859658747179578413286615377688573596529275815298536761931244146469173894754485811657967453967758723778554476288178355953285971742651575337951678474768497877746156454348454926622948127761159925322222742923178586173679277451697697486292225272858885894757488317833813712916981789496943372522442356427993875929222713387959854434557968564488442796956624548684493756655931123659724589591933539967147635593936547584189656748958332236393171979485842243582826281132414136688856796238839385591677987344259239595612552689421167683385149251929841687211762998295922153123292849543946675792633237971458898874354749879741985187734885763998748539255157814793889864946862629734277822811936836289812459698241178375221836896964571542753652196535993639971393743984797348296423432994251327148277289838385147543724567647675584179516325935433925479534595776774491819884431741881742626961178531511896189715567466459868399861882391723259537429474447853541868917399742482917389347644194917399841749587731913444912327437972497631581882542256894386874692739887689446235383373563853811416341972511939369861573666575371358551535471374547386332553362819383881664321688525938316873995478429216374776688277556829227635314266679611998569787464385835218661577597748554451366786326435425668392911246152926694222869297376229797252126759394914444229715853912378832926499988217533695531699241273773779476599996891317957357483252769983644254798356424425447438857792822264249847685515227219417483595785514489239762319146134464891578523992932284478955917854619746371152317874856212163968814927764328516589699787367219879837778849853232134632983148456938464737856827358927146359129669561271848688369119348848926266338989587692931367458385186879536416461818471383247526868875822358439841188456696473255442874417927136258568975367445657419813445749594543792329646877916241689263939727957527998383125173777323574133675272189775118666897985874463542844235171918259654296228883733653469671969931625349196769172147258846548348547169776837452771573778465638621223556935581485399648916132968778452975852842483825229453799384875982322837515958866483623364862784585115257764145378769312556121737125675299413223796247425616292728372766912959899477858868259631676893554821773377674737956644789889248396845415299974211658919363964771848888216553446343488628633444938324969644197996846987757416523694144783479665495817619374389646793759357544789137387247762426965825841319793924739123145173926925494773286325492347628959144781947772848234697695818344364488231952434866482856811419977546883482273861291627469231522865913735682849734979533873879379727422892974219968796245672569455774956465654653312547185652326522187779556169889299872134248962179261288951625344845468948737518959579283413185372477433622878256321534773325268199893123444465597269257366987317831517737133871455981877941636623987374628518853565965291259165571572576118264929438518288943724574777115212971859515341555422259969194595597193978282778992985631419886511721987311416139183267646641642478786634861798473793414764147813678252727175714844791454684263286317878575653582694281933664965513292597497251626559225322296814376711695684833378775491163112894162691884897712711885173558646651923996964581965136446513357759299312166598229563194981893731634736523312918976286453153497525655233684325859669683883982815372364314961264999996677679768427672375439476474554568326733217393799141773616568985957817882468248851991797692376123388748274487919491863153732196381588287264778945124422691738793834115952697179295626824836343929967262886615915331895428321215732667487518289371313714422273881713484658999768488438422763249493932144798817665788192466695557978277459955658479119123972751443618544855738964788425166115226369842491285859247566822955652293737921152984891991837158755843749588913448747696262733844693418498847761152649578479266953156546169481245614958742492182355481397916834629198534548759225731345721825797717279676186577252619189398145496172498798858845537422561817925514247266915744458534954698761524467485238469684289922551182418146659854939928764343822173779254554776577865177892389996655135983796115271993365293488764393863237211462311213237791987949781418193536445396179885325238773591529297979834292329953162147487338599897565289244774372689642211942297841851779991271667258135568969362657283384988181874835154923832651335552116726257877232721963355422862986156613644841928178969415188249421456815994339869187491269828571741519277936832642585192619289294692576262345195762378564585728767873295469265255439999631942383489957523884474588256685727732118714195375727447143481798284919585689514599887994996339362425128289896583111593471698758243639293978534222472938669776156673294465131963647639967922758184775585227766863569228981341368211554737632248799757598593266132363645335271664464869183125354873367812917733755173472581618725475547519268333993734989133786592418877593173717683264186882116876868485155987245533457969483829657635898779351613773815437339681669226462838795741557288319293264751786439587723437921436588428981994876888685528713218188293514982728363538945275377452386623455955493552399793898949747473245178549766763369325244718497113721492688437712949792665379535737998856317186635159485144254248868438452152219792898453575417299659378639213941927841513726999634269888514729334178477243767898614595466599194958182386591821193658779633448787926753268289196999773929432618544939679614591495444628131928981213878174474775682772657826775933759185463965866645697972421557581793621738755176613463767744286936722965422939376983349379764561967331667674475976139688234451321232449313215677687483249695779973356953654537486416366715325132865679355659546366983756669656886315388196768563938852769355459518412458831854833166273553479996255563739982325489959333892755516428757361742886669711542935988759723529831186777947251192382294585139854424562673381169189239314299216391736918126339797113131576133314519938746962231119429311492499749251116646519935254783889778525552998437115517975434484848728237348925483437757183978657779855559659142629335796897736888794533527637923893434983128682896737788751297819379644672266439846699518998427655288727566324228414129843532662972951564535238548477858244438971612689141522157934167232729449957442829536512669568345539646936191413788195456134649745845697655882595187389423739789784892394416456165282528832525863128276317997611673116387999284722452231593967815942634559382456819286789797126378981571931534642675782859361221562115846657368453592361377671783195415536136755813723873875733216398523638136227345766514461381984456717387146675393414117172896894177187897141673547882783779576475841455285848483787149767532841861984848251666519355764813752657281954388939146651556863375929941811431564373397421638919116896964161574922876249379979884771926982843927287728776257739886943655768148885144964943561998695574279724319857195464251289977558655781696991128357436397616337956837588198463359688837193291371742898831622781335921738748974559338446635556656746191848297912986768491922199699572296539859756944469266263757983962859452166682891468342244584938848269573578683916952913221154385638981699134495425972397778531997547413535794182921394886777885895659919136981346937982992525412395323864572922591576772894552665858473878919179799828415285687658371993959439473693548845735393767498597447762885398989591977437614259545142552429656184196315732726616866125988158592276963375322919464178324663488987157981977416678833996539453412838375762161262369374627115975993112157219448145825635911678777688642837167438998593398553473538783788147773923329871877239221621782994865664926218184554299188144512557877737826779383197855224313417481276799721525645838959479951242465995256927132624598874143827586471372761712883681629396529438777769388549688994114579667592981856783523387156414266183289347959918459777536664692174227889127556659129296615593363647868815894685482312598349615482791524367769279723962468175657578495869695529945631651847827641443898729394275522423261643371618446988657315333598216786761386912489884774141344161556484691762855767399858536479354253461998996448272933538276537171649727969362354754963152657157121618286897449927919868636689946627317419916316653892275752479316559738823215657659314849722617285867611882364613593343937754534881936172766154449898424152749223389657124331387195163935484538149558338911354654595567924185881455829445124276668762658935428958999745281484987662712718355663268243463155254988795272723434568812449476775417769522565191895776656251696451824658533756994494827657171861919344216799911726997473729995914398788186265777355128994842254519878992692857166744457692933599597862553232529384684941842452824791226458733694775775712154566973265954776157934493974165681179138853985729976576975556448717839158399334593722445653488343681738622956817114251769449662216497576314542211162218295642892491681391692258631522684512884894887286174838286389456714128437672719177979277872336798235875771795921777389651122397289856737321819686251785236788994691275694238215874149536397156979989378694479325982841623845287957765726622371318459231787317698962554491813821131535877354797132915511613214622924599871723564487768765695592588885161665631837471991381998526732784152259723677962299216748892751864639729867686974973348784894821896397388693973247668655465852839213582241245795159357453691468669871679191521355164812389953811357193738787358537545298391654545136469212925194315951648924477163677913939956187753788748124447743232134397573325887642896157385599258533326347647973185268393489894182233952185554922226655267845735143914473825478212678237671556446357292753743827448893683554578367876117629393857566457853584362879995243691593811947317274969947456317666655787982484319394437749999972937744888398537492977548263378782195436896944135977495229487757819998877423651386764598625891489118374162718757493629354448589848282411594689499944797713777583982113629943991791831898993679284692812711244116279473353973478299816618171619299741227918755249899319916386513592431279665146232846556195933551769149556491474254578713992822785456818278984696314585679114512914941278159149415335284126946126549455725978826571445796989169399952288784895368466515811885927457348198974585984859883536668283851168839681628495898266197222678216955898178165348824734932178251655268312426937489432726897851864485684729787788466573126995453544559599585369893191128392647237839286397439291416498326213844991717745887147712256522431158479256814251928549799668597182532961785469481979465412937828281943534198563638739574813324532582723668434359666862628357246338436589515666239976431369943869859873751626688784175251923481419178348648443837492568678817895586126736947671172738865743815535743154933416849792627776947362468826279977129642812347654496814934785751313524126323772328928782231215843879649714269187375416978934129944898946383476637548245137783976997482442644553492465563264433839546943813256244587624171488583682528568446789217596931457738565645454181212336299364594992593188857149456697893412116288135955267764311336227946453338151271877952679553993248398964799676479425656928511924852387728481724487962659159377488543683231629391487673259631981946486932755264847957373515423766167862694289864496425675279452117557569449596467758564838784482888913875669694681413963661782647161221427347672896982527932942932569586857567338675818969926832373679544964385191551977927499512784757617461991454634611374793645495329758853263369317567629724321373165411588981177484919121131847212852659574449433165991223547964355164332978326922756296914749731397367815811554265594539866287985183214968848236513638381549772569948398921951638663295517233131855544295112443656426585827755637847774182298825129117447552991671122858858329796396259488397727171529257261143321477123868482984152863916472512329994968986647642147187928795694595375899946545775991383354723752952796166292996171991236574856794641253387894931354959354251975521336154294268472336918778799726619975495125759285696589986888872225438686316514539375474991179949442397724987951796881249821518839418879138757441176666653869651934155884254715253695936365847986186296271985132365983674247894219336239597117498786193912814884856676919837788746846316769563216682579813137113723827597382776626947756759727572176237845483829689943749359917772958547678641199595484282255995222952345924723891129238491934438853767694748357757798936647974158215475139258678555157785623964698529394674598558437389769966576582568265278555368852834529527161262872622976574978515746657294994767485498298128664866937499212873786214631435124935336191424226534325547613152151725537716654369737312648791553795229257239783127489642493786217763727825898825868393232723592937587691934958786941223642378523549797491978441963731136786326785662647619895316666838264264892519877724539334768583193598819889798791885186634675969647529842523543953661537478496348251855383385688955571684818815663816299821134463496353826846871313154321988445141975689588865661153945895662619111875213783685184937329165187831193412497937799973828278689385472925617991518568848178743693973317615596992779742279429342349998898595275191442326922716595831442791739874798421999141973449968416636926956981967622264949631484118329753359866661939837291356578179448986351167489968364442925855398536188737158267773492133865472691139774458917695848766785785753341619633357869278525219372785231891528926259494829814391562997848176822342518378425944745375872959569595556663228655782786682895535252655437998858685994694274246884755163895917619111843946323921146946254525397122354625542228847595714572898675462162895854846192198617168615979372865319497443134831941379826981465982855126821736453284692348781856151769799235463494624495839966415618246468532595414787442974657268738943221572549584913752756454583883956848242465794437619861242252294197497248415789556922556363443891572311999293145799418324199668711777223785454384499859975356749912827263981188734695125856941124725686676629426664215443882598563633165159866637845159893588226717517857882774286969336913385478249775533441685589923576733349524799546488895224859754438155795696524997937333679683528899853422571379842599598945216858755142565255753469517617274319388196121154492464289754973728658338519293783358598399673454858441779935151643334272468869976495917221645174922976237977922283963121475465848446592378725688551815867133961173356495329195164946235495663893265845121767537411953468522821185215549857792274552528465227117159122699134549842856541374886227488921824725244582391835748681642313987431272863851427355244936628638267518928258793199951242914624582578857194323292657337492531592878997748512396449151539565127385581437684476262661757997647685699745243715468249372988848199892213311341418184419948967997989651349798866211793782697784772667351529978465822947645941724467388614575794882178738161437162817727949627879226163599588147896488652944299976483874339765311244694467744927487354292573774728613324952757558656773158578357678298197938517285517536598665554788153837215475856684469573414558814948689388861494979947427537618466553628885817726433731128676862765854894895839935739974511295349523393131298719348917126629847834731793622594266485488547768624781136455719388583451139352879831382954887919716343832287652952272664427341496232227837186423767125881576239174557383644977997949846314778948621111533566714561573391662845356937213514372434131795973489667271599942255144139533458896822946498992138586236955967239844693672253752388522367384711675741549623582399152238559339945451968422733265529757156993926783942477887868589211325242779451516986584763483534813732441196987265735315981879646642523472474757365899489327745588517883454421387439173667756386265231136176977191742313667925653862692746815399763854821543744491169381789433613635588294671886531766849827748119883216391474636566393793696486321592268779526875411779565129995935284311599663599254528233442335982356471895738862565399587593729339942634527211895392747761374542564331393262797975679375397965282273265474259799878619978675185729149639382549822259215634271414369336273454394921656727836132913355316865144214296327475196636849155133487481538117521788995332818566583514999725258379675178456666471468816945566664873498388713439938255666333354764142143995448222428688934966693587585218244476669971126969812564872768316389647325845792866453379618167937171896719694983358718358862767268784158617999373969984747218874867774659344699357691544631779969513143687717244748765195991999745778728547132836824282331247215541139429422382154822951138645945696555659426766677648296465997163469248348787795462152828222298198857398664837144844843265281365696678788562494552928858262666163891667117635762884235766246172164757898768725358761197687634765812681687175321613823177226742431613981673216383693824858142827227979761739451796664762911536547545695491488323878933182463167751728716786544582482637872379331495246123552666113713854518422938688129661178495325167177185715567487124162748319954472714338783575357191495826789547791395755322875714245285197716582981816151297268885297762925425956242915568859533855594232593712123783675754675468912545653132518156486898564436673195357416315967236736248163817458669367834775788533431914851871952316999885197686117291242114263716957386382584844118932415832651981279424445952864123311871928767691962831793479424678359257922977478451769854794348799733977761561676737813742432659614958949516228653794999687982351111832756637784227812377753553759739751395879547762892118997163172831989947836564597675485586878639972138574917359677183475659229269483252166535547542171783329749273468392427497715925823416442988391415532541796994759647886967732535379746149566493458396931984538628894338731872856157426117341728337167897249454795374959354618584767634922744567215891687254275273958298125882511991559248172957683377781973924272379749112426592997964622126198178618735588298986772988618899328966725421774391825688569783798737927645961456758248695657729918211474918655848841999422298662163452726132898655577612213113899474571335754768452667881382726384234362956168584197453367932399855154424619784176147439712294615247659258771674456637814863333624934686427627896871281655292966198789811249887619181547489784118721393995759452644923867536994915943976676787132615988777323866642267754252565972675777771495544298754968766583913851424425332947777327887643599663723379367188421671469631789738579629596644943856342618527767141282266221465351762644463989384993792934591853762454659741569957655965582877757212648914431312415449451789593741222451694184197891294124717733727276961121117355876656895873923572148921111222684351656327437256533682669259847445289253599723893717876839465816529133876155394949897944327154325373463589227213618692399988961353583989433448697529857767358581358895949769628658958653494115128346937191811469959356667774899737571529985942226764616684815982769783197614819387511812996679759565385395932594275234379945677273883181255446413347514366417961248129343551319251796713677197257934698141466224483583652576293436389491575814584941712564999185665758488316557925978746773452744564585511829124926822953627734838853192459978855569892759245931629484276886185614188468111843495672443827912689415558889196251674632257246957853547234834567192362682381338455652751427234127496626168949445773962974839127647393485483658477919739756323768777897725275894143625374694749938459468245923469442785235916115614155384469551183767223861562932772889521712491577638157383672938439558568689741817544174888683853667725964957296273791544987749426966642686182946823625422483842951523416454664314655411893955786513537588657862853923149296463498395535843126837578313812137165319424894875873964389316672714895894158854356871893732942911129867237314936771423394188889931957531491995143859419969832294915782917365589815435364352122388358116848723677818488148435772734276414563625776939157989538571133216316436151772568834449195537649413618419197338287644734539149631841636653898989967952847243355461965373438931976161337629896395359799357228167635712142241752742397542393255922925221961628982655532932771845726454379985355529267773261564522172468488789771186851529197493613311965866115287796384497649358155373388592295198686515629762273921454354121736674251811756181291786186495313758174619881428126236421786536326679262399576637518723624315879451982128699785166741187622613688128394979582379927793386761713735447123564443965344313857122583595797697224181649223428175519513677434742835264417195437369278191133366565397377955714529173776764829656144398189966694786218469387663659223341119356745668359394697827195314622418496514691623592169357319621716823181659343261261798697274867318337435193529325963869751574461533982993172443537299377478525674818715119993167129766766447169243977568923149166744478549621891165124235333369842137158436532461687518695699484917551492289742931474991854915762226277834992399475215258935346941849342215893639441763245867544785268578291515417832764929823444228124851889177379269686179273843686456997479718328314275414622618384298348912545213971773671828133517689299981974549666448299377746579579573852633394924929845122132541653371163521346394872498563887134316186861677581231359595526573398838985691488925868575865331514814632796449565374475131259525645294691997239877886314368186321836152242141965816541519453297434498339831679189921598836663816999947529661297664848515196813687152661318741822251862271269619884355476469168661819423185725798887718159988586345519782583324366474857576955821321279466532263392886795469716811628445722767636916491999959832318821945417778218124143872464798443662586592977832298331363216557682611982856413964114229884193475363833543619799525657593352415229496991415534558261143764377194763429487669854295622599572244378599633748762853118518445657492919192796196523373111985734412972973515984237897673923381992349854573993164195222686598695242863368593816821426462925664993894282262112253577937498738128561157298497382391235882947493521581425424963394166468697926889698439368659387435442313146247655689724769483872418899411374486312364636599664972825821485643113161623888412265773475591599466749349669193797698632113318459623678642868698422864159699772132815456946253765775891718731469755375651648336726955487766947568159837998316866568868165816179124183477345187418719828585325979131127339723826996312876321481196329892368937754365148126154985932178677458211113886246252624155722216318949734248358764525923711882294493869863375993621816755989719133476581127443249862539331255269245962664898221988889368416626829551772264981784213715696347414168545967841521985724925883547366768978288574492797153941993294781655144461657611474166884699369913648589513667618318844912946324443744832239165774978932267392635561215656515654945391665188493319595795729119831341159344429225914273676815253482456476249958592747468693562941698622799256834743355222873349456198483923639185629873739819752849863468599716175917458314698385343414184941654685712943674368482846642349741255537153662486539433791512576683987428835559988728635525753368464354844414568162385193719129268383842886868346178268963944626865132542898978826932849845428547512783587688479388912147297856939566377427764278384291758128944775449574215439332776194966792964855989753552661912115482179821838183953525736456953961457929518634599785827221791181842414796845184749724735269958973459721871595171888128555247277953687823849332938569445678653254397156976421616772719441198648516854712618257493492865184588513336345921463769891262816486226811896899416574291173982544466795299873196227674266858323763813169897579936837516487898867637549459247469911736285166415683467126433526539799744281666646828588242247636741534838951224971513682181648125126973233353284642979747586676679426242237662829987475741592833711716734218988977738734869118922872151316478384132864765915361496921579621795582663777662517512913354724546213819811751162451371719363299218232638632823657559635146595651835698549717392182191396224819664494537161296412135598629671633837671954178262712587312573653415963692422119998661462596738866356147435437463144872866423372715286558932475467187369949512115172596537935475335343285721216264499419951237958249618487689435587167991187917518247959444559772788494162777655321126316284393458493412783573562776892939767752227348328558919148854598758362181122411742426794561816834955742785581248245777354573315123583637846694342393645195384787842654817919733955941137475828261167114997653856965369618427773766725763332974353747557625154184263698488868444241727433543691595323792857832949359513786884598486629592611747129383188731458589568461893624963594235394969791844388665959337415847649458374685688514921286647637471214421551237543543287125694593537398894253189128154532299546633836626644273171756634789886328785263357598427938236549269876269669189534557891656947124796696596522523274485434469596764569849747658699454777554561769872416274156725851777416249792956697794437619669832353111996586887659176875137591934382881889914761848317521117796822973965612955895227774521258235581461334929758675396425721624164519878169418117139675229388863737835969776143921328645593637737256579886943661138849163647651226254831758216431345263492296465911625623818519383692966276741988796922556531514263735193315877529918513985338667928582896389755139985661281147869665696377398333426188183687935685249927548841133442338946927924755374957731752571533346576447218867754858293168811289387625341936942585245163347648282631892954385695956659577867286748575239822874817932295884153199284874887784183928274412893566976614676394523289743525998628749766927289529275115158695536458132288278783666123984763977314294879942712557862622983593493397289652464946135842373553674964231496943179748794898933627164242584684331964782283885695568948269914674533138811682789298322398473822544668236688999428813281436975881873983288356996894726866534654196569367765619665734238738783276534586866946974111471192737457116817261175979615496522882717526357193676952375664364639715467631378616675372166166749129467425765447212564925948248546313272443776167559369927683172668835853988538863155171866685679791336587373988541155258558128491739285265468631887796881972682198717829841427825424514926263779742796253746821392213215679565515177553269214276865537799127199727774234322369683611229748568265293591178125512968539642751667421599893549977394765452937619183133947749828811854614327527984534877557724886976577454892324896517671353599751149151826668821899219887996669299245998875244462212374866275575545164685577133174726823687417987332991375271777229382284959591655917972229621271678318876973992362456286877481159935755979571753456719547654531718814437945211182669781726626322795521416479831963955511441523612838161562166395537257768499181538235694811476237495153354544742482885326641361316983886297112799995547378445114658687778826857386624324825432693765883774548728134218369635493348466141349222883962348469848716157659819364255768163939561639481158666851829757896787948271749425959753895658379948898975259973699375276153922999718977354649463744499376945516433913237954665662668866292791551566159149615617879686269881779222834753193928357564934995994718399815331775843547879533547789125833781135776822294263585512385351833775725124519668334379385389744738537772346736711165783343289196248691726525292684621293917731746676827824837259776995585727186166337497985192242521564556793385294414935737494591378549565966389154869184726473287219795358125472611236593882926459584837765857524517763375544315452993992937375277989596377242617144932934738793964633587858655427997827559115746443413885932741745158164798892583436928989187592715145154918589472179747397317129655559185964197233364577178376253151953623597563262481897433245984736463388124997139314351541511811269564246395387488161856214952618856329958164389373719996556182162699987841723338678421971545862374845242538968815779645726235897751271443885376834316766913719268982123495489589248814779554122813269339849952377961519553876986838271143952263686287379667814527742873523417993354598123118878436541581737198587978738738575958121621624472214879964423739678423349112432799683425224891327287163531954755143344126672859998848437481372557581468491614515369734261183526127495844413457256949824298545792396163727148996478797867636963577977878941261669315729881463794497332489821251758146882554519348776167728545865524922577343985913562781319286893863588367972497582548379919259513735388611956623911238595114613391465167616291683896746579231876499415669754197227318139139199871573241483741487378317148638556713993779287126321687993944986997566392565725417785346592193924759374534118627994221472473496912166967492772182157944829626713371344934333651489198813422591231648653511142326364167796899833951853269447849353595554493527259795745294162535891132797726848945248578646526634648792298183875188852798972517744927483529647254446977348448772997869623327211446555685946825352479771321977128641749896591975892284873299114349374549365439118319443746698899319846533554383588995234466744429735243518587441715191513184412757715539565449465192551853142412776265185796256966722159321974922682493512389874355831498972631188483139824885852639134659658694483133516454653956767256893221381766742628956689714895529485367454687642234619546167897747682384118874763174657824384341954154458886482773754396576396168449798897281562338218219599865829766834217192717948849496525586742139733955184539445922912482561687455958996652128457497937265114295326329225713631516431372514692261799794439111197975354743613231684132585837151169717381736852756695843463798356839652971187723636295557511472139633663558989397221796938893711941413895486127243265667636395184924141715317467569419842636999628757495736186961115883943839493853592299364668877223595269399434647325231725218822584389982774863598889294425262893892889654766794911387461526419197429513771311375678137147859989352526388955885831438325319814216452655151968741991373147514622659125125648759253388836432731986282667991792967377715969739718775425613749348287862364183377527926473185934725461623482728684839648536923447388934665855335553248796975853941669914151982294766462727349499634722752973315695358761573488292823391368851618327952778817311879816912774923958429894817285979986529154423789798858197589441823425311178247818951577856118696174414986692565156443967828417757877178784441469943831992813614972139172972945762893744399386796213745491842435575132958779459265874762257934757297678729674273113477215599993853968461928979593962677866132416994684754723963253791348475138781748627335459535377293426389131768754714147746459462422481779362255464783535529169829899463385993497976679297423767435626731428896646653678964182888252158918536989661411965132137788144486765288414667536239467259279818653785274145429316946937717557479231864411267926841188961773652226612382685976355981544657494793674798782548292983733724676397937437921292238976568658185491511178657311277473788512661837633767188357561871936431669738871562828414986192999591799691449745686629778656254227527287582612887131752338357539319498165347245719323951974841469264544536897867295916676161978597456262741443424621885569545946529276558578953196632257341657276838528878212445678655511355749818762987492113581489397446245976159839123564713613493573476982223676297619337757718512697137456777771887119619342289638851823374698119348344949452479945773918366186965599868865389125527291855123282953127888383521568215416659154262446335994111794686356988336145181316996164389882249986249444451117593976596994265323239934427788617926853152681534522469868197535873259823566864752434112614129391275838738523385375476746311879181297745244885547686469478436369571987959952667529699425316196427887379255773215247669776685296374851745152462432423111413216112886156677968662125787821248423127298386574658277695318151162711111415325198637148878799237551499964865649713692113384413518295234874796435599678481271242345135836613391486536323867959355868348884773985827925542459517521351928625188581993873535154828996783353397541553343584511279449895162185376381437155994846839549918268752381689735654393139235151315318924992728824763973818268298827281998276796599941892688392666364863834998576391778822775854319856862931446912311114786378427184811246841926271985841478583566788246816622147954263246953236253693242792296157672496832114367892836693987413446193948148488119697822819993449942513284423974969362952521224315514567916339964798945171146232976156779582818283397525222562626965675774192783157876772798416928534889583859577841399461575796284237126583342461878544724989358633287863199842661311595974894612355237941989851163979846843923568717831883226692368897649549678656741579434787283296964732994192851429743223967797219822963856148996191294478257776319934597443316266541476547578591735668317224493191217219967182873622917818448476479655241715732431185175229592831936843437269479185755574916359914799869756888491438954953911261986717114546119756583613536433597446298882112893388196619134741669114255694117251937863448174219229961532717468634986334784238291294522759771818913281177995216251213384363439639349789279178695973238215698617486515222627537732443621879586585522884742963679757395647531359335318343442341322121575286685199343534958451717945696361947519964619616165857869771159513587888633781711523584649167579628629556677955373485558735741273485358583926894931627133228864389265998349593481818241912727637353575831576615662742225892186639765682966778423153975483353611888112377563149687219161619897378433284275654239868926785345373185557185482328438931731539486396641416789756633332939349562962455676441472716439821917939958647618435637135845869914188449919863125438472124811514778228448525371881428513656511954664997412653184432476784614117556152632271612429342856483326943557671348874144149833676971841779282299696534924622856293116837964521765381257886734749187944748937463698574149525852192299475318937689968957299227683674649588664237841398665889311433264457898832864736521681888912592456321347391535346611812619349932558432659975657429925688536617812535417622365184285474993475729259511979233274533227441235649643429326452483554886735571231596652596182624574553958357946323368181994148569492126526964672677124587583972596821596116642776393167546669731519189762752675596552867564715376143844666979143962987867493276139736582426619257811959166666635431496762656919345527754662758147668384487195477891241594469856725711595871642698144896394156282972642889242933332772676443219377677995989785392355194815611435993352211273981197549878581734142443262494115598622294153574832214862798337836881298161345135613758794599645254344419754398348653349964293558241554844839546475713172473453773117451343436836925124539991923863777941595151662768663818841978649369953625386535349355259952646873473929328294528851462775363766536661495747251665619841839745371874542416984319281253546834928548147288256759771879182619957488725258194896596849985546215348351729859681666775437471755859972356957769499822456456593118257893149695194444945284548963951376165742868895163924648938184845597798436367328669871725286958693751486696872217863283146494868336331686543335785637712357981931153189921933457245554574252831678798479796949545456271498653959442592793228647177246698154491894676429471951368735382561694145318693125558827146912972898344122478165671954462184487284821219436947865789892555314852726787518192394988757217597526986119535527685224325177565835919327129684448598135463842694749627972929422572333793666648481769737937868638359959761869356223248628143851995562688513518866774999872973948349217183682556799584311512798644283556785775794611917779626826699614632566849792379839249243613552771863314615835412786366325494187981596811923128366969921942542719731264155687489499255719919575864313179299229876276611517634228872141774267238592436915396144743834684918641245768698321995617169565837723666739998937872314155197962144435743145565597344447417338962162938956492795288556184286692337288567186392466425554942887849866559631118272375228373634477634284654261947669213288188515752889393922291267157257589962754173185532424172483999763114464433789681961487289693988673477527396266649694793295761843728991943983828812236974638352517355531719846675555975618569227776175893511438315945513445163558548546193741397568183158557267754753188591135384767478765656923789825657488689639139749428818626644661893379943252497644639993577174158226827692825739653542424943343855119149837676564785942959251514763738619879111249576741174118858931633747864455475658173214792493776532581679574814392626275592138649175827788376725519133548973394415251864747957879396484844385133836315758477237327997833197689761267246698399222547393557882818823278216632312448398567531573775475695525354886468529969723466199625646147737721828877617811235587585352312674512974497517694384436627575893746152147638291976147127538935983792617847813315454669275463255875415388976857883517297281921599765184653769397823888948963713969235588766523486762996686242523336662455684688247626579121886563779536576482263638799873936924857759958888381933674565536885984555443767633482256298589642582259683235165463887987828573881816417329664839268388513352486399625355769838152654729949815948238141276358749318275289462563328811565689532459788258536474944422637494845765989274848712783973742453352474739711571987853982987864496496982261715881975828314385462519181187947796569766352827621211365974338497559547518597796329567656346992445247911289716667719492768352527817277156955277344747158658899813655589354453286898646871994336699722441388151654169276396487415712873366686621646451169571513643557368225134337369863729561661839444969663981133245439797225282155178367831958249797236698555592714424651383585262952845124911875316223368429982921987329681717937187797787369113835632836279617113737171268123951581437552211215432159759735599586795344298236116736488156392911295683226228973497379121522764683559764995157628461924265957612213272382394851193358554473844238745519768554615749526294932699129913356933383735213387281173255334893954729946416447744471493345433943645842673534116369679885395239316258775129344552499634912999957647981283149987162213415743397261273649695669879646421198656544718654963618691377929686674757759511851639918165818684839949868683843392627532897234568525134168384453976436622282141247751884362743491532639936539554922442494954744918298815545716623392155118856526193633635694222585125615689875234991572269811774316242188767692894838796449689436867456529989627419744557944959936194899682848129815387699453779368355668337846685174993814337336459664263849328549744158468149382229832477184662827662221641382472246258911114858748383141513511897848848394771393938455676981228464116797294751748197343636462762524295651246392589247849358391997919528545567741871289118695916957297198842634685497959945246441224714895435254996473479643765667176913133769994846595562649592169932486465944322466489225383893651188413759872924553341616111982693175242793719517488618424687186477277135844694996849475971589621772533865387311991234367166226889833756352235373264425296169571555893967624379395562827175756683513492417653326425161878153591945732577846834792854176355156428829876612841916882555452429742879769258663783921476793149868774893794677711828625714164897813856936317435776947325431679694886911594387233954996991565229235547678562315565751591446757625677162348513711825345718224728352532937193415492293871566429255948325846173267695269112575813185647258743611966972392551612529624451738789593684697182393276481923917677652719285892191993649162423774687454451343193582846428969163547677963451164552396732485975927188887641797731354219414494233266521963793573563352166524719572168347267524529877953769612343658416472782631854275892871693824661884172385359998615545626351839349977573646618284324493266429181163533618192713261976743279717266342282692875176744687742579615295566125317652659766988929373827487378659337586946378886456689278586918242462262266394923463544876596927158484522685321418181994529494557458242714916466411796491986467459876819198484111227943775226154871257239382951715985976595989292983797693253926997667947282128956647498824631581945252471241155549249596344454279164988848791283886666368834313466449673256336127913934937212922344199454282151728573584815987932926585964147149475192932562124366831599788333259949764345662264689657859499851999615674432996443881864599186432188571681948388786754322985958836261133889511652424448696779948657294916297828562657261128649464848552317315832957943272171195787794274144895561546344349381355779151346887519175216821979962499241787733517213748194416591796728387289588818763221738772646985218534797783898854228498911853691437752234498698373947674784578581394333269293442774713474889896122248664683758779572377759856579638346615496482697139799523853951519942166366488769646454458732511515395578938561582595697774488875188568884178462511725965497267873582164717461764795848695514659847179572829151494978392264729754138947844129819649783794711928675186728665897721272876712856715534917712726113579279692476841383188264656599636922126754319612886273714934618513219579963433939941622888873486872798352345752496487715957347123691392739749946861916224841621744662327848289181825267717697241831171379812877977552924771894487871317229685372739828828762242697466474654852948651551416813991878975923154712614394692288959877589882895154648285348349168778329369911952373819727141716612455516169948855133887982691717442414488595775115392418956812648335266869332242117682654632567638759984768286768156462466154911554116762399763426455695292865889148796156829784331325784544228627679996631288282751835885992147876318493487344693856937869828156685693331593742758188369336575341479293278571551511586914553947893487682886492715927281158636814696934959978539841912125444138347555356184275514429287535255398549467498317574476326948537143244895985699711848733644387559276899597772983285853194564566891436293756788863341969315799876724863673186559153281871974556277561976166312182966584334516373892792938962394981479951512288299973243991363783187444138879376774136345138579736344631599175879293521346721524786596787914635199234676598866275528672489719259674178493723253648138411356381814617293665947169666753948579264369263474256228328531259289446884656587598641697783444237965649213728112298296296547441426896833466876787773416238152965887496379398654984555847793456948767888898638938589614981859737438288685925592742927537219132623986743266957147733665596849119382775477193858989538272895183451556281298688763563916773794128831795927449523442862223643242543498544486253896716574145835311436716462588567295976249646149714496441979988474596158828826346276649571556956221448764259818962899797938936712917775813942674185875214873416895413148438639125398618966428695824746482185477289817918689473777517588128418121317615369735997239836297999496949269642364258984233468446584125339715642848594612287336147488353124579248158752279828786362965197696417143296833145783488782134114572526344673482858794433384519497677456756924858279173971728824822793551631197296276919842765551558326534494728841823938997265949171885897954872115733968523398233289324177912782447289691636521642932884167572628167527798814818168194862367485528781564581456444661193848592366467834832765715275744412873127849254254346186446526213424816275724216315374326698631123378683743363677993397381585872526877865323779219411999141387525467948995683971878515689816398857187448944982319679388923139628824458497693581841623741427364729541287866515834177944856554612177788249614873748689629397795224512662987327695687389272298393139298711844795775593931834451965443758789131986569474398954576785763434695251548181782273892216763186111783889131887824547369719228428289753549912588541499472674723295786764279279422753829239168989843474645315961961337362982712294493699424888249548794179723139982337891144251313912295956758117458738535795997365671868157857346336837689378421434661597944561752623682576736487872585179254384462547417777751823894327521249449787471593691761499157631917935647771627281984464838799934878186976778422598791633993338176792892548986623915413865834828971595775397597378893991415418419144366668628494681165179185739342118483876742374626519819367461796962479823741616935844593917768349928156917918867727635888979672759839655173279482853681964572515527914528193391541761379663193515898841756495239299438618754169242727595517691851171441543782792938663935234857428669282673669991736275929631533184124424797428589191353899538732234874596543329142282449511929861411658614791775869273613678136655455727398767723658575257986442645676289649277897525935887774399317642827689982135969948211612979576448318147778821725387359847242419165666176656343597649865777667294781773574152768416946713577614377877627496969736765142788116917944188398124666855332761377697664963345462849781528677732651267941176611459847662266258257454478556471931454642637158669874886698394888488177951998378188152678934429197428155966479312837187911645353539515945763687661579924937555713923786754737351224655842613948187654879139868582151554621277249388669163712667997982935948346827893295829213864742667595143892291279299631891481629636173184315536846828814524527576494914327474919691244136819644234513447264728662746894617219838457466862767137345722433977731565933657294911118853493626896949432284818813268658822783194685951527925975732652378446118267193245893577295179547468798578814111854382336643652317277452744424398221981686934787597185559729555445351663448568549795745168967951287144961319585637245499152953176566984494284971195282875626279577742495111143642744169858929363294589882729449225781485872537575415348535671985421593766456558538884339915942826778961492816158461219823725976729996681817123772824421976884733269897999367681775727368985772475752772256997863188377447342546591249815136182826276978967168166841589143141976233352378984759279564947213291383925494847387882488862652283964481658829858728338912796581977485657271869192587437658896489578639614457313787138192183797769961515647568529533634765174941127863783772871258768498648437643629478912936326445432752956629688296649914969568233365496378499383671676953199736582115441474265356422731376448846539383661288159522424475699378824547669358788674525199866827929323965964574787182546397668442339879494826847275294651154965595644133537112129218621494978953416398629149382178899737589995397263737664228648267724734858643812247579899147547591781957281552887144767572657197773742785854573179665749235392163915191941791249977572759781935178853138696767935581185963513471513778243595723546737956948942178649348258379488858729361871128683457866484675252643648431913816564828336278647134397749484634283457886787398361299937816516674486888794812841675766482184687714383216121677846112253937999993196449575597552531956296876368198276755782358495283721472947717647629167199432452171838577564629937677644275967275842377266156278982666188855528537643259289771958559722924185575389367958658483878933389523148567923665778192795278494553472661688177267292519396624998228219782455937322356214187473331777189775196991589581329837772769195469529341779937194661641295554982892779358682798437585429862719162695563842356392289432616674764752131876671824557839417674551647584723417776597784796631889768455861423727159472687428451935915476346991719611895535275489719886672565334291794459148494199949131255538264649175199181772913422765416213534488244978416624584558773313645973677592474478922545944736759316643373996329951169337999196142257214599431253225312119962184448365524542332119444734639931679626137235629249188649164166565248889554636361651128972767987897865652563711947856679872271952194441743873666482457882622216866971114158155888311326425661438366341327525488799288827976592838832194265948252381847632137698864593569623167783782729446614842332196965413391367925274876687242781957149473568852116536382128599522459415637239769719781524874792614886569114179929493267578473639249521975954197227945119852665188144164225792857373289147944799222395687344889561622628464455169579681494199278752239662675864881561697648782958535576585492788221183868676875469476236495535851492397859628787412551854238291579833767767476479734942224492556921344741226378325144748538494197653943166375877195563772986638769425669694729298757891813242876617781782742965468666689239416544138277615595466316786518332459462765351815797659846833415941689785635143439997224925132368867999396237868875471318193837657438324277825999368879185875569547629828958386624228727498811766689854893686683191768778716972984756673151478517541924755483592274324948215941514256992495598421124242376235583368319887494574343968321213653571185716891699327931734886454953737234389613449486899312688899197235624378879865879125911826515968672856845983686444428229126869559418633791817597787311485525742154928565442575128243128718916887343742595687676372946378726291148517988282415646693146289998454582848312573853683886662246545498393993463462434349399513563952514431147961865812363881645782523795578737397981432882925973968258848787465252744653196554813683872816236625125781176329551255852796227899845323542383988739956759369689691972281115872198375128589675396549953326743483939497292819358239798865783419145745721361416872416767479475877243192635489913981837235693664748567945484366485811135125398443916545513492915295969834138689146962661178989586286879628853972517598429247297795449374743781765769131798873334154483372376736966282698366455969211738719553887168365897913943685827938769442346642485373981674144515971413628919656379785918829737722572878832867877214366435713649667417337597577982859278493362721697779493987513932621372735867386992779685673944739399723161585745426182677672736736883651435873272445379665773592841524661688226779531775275978819529264333825361769653564167159784963874978685511952596577353338248386378144837811997244154585511652558217643338411129651194981172114763352789761763511287856565378989766296783781247187678343351574254421642137912349798358121369198634616547265957961942949179311659553714346829451488796435399611921217191836961122857561588728576715424191155193252881849182194624137481815331745656962428462234983924278131331871752992769596979892667443432585194687267455169481784384536346576647797352438525223714759954377625249577113186784237498837629925354475923978528357399917763142811613778629788224832765227196462248376635773829569193868216534495943829724535256383337995492774872763913238145737454758973221769967927548796512468531432339579388791989718482716433837153139387977488757157339612262146928475275925249835864786332527626565684675718386184256515277751478129715394955522276317798821267679125839949763441946662595935453867257362617668399294683282965948533566138516512379168984457822867663963124156786394135171355919242311899117784881169714969994433497312275129784119751148843119484692298924688133889264153524918782658133892522622758581169742217187815929826758399761481893317265169475317816581851294278522713332515578661358281211755662571764233777549993423387665714344159857642837197291343659271544636735938924453768678659152875965871887798974215615752553382253986767135248873955753213874657581435644334387822861835434358283249997863114773245287284729965651725347388495778717737472729415763241368443824612566682971221775144918427852271957635612941776117188151422698582484746986459197758328753723426357996965725866189494573181773595853272721383539428823141654653342314125444371898659549376296498955757859785465411894788628414955747385825666767284897539144988148466342268961933989953994643476641396933599577712595394955332928216956758443169922661822849547246121355991961991589175687276223823783778329837175137313195531665134567469554869355614423245416819687758776662488889675973974782625256793594333328914677446556753449793869625738333438283284639183135941967485743456729926154147456855679966729963369478857344638232869882569186484112933762717354355475119123356163181743895954524295812349989495518767675184246819885783228327932787411829412642735358839843539917398325922551219984259379713316565785791246975899997632511641953737498519494967237692694851579962183968168683374325614654725553727438324215348716978698153547363259696276933613476332127336563953847695545777957248319411733358767378598774986112291454883433817645813982399885535639129233699798663394717818596278588396595877229584975119478694794667269137659661499663875994857925846834892298515595877152483255978229795357327425667634521479661958365876479766858336193182237242536791115788389948871499774856814651429592967787894138986812182625897462156916226581453979665977726111974346473192792967347586691691266726985768886949432455141186261776776615763867733991562369127317253869585335443647129742178319449582729611263153396377883166191486226412216365584479994743356669399399925219482219535182856395544495186362673851572667861557523652869242982615827279595396659351511975226544628168426799775829166734952888234399235434499453687735419951394324724768111845913337498159369113727417976329988538279128738426789665699874923322997762339418562836168149548992923583631663197798317269897188627694266625165354768664426137571715612848797255863264839952741473776974165518641857778681715575835958821383594427581193262299455621865372526877989556721751956284379781785657345591317594698311849474427598779483316764156255249141939515137845414992685224178554599868633268337527865147668518265254984381137476551198482934393373618557779295576725485375892418679319579453746865362569382493238747499178183568517735974835952713432523322883162843928397325994374151796286684973214442648173822441283385228468775716644633956838663358737131369271353485916225788661591847455193441899412575533368592891599416229346949758643366744765451247472162568149745585974429226524889653785665232521973624367487524771296788245649962493786927881411413251891287344586489191986771826441216248962579967664225755192759332985792113179138951684351281849799967938364633753692191338161362288771245475645868726536512514711621636332911961646847995868311523936178862423146216899486198764484622674538279532637277532678971415996648754836231213342333214647554447225987631249157769862579245718374634311642151376843119436322495256538762168921926458849291523416417148871562467237769568251228425829738453673628242335637851262436193982391282566721671325426113264867667149147643195318955174418646381434994373879621187428887856949399142877197883393225894516457172984967349123771397516865947941258615457937837339966754849214136245989897113297919865375845627858996822171696864762884746947765617316269456277954782652966256778227642634981253121983698225398772749568231948643593374514949736597574546968979739589192814755553657691322923379484222597416197464422165445958643873897267997943565478694566216563243711115563592488166312665453667647826649773355149685615813224493394713343157823546238687574219291319629323634317276421919237246389668266175249492198594185535787788923983175242927718494975716538367253569283345452856562242877412777389388748293781338429534657316667585343686928485198135341669574164624492678981421858948266375377728618125399233582565632848897342617977717718545941194637785498731931661868936358897251364489736295189346727585179783355888249536798298223188413795893899354723179359522368995587148416429579942995941982788357649496597871793279325587146849945454434341149668235791289743718596128786494848755485749872768922842813898449449791295152425966856225296562951292817642494478655272329546975698276859183456454467524731379782298972878675437865996789259839122614743194853186138862434192387845814846336257954887679534794346557465215468565246848188687878352489196976627581259997481816845695658451297398222784582455742775746745623953672239647914468165766133623235878161936844846359827988319221743959126122438454297764378425495237941372186513219955211324542486624248141372332722574238761741542997378733798557925696992945763674145586484428584945438968597643221698733231937621715673297528267969227257185373479593434613945533376719775466152266622649123595649364781717393781529149227882339131824799279321597252571573773172666862699823413112872397721943718814819587645449372363748166144677366947733245333914675859398688122812562386767327197182518181659134363832752864825595388922731132634782651185724953816118374132759146751795542535425326223614294499792551267446367238612497487699222385378145442368142846257468285357793552397917813492425664146887894216639583998887567923976286695152361229581834299256483719916627823245923636295562389555717547818981237598288948138846926978523867758811747588791791845244443318632712962313266551782461265255328595699883325153465759442872988832621253237347785435963897176782236918621128832299714895714879814164561169392862587842471372878668338579155335786938913996872947766963461237536492711826763296516313473645319966532873152156876478965464448447772425218593516991213313129365723856126944872383926653116698367119676668367312837195941799184496963871364912279438627669449574482674662199739913812596456311474139763657979261458977549548512217786819815342188869359837929953325244266263184976812483748148287645546556453953514818717757138191795974639927321528534789698819581427538955214141615133967416267973622414499614217171459648362982766674298728414712771332617878762295883976851461131282766437468956666221135411657877393371261449649777957743323742157961972521283114855579775618694571629797411415567681753495815141851551796399567956494794714218642687257521746343259533128985986787787816291469979894942262246232895346566471228791157326485927987945521887497162775939889448666365594458715614794854441535346953176469238422165385645856689318186863531595825453259889699837293556852317142459428771558524454269878153913978889125377153145268227658878328547844216241737716795199967386337677565619583492734635286719565676426498199311363984768223453713219274552551939352778962861824316766959829965657475965787793987537548273272147157446112634269473816469656294525639938328616138858925491288562211794371364974696877348614127262654758785682485116661285784336583435928497646216662541555965428749485236948619979931493329345794269638762237429979548681352224746948876364818158578754769385866216463593898585945111493727611386414431333379385678414534174815834622361747751432958971847954158969658121948551474499985252457646168923393422657849566329521532353348792654868724549739979713294515925236596476444583715122124587215162157751531488558574386911951614626196746425735912881865437924414713977786776899993649887723993866799296961287937449825973293486653813684768926672587463653999364478445393839974785265672854517627822666951687939599164296287718852838913632932333858137659524167914254849897787343945185867988985185855918629265986648124671293583916376384586173917554961829755885759748112661918262286471247617213524233578747298241862152461872357143744171435492195463525176365935434437848348951571216767654395427969876359781839393966439592886446745635271499263159114723896618289854869984748646849876688946612868691488519859133175286148485977974654842231138733991894631375486839571864429963777993954742379769334462622143219898333814238834912197532155584662378789183614739616163832369485962798866888143215453968331229917877336893749373419582731711262591587349855235685275589454592225261274544245947969155378896951712193127456717229948259945144457514197534438898834338872773384627874742165324974346597729847622416839587834397939172743762216175839341243373686899718887268429218882432856266918843357529376971931159422999348554489766962347261132935944528128617888539551776575891511518967968248216432918839436225253338547363648738477659387692452139354898373418524866455742518875357455741329299444962518298537413143325959582529731441487568741917774669311983767331416639715492571129186242814951343889423166411943551321618225651419128313187434216749579879267649888431585763492986242815778937367123879428439659266534266215932769812417758411193253797444197885627158476149174676661667949292164596779294257252225722179694696114418397924745537997728973839556184748494777459925452192348983829215429721514741185818981582114994355463343399678142328486634511799762265747552577497156737733855785896593599473525443371896294887159679899159488932989523399677449959456145316344613149452372662944394814389494679382123382494957297964168585686264819366696922212148133547953273112657794783366642353534177672223851347965179999749487154124988938196276298517968869318992182448142762469298497949274581442759435447314999595629897858923286897683249412143218987941696913544948672247874791721428282643268572895462176366755837333413995259989243549267497873964748537578343746661681154695896582474889172511193236964436889214277969639523967289355198792622189427477992845783947685842898977117182869619337944241453874756982378561575813146682914912211781877552626858172815249194863297779999763553246913768549516497794765719389961151427887283468858462536733983127444585639754338116823992873976757513167816731726982993777767416779689746973389932423756396248142619974821228821939333764466319558885171375873885432371782575436943154788329743812575362927528273444956141966273221955356735777413267681556499395428795612956452743736143768619477361128467878848825342522591959685117932774135323976632562386791534331319571867521685716464338296829328475383141165489316795392371931847517327381771587866614249647314188681376525987728111857746378994848957688678547997247264118675658442565539971941156151842588832542685179333273678576925861744433578427474949796676124151356635273418872266182338465717293128861444723485653817311724417631959213534978312752667588269656415224732982164727296291282423286739754234825562834885189765289176914215176825163451956178317857412979717341152266313674352287325318481866236983356567821419348922151972932198332191914411598674664215989274963832654498958821373542129227794336691494817512733975155415975617954786535352183325863443114254199192727643832779418734657448519265617636875125856991346831171747333294541243142943469953735933999153183732878477334988175749473982198415388855478793236726385468881938366978827449526715418429215717823362539976115657887636273579293191675416489731916199115945736582573211183823868566885119938173884434548169658984625426269419728235754375546322265268299943124571199145664354381712187529929438212251934766377279662323172555429648648441312774577916569356417962391669996589579488852933939362336269362258649358773626178136473132789551764994355812983435119916144365335996271954767973852541639577484642849612225974556474347786964485649269762812687544533282483481982813878921178785968129321186451321278267188973577699813314989253367179186485791845177529932997863964712463816394612936416445576287458272559717886939114468191633315943417112834335278618957289988189347588894162882133733994294947911598626496664151663197889927759583298661234956873467538564627817645882962853144213277551667542131988325631597566344793794744693557837975693464587167947667289714972471938142462651945896643226726833612751569562255522191747964321336982226876532344598745525873577757543991839529113736454922895549753527124383118424596391273545783249817364189784443447858476745957396393423484561426284672132578193944855179168492592746979824279425682333453928735866179611145285847789562845387732621194272352885637798914744695517542462854365784614569588731161199599271998932298153338756692869359866819687641197686513499857791316882865599642857745845877851542621968214367246453745879883138565687988975821944175151798794849262241652772628549631993773895214332239453791629187974381933425976117796774379293343985677283892393339557536238728353994784167813227918569314716483984161593518438267195556164363784553214139872929887493553495497764254586492989224856693618874683412993367198628747968829518286337439725454488582785592448346168296998941968581238833496968858289525256457982671977347451837229987621451294689117654825252359686583168374998915163855625667852468263716914594538859291337525332918511273778882279299112677643643845379293654985257471318866263551983359278379411884653925924826267545768625327744319612128514694756638787991515636781376174569551323897441239339282572437537591695387957269635221443154619497814828415255972567176981417387612762157959862854542942117427462535448361551617223694327125635513587923824761681331377191783384665568997439823687788875194772292737598825137271549971718329256518578471623899946476473475118742658866673918715226399648882224931655647158941644179679857849679638762572778939913353858662857132841437352597251556153733291127433183837328293856852958592138514661569931618951871287371874517339685458183376367478317989461138596992953396965713346441259932463775271648469729759928135165787186118544923988125146557578592258872781336276695124137529528636338538576819197822984789612366291299781577561982399167196467751567269382918334729615189497286769716481461642667538612376494519876463668669788327882627424574831494559827282455152367666486567162122939951949125576885534915681116536155424129218446129597327644696892244492183477475691586486246397968176523252463437922283796768386962721851945239369994217593984937844728663275194352346289841154138159989389149938365659592339444196319714412736898868784394814134877178466399994494377798362261531841994768474975487228656398453122976884454429327663696317648983477419486765898298791824427768833892171515264658149735747427959558421565329776658165515274451299699165359928698178121253917582259314574671354231685845984841687881774791541937237868885946655311898747836812196892997981636472326219272188571343791528745825262275561555136189114224323216927518132432488211893664337341486319137888511343397358157216836131368375289819128857175838538812936791368819844537231392973545633429688264322883917918295517626814753127729385559892195589356477221962879471136823719833616357845646779954119512259225327824116527369451857538717476354437467288293767139933482395691254726226836775343449495835195256344416985232816629783414734781426925465982416185775619863998946321162272341964748968281794695678774873858394699536539377346515697964979728546965968495938528553597645645694347397557491343139525239873795864534951639958384326425998974567365242397989686282897477663676728557545746928116766322855548321313198878779126125612474144424727343575989344147982267366592712232468786344488488346966754614946493265266791853854162599377312473886976869651779568796547989823873923272369644529192467954864388867329886935581853684388492629571713676957898233131844971352859488978479667332673698887358111812673473751587444715683799973882825697912964287797646766432514594383838122554171627915851855223269996435652497675986986883615268731159645447533275434435966278768145381617894953763483152154578843318438321844164498223593288226316796482993578953558998631662513919793383725412198751278354526831744547357744793196538777718428997197438659845684513913583558287372628361319411561873163518264858914366691234872978685813917732868444387942785867921459736529197964191422639817271825858398139583668291515847131841646491256878798597428542336518478226338667979836277137691162715753179329598971924787984489857672794844226562962876924338734858985561787238996213576965438745479398585588257262358984768625329392437831313217589648483968748337389567167363358487358161941153561556952831819855837966735263197131247736646349959572137262335268493132393922594144388726693332846841935944752468757593935945958556957351816645952715985911543668225192153285265835584667381362412996433299128699836229463637776828481625714536455666319954244673657453218131356898659732573789284246452511525282486671599275555526529948784597498178218597155532558386297545628926874934517637732423139917731729796569322525387819923872565442783895267166851339784816241191224673966356319254275238177886324761423171677847551175362699917117428627387469729872436253346215384259664357391181722527486695676954198862163236956966183969337111994544164726319178884571892886137274967828315436367735623446859864643742653136557872215318195452396898727428732654526183879349822725564945959615613176532466497183659974368829141899866876946799659285832643914945954599658228974872262888896477166681211848171872991513989276957582923438798312412959459272374477159812544112995498975798436752719975744443648341915265436329182588598847315277635737949821859245334754369182773552722651348588712781376889118753685767522377671978447321564519336851732147373774916297224554435752166644899784145616476524316292892863176388891466764354852953597666471399335963983476397866437595744977715359334949697968925193764844453135376722818371158684329521457652853949278437528744655387663277991182759776276262185283366175295766596635245297586221891696921723461826719515394738737174453889261515518785881953757267687583242498515856823798993855811595759557237636581967414689319794852448582438657832933973939719413253799544833513622229645846485292241766717585521858564653868978222371213855956366457757561363624196395172499972215773899976777932697149598315497846653793978272541197992624728238236317956218847719332162253352253511268381166386467964163294812895962227153124229628366719392287359333838916252196711228597594345399682353312573183855958452768699819489582645621384581473146451678938292633119263414811883655952884914796759719136355936134135552227731231773772777658331216942845745416685274139124884184159436167242828562141445193583234982689848587725156456935867752692869928785166988449249266636863457985715132985366763719134112387386982481113592155816828291385992447178974916397546156549219663863268317129995876458273884684546424546324973553792986566952337467846324857829531649778891979789334958851921395824219835558125316344535515556382915536881913583966978362872963245887823464888597957228982825624497131547768398691483552571798512562247299834686382311718253343874542673445952548224216456195765693613188711145581518528127664859785127345184955475444797669784544633276883589738888874117956685662754158317669698283382384225264894318337182696612653751679668289323376872397373991879471677671237288769859263387697937681894844746959832248651779294677852382674428694721549791867213961968864146499289714272374692317819719416997667825679225787866557625434325284478961449537761188447136659426871941514198678216898888647718265342543442162483244571416189738512326782582627193174846175647895625967792942863639786656322153415864154265433767314368217775297919286759158636829486939698335455254218932823174449773915447425316513574485964461869864995499877359827622974343826376335125991155881865995372643431194245675676825942577396482439168146776647245849275246323265451153169337421284769995852624412588293587117385253412398984599587647952155488676782754895174361979547649235957556999475638874349418338912728945984233551373774359358745375871453391187778164289187479814746541489976854939188738987599972914932793251582344695169149984691947131986129497113767733651257487261176962816159558282949376954799454746598599971997491132552348433297778559539813845387276996391722751257435171911474892853144248127824181485678643253463877938624838417119928956249758324315746547357694458881424771588686953833648213461272265433262497517619575295272119718893568118956335376335363519457728687637947912958746945811942695878355294346739333377315665645554693959275257865276947491166119975412982788726652525854911771976617467387335464645848497429638495682426425494531295147845572427712872346917529516684543697782135114362572644678343843179924979773732452891497221256783285553914436281719216759815123113683552946642678283816725337179521721298798846395178859157341542429799847443758246561663113932335246293177432428767866821559171858879635811127612519643859168325816877624369758353325273125393524594162125358161858975445493126987928333766258886288534242749454558954465618187676261529756959384991586374185923337695538587149933166679398612947981958643962152733942748164736179211958137669495291475476767638935157329712599924964841337528627567363882926142662689933451828654531141936816493766978268511218799352935591613827983628565571257616643952437257862212562964264668296213816778172223688581841958634443796512251884777874899138536135288951179819837998557574353328812149569561851451113386693645579881542414939217773176956985765798929269733831745982881914519251472215812463563957187481362974299929628114981266416615649581589971979794961796177275673794156157397166493586325272766365661182877599615441615594567835547344843248874786111922983999391628611736825888934315239168227737265193883248183948787314868468996294541217684265385257437491778224357167949443947337785499552331547123841933373929815222519238781782666691489989618855936122585658959991186685822899884666477812133749671424832922594438888815782533843629728866197561965535899684784517315444635775957652537813943384473468422895396293878849364364581627957934579127445957684268386911793192967945984297942464425759368845276778756586253175416953835213488362478546287641155818674593711156977918894465297197973234742862984316915518142421495494152225616162685592391949221726595829313267872278388243219531156758767779792796772934536764932854272132725168165748532666776288312492567227328216619792912989257955937154878548881191537287349518669242777259253741258422682633893724948531195253398573384899673737435372966739697444855411566478931813937529728114952888728593862984847491181818917586274345147268721148531335744683399624221612319569432669918522734955161914574288985618932467545982882822157359482778951294238153621694545426396453157248643727716514382722945664892461112864238452356655681879861116662444957499258635675639781748756726581274827744864215251514925874462859926667272191824537969343756362399369216997586468577149775685656584456548943831882444184442698523971464198124435929927958426348411388285486156785791857788964239169441324371546516743893628459281677499625485311394338648393686382153574482457357724185616693628411983512714257919946214989316515639137497849693122388498773756775294892151622261686646695252627828476986129984517398674982671841192765545938163813442127698769887631121159562669955821232834817279599533598242253295897729662573476815479386169985468466551154736591349225252358488888399594853196622395524581512431511116659817266592357569478713763533811674887666383466171277172839558485598466479813574229469496299562716719478391686993571412495768283959766985327126458349129816223425835343621416313398775912182375341797688464294471648395566244496547376293367449592795645932992887851221662564276413456197911125288622518269147162437787448643912528815399152478356939943533915211472145182158964814852971676171434487233524783225764847835888678224181247786912626546863962257213959224322535166692211471996876288962955498775285467199898196359264944389784165138317799161815668961345342956775568578867754649156126953525119279819494481889472684125888458776141569717527921279624394249128847598978432192335569658695136531737545795385274365176363927877679818465577587477114794598956779368267252344831956113497183655615489334888349886876882889682516591518898828834116855436246362274847913263786715218563964361589579186683551926626798398662557392827591979946857292135495415357436159145649524416363673342964731761321271638179639231483169981131699917316495326124289257391392654163592278321585633777794335264922671626875662844656844713816767537686791635816753824664692426688296869459487425286186267689841137178935894839968926996963172838119528963935372396118643228563381989841243163579614194288694535258324994711922356961718721625755826727992638247197839783212334746916188634947916856183932626253198334849528723615556857291169345436969933648198295845958191897353476652419879777439975917798584457917315377258229786867664984973442986494222178726486713974977832675959435321217817866444393987296158699969678988548696833461138572246429917835678896967636534198889478566872229974568933427218229183853865438493125185299332628575774623227853221374511766321888287413614789498629268322992348273672514718195145533589893912191148839438367637379668919646998492967156821818547286661449769585911172351563121528716321283229191683449296433379763321581148661119646697942519797155788511217744173881316914548241748676555394762613894582683819422945244344222927126461752692849727849792963817971272543625318781688629821418629148586951981671512927972422458181391339545497436453994678774287667436288866921889142154287526185938311492118142987491549371361858867475182164153737488512137984929466858543615566999359576716767784745732814646182394653448571835293727868639427454763586397729561921618469122227884796329222423549919718873212189575222128245838764339684493719675633463686855922849888637756325244833557372744786751343841856489912223738342461699155181168637649743296983974539487215514637632292284694587128356753633799646812452867767563858445334794161779267392184962743329591441182989376175572911218253354554913931316622895956537727187577651315856662315566698582545944114592295515246813419255597292991121743258994219186662769392924328432366152331289845976463459968194538359732968797379789998995989678377444381745254284419362238534787271687863983648833967527799788389566421549237272333884113655894747392436254992198886589151975674839418946237726312758858717744969535314687479948152914484485142835748966653931692327489388845244699912161944323938777518518792448567293485815383986651256683425935867982921173613496932675936377837685628871559513418554362757997915855869299656397791592587797737561966585642365793617747876389761123112553739914419219914138529649916224561313491169946129493982861586693424494572194622878713665278397179456462426779662922579221247635117493931669322117666187314596397217671163116879832463824257614231282587682448383855953182984378989414737647848558493827471353237237378448963681331345873866571654139765988839529222969646961876876991412152387888612189699239783329361993579186943349685988272949324995678459415788931484459142279568364128448868968412275116278753429439834461572313646285275734174721849791358327549729192798126178787145491823347174492872991386772246263449971654765876388232135911197365656959893581288887897812993334454693723784141537296716967488739876289722495998364542396276157219399943961144698313281956455589981434347777578273639725678779728857686198942162446282659933988447691778982948865956311165387437793156597438663812273554637489575976981821414496272237129154176317352342781715598387765741461661943249263939743872751119646567183114615299628286879714211113259249255564383528959816649388994262747254481237321146279859587387798963798872333936733721322218657388462944715632932364769488226834825973615938469774998911479597627876769188921834915288618548583378244841527645432242499492523622841795579764137554898799553113675817136821951275466741229826626868695427166832375855528656944153788513479718179111528117571469479978558793574934231639669734734824223248926393171951567669796165441494668765799334823321738918476488396623449222371776592381485677498393686427398986199546897715213683213143965659847568376886632893276123863226654896939284196477429937893935817938695158463513641413152236876525712165245618695552796886415436157342984287993435536919248499435154511468297337674245139391884161799791344287966661843556787149198958573438292349123146178658677359364121926639663975842686561166861541833329387375676329467662535772346365456232545188634719831778247991186662538358374355616816828295355958575397966886821437142184166429223214834593171273551726487758218849898595679263827575746646514635877856277985518778775871559654713879429832693587957258792728896971914379562917173693419119852591945872773432781116643399623357475284523113472597816559669514463458291764686552899696783357248692969319168715647939544759286683271892198245296843319979943155175451474139794366792777774969712969268784982271661979629228342549977981841384946696737838818316497514883537435567629311424252356471859739386349974527311431874972864697451172713967828724976333848883321352687447573884354892863916653136389336468892915127194824552872332787734899749148578431967847866384614436923745691219464536293632433152671415143266511245472279156693651441327315915178541127419124633583136745775361634678896897699259439576588229147136298434254941484764674751944791215752738186633175683563556688876825141239789762568532716678669253146796638554244232165582296559749189394881231862761943245991192865446794288516944563475434563739743427566642865638631175335791377813843891773453595862879719781599666866472744482296716168356364539895455994387913783247754961754726195617741818715654995658944836397656671929551286998129666395679158197777547499673676621959964284633997823242789891247816182746518225263747697932345793433272121681553291282919875371824577512469621175262394795448445284941511812378685647174761121629674216577324339414439796247641796855948658983559527421774681997369495864996889761548858585191916262441723782213954875936627765782812764556356917245443235269718194582591458682245828569845265626551957213295649373587383986822545469171362163781198976464454985826826579966177484738569293749522976385968926155834667912792335354982132244698731686653969535399964192533578371456856285756396928499242269768281124759937281743773327287777665688744881138956533184541422117622685445395957826689462586527266626719599787649676358599476654664746119331423242665152244833335489177856921479164378251925375611926453647167329157585815647478137169164768832759672485884157633841239418848876757677298564553984868627999678551466264829864925581723955898719899215557675495112212798287694415799121753871374748782632254649643237217671545986737571496542799115319715895816311149186491341385479675327927995879639943126355638653288798543356735816198782685854183568786988649271772545253423224733889188868956172478967343485898922549139251246994428547284475217592536169483186711675197917683976283994746378393383762587854473323121888747423679188972953859444582892977912736984543393825636829793482968951589569883337783217284968912735863976732574297257617115264665875943588155363163874758475721684158719726578714458214644176939699737464559344841939467865563182884217854786747452426674884725659293983338764479922642132335167634453473214984543745779833459618111581698822117253133958481598862621365627772467286346675953546752288824992844921697872664959984659248442487694147813846848185636377845729922176846423862998821759417244545777364386487949536833745962755913695515684721541649976246428134862783328669482897511773758385473419853416595187385162881179248244939565696437596791537844566454239554634663955312456355291425455716371296481695236897985228563528166965274752465154799237667719291195681274915578797672334616558717979637925442353312851229329689829687861583586959866626591539977528232465138651893943974119581332147172547577771736792119638929894327417856238433627995361277965842569931562551365233233338396226249182959471994874383475555931922455595161257851442971218698459254353533997468464519541268848295217833265597952913173788397332974547117936337576274628584157947737197336728985939148883964747272561786987895913449659793399519398814232425341154841834434516824855651373815678194346277569324461856353238879299213639675781597575377999961839593535846381411176661986676439968133873292187797463825968972337887196698187567833343991552635789797621191797286835367955587894775968957274963363363295835192536113874654948898379851265464636897893729797756918998268282695274616224283796978665791164239922226219978267149729518123288196518586958757361645536899354251565817833618255726844488172869863946469452983631424187552327179768871783693797674969351596485659335516745768741581618755299174344161557962966873744449276531784321653167878555681988328817318288792819983438423511998845616928239254288163725241626428872736896914265369279242482286972184689858453452628892163837744944866893374242779689563571519414563386231458384779256748982388787313699316589122964632449561123836696462468195999676749866889795366884948942992398485391772796292272411931814749591481529738278157887639867591355242163362269938953328785539546837227537514995381946146128467513774637814316377419361427199617856329341687137379587866778167149195668235151797367387535761494781974569495536329849127354925779445953672184512751737648142218496528558589767742711972326781498566447777122741543381262499877835499229594844674852519327649345471631586298313356818584985979987535384179375841867225273486187396813881749378625523565161947219471925773852756685119414116466432151676843751518825222696699565167292947682184778722358533818849892535146197325787989357583993698178392452116561151494343789345957328512921416218965492527157947873281732424312859965565671379214663826769912487436228373998954664756421466415193813975773383698448538595964936776779267914318491413389435788539167233475152777667566289755747154228821428367592597359794771471461965498483148938968396226469339941194266722432566225613891267669697564111476731362811434823194141695754895263656987571256954529887295322363667549912779998747867535578722968449225856239468339225956164856913956561317373926643958534231253941391529923795253542465459991212255959292459595369676352258829699144618421747831337791919462332623581688888641651194781938648129552143184437433154517296366163788637411362682963647158643832339939722713383133542866355718335751959755663851693848623275281473539252521689776377968742635754567338645648527943626586415295368264718549972394798157627123533947475382157213317164624538828617862372924355886522288714122257672192428575643838116721952776322889576536142927241569136412167934117453254289359343523268941126299226957984578919461571969957756761862844685532392566793748953572588469298823558377846361957552457263559826799679245893871871289572881391842599444178869754575489775593356527688977736681859188242264761988869331133576364957595969292674669944482594714751518597379798386476241176689696546826811917867638735727837763422637979593669433628769434796683956982165984572261818185325423325579868532291768679382484927282642227264162417461839488685789221819926315591139679657861258489985176644551966291214455115169344636735192437897552363497797713681593499861769631233952954157745396185626283918397942436488387462153782384962323516726392617712937466482886629821163895784936238218294141728716733868144636451767887279587827786195678886192429839753597348742968414444419884145133953398857144542828141738899896774861118627759674319663194791422355855127698241239283237575727515719714469796631696312741658443869428969913151723717249741657892587859692888823741858991296685757126495424589441866923645861429878729497936764298631117369993817317998618997438224737981494694649618918978445914541386896537184969647336144245413196857661244873599879284738497199229124756654352583238646365127981657277853493429965887277157742657623813963499757257656118544912428245518172617357971776519825227212265323781863395436676948346997942671847788859226615571945156881371654947694312441172656876463642911919291666477639779248482311651382697983944277288489639386111682668573946191569119721179717588573836299729274189926442814367652459649487254735966873677217765113482625277797566546386143788577459257743582924925189295419385532588867722252768857821841977993233558321315337941225531494551752714569373774788844861234723457641915858888148127846456836378681695299543655296971685319379766495615931664281345923712482616881259299549876376891766327747444616398355472491512792723885922331587154944314973785973359939887597248651275434949318572255639411788824352144161846865836673895778159193567661862823393137145694672787199672156647756957762443542527882629612344938277844157856879274692757783214852429878567369766386439438162273755926788617339396968771214256835465765589499244956992361725439479519313259678946721194668563423394312892272843217121131775259752459566779645396214471374665124979368331952953676254113479939258984361818524773144786768662687238611587117376799256249385184873515517316532968254336281863824252198931845589613625121561393287818689966239771229229945172788986328215928927698248912177149891781152953835213872737298324449775794788733517214394367863337961947855491828923998944442757184976259856541376558398145197699867527492643755895735558691287915873419386259817217853837994298178474748252337135762994896539712564914596127251366155458339582531471227965975895938238943753181679913929242645559945139571947586379553612652489694979823332528467389445897588372995922283775651213958484178784748227122572673135776294413817565521594754781447824258253244326814152577789392517694435168778125736472279551763461848456865874234951689966161283214671545826672916899948143936838479678151956291993531763117372716668512193496339892149313454554867879388168121725886413939298357145751181665788543559584929665879293562316671686932427568938585123545836777336598666338839185877826328838832832789988691184878821656757623438881649287721716238219428772683584152162313988255688774193992467779844965939693646336652594684787932761654594216192672132288895594538415123917876569869357998751966956286221675144838757937287357954181249752378729688872134184578741529847934619974681963872481682318694681916271577393199862297635728246542723752648866967244998822921256416638425347655673955621664628557855875578535852722937332298379244314263413662179777477858493887695585479455541422552695821254939385461439494521812633469536135714888258547241773442674478398413653241159719268998512468581617838346288156545561547574194318822459156157825265549692895717493262663181573382627382782956157281866687342498659963287399637625396877258856762932368734488492518256919298596755189862732333625876639129354296487333124393265819595693932738478856833486324575929774271199779788947194551668457939743648559868612952644491338461495143327919397626942813988881215757951393517414379662561639363181315222495771419834693131347854177972347422818546747977174477884391541111689274694732559832761611353994332536419678938149674558442513189688658523875999575758914478484562329965736292473393367232978369156246479853158559596652899887263663144449973795542711919536537992558656578364268971619642759984288891963738692275688629441934131549629996995668845263727565284966229689232945179483442459381948158779746633793851586984221653281252164691236828383465987456798258884353983214635756185375326569895775314125731563339373675112482859238795771541662844858698776865354372464218795916482862181895715623927265228838631974514975713948779776491214743379236169133982243979893248598611619735566774212329485862963818559522779413831925165517231543742938418915155141344828682571286821541516482481896263229199368895137454488348572554451826342587774292383859678274713575698942221945539994178164769721848358197779129251269226657744696215781269666622191568896681969879857113461228999811535458364642693392798581114349471136297834313584817213524161735352659295466525941376728732893835221463422497566865281595878845795436143972437227277627899395599758989198572991426424533694631142212426244694728521171584542261291735825898232232436842451725238164833417973176483499459191756599925479656378765997956951945284354187667671946861527338114699618695127967274552875735185963282479871617989695161923869196379646646638524929918669739847447417492973474831857971156983544696232362763913143355538397467765567276537749333529874773869499728873118625256675452131919285642564498782662229681398276421473478697854986973622973856685578837794237354465468919258296534713242177776378771159738665169682354187655364248999286119327825112313588931787597148831686979196169631322335378522147684117416876671948743332867269539643535977173879538772729368994694212579416967282587618951449199129835443474571615818246323441963427881485979772513565426955569918672152951452343848944338924484653865937687757585984375497656592545586531493747841834455687922943744728758221587989315138541674319222823978399656783633211549327295949565335777357657675522684399891294958679741856337891618627945174383783995515278364342689561116326544789536247951412485672112224459646275823442475999377448828395262494647828429474813228779543734881952735548792836132498342488663972996541623628667575447969576911778511854961977411537931912268978316378926697452837649519159828567513548738352623887926849227764645272619275772631492765137257479222194319863485235968896296624761962911554249227815158777342849411787327831823137588747987952274655286753323197771593992492621145176295768178444294637695729339263346572628867757232725881796989484624799254848936361972447598684934747968661543788548736651477519347391789173267576925815879472143864411177511545855778751785841847638416148586881631581383744135662992594193974434684171737176429992445848117568579532378715189335992836687279964172315486681468137272159542137264818673258491242815592618378615496269129985631851456853969555598259114447773215293687931431563134995379593297114813871129882382859911491275915928646728575279469861969247839828244523665747639626364679631352167154833157946848517198941723987596229861355389779685299972131961729212215683396267964778747998474942681517371426239789488438731741167694335457496297339285114379933859735432794639968123882715533723861894116256137861787628765322523236697596927875532448463594183132369367288998811367475165484859964469951399836134762643967419937632942861896586977744558351341423917373619895695356372785213192598419754655736272754494648683444743997825531378592931675438838723123912372693641912487595592676922192762517583872792483332778429229997899775656988756296117319575769794872455849423687812733354791614519279498635717875349852791557387241126294143389398234811235867129169182614276137631669845149413941385784479916556675673256335924759989768666266546937837628798171841731268196651698849752543739366692617386162286695696555249426858962895922912935789576889274878917449797379516468924786488785664563149261575511769395929986412136347537681816886477982718569468869552976941788978272667749597151772234348183474496531387157449766592814579312543644947767127246358593589637753586259453566317959444639248613389725538612433887958999573644993513612196687687258338854367679496411822612688374437536914825952245811293635391962489797562198958244879895818149723636456987739196591953975488159167935992688397147969932519859888393757535419817688681156113662947616547936783198514524187293321438763479341369739812877774916668694787946323887889393853632312773769781483177139255794133747761275688379749798133214233113587981839785756417259854859148724937543812898274693241262348493857776726283966672557662521721747392925896255523139975867391654676772447657414895939632748124963331246629388899919997473847937829868873885777118845737689664139297389856319843127788658218377779396595225833694971982534715417427453748291937761377945686948124588116935418824689858317317267926884441289249139193591266817598159249544161236723579294314959876375725857888661212667767726659218781184892756344469772849394459431819745473981839984476982431115295863159448992944993751938794387275692575295864624259248966667959851853148948211284329288538875359953264869415329479758569638737471348154149446541793286717967576662311533871192823853422296934869266432648634716383681635866942273731551684621752616817992678786835957889172917731979788418541134614364141585546889244354951748731481982138665215547147641685638915219897876197733529696754473445135316826263167312696473484716883216622411263883659285478228662423461947789939836116489748987162496859823554829697358887615961672853998716552471187377831623211972685193788872196636574179398142578664788864214553355725277536288562258919836923385749471463198535292179976243671332743361956451751142964697547337961615597237653578279841282437382757873828188313912981367952382929946929723926783621784185843386237819374341875826364521676272221366243827677128671427378717248883527124275122262529227535656519711191984469198557399716679137894331662987357233259214472671149522842983143774865361294149367993693275882125916355548276733759486746679887831642194854722849217877266443184992316456551914869459568415221191975648391959856629499515118986621668114592444717259545661237415268618359346211943542165673937218378664676724542188144272477347537648719596562567513971534486867477324953529863987945761772223271994293654991289818559195823515295312123426486386168197555947192289697475876477374374998456718124931696787787916383275656593362896439476288148411789337186697331338343598474521815152514381454741361481792337587425943674524599114481967631722124493474221714169133398311682649856996192943577237929568472593585346852456375727596785618914572865469142451828194972444828778241346351972898518143352467113199868857472647782654746443819978872322992172363968228281525238196779618465518931862233786558851991254868592537926858481854864447295158884549998456732284856436743896177743921277867966792436783321324868239499768979499962185134952126832254952816294761426287957331536462737469892254439852988366733698781422981936821934649583435499661794856557818938692367813344625383225185688933448333465463831379288874771266315195376979291219667782937812638826459633281637539529655744719951524464673867766386832651261899147564555383229357357998961853674317374993537895933132275319957391195958594283575472434666783926783647747262795752799924517232753115797559257235287511231686273882357133723838968582814682443431453434146269518518188773692352524616151572871913154556224776559327984295288924541739686929214645442896584428596996219187556928726715464476133183271721996276783335848538279995647243997675549763236959967939149644677669631777938165345297471152488731264952176844664413836211952455637177823197581971988968688929997518911565385542592345747675584732317747435787151666861574425137535997651897827328543114394242658712721979525988625519595195321358983833589568851664992382899824646538822459868772922418641813739554859428391845663928497469945464593335949468483868936378173316379216152418774858868388896453837154581224118354897591726769925745889534972911323255787962748851156452954216623544418297651152991677638744288174947859739168582357419386537935936973527247144423191761899628534836626729155712637417444342319396866489889549349193134378465225289431428635819499562998892314732471869157187789432547614745677622685745958638612374896579697499433671149929526318385773663885862917314588943113561711596569988486643289554866266863991765578213759618939166195847936588262145617649356162612351794394324532346237686231589759214179592353227648784828641517273135523275834835282431395674714137334419672734533565138934938757972391211868664912629983897974689928296187576356863888958715455418689187777439677959899479765967445566135194446959498886298756923955531476754567697141368656677548487912214199288937391987298486289665861364674698668358286161341184632312566712937817464296532186994218183541981373447369387377677688377952856757878778794445835678535248587177115466193637693367664944482997622429973763422975386849771126241326613857414565531835665721865434556323368156654187747442579627195546591297898625162623459477422653893256337712988919274878261997272358218693678554141462819157728731314531944373849791326236913144473495412217736894522972997551579471591481779952971247589546241331926595655631729499921397533516177761626547392161732176459756973175911966673672732834257263945495776579693756528728363664696629113486676812871335541333764998268479434971995365325863355724983638618513925489812566147872418367691635844469852118972917554485118572142932286936634624396378755121754924946775385832984969631262358895611361817657955747963386668125194937877284491449363634759467748487838715928881249988378941458456839979763336572884919858158892467129252964766586651659798455225628532929573332751427179271992284497545729862673271693258365282657996159661623541588838796493253692278859772968546698695143651419331318173221198432797177635229112747988476856953379787768618118616817648342635374183148989143495548523956745989968918843558975671531876635928158398355187789365323197312268618919252626919423967726383978113634683549575951537692382686448149827297378576453542235698946281448979851853779145421155485635743889247735782338678426217211962623856975613339556368479128692774924364952321677214176548799957652798254813367546295273688791357235198369864112695623223119736778178683823794976996395386785185292834776512546185555526342292573677741634777649316657655683961957929784945765238691392485895553275447782631543882897837465329544762795335892277629777852722253284469642171444368876419126214451223576537811673316688585759271197169562229614887881874655377339789823193876589131755384594371915384129698671266814744913774127788663412932813859257165645486749159887865569913939815213427483315477683827777986366154193934418485786871926867133749771753853639347852646277836848531199794665636148686862839797643295232776986746513213828714198726963572778819975294143733944988986815536384343256883697395974711413544542465618171112767124466861824248569972529199385541167929564675399895916252197639563656621892986678933941328358777883734928697695675817422329721476334945712569375245564665556679358176622973347482496279741264977498989253959185552469959184699317993865635611542898113866284287629479489419529873193448373898534827227288387497491497523425743798887842725626669193513182787633599374795985459437741395316894619958781117324585577576957925338386384819996755877593477129879274772274367115999742634696314789936614423849582323896224649867347293429439859518614677267835115674987753814524276349771382498129499656766469533831986294376495365496962231267423991121123439589646386258369589769786649561968878569733319828272784419666714124944127958289438856562556748759951485245693628679286389994393979815294139317583963631236585962932969443262149998474771777579899826261695934941441971153254644855886251475215459647453791918451978177921144578217533624884673397399524271728778825948193527333467679458443737156588478999761665947757453621368613384998946837714839975245993456131974155349693439145478468686375629884983845188862539156642524656549139438445957922328236578938948888282245757373519649697767623556149264521537243374593927616681436491965976799936978668638715187163773976285769934654874278842938643249394175456671149332951664459475755428463917482663244169685972374849286717668136357367459157776459519279324267723378997359289233655221623245797611778845396549127643525858877985591697263571963698669259585392383767644473846365456734651877531146383271943383827471821737897298915624477588892631747783491157661945825189925146534597728511566386116485514716919698383542936178296162271961455292327735257486275435781168168128481539787998969174981718654674541315154979661263921149884518343395673429387198586446991952618157492277192542117237568336898127217648623323373539447881593586334613733872475317232378291978293214121566795884619527787987113898577674388581616962736932579373569923122888929394611215321865469994751899965664477822668412795714917565737338385233548972323886767118769735718613998652919159227333568768992734166673258261843999389366881892471667753415667171219565243139822184548228243184274235299696818355954551728119293611825818357245294546684936975181555945485886872919369412933131665813517354775548993988363845137799324245978751254416988381557768726137782896514591213775387321923355173944764785878221299432795398297288649842452523176534883875968292377524183596955395595886645598838839585153966988271389575692672788376286141793657933552979135667188218312847879294759734215317336669814454422851515837862816371114435599188961864461877716368768616552753336918798327639387984359493548562955766847646819981617373947839518948362851714896133533389916969898677186181152828891657598714945743359484444519577723695989124619218436114788872529176124716889642243688415435196459118779817834432834431155681265179487699198317768713624647363869418141759476796255422729321991888773279525171867315965323966968571259976243299592925411366786656919634695397287387626618718799638983775789553186365258381153448946484721973459572692269859714172665571791556577967366293828643951146238412496941898813641479714328349787139878529715914965454677189135893521712837626495798235572874838136661539343426164592887395479688349459998491194762783484233158297313673387677698665644151678761452997977722146856651865191547692139181794693591344634596842376513134787812821132662399285787332336793329843213741641539854181125529158547987278922783347913961947487725678846485379988419373714542546998546577136599615171317993696811637468833413987392619124267671885784631422562619583818262588177128534285534779459731119649173813573933372769987285992492637962133578713375191129192394886618986561641444688791828398356498789868654996898918577168462454342336119457898537528441891766367355188555933463497827154311671371686622615886583487711353497927933797911938167123784636184688694922678597857883669263549641462787264981459767383829962419559788956192512326783244717129269269743489833215172766826391222542197146627163436796985511933288978449211848886328179741448474737221531827487537344955456697433474946843348743335317497194357559362682268865145496456177657369836516471913273596489745645329598723216556486953644417126849179375715387317444936664712161359197186199542987899336938898751292396469885323867749612764669115462261548317916976492197339452279158169678897349198598462721934181657137992567499599969387929688854597826771126987987383172995346391587686148924715352996694468831361918557733538729578236491661233528535545927571576215938559669964897565354276493298551795512999675566732642781595644598146176281645354294212466252369864845579793927433287471357896749531583573948216558688873529892915499159749563272651149211583558285199799137663873626773634453744149257885339435267995588576814919526422614951516416377727638472152526781684258478167981576157385922777789246771126427547966961656525915333982842598583665493328738294441475639597336621686888685816927368334177539186944588444262977586572124556611322563959187329992948294438469912997165251352244712497271273536749635767438716219732292968217375934931539163357697489197795856616998711755821547661914854177875516371435916574397952434826987687512198799877398423842997411279394388981768131596184699822786116178354981473679991816827986672185925712145515884671933111653497528689968416355123449544239844412817152935761963561264551329717867444848974813977125636358678656957655878967914442868824562455822972549994111885491181391793664633688578275942818175567464264449177545483237532525348297749662938187296789894359841318359795614978615614296881456915737659691695577379173996324826827948764493699278899374251926513918535469746944875415511477219165361665468155744597885224816239359299498848226261828778185429189256379551934533352131423985764988759877678365476758155815954641978132876284591434149775361587854574796875115821737113585819977458818238467269838788258662962856936986868529488632285568438945691989348568241168863636919346726268835948154589386445373299942375463765616224398752491161299938313633476372914971368726733964383598546257787447343355467668292886452575786338938633981426285793898238163732899254696285124971948731424498631815732962824117996841587231134837389723452457973473175889621925781923671749418386969847976586331576262964965454194176332743656797343218779993559886193378518132639247767119286595186649275521583477541444669942188373574875483368831981847511473889365581358555451576658269936139541786363333756559936587182734126572152349557247976537745632126375159359438374238299571278381378845247485359799735918897617778614191912357315921485796782611713387426776949526668291531736749282337593755988592757892478719985244116441893814166549543543431165746895917759991832228879623696988526912812611818783216661733485599672585436848796628144145157686464677282965749982477418435431637193865423999469299146483228395295731329336359285742872111836853857832528382683951398826491916316747832185695293338186634627332416528246988562349472799679676195913286521813817381641381173936917132888854379249369728946896535876394271197784925835558263989283999594851427878627133549957468964693654882457685648799482168767772871745958847499874116755728941266412791773612894626873692323836928157465742226244952283871311194314591576353984525915486823176232218868144964637273589542271427739334463529821696773524269677862371665717186197582451468743237597954158456167542847657491554688851693358867567346925673377694554268291948622521275656217889679571882148746219332524923452616739547363195428665945754827196357668979249946598226446389668812187846391269446813325631481279824126716211661648996343494758862841859996115869576464544696219918396321556128525776785495328824785798469296237836211587994773613947352786523576169987338991289594527521951386423859174386629683236295197487474825896766527859361681281835469147991375499785994585743899294434575181923687978785445646328256616785316428715828833186386487888752511412928464978876556551113632765453481942618874136175295939473282881454487815393552784428748239636568712868874176845798112853426486248416193867212636879668626916369367794656222955744964158356943398578535223544379845359177658386166365863897694827831733212173919117471146198453945356948815575363143849427661697135918231333895294884666179423369776338851311927844312558463148376594245981292474788986145596997888633147978817233434586499962659943914521139599561927289839588436157598984629356516838452226648659976421861586918713791355786141943591223211727122786719247479782292853465682234113659338615335458443911962436278912735389821882878718551822429551821968827382165257397297889978739174215662511288196517442183815714435167329321746797736694785276963543868613762689224939474638531394974851374572241546367938622592391762181163451976635911521663587814195998113887815541896391959238594337586826288775369567657149747595617294393272433494891525878566689165417127929953869739596334878253872797632824265611612389579313388383694986293317884892663615577353251928572786574666835995315468211491963169792852812564498814447843574988646854569311168616827625794843574951871144296757192385585139792468316216189858716962493328565145479269814267348624669172486663889516522567499887225212675982183262158941736919639889931461444176474983258991899299477954577737738685152774229829633431938437153682534195872487719455152753696975667965986129418792271968968696727129329652285968584927369865457627242258648352459879846399371899621848714948652785598377324721611461257566723589435788133195997733754816725986899985621979261588158865514257995527463598885444459227668966275946979468586173595969965223828971287885681597168664478821859239438644753144984146159129647837738141463371344297699445965643535627119472874282186363921819436918377585915832431347997344685952591588519812969691639256779939185972198754387641644175287859482797859968357897827143426422585651511383676469164826521128549386171918199624722197662722111716496589799984989334634424327251659286986185471399788748382266195796793725455969494497738461131541239875112178693185246856374976362116556582572342814774449789224488324168725322153453623934552692873968342622716633459947979799698715796671627735743445792917952852169762588332419711795311494433593429794281388263775569982787958928557857898493877933866689381286715545389792457792612479397655534519769685449552168163298827525164849725461457199744393362651549396278585425684516432316668737918471164669546568525588579439944731548199573469626855632921695859812773319568328455173322856186955471175164924126765567559635686555359214678918972126492377146146923829147882529632497494998376844683476693445731718496951989199898381519378115864687627637248593554348164781342383423184183911974115996116396214745231121874172667915468181377835365642265696248629943441969594924314996563973911438329774891847667557362817539914846173173475556828818558919362265394873215857844959265133626955315473781543759434282459549827276468154692189762544598367172586645611457339571337525687181845658254839911459731651374427552684215436858774567587852324562915515415146779399471997166991748922749698464856927227269976547164897532522172559645688417367879138548621297198864499664795738771732344811692648886939614747489954564695943842897817418824525254673931549923599412349794725746839175649535489835312434373897886589497335517212858293699729496558448799912612681134142177274176171473457598395426598365998526878138474581858396465815773546674297247526313657391226339455742474854338761216522741858934251743328898214832362713992488581167521193985293876151672785369645821268255735341686952337585313248914877342724339695833453344149376858698563655164928895368981778392638298981973475699143785714556157125817215589858563926265165474986714344522951464485822266433654399572564295193845233714758141932164799191142548276246554618336844334667717713147854488513893676418146998129937997169966319522496454449946732975476977733951644942815797355698843639162224928936581499535883575883665262347459648686515884791858772259884432175966339184266727582995861763272268446498819599937957688934387666298518955175159348996544471869217877355752854459911215998922947921525537714463657438746497477693938852647893144289579945341482419433975992479797951293857268815973767526946625279912598421167561992592818899475195593577261589799325125575253878916794329698187683818327169676232999764744621495825368254229419959427537196634655959585897719687688855636139327262567436657331734997469454291939619591578683723149967187791668876759942619799935267493191511742635868523235211845999642114582919823816771158164948771537288455269521395373935946698582754992658955165238162481724373571199521687638847782692986558316231746631713933297894381475572189546615198763227386749159159592186977778816595644969734858868783457533349283886321557418355497548333839118687589346496486796761516639747676687598439782877684827274997535118774896944247687945756445476424678381859245228321337358288137672896856717115752743413871331668559123799565188367933282417456666525596988539133276475833748483453962395111315576133589718723174898582364332355996398469548774228176835728278881639735868467751414897849297879655167482817226721967572935859161538694483535865657384277962417891963748142853484161317368968342847341247582961564462699358926834386114798621848977996772984969595682986963423722527822427893687418252895875628484125323311367952116575454447714546769837672873727175858536944161879871723129478294428357869694689288485433567638911798986845549974571772869167713921769312847699254856333732611615364146812647458621693229642878942859968265962489471986246812699173993759154326976276456967399829647584575471739863942698897936471721398231978639292596655759473332257673774514675111344576887598394851499712928561759666867278187896578688955484123897731422178361586767737851311249439747439969957956764671338185379833432168648821549328733818146847497844585877612547822694835589945411188469624427991226846638825466285621596233965891141995852534384599219434448473957889382318936553134732623993366395888992766336246889116735994766475364838592151613458797541858724742321156712559129197489722669653789663953338461653992281726371697441556571962837178531346999167777258516243577418791843491964153777293257845784995884239469934319753613986729995671884173989282417825857316326742754994966625249495578619968396861858562951973399953571471788495196935647781556565333859673117284595864551235554973917277886534922653782242744583918595384379832869584841561311554786896762729325788588925818542875973384352696429968735382964499518818775368646782167135387414977627515197418624451241189675154556125921167637569281591677566855827994256873575799212816656179678963531643973974971494985872694878997874714472353942147754889343123851615538524531713661639336516378821753545355486869276276296457995256451777557732245467573949176986197913943589445342454889316262942131769914435159913637747677145929424413654248713618166676373363849768584797344437634389457385439229964857751229712894585971161669982932168468929757892622214281891439348863533783678966338325217527779323876973588921353154444642386873446656534476965955879145819367196233941889689957254615249349196779175191863317438428782995629943718532511236217213742629821517428479955899563917957821175515627752124954696196119778328218287429347616493175637646672375752463697366593191675836737139959164221113877899962797817124339192998314739168391929549258858724115284129133819973296449843143659368344521523327283589176727713941885919426566448215125661677265652535872579169799157694427387247321644736354166664955589224336864574242122844755798895899662942469182639258536216783487754761637433195725784496172813948364199986573976563797685354794228916238313445267935294516916818759837611132593277248354361617312954255211834526624513137879619641128884157196947949864251487839714495892861294624379986112614397546844116426188362559967837322564397194134339949784423359311128539452242657522388252167543725913691235182981613812773919875429544163419335881372645499381895489954293672697339229862451571918472869847565898986884597282923599933859576477858589189955993985757571642232451173458959783647176273288414149564683517415862329327669345279352235636958638614372651682148265578182276875594845739394695246897111267153932963868396785663796416786922982786855816989576623191144164664922898228559569969237868185893412348882163977117869639664526521736375945391535659822961561843195696753574897612633796616473416983183856697789412422788247218758132855245441514674686135995535556366258443879343213569825626671342623837886531287871936738984568388853161413155763181489585669654948143169623639188698855317498967262161477849723838545889135425234833934376783231589874761662831577159561125386341831512918347189659177916672265229153949831857682612682474632256829945639487656786945222782921265752911899994796322878483326519829554653931965573425132139849417382225232666298814579755568813265959435253253549991698493738925363378328488124619832382791272355158221936658217296615178161977995787674153179785336231329177797719186476972767869615127561718883184777354699672782121642522583659715699385898669732156276391926743967987177347488953841746851726885893635418623853369925741198673242915925825754892123667124856394278817512213853131711421231552669949533684412193579383229425943124351988719531936722773182478856914477895732742126542927666596367517226679679319642385498866851159222536841713328467917783782965258581458836155178373176767429777477753468165372695693657518519345685372352975845152778419551344682612822317245718182874362527944438279311978758875248142989894689695278297177345365673662151321525613481142952654663412946675484112631657947953378874481155717857646316121735295832153888262838993263336181721988114696656158588443264746642961344959942678729514221771337421194582115858384843953348523371879811952487791211685482858552454992735439941883817521177391874254991784652532414564692471918893536217927596395825978289444156518856763627644995498631965277481611769428298451749795126225819494272723172215788559621863856186923792449187193549777589294682187111589263754291295666228356849369727175638815643548767769766498489394915293698497219519251742966175913395834496194369434968836971175132377694784569488157345389148944757451597832384977444851266661794998177994551358459719764516693641271741983796125792952738166152971489575444827557599452278725874534217868515722579179271313812326795257462947883127683197168198195558672841366438325279954516675355977541543581992293362381137781353361318445827169853952359312759679759678971251869516429182446199538855859147483349715525256581157949697417356522676252749892349514572564583448539983639115458736191784875768124387768912193176682593128654168128416133385299189425163699773732842242421433914269111971344117376796172125791939714497319946625918626273733573535725639583191951263262938727268693346999897484715469887152435173269767144419347999298964169655267194429257698153936736519856593737867297628992466891557143194375946671284747667969885355247849898789273923311849577221992899967967129717695672836559761289244474577539455183766438216224158374441535948525511965873154525398486255472694144378362396574968848388631444519323436389169734938375191113953629933322648812996333895399177188947141593643152813311968514395881897847623122634744784258687258926287927533556481549728211657966539876859636193858919267648519523571692324122674187926544892835496927136953432651692137135813316725111999854659488296626275297255854487715831864989586299628498979243392928891233746229846348297964675483355863857345517966549169678995663186669655773677623146895149273684539136144247213879966986894893997441366826592837778279499286936585837556218299599728578514513365129684473889844337195191313926846592579138661538514446682869889797736863184757112612428362594762942949392346575741724468253895229753181353138459369239717787783837811443582571854714762582197372892944916159572599127196958287154875984436256368752478591395362986693247584368746581674336822263641938732463585332259914153616156145913779499919983747978999835936629279155774888178117183846239862646939831167667434532255549741736626713879656511489132669151214733655897689446782981858265335127464765212672881444781634341893718326667735598589345759939775821131872927279134248861473519773186134986718457482444546998982864225119178237977957745255951946581175573948545789136414969439277749689968883413744191598826886771146455594975989619688693759394257228531353433827172323927228984469456138222437988781631696123926259865544135919719535398983585895219352378531666464272873393133362617493594328633545294787669751524778759957972382843344858347527911237477688942926688779422359456557269482381624725195834199428555497758813922636541451793425355942747355991951921477541894277721694848938987424932141486531552372423348641274288957944574113678919696773432993648173851782577823298634368515565668829927926465137879498457725569141344796414894421995758847654195278715698369698455669785379392714441439659798253579712233838774443924761837373678859566598459294658371294673866224553974347623463542126245888854573282466264128776418775157193533568218627676328588722815714532841664573133986218886134763129562272781576689416824566433315174498525878356962584768491446452554926669254941927593457577997378824285351892585346853891486111324239745389718124959824672851858839765297515513821631776221579231962569379928436436596269938837617587326766565162481178179129972598158729595461679181482525257814865264979331741453561416186866836267148961215844363398482578931978424338955414957269213323663223921366297453455873844387247751236992357599889461272242212384785574752192999972937842819119138277897433249978812182916995496395996134119621672578636631855755592956598561111771613374164341936961663294353592341238791821265972629329229469159994768951453691653443615334942239191161697267755281288484196642184432356289682498164377945971857837444198678794886969699847981356738829453833237662731742625711537488269251748198363496128148742852188842157889588998239144832876822878934475144882375641856636345419556547852279928423384174292389115526654586771294534871174957666246254655925828994191633797875531839786328965367578662869629693829837836181875388359752876744428361219178134743988783825988262633837448522248846779595694619298925965544251815667259718119739154939148528387999274612561269484375491892653365977325254235513153953556836568396958961415798651336158914287734835896192544333163385999937959292974985855419196893272562212594979935482444195888562172873875176243669853588859541276587896893613652626431786326223544799128794766466725926965781832584429932197125143796638263838638474437382456561571111855512966691949786368681983433557753569727849527149414138524566438767436964252595954851442279552988157551882588586348478718842817949713453926184113184937893866184282364984834767345322679183476773614984933542811682883719453663538814664484927717461819565658333538844814855355919256517812822149837529453445385892124854176843143861833496716192486228325369674337345965392515255161767967376657726473427463523772398994565968564941946127541357261516257944566449687777384737332644766176269271719221544656414235928998137877397725655472226326949367575563655833925523922613885624578747658188571817883395759963754215749512833464277598345684224127877926286969455749299358969833493932345845858253422888534346641282992467819112957731567798145764569399981213481879346886368869169287289725183112628378716973648512199967156899424268624597823231169947976142335175492816619616943832698748867222195441478286187299959491586532354711558633436456771251897694479336721364818532325944598947867217876892466976266696765195861868854134399483368381453599275935114475357131532464722136779116758579641768271815224747599581165898779158119221778716416859246667186796329396928947213729997118912995667895799899969938175676331231618989942734694297263557829789419252776986191869371939636447461161343566373179422632855474669451522969298885371966497579249379615834251758387991188898388958597956949132397912944545278828233191531233477787779543165176188893531762766298334989284836558295314676443545968286457982452943666453748418555811542279681989926258148988454261189767883649251465289651977393711486815566764956538185631633194923355987137799484757777118593739268761474936854577372885813321226161252356577432476115253286616658468562112114938633863413497336118686665674238269252644258554886528612796339179229267529846468779238991752727928544927193626394177837442791243439554112962772577418626123196565693141916776936798243925568379687587741517869534318959447747151893949699659897379294882159823665432218664116956496273989989925567678388392567689553553518342578746874793748158986357379983651435569345358277392813778174488232449355734819418191358596749889982394811424676324496635817371758397914411352282884172954523689136988632352786612434798561539396181485165488192294799819467639153766831398242835654247699874918432692422485217655912837648157825593186731572696864574816838924553794684851739159472561876655861928559696271648746126175459733182494668793518331875662141871271731692453324565951749465458851866478953547837543199177982818149841359725793338992615495553539338575438562511658716611495215657986198749999577742447867466628578635291757711263449435795213456286933168484432415476312877581372275847379589119439556921919596668459823987723661266738358375711656715658243732884513592837445655473478777745673426744843118531478391695932277318328536678521946959831926297132675439538719166481988473574221253838138135871288725747327769851137478316915717651991886929758219877992641386413198783857729699142488684715815697927346329728285738676255854683526638769284898195332976244878674181711464349248759654227473358277832988172399721257599114692672157446366475817939845132794245431872931696785296835112797414736968564574755176187478142686468933651513141777472752794195758182556585996566225998142954143528577299466383552227855326717597164317595376613261341942283498565886864997146285445115479777615992815822911643953871777379836746276631447737369885659863548134825835839761975398663914363729582498568587326997667423928783482155196535157795677356351385289281284834583233937555521486452695161938265879854319322142543267778419395612736532785427347554398724369342238834553359187412834451554439135344833268569695463223562995422485971429646956478575489513991851238156213282746319858562575198997253659198568598615877726939569132847615383213426451853649899337864323694791192688478562285279198678552438477679729688146956938258498825352153139258983622594289819844727135618713752266187796941128777629797745758986528268369193645811595966721668795623885682887499321683489944756238917284919559558891389986225996957557594389659346998157775936858938759863923623916557534322544135937897543819114956236797519876427925999429165681719222982771514487386476752642939387375187953923231362919844634163681633784324678379996227611979473779655583879824229462596313835776593175178919873459269977876179273835494693694311198926998938539544857112928739794863471679151128975995312731353864495382592778796211945158158271474515895296543861897352116836673427579365775529281464366245471681985457727815541944726957995472533628487146912463831227858252754743829765629659375351416397774143887918739698455569328857656438986224471181365699473736161493188924188722213177796337367737434218753766894999856561368272786291558982584358278354259296798251378738685815649771889318799875215124695377326414276899797976767336636974276695975524615929545957363381866362954674974913224996944874766443988582895373426766461859735172647158998988489393819477333772838451517753259971657488711687162265644887172712917886714112641438962786789718675996896834975954788421481915615723596264415687369684783692642173162112193488446784269182124275766565139944947943379633244925486751814284939775634235752692855422174853753688292978299519911576451546627326394857952576791547447753927279749929243751484328118748327823186113759714699168856798716769742425915885362183127421775744938249964865542429237913589175854688777914553826112916419844638811851194219878556111464141751173415752655645131818264253857992584276925734115614749755456491653768932429576878344486754643697868459146872467437837412354551117189133234357429714653736476194822823692841726414947957857259735985822317686273652562828769233344223531322291298952613294553672117546968155498956856786252656247286963523893755877788961838117147155424381373185913539749483419746924527193349658122354756696977678196415616995385661919654671523329444328724512691252719373367669798736858156667584787165799551313472318882718339538826329469154623457587746255682784614741963162454843416462341727346888622418983992177319954899266911955466761945639723485785171889618349282798468198451365127138843246365123562711896218728591179947872565292464667442413393645658959228721895784242436818869744732979836971838131576426962124682186446596538617138273949817756549176465473314949185216151474567578291987553273524296999693227829769662974758879279511916497182823966966824321158455192523513977371358935697117769711487727896419138747413868728962118442337615969445493479847143374377987374423319565716785548473999647164835589124812528543145158659742651341616462332626677591789364992346741567664577943631855179254571712886852741548154623241469992326744719614459657464963867368245558756853145287328577277839696398575797989899997672312232335598337778727168478349694737728894687486831869662546877925349981831232736654934315128793179294385927843151862668698947511347942574775722958614931432572749528173648989925728689415113844813484396187539419715763514263816475726851876926613552816242959976687252555881681149757536876184141523744789772695585925135995146795755533974786139254767981539777934115883649422863688875376452893215359865945745523545517695733828594521133796674386948217274277168561514999939694679887973556161685525278837111631171292755863366791521738661171985955498762539927816768172451962241554954363929326252381561657729523555196423396549319163512225592949918495686959478733377396841212679916725732894892395425914148497699691876551948797381391515634477638521968998212687335647479175537599751237938564289692378784676628613657329146923867924895642253825841847649153813325294231128623347983789428254793793997559438684487484382294679118612356314911675118893859836592333765636467167123812976528894863375599944121562466483176695596647986679436132356791643414838881657527292116798345691238718144154555529171964963247363356911982676537981283429277899397175145492653193873496975698398397124887554126382825528963676979356698793942818832154319946197244286834669364761215477928169657131413652115428311953651962627812876794639642972781274871762532759855278641934186538637797175188676213249169697253149299688195586269555274838811779552789652139243365591462316266368612498724457379232665677889846645955971741241923331693496749337967185668328489626575768631974978797469399985443924593983857547716294952161237385126458656395424329986829295186235987882762682824651325862767183591251314872469771436842824279746746269196485766129261173368553442941184613477546191854566729188751197167852895456199847838488856197692348491933373877836761657243928645585423817629378491674787891268659742982485913767195266172172218713331726164524162863224872231121297317767547373195841288578336292573731746888262317251519687653781533581591748441788357131338451818995479429326182642715411633821988466378627772874711737987685818551293118414971485762622726258138158337248612266511963639368574174546556952147127968511315724259783258288896948634317253717821945985372414178165752277472888219168413967161884971615414122229472761349495178733151915998933276516981576961934519265414442644632132653574245347343236669135582676789511239147462994333397676111595162467168882385443885438821149837389811371895575154337113835872675179737111124878723212897264327995587184347599144674716316418966798995797726664881625172975183731246915988696662257585763711638273787778537913484397357993215145873858676784978312329921629377968596396963926253749878851478373592479167822529483652749428954995995619118393422946781616738574249988283917788245325869171573479455926323391498714469713142778273512289672528514291163378545958836764378237345829874653136181635262979293982652638367958514739966574953288195694145394423387194162851466872245915827236362972421873277396889527689176137785169185873837665616696735512393987667284242199229762393214435559155395416311187886338353992276518666139312732987688137632429383136545766327248172973465379386933421167351258379648153874672463784641852491474737357639688549757952562989598538786549731962767674978692535314735196745856865367574619516829176469665343546422894126673661973134867862988657641849963574375959622333829143857879796184575429159888876929211454265842564975555458861495779545867638616139918787136326882842816768346723465777714521773999766984344259129576491759522592975915991391795537791878147923122831662622925132796991653571178881156237833762742547325838166325419115638859885499381149456241654634918178658548851212187768785959418941944983541416898884667235777258249592461953325213475894452795363926182912851365661455653221489299766955185774686769666142984724197459949377499343698461249745164999358142316576742345617396236696947789747115184984992581385741192433168169846758465666144649284924152961912215716984938318559793263844758749839245617123339873258235694782213687132848488883665896618752779934373431743128923897886533899971486563479929154645394843985567594695859313726484219653433367594695645848389483881133925851927258113582844879281898349691932972163854544677332556929393198254388211288449397647841788391648332741975586296255521126228958799945999277571633214779688868486587156114621878192176249996245557726264423452669989373949268969998946877998468141526464199811474616834223584283455176894826763782143618279456175741813838968866885635622512992385398415915368556967476221722186558835974765226885376399894769847439562588986283857648989272497179228126369977553567238586458871342857188652359364474869686576282551991622792756237852914296928565177197658785146811837227853857982674434928712897264812178128644459965352994162312484216797244278143958151654949759794929557786944261947826195872658779691684984813683884966776955399163852163338935519773874457791636922566264994871799936187684221542128852177736985564526323498688248866178983675245538729964338436296533152269199981996671263399812426934317898696559449923865687726617146595753231959245133952367165126384616369499996738777415119142321834654835226264859163328139933853185964478798362594457796472359133445698121392173757917881197986545337515992737819718241865563737677673199772996771199193193973874338967198997928825925961895548895989691731239228724988298966313111391121217497331493294968194653337437272966298885713398828148143292683631999721556188654844986657379657633763332845678438512355137497244778432125211532725488393681468625893233863817838679963887896886252786683341929325938977246827369771328686848877184489156154418972419915984632614354185119153641864587932876659327811495687535876378893811797488987953351754756793926184221747597495768969876563411525121858362397554913517292432715624316622257598397671577938272326892198992699373149733638174373573365244333356987766383677747699226999763929519175793585291858733289245141597317783165147219235829597612761174994817987747323923586697764557442274657365346753277993897294116379654516443532955338612972945463639711998264939318912948575674155331729229792547545826348279795825959574152724744725872497947924148932545681366952768388376456452751835686597615498943186345767421136517399828928449195519715269816774744863131688189476445681179873976356168422826617196641497947454465152564436892691742958731339579879858891512518167584783718819651387275347669221957115662765731451154382144751925719637645981831686889448726776564232822117525618245657651152837122143793688727993849239322399977235784264648556388278845596972863699467146444391268449483798515487119963771244215112118412339685835889949649934454883282232792628569511863269968281723663253751552254473361153474917786825612515423835458233423266223175191327255591652854147927272455266697754954854957448198635156251258747878446668878657399379985618835542419652288375818886737778996969965458619891892957712784348715269626556871422292575978511873635474598519666639344162851113581497861262746135552667629696464821196736433225659489879264335184573141981368581739546885719875573112748644955299289155865257791467953935251866373425453732132874427691987425683276441869338755318987287127951785348491751467811547382356476689932758198839433715859424785349238713693811872935717395548996384988558333755989843716728189895869364845721199471513565627228254651838348987887422183239981184365399143711886783141469697693846535884581492994752531777623653972627682635388524768591258847584587635748347896136393642131341949429262236772997199366376822998769181717644527678362876188942556513562241446718676259889568145325928668385632543649879613476378759282929254793987866764489795296791181489619286893762657515295613563325924294855467264739568478677418788486618855881141546847125258714546198488186349249366629175183518651417454197699889762955649519842741657678822476231932218496339253126776428741199853389641116281229759866427493946788241564161412466783989154469441691182821512838614652179871999686211755183469553245547185551439533173781757559181534861478813372683133268674274556673832253587968963831494133416546723652124473952542622879342844649461193999383427966785661669355646515721168592777977879568745167629212943421212631493642861681359474156253569957317168952148133468463837198327646799895289957784961916823815848468862643837988183525365816928352593283123613551495963626137493317926823973131479785833841289762276779944525755877563845364252679239564484633434767314637576996518377269892656157757979313129928833922897944114736742487264374469432937861381162388823921589232222586111988848999297943259948513823816918824692765381614595229887128243649479337278675687468195844428669789195515155678546727782317164617958537346394838581159929762286412658269986234133662481585427875113552269965527445555692278975382696179825833591563668577383671898526312655931293363576167547369542963339121748479555689636313832134334434558113689852865683927454678257894981378122473157144472954819115759572167768843926484457864472334291361699116542335798373691953267786142464936765425395597441317746457299471219244229654141949246587753866669882353116771351884858398896859547682739268742755739234653519863212372544362519986517866673949869577987126735384357744895443311533959946888293132289969927487182848483289471818392161535391719566388216477439595779648375821458947228281256292479466693598911495477126799289438934449437964562276579268787693427318579194776652253386972985249581875328914689187933995593397433711678566817541691212924566794491991473319188797615866559595233439875942648548642348954754755544168466673114772187639965514464487112268633852891496577783761912233564459441446774771811811176443867746317922187428998352573589154298581949483721969478315388886283977499127839471846422442854242385335557874596769779417381256735229578668744917523318756983862834856654148928922718765715192873327789269531428312874975616933529857879228179428829995537855272239133378827537378582773496129482678723341982543797883583344296387993161559936742264329471616825597735449499223568915615563169895114546315155548674655881999431897955124336295923831336961157813274748316611526688875231237771822187998876127827172378114747917729468466951336771834546672942399299515817662429896148225897855155591841632741471258685728384798149813427439978626279162745954941648838187569956898145331242156638546735352311139829821243288915154697168998534934352966116639976955795693992173288275792415593984892964595584889944679762979286516933437726794993498397349817997533557395678565681381495231567176228713973417972684676811178614766733577175739699992826114322724619875461621811794845918819978545894271273115797124852263183143211294772171356992633647179679934389233425211234164145298541428869234722274983848515124263575315732987113812725382513359377433384652787416836522492687673171963783757114758526324168853942171436955867696954894599973671674381522231654426931323371443952598761845119273419214343515991911159648166869528598143211628594755616822585745518857892627158567169999469116384976882238542357112618189925337774835492689461337237713976194484698513318638454839691796713676652376616555767766114644363239852274268241983897567529756222273661252978763775739186313823151368344736767486842224154681644555385491783925738588735931562376765479637571653574199786819373351394754324732959751328478426155771641914769945827183419886185739713857522259793988479742168451855333939255286379182215965376658738575752183389169988287497193624493997946772795698187935463517929974371866366289283288319656858323961529693238288687977156415247199162876816938473589561634553672498375581561118646928842916489625947911417719623689163157738448648554444151266327471886955463572687369685971279356679953226941187683331222599313194895381219959367136283918588469734689479435562336946333466643545921275176287138566656927897764164366315584385368843367722952655958296991242263817369693398916561475643214164653613328537294711859224983785586328326773439683774471476295884522648626586372764198985522464384227379463591285335474184516547351829888811286244947683974693226326896178591992666754883481741373565688289485415213686559522226341979689994876498611353493471782972876275468877368437426771259544786563373196498127889318797978661522499923832766148691934738749547749756693632359874368531849655312975151368832927566176941959865192918992996767642911273149175199177598716828197758859378385943372182793153157998475139712514296339152863314792384699925271665167923988519313816517483641916995231384185513672585935899944544788176357124361888444526898156826412636679841828271536218175745299882495372993859423526363949753771777172823466768143168729549451465888732838974853229765954852483748226558185926745171568376334485353117297775383954267829121378418427135734251535831379341565877688528777384851541794823832842929127841255748732954781932169611735789592443141847399249783737122875774497687219838741169599716946593338762561558488152436498775471269634513723892558989395632474826259921837419339382594994653935815473875422546753754655944165742736545717676847857384592565847794776589142582379564431187927618873766422557715347524864381954133424238269684344531298897277719538468776598635933315583571835469963144848788546986381632483375717988954711566795453555828881728288999393382615753144363843637823912892946941125873726352778433929576866166838626162479873964795847838641916168694852944525934477855972655846552452726246517319551843145772664199957937929426911889737831892896547133927516998819845668862632481998966589695831946489767523642397136651352887178746216631668849972859979984688629847566815166789779493372472456477839271433669626537784839711692251667152763142596991646883458427965184944513435841656326459547573788736153916865572385479593116169189695245482424127415174816681812381758569428581612943358369611931556175471868438924216423476387443974484733123166958431675163483697965647739819653435728397576929159964661285834448269334789296875375945332389834994332166457883751981833247672281857678164688132865539771873143853561981484911446194225635682358147981812945818387486375357222242189216547723475228661935967336844917626626756276467551266714445878567418318976484457818998445325288693856946443152592749276983525638593943641995985587729154713787196725455977228834427316174399822354656115275641288258253471163542599671435215151998769698765559315713995594315683353214774766959587819694779782549578895586948784452866161714957716921176388679438887233961671753768979416584297296714473132456719567644613253389361873585839655843631117224922396413984728775289934422436433547969477561195133441113614128678291597516261894892896318267387446381278182967111425521972929156769588383948164324877991357196291949241534652656234496464549374726583579682564398294836362128658954869795881259152751592419282514522811129699476861422988123435556461756361823917234177437444894464969269368599531882689521921281984864781993948485567771722697487789364399991492581361494974754119574957264641599239229371584848345276766587241456914392256482254185639594135456852948574685677217814338762594139323427918551444269271734386726372997875986647546212383897599623458993931382693545173975783548581378268111856253779932745265657883319661556851235756529334133933565297682497791751947598193388528283571557771983388775378291114818591924473725725115643646952694559597635287711294456285774413884645148564238638974578448472338263669851242423193697197994279255369689112521583316244541486277631784286227548485982657314848119424495889598312282969226191314766366174395442948541935354579445419323849239542615689963154578358488574489892642358295119165157544517277328174997489628434997819461357287521143339944917377658781848213784898553716652622825566613876755859319611875435959982585685394413686225666724971126235992971641996264531416586822595696114389412911659414172124288383444376294899543712326794846371859623672876877848433772232654736443952815649529348477787161793326633722224738864481644177218786298999953758794926176155783445611942766267527994121665473719776651616494365393566996315841479233282794131796344839977158353864211256839176647197564133988356585766466638497588766634867314217297621239817834362226845976575969958755711373966815589777927278958943867539854123844978941764966372952135289776957756112525154171287766944785168499342323226527825816539862529814349118167355541578946397699825987282926525567679795874461698638624849658334627969348785445483575331896748829759262182781872498685583975887668669954954689696859288688235942448959428812857112538897459647154486847985435785556286173678789687255911715127317282648577237661169475986384332261993462628211461969958787182486872649171165357599798252369194936764347879176773223688485721459156336575793124262481176736549336473752994132597626234758635484646138649364733142653514321794543154988334578494197617632127239559553178928516661839652589558529667785734985394328468248912487161885147959636373333159369255221139329358865866516125357165121485836766732399536441784972936899984257784732774737212191893828916353979297875757763615653858571279462886549252659246746485646449247571515152253346667635383793743337989518468273176477743668923948276773929623668153584758151579688938397891651384751116318156826437895341378774378919372799256577983946456754328376372689645631631457986272568739261198393956275585233718775319659647769922949754766671714284738873379324472563651238241379836443475378513154169259633932245776346388738451264874974549835668296275886336179673284923778729255474697518279877659484676233586339132152671237233977313296779722726345852892917938846816784364292921675231589486553124195969892559738188849862515669436329711791774163829428432975958432369441558946792288618824277598189158763531387117358363619511243831341733521659638614861342928483946719138413189533728413382947261578962622866261429889465751415613635432677625257358413267152594553871968834667715755464938185194873139726186162278553181598342315178415758668322747351647367165736971264482191518893824753685651655275348487619857166574418549186739529767753735939778247681351732621165554843124647679576476487855537862459136528948552793658139486216117125957192634537799499744957755522494479429674219779233852295588849745557753135178175947497619427879332741452673582237299478353152264322341296324455464157936418992356177585461251271684973588837169122667844733725889863795734289277687799385877817369798672673596826736283421868316456575559221269847161544738283983238895513775163468687599169258274211279694892432249974848248496827986283944995982884754314773981263265575986429399187958841886288356684865176469511269767728842297819289532785556331432436948412753253725589562848322539355439262995438794992489854391924778322687168676192479184681839574299316895225684294316346584972671333851745343197686334919579137496817854261916456959495936931766789455612161226253742486369743489297977986778735637173142923736618388514716117941823915916295615369498341114391959489877835864747457777651522122198188847463573892921132699768899394845884328362427325339559397712525512691499563985625797914648327963895469844362375737721626947275948998235459819893926534327935398231263997779579759592366786736414539699842631148395339565423379512343377137438498178283918696625478735445481678663688984781374914183119558449595849311364177944848984927857718223572818769344838578934454958127284136473598466821887411995997284867578118737814799588712874827981715493567634684615329768814148795816215925745736849763322966737338761197278692859383883571919453719512113573977885536872788453219291843371463669971898271745929315171427987458616276548715743678817452927378223765369634373547743846948595276843587475739975222798195865585238955578698872238997552292843937987291374459228665974728857368659866362473773416416212136323937436929181236737651659125313382455833193813818722927365189294177631766572352245943279564671282547862912744957579322729463115438666465667275445436413556662658886394418555645683187174423867572653493248614274493951733218586667134725757852958586297713923974755946836777187993571448482325767856323575151176536477138599645191498631635278137695425522177839229573324113957419813618135533235142369455496123533876412845565983318977724163845639865747849396912139893364391964286443896847182916667847965444915966798918489299376792277684719978921581293183774959474175979186991991849443418998432627684393691974979154351829775458246264614946963861876173764979552236849467193675973473432151445114486317686653748295146488349869515847459983438946493762978138754635448748319891927419141768538169675264997279657864995296925155683845445458157712525113756957898939718222718631645735973798476429482897626858788663571977376781264486654599481514275916718399157214217248843171777229477444992992142215565163115897851775536182316289833127923689248384236785969813698378531773558724156199251818425789417366632982811379622235687651937659699153511941621529926476412485218147217522667581833621851418664112673392516299627957212187833789664729328772414184934233759658269341726499452345752854745994644896268324792388153541778221541739571277881965112338914232454762763229586789823548934631158392868381116561982547888863884212127217846497719539381472684181783548225865751949768126766834669536537739883319255686191759592545147632468385881977578869492119334764331538884677952418849719692932578243345886791863895289971198939681579662193326892534874477688993874587297482833188787986865149696876711742869679197785486886514876533731932421178814842296978182964858238193595526829517929732337396785793782866169218568119128357947326782638751629695183162593976453715341251484961295442357513771958515355811376241981971476833524273312486717465177585314399875141467866775469999228367877543516819672929642771319815397541385679418679135148955344187347553945544245966374476379574545945812913311799787765537296243361578369729749872222365955857572855714666724286581594484726875575832525578563965987156345551952972958958422531788379562185374259513849465982559351477266976136656593886112672881589576453884296628645742827777698587313266869739611524654372742876663112663545266172541554675952957741948682624759431348978182579293477465521181828694868938598523532864642264461598784138195955758427988112439539534451559389267749289988939445755566829154977552393975925257487651591355811291233517531464148877173276857686895771539848867166912647196779213947146932727263673111728638373194676958156424143758127861574795472199329627258381367193868232215413493237993863542712898587845413234962983274283156412362753796858231135741944451294283265737227845753648412195128122983589971813252289951311185379284631971289893255279289868771578295253761924657454527859649767115955144417774649439458834867255953845528944874339816388194687417647451795545861139447581679942857521463136184367736545484779963862934654559978889753515439126263253779785683556621873362285445848784949871779762255862838286658479986248592456998499169148464456199616989846845325279936455441894425132551915942177219844897255965311849576193125984393823945921461132333399335833951811977747759142227218464363894125786212547847162267178448212364336796979751374847248129919542894548238432738863197613856957733476735785398738118152114775712113134447295791961465453643486393944279595885369387855479265666621487415888799862944554874325773585964493817739516293635267674628979777858135411715791692952488436913271921883418527627732988651199373769412457163551121253423682663524298226826621229858529517519456278612191613146481524435832495575825328375522447185934317181872148547132912317699418765796146363552571969739673297388338771271636216656993694178687519789663896536315312814874395121226191172499444299912851984899368437619356688519854994536434149221164895798598967293538623841586519838233657679656144455979794578321469346861654969965369871684561899735861831295967451258429273646598687596818391399285752288299737988534881682662279421733961448327225916777766942681296142675946968988718762417382325741385219499562858898378685924251978364739633476734254634469115127684756577697657154959274663987251213962412597673961866382915485281993457979784262396868897557513882828234284653957638872645961675559137362555699987149881735853715882184565444832871885564953629141351769959955481648679743493499129439592282151541497763465456553997192153983181349868935726385834174211127118998793265328292413542292148598898984361712679189187426641787333719469225392869577684421232469335871648889778511846781571117937487379723712811375539192828485489273436477698553176693313315933292691776355882873954337795329878792873824456195685168273972283999749139381112458455584734139846166243471155947479382371116676685237531111819218652119137369899485296462345371941768678289753569466697167793984266716675618555774818484468288915794881974732991229945693337875589998793717777894893846764829982594779669388428291844683527767771698611876898348183336249491598649564823753656185481312683392937586689476177511164395111485515257523613524749274573668965279736344771685619956592263971117854886921985446738487793766497549868989276262964441835137269571951558483392584845674474297692474686868571277585889837962981677244529739989423899218623833968264432923194953935525957573156835324883779589841513964897672519538536683288277959827919149175723744921371247694563799531793666433444185819429236331266812599853818112973764441993855794567447998166783113918278796396735396143253216744917942831292124799312542183876295264577643388351729643595281612695278246183595661784957564764745323613539816453772559883334938746752251513783714955134491289894252845981488549571384492982316981952954732949765433745274233178525343593122551877138417953353847298449516934686697285221524653888438486972274558368671521973667482295797723398973215771824729712794725559363776277156431338264269296935739189674548436368191619414976846486455268841281156515886919959844256432979136755788564128318165314668825336237416179332147389181281192485748113696569653157569872334528532844542193335891686456695119967864427377449183252295413644556483353927948411149699828589569568659241943574243145596796756583884337875738966312186941341478671239453239139812195762823865466399358739368776923526679957473757868329791141156953223289883417468887662157772831543553548161599973191541819173193944617715951895276264855965959522787199758471873792552228361693133452834887963192289471225598547557857277658955374338294239737813458431658665171927912832467133573924167638475214837637247411297553997316235159133258855993228496869643817967526655958412369877522556924885619786667673297887564773255994636475317558429667943765426637513917856217591817665782772133159238437387271699393467976574153622554345326816888617337311298318762762519511164679746294924738972886494665989257241799495227147816876784466515284674789868384321581544518226871792327794987773879215562184563752118216367397655498919614649227595279175829869945622295166482989143435934595368895161754141136871767745495167696147634711646776488155858576979219611218936748848478664697288835552378148439364449664868199267169992418124827349818682777559294923483223552476368141969998589814249695217718486458383272552484242577532169813779315361185589537739845993266472579548695987541818313863352787258628344646753167976966794251541678732436188543525258649743421226119918898133116977557894725973642689235349141651923168253781173739586827488231649784148865167985614864754613889478876962857191836299628385525399311781947241936545349633878315937315196974768884818325286798627811873293775512825517589696531328526723697644825495142383791683264258899965856578392559228145895685349625928235555786623569368424891491723241657979352882173415147426872463987226779826759844862998853385883983278717722418972553477185751977852725536955545649327931171444254845753871186512823922533462966798231282644132515645774884386194162117428424466924937825838763168881561856672837744477458944431683848989932588149363286272257681631194329944263976198168378552771589867824597137428552492167539369442383639227514727813747874527379322328581968288927786386993569364187343435942339971625145828731969377174552818258752255894349339778467748163976975754743741541964465268328286762841984853719454285192826834619435247488259124695576648548543526166222124175419821937491489217351935913721189169983246959419213818294137587724384278814171175476936679258179321724895341682555118529479341546122871269853986735289148932972897166655284336369727989634554787363982217735481946566858518636294164158576876695474232344789862659546961558317185216553627489683937193667729196535593623479684324523391766256287818419899861455163896725977768577456238961991285839626295294957883327717445958924846941698836445597125289662518358663289283718978724751219347243376424644868363973295815899429649378322658233299167135997449358986443565518697124377414277686474766942611542487164173774535344652381224739597848957634842478143665615384425264248623817988462429167435685512996115656136485992341856328467686353872648439277711357982647245724518676971543681289249649962772365893478324938321896226923541665216876767146248722673844156698258264889572642378957749566219348551875822921851711193835883744953654415854143919116371658718578683868689278996968733639455226467149198589399266776379635979222689649645157241257792516685831585965451143291668395498293888676715421299153398148951992311439317136665368119243244464497831255399675293718855775829599676565755718375894129945639887884686145625937459553586849974421398715949943353829532261483987747423416525165319348624764577316421273663811383155638113388362549199727427799957328345644326249256383532266119325466929118471394299858538696546366682165362942991822499952453332361387943611754758881972839327156681292528314936575723734982938447532685579366894819935932465895791793111248314591472122886476333976276721823589117854473715987258216413875329668697948748756359272944673663828849891732351278457789877514479989745657486131583456227687827277574727622394611598298283193295744694828869979272578798855779965561559191749284173445139865981547479794388549821424422856668923958387745155113495424425475595672351592538831794927257176326833797394625747483751276888264473911326955686873656488568279612278551566652125629384339826144835991661277287829136875656216736549711928981376746444995637585493285847888431939535697954474589987264174627938939777876146148587839346293659785981524357143519496727585183319954551934428953398588281572956748969933482262283615412918169278147247388698857466195989396423264951956824166822844988317247774171599629627997943137574647448775656119796634944176374859877152472628644393754617628342672328376879588338664254717433226881992813481855963288587677671844171698472463897466897935126414836747164581723789579948878452492777948547541572314386274152498544199484824296415433227875184395479986551331143179595816721289241155813528992687695897542399467863451767318632336112481785298963999973183253368925191471791119118226197627673518848979219931131294894295998911131375331784778257497564191554824312538838321811719576565162872162961254416884971816533724263458922944661492411891162757947298656861645592942495198274217736962964487189468478956477372158263217913225169644637175757688611732465458134297284923943547664683776598637353484898653153564476123361472879976772156962815338657967841266868388996471997125976972955891661733429212835613723724564624117651692567822314395188199727456154786893188135535461176298666693589698525916474223672333885186477859753746693494625998637728993275795729549923178766793495641266843643766448374819394236464125245285113878683717594967281693342525255963648419878463424958356811872454953487561246917491791549425823472753478667953645357831137515299429889155822114755237738353974682388516388485869855667696868339377552786688879757428773285881549683392466882921395337555488278488163337446647474146229571356339846765358583662444175171286575864754762611629194544938197788769668896996186994492646972913965311561551316294147468512896214647772745785166427784268748694574355189266156756911917148255295378729319922899384433167753629743789612279957792294318775894488417248483773779758261679871768235399674757848448118247585855953764837596781896548587669822795541189467561152186782988373297988118519123446285741349676949726587338629283377993296226778819293641244726683132357287945963175759798823484365932752795131458388688917478979247336391477216812968134168162782397713767742473915635217292778495677592737225113335678477832767522344681171316632772546769767485436477439599778169879471598479527527238654963285171778146158127925579318633638267586492481399775921146988453773249944674919456283542961828134138175485648615456386187176559598648762795211586433595573726652648977782657647234812558369297736875741281466252468682776156315873428812924756512896629544753546723151435974953914775964561812931787851181989235919238275615143116722612889715438765572153391164578749894773178573284954389931743678933622821688552919296996764641827146767866618665871993265988716215893275963588122659223544665721949781721295795518322619847419712266347479647246917445695689987549498585696673973522866912982356682757483496491686684154185386189585155941337587914311312143748415372728434891958825128192911868838774718838812391946229549671236692789574289279664389599124649298963788197658273589481972686865744499598836867525849454344477177881987637895144944779377873476198189229731743224933481581586585685114438714472426228664812154856841923852774652339839779121994395638819487318734566847459611682828436723898869865322532495172532456844666942683138318898741345547136253677133477518373793743497866749323174835565766451965493354555695175715941998927133551466222728633999763841853563791735844118115819826934544336693623543533212552711642391836861174193512454762226263839329383999363876913395814448786657467998327614149274475722549314699936668765431846838984867893627985142384439155338448479332673746796362462159519872811169682494862724872348333686676217188232631225916375614689449986549544332814775572858684257551689617696926572115924753489265445123117232335222696134213791241796694125798117319168699736891535939552551429999293673722482234663617597678814999351839211669276567189557482838497476878254351838952427758667237749833832427416769832718857611413163942672268659634422648244699299492683625389548595688389195719456451836495447922451834478684819315526961971322826913163547288465275481593187763513569777217625117514999436526595614972941282749173258964458746911335525696654859711756557457173939851858195861935198638411669347232996554869497262119392539439299396453278589488374746136653177446989994319327571454771726326925851917232653441279776513328817549586846251712676928979688144666659457678397617333144444583872238525686854845595386794965819384736995425258869499428975772776874658888673778763557687857244439976981881552987716116493647769657118986388467122211325191775996987328318161884398126981794852575665636427595269332764649448993535261796726419792698442873325926582187284772426994116662384694884117549974749541244659661758986613643566555135714247729856741289357995914637443296499741489926535593724176155168962921273877557781433758356984121313737824549931179966378894324932955139418711647227417631268779785664729637767192337792251678727967168645919937987338995344189266621899896758597215733877714448713769913326511272915595797878441756316341618894221385636125297171563149237496884297394159271467248169156753451757941693791312543423113978449235122126614817952225514939827249255799862579872255222796149127182276734246999997949214293579558526297821815972286185549936683398497977251769735762358489176518153561291989784867952476819186476628893115459749857418895552783794338956442531557513467219989259833593395593424766775979669119593746155548964365519937729129821681978716415862821916966123772481335929894672973285968969853226476255857987947719727388218211884653894998198781719259645273418853934441896822842789465656284664937688662893666385978734278224546926983851168726532535578282545648992646142466739599313485952186337397794958522129282219953327469775978833336746583695541756141767969584777534745589257652245852965122727793625727794586386431698531748876393371752111463869762789519789949762318437434447758878325229633918256142513455783222181175838664783818886595839492715753194974174178129889569745726971799324535623692458989284677799124778497521382646934433748524791776925525376619784574383783275437359768941897459935839679645739625114715676717388771226353463424139549245157398819935138786886578112316924944759286165861748115543254414759374776792189743419194268132588824894722235823969989784315812854314527529722282593474561872255482792229733727894843112917521431634877414672677894585858179817853483692178851912755784753213321149779262435319285195414647756832943119981435852191355571129683468392551714567236893567688822979973661413516787111881121639745842197985761342616418852532741454631935932972917397544123824978221393162477597595993197467563878245568822283344335949896928268861866454617616781475884232645732158527117273297121495987619982533772841769237672759746873628717884796576946993224683715595183199665216131138279624519276435286988718898933779771289758227577943755269546284273856231151797232573825132241484574341245524371632995178411476756254781562354554477377467496155394748379199783369645678161117142353996523592582519412921643818769789145176596356137182597553172518487276847478839732947131153951899935692367985652225654962545448945662287975613929727683135717828437359618661239647169722519314484813727511876427831475866148762976274772895861745611354782235124865476245764423685265267726458624511252799273646859286429958587927691328173622234487323217214745914469677989998795457436579897587273948573569458124338758656632937566584934191278915553867719145944232138799968756698447128672113926785764831168921643253816542896789816184936696524298327372573677646947937198866765148462878993586399967446313549769272611716297133867863589431388922421748857561236798523726637388148497345886256115258714771343384268584595456866954848862694796273752917554961925279157645979793775979824159559679785351143664338458277957124498456193537174849138999599758395366544612325762971464251369955725975319994637694861277884421678533213765648896818484916564232836895842943923542666382498973743759911552624563199547486734443655477499187872145357154694693223842791591865862655616875668978427594189694395139497338493999881257476152242565461326211184792678651528441482829274628269466252162192244472167386935592729779248115222593319523912726335889654652777261777124523968864788688956414796136151132559183216859869493981425151377729275152245363975945844571491498684893269585872885933885762542586513991249124685395268355627289681121783596853552349157747827362937951763874384478335846398931327822324469743994672197416499835415879741388657224592612964973796361666678748569828797338254376532963329661464532275553732255342216496276712937738571727835863517377218916473396794435963523199369118238746682869459489145886325217456546477656328396397662614857859832547272472362738327131848392731955387647416338585181219977625684756716683935851979639688828449292582689876352259945338256373768971693462777868935174446924659511629936148271834755478339961949341374917274638445679991598642741765779429855374635898889815628986748354856242116955123423259953818774231969944929418544997273227829815787328641276979825923441128743168278367421618435188227515587485718157871967329866147824836668379852991921626972529217875945218168362178973634347881962634142574888257969156879681874524114617712158613797961888795419425251646588278569617692846911727717139312965251766451158115976793491913449572417978798893731394358155496868484411246881642718639781938345763493879656525426328971671826533321595457572766612673945771296881325459938595393284563383996217355617924131913564354748616354826453952367535893351616137555428226596491473897146996499659886245651227748857782487112248473924538376322924481399429732374925424588584862823686691812739544648536448441924299669443168741557793891426667415741645712383953775445879871884681523255314953419436486222469131788796513198246213885839828728712174959497686648521414832147499129156679881962419925174862336934335147184489893564327124593471721359292931163633298152841436322338524777519965282634232662853157997718581896744737894974595287785331632382426317568264187453116444537312794259648189571633365629657532554282253774577489583977941731513779887622195362635618789252722113385899891771863172252859839642692257754647742855617134169917941434817796546512567572463793835227447245293473995492128458725653325734144743952795135742417419329442813781359699679186563653248161498777249283176155187746924233868655477268676998665337534577619261269957149584934946929221663938441699845264817617689424534711439818947769751395468977316354963115379173784887115796564642884597575584794271772358953456938935958567459182339876358895263295597927243511374135291838928157494949948152166122179758326311787999574893846617846718196469529372949573239415675311659718541985548926226758866967322739618974793139975857823892316414894896367568133645682156714791943156551776957671289583354447633494871275865549347976625688592251397572682992691687346359489411755842655785331288756712887257414238365291662188558695595296734682996456322827324443895788372567538799824349469667256551629591378442694989832178244925684894478455814287589776332435884652765356565986786488579319647951593224842296818179691231536388414847226749457836882413969555554616458435489919363491164995473935333438239124556516946679176418854833164353985725562126859872445443854753677785247152581682641957964429253194736428496914853919928982612682537839495469799851893633487228271724283474789931381433946579385783367633928886295187851937375361446447248135579381961494297861594882648166642787162623756586977478598419639864335257341631251357154544843682455983356671319164351114641969276326324377798682171244497353897896423861977656959981882553289416677773599168789457284741772453461824445619818671791334257964354417218347999893492654874839676392239865752765846882722574663595714519133873129254376749667399324979855441611728464615961643277671999698893168474441582518823278587876778232576483498568683883536913548574289557684569862527664223637362832971425651663251634898578539228144151881976978516936168828279153495996531159557919122975767381853995918661847153695812746216662439139878497528677443664483777654889214125663514817551837257892581524537687412212786876375554852542921814269389879641936815714327478653563121723756566811614461737598864192149413869475969761861898367662683141285567938557959416973953362428674193374948939877824221879757129871944999614126663874458915711918575444922182328313445536581864543916828567524825226761895289768378392733865246642832878193256258129476421939165715311529582169613169729991259316871239866142836139148535111226444251224913747627911954316117627425988768836554753923155231769179149872498951286155886921747174638525334275765289774363639483582915553273125767689478222497771877454352331964147992826137385486441599335297674247826791131927148213259656257244977389762737635757875587359919976943139714586972474164814711852234873611279761223286817852291475246519874328128214858417767838865984899397687944966546968842233198133473432816796715359177568659173671321576852324698919892435847428727741173787691977682286116621177951929326212596798518694282985693441245891251922918975545991478958713848898739853892384274959597193553378739538648184152148516559685532475846281778424175519143493643911341272227417998523674485899886648717867736218771392842338175463491346536568199537989777257283855899859112477239618826484391142219849583416218533312391833655613135831798559894175382991857169989586173122132982861388339779747564689383394474912199517874898424494614959423648638225984223975442916476467132989922541623444617999416441271161919635894792947678552671381182768371962825925494932449665963789974481538914929631753479812934769479589129663654647719998697592536679834945338672214679375818741386859321722283162847737247988497481187348942595482438585644457511991671598582399713597149363697572557318278522867865145917282188263923238844766719742918317254793892168281844737516814747457991761791198712171563338382217714668493238337542339236936758432436986857872764959423813986112582869558185257675794156534499833219854989523514831134818893259868558473997571879887489176758855841992887599913895382342483948945131218574971951366645118977139517129249894181983251324577862924363847433146197731565874324442218454113557688287856718175588951434736392851512691734326973692226112822623313841595217894795859129839984938284376239229466114991516215355765192957757119321869536941689556328168231651329181349274956916776174792847487795632284443783457393961319661387196218462815821745314637316818132758941835535398411225178218775846554484747139192549153546617328975388687794692323148769745617924888722819297367474359589353636242399868338827898524366685828532443649554754382762671564885758375223296859465339421674875986999985728976987957162584399172492859525913434888865658876127777999585935888355627375273963987851216798841577464548527792377916383892657675366448244673995646849532863428567291145732128871397699587316631566118972292586534624856147193681749381757214386325551695423384652669476389168456517593367491312568735911984593458532797829671138742284189757987533135157498526454979966493164729149254256435448448378445848778612714888192392996498989797597622267694862917656385492587231172595431556344932248538719892931449983454185356661589732856553212888658561996353624457418966491293741635385962297284384836883813473643358188362229257587783914117917462913724837649183577616579841721136672819365266769429833685551786645218684379131217855576446433122517261529449838395927258839783772758368938138589684811796515567517776728412916322366932767242838347247948573618282111765571192499891873861187238923983546961538113552344819346534687631895854982185989711971164719664592217857456275136787498682275964166342153166488164363267521917826588454789563913411238479468985764522628884311968472658538252643375892872485294858159872399968999373551627739553587242395223922731862789898953893938619441289568872925877587938131414267745372513462167879762897727472871838241598431864989748256913953843185838333811134578751765943524237812799192982538478359873643474738888889969582537849939594632757731652946916963898824553668736687249454234515438638833393981744352756159156882521979591151858153228686393727437942813464284642638185831848813518499554776835641782882887575446521125876624592778559147698349219881887473325129475526872454698319565525886776473326113389173967951971348642896284918769476495999497164517924152573677345858555288425472339483621281217722234186911846477886225187311265941734444458438531262778118244342167231792856239944227985879994452881935111645939151579673481684346294659571999114698369435759728177356858765842164798977267372877468121227883793494954795612341346753461563983565272362167259968269329529445192314483726623119973496952435486675915769889593784326939195346454411434348565517274474718765769968575816481928495915815371481997231898676656773362558956855416778861863116992221768186466296615976757566324114771769765438759163137787492881129234577512526428353268488456397353387989993712162694618655212549827492946557661377746339242126478519242193624945711799195132538399515344774844935157938569122868953257428524938935389831486279144612248762514688367569956222463331374917925339379233454579687496378916287761991868999369339539876217446581131281737233252474838241164226526641288514817989741665677763424454395429499453197465529742497878266854677649484736868653978663978435972122722482223611589751164364277255687443879993817946768381649873148444665839971718362932966595129576335427918193684769583412626334964923594562524747829788719717682813611253549427145629512613914449633544522866999193891978666467941497527147493814985536485946655473782741925917842424124899963263429994369877195147367796254992699966218718986828941757585855495862658361711553356811687899178432832556379295438929917218659587877847899922375694929978989891684159748291976449924599644184952234887866812999695892513797568447838988456627217941535943596346946628617413669188995274828972659716288565325446683687293874199226626374843744111875746922932651994675895951582943437885149567878919724587154219485978839789997599797313436995949543883225822698785196876259986127371526643291835286575859453557787993927472278747397575451586828738986328761729959975269879677991191329835971299365647533571369969421324824567429972943897958214667534763966194812977555849585734542719737792546957968516689958191784356166914125723198988145339369452514313976482755637679699386799791412644941278555894382285511241258655893897229648283942924368341214424439558858593487565569454921327749231755628114992254889369874662827676928174758175931812347431559371288277588916482678269182465941384877596413857569976979441834254557716622334384582147879349399846838837224291996239939811837565314278585477266568587861692223289623471948649235726774678658851969965524833992422951947395875182469532451514418426984562796538248462166325937811953259425968482126679518311994782246167333346395439187729864392512549863632933226346774356944234792545948288128599312644779894987768183628759777566477299129592198968995226637261735348557996912883571424321679172242897517931151698455312556446676375591826951823198641358418689597384856521394193919876924486714158692821677838993877774288816568542947371948886588438962266771427777194289216522561853764753171884386281719497791265792561548511827232388968721824595432725519147525223386418375538998452744114335718565585361794826575365592318912587756182698546675195359359167489774647278397532813188154996376741575198288951883981763388347781864974292232773344491648596494755971149498973263798292847489362743861271775958314946656638145691957142883588661152884964479566213913892969343157165816852394953164334898135813955283955915365731237336228595911846288546234641429996265677395598592614642966144185298527179823366488477727232956562866774732823192112264486711841864138674999384362964858114749454167681749111172333846779744729914291515482299272369681717637624369652599378819815844177433268962294567147856165151882586679664377842294453259327569756889351236866948994393328391611239972414194867667554864337257386892986885679389428227571637258986435369973554518633399558772285871613762165152563181236982797888177846879471596685667574144239372332591459413783429944749399327878153492534766629982233853462742859214168455134895583264135761369583476334317759392215376334769413553288955867683641548787389616543674461377315379772762662151354656186693648995927344991136313399768211994786573913783176882222471454714198457257223552284936594134762722198453711617453887884683767944114421286797289583672428783813184349834593615187656165873182123457735519948729362732968847697292552251793858523129733517962283225465656339651439461892771587867762415378626532396722993299748197583825948337314723273848215788893629939569695818165739168636385487787327455569939187756327953692882877684636517862333912483258631315541768675943196284768311452898274143142427698685888687185447193691795746267153889462289233142787858473266627689337119826244166927767234348551189656219938385534749965814613834989378221861298835224724617455618783664223369712413865833283736459361514843986675956817752399279878218389734849194193335992939166878411562946358623495832769346453645425493446181856963482875763272865656555768682313422643837943296979435734429194154295728365586167519745569636818652464422554793159484679159458236988982132594526332686441353385923512362767595581971472375474559655387712865596489352442869672957641383845718193774249543468828954524346482625217758699113181346739279577171386952849219496472118884713673494781674497752386966133953973733491669115187721117365728843873979225757769235413534988735768652574856737466429336952669435957383171711664966174468658147366266836181524958751975614939941445386328458631396657878439747386133642458754714823734998761525249839192215116843247866728667517967889544849866726896591689234541166736787191944345763583468674685956482597186322347944871176497188218598771616576854568749736187728446274161819653695456963581355185626872169811456828832585452292789926881213969722551738998652338722565893993272288255288923651752954891793921935619466713673895225936745482298499338888536863947446415126771946498545678854116553688784164968464524673926251199726253681657254496393886866156192791919677492775674874445788314574431731758728254466851818835344149791152449353753868873886147332338495734474646964657543162946476197858494676723462419925764674596117646596511556757631434277761371979159783214736842571815799685968934758928587632934779883669846721439117777568929474988192325766595176775444751663689986717655491476975854188394524425125995596661153883785759395323647822231371776565686876555813825869743774189546868784769562843168282149951879593219385146859837869949551122597586247326644873831391558285797822773726581936384935545866714911693443699466422838479818896562717951149813779734392132584446395465451947889889694296823728726995844666516775691789779536737974711162279367437735858685465676236832738813279882792745972788225141158849984166721932721265167274558471369832914561838453334175983281155873639662691454815743956319817851613183659981469915457454556867959467447539665787463152695653569553876713223164993714697954389472285647726514725539796921953831846379788992322314689729837573113449879769667593182288765446185826469195668769154984439488483318263821465783232554288113731784987969871877556891744119319439432175637361371252657569249145847756456318719215311333275432844164183884285966785116779683149488747897717669755317144665979167854235994965134483578262956121464698916748173515239589332649937397214691631579589383452943555119528239297369493279558357965414372368525328734919496467938655375686576665911446978843756159396843673563435383395487368945427973673927572277166885585327232614282813139585589893459933851876563598754412693155671942119336856682836945124625467467911459836129321821638487135693765677449868912618153269878184111531773676748211982947977675154272585742324821431796684666557813352292513516399311542794818859548626523889525616225533462971765968535731135829448588415353555796738356295587349624861782135496943457698765743794164599123277922988127142591341614256329249768344952589572879184888253729138559386615421571939959334464345425755414577661667422889382426317878661953559785991777232871126685633684124377677424995581819785359995113166794667576212921175377935872536461415117485392998998781998842618877995491922157184212345822184449295866577389384899263713811453623959554288974844459317779894382353353139775322844314693111297881867771687518868281218549444153599775397576269789411639485896938646429856867486984375399612217974838464384265129899826393466254256865783779618112762686415545993936721853511214685237864737777457837428798797318369598693595831961798547327747651675759237497778734518347993134445913942688976975778637836927151364621791361827957273156466732916225899479544765229886951576188464217785254235676352892485732644552917291793751573359331659763488865783983333487566799686666312836158994388828749869555313267243794354521865944796385827522475939863479979948382311986913742353793141452115449267212237577592722547472473649699792176479474597542189546689642343898583263466788144312971611353898514287588995714997783242989396421279541317828449167463983897653764683787655318892277559674868815298673457419179759963373649649632424999872717577535656996469961682799339582374877328134854137999236812826357715441938835332726648995129882849315295436726171582526558378311722176659466865578493295749677996732344418216476948691229512712289451681724357119349316219867534793383463821262943192857851885535883996278525966991849551838171262431911647795197658196282992529351934348178318317348944632613218292567776932249885469751756788185918616252594896973154878228696723298995249293362475244165956867963352147258859226926268127869393276346642748595499517332193639635778685991838345992325712518826958698166247426391819645333188957154125251545886993655597896414538468298988636475955513152997949192697659269369956627127273732144843988116111138295656724399179925752269913849675957193536526941664857456889423947449225553774126991136532714213144914579997236582966733145163218336959127347715954887186565218819431977886633464177617868977858881191765795165158978531887548398275884772233663358948543897763157276146755192647258137787144965295761652474276228349875867892149296414224955951994899368769492364393364413729614391962287496587769545139453156919357957578318336511413825427267163555482275497186747629962786473873825963373267416888913355196438887779359227345972156962787465155554489362998964215854993351387617114521346693679726627348477797626798415995432834734576377749852487176643536598391281547915686126996255687989981418883386852636366337924184628955464781654693687246999445721275493671858469818644816921364164653984446964659183526329956283124734956958722993267767336699848986477459485761113692594833377594562163764272831787441612857278841763397827396173843996638598734666376493293749743545576482168333514237942679668253568244793666285695378947858257486644757773223858999538839694927114356417161975174372437491957429397712625897924449976556115446853137164389956143312875684924927124734444239853766743296657149519151944858245864275638984914228969984399358576299388735663537668592724382511799529766856264533926825759118139412475941338989699391375191877622713977833854831815681416655759564827321938934962471573187313946233337467898371411453159597156434553298783612911918884992278334636145139493122725249774568927348375851476368123741424475688176162323753898385522549883666961788365245536847463882527876145927327621888654671293918796128299862345346693221855221232471799681234199599226495336212529854379673424966368195375874516641673158753251767652666394639764463645997692255647386611756988451134442294591825439122632845542258352429746138344695865897231553669452321792159447391291227638222895499293162677113523995751475134568727682374554317889168685153291959297122477893779817878954946443422677151819626586493673638755312958219646979345815149367158257979534328359326929753455269498834965421612149159688128564256687164645333452942186232794874844929699985718955984925412577299398324243619555624743938591818365549436999188843549867491412523927198851958652661226372947394255271368393654684335761897276358721775222654578434163564853912574665893239198185829131555886473694643192691218896863237889769945136353983697933956981568148746186584467956652235862399938193678981654198287295429367673415675855544719218232285785433127847735692362945791471444147618858585182147787788644638462133216912277534423698995877891394648826961957997654936116124526775188798439832812219131296396736175166265166733564745386232298615753832249767876249899617664529959594695135845442338877922843769912997629377925784544671579518193271354963725459267699793932285797815412533495755614448257922543357976772615482661579239776663928692375551121538996759391552713188199599775571238462916985246265283618511156878585999395276784855661869792863735856355879818968587758695161317474939498445883114566678141391491484392793775119664798794129946612419669927716856995523816836883286495196187629852354675142548383319522994434589862719346968425728399739959157821487956382199627259828964197395212214557653647194488639482534525781916562196695549267329485877547587255989818285548387661564574329588199963356654659878634258338746241823358248138894269965814194483287856452899121197277252629682483286177825536568785897453994774314388474462569726915235295649293832979776399471211842658786662362894446853221776648283131537254991359822366143776771581981171227285832324958952537993319871388299187455346981596476778643583563489431917171796142745672312392852454438558279646521138372992947771883846983156896717556212665343259194861226316797746835656241512427925933531393825573649668481948462197936669648652152468195719174134351651143923752682494439228553716289575873794722949298241699658287177431392963239653964596138146936279197223513813516483689821933554116548337155161818411284669533541894466477887952192428372966518767335578342481832394793429815474716641216981637452478998842146995118887635316812211592723148676791669147244949989916336948256833643255634525388895363117725982456988741229133197892581426378742448812414167388251879893398684212566953363311846257173634829785629486711845897884886762139339551641193835241988371344363565531216516932547676449215593727329231491494542273991959177175948766688816451276681697963895936233571336544385383418384417813429959831472856998617229985554528261977761319419727639439354116517418987929177613421414621799519428224699899957625313421159998154938534141931459376126393986968292243386747561613865796425558663292569614535199869782396389274918972668484262834955923885917641251327588556196813533467271532954314971921267699464528626389121126179895986277315662159225837878218986513433197717797693625726991481984299137456781177174343185478736518344778663958599797754891496263593275493661657679878612365596471843539498686268442871549178617974245199793153974643518798767583619256933999849326982835888744973681413495338556355763331158255889366963617557684868548168642249736399174882441626535872396784464277592484965241768871622658855839831257886741163645844363696241238736741412813268846384587132978872769627265889168177984167899436233118664783854845676161896692854729767776379188161918365584879488126652295767619191695563784458635475687291787674442259217565658389757799533729899364227569468382633796262332687819991948675245141963354695329387647729229459884729987982522633381858966155579599812225975757638766548323536433829181641918636724527192779191261588195517142982925414554919727231954618437863917934281767498225793218742647117973449587734544212382818632578884136251953883891844882491268636375519568753752438394255275725249692914524595122824168711929797779593883819988984995935947168499346837248198996891367271526388179452116614345295444585611829945273924142577963776647767134867477356738682933663439999431272414586923898962477725611992896929374831936591416829883217273587887655498794929349836697957845522492993675799911873448451127862254139534631424326199395966867686942269353745766378575357899898367882582198631146552988154433275476866724825175477884846791627816298889594977622766544711989694874832473265462538957194564432686614817215138538865627771988882621882536275156223583498232761987745834141826223761878935933666984838133924945936252448988974676924596845159231855753527385349378483599945482881225457554233664797283728446498599681499822194537829375776994448462988265235119166615548264529497911756918863577883264599399457965314917541796842791485634247259339555167246521139474769882697486978676428939661683497763283159462494616744376659383612979145783228332271549166596538936583729491867351242922742967797542223621448123788948984515773995771826957558962943551916694967992595984357834845925665554245734775578261924119363487623458859363418973934852192634759946628325718328617927471513236124142475341222223487566517751685229391178125847269688674381889613797
